From: Bruce Momjian Date: Mon, 30 May 2005 14:50:35 +0000 (+0000) Subject: Have psql escape bytes in strings for variables follow the backend X-Git-Url: http://git.postgresql.org/gitweb/static/gitweb.js?a=commitdiff_plain;h=e71c148759e0138e8a27653a28afc1fba752bc58;p=users%2Fbernd%2Fpostgres.git Have psql escape bytes in strings for variables follow the backend conventions of only allowing octal, like \045. Remove support for \decimal, \0octal, and \0xhex which matches the strtol() function but didn't make sense with backslashes. These now return the same character: test=> \set x '\54' test=> \echo :x , test=> \set x '\054' test=> \echo :x , THIS IS A BACKWARD COMPATIBILITY CHANGE. --- diff --git a/src/bin/psql/psqlscan.l b/src/bin/psql/psqlscan.l index 4b44822579..f0487e925f 100644 --- a/src/bin/psql/psqlscan.l +++ b/src/bin/psql/psqlscan.l @@ -849,29 +849,10 @@ other . "\\r" { appendPQExpBufferChar(output_buf, '\r'); } "\\f" { appendPQExpBufferChar(output_buf, '\f'); } -"\\"[1-9][0-9]* { - /* decimal case */ - appendPQExpBufferChar(output_buf, - (char) strtol(yytext + 1, NULL, 0)); - } - -"\\"0[0-7]* { +"\\"[0-7]{1,3} { /* octal case */ appendPQExpBufferChar(output_buf, - (char) strtol(yytext + 1, NULL, 0)); - } - -"\\"0[xX][0-9A-Fa-f]+ { - /* hex case */ - appendPQExpBufferChar(output_buf, - (char) strtol(yytext + 1, NULL, 0)); - } - -"\\"0[xX] { - /* failed hex case */ - yyless(2); - appendPQExpBufferChar(output_buf, - (char) strtol(yytext + 1, NULL, 0)); + (char) strtol(yytext + 1, NULL, 8)); } "\\". { emit(yytext + 1, 1); }