From e71c148759e0138e8a27653a28afc1fba752bc58 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Mon, 30 May 2005 14:50:35 +0000 Subject: [PATCH] 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. --- src/bin/psql/psqlscan.l | 23 ++--------------------- 1 file changed, 2 insertions(+), 21 deletions(-) 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); } -- 2.39.5