diff options
author | Bruce Momjian <bruce@momjian.us> | 2005-06-02 01:23:48 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2005-06-02 01:23:48 +0000 |
commit | b51366396b0e150c18ea62006b24a610c5a7f8d8 (patch) | |
tree | d0f661b9e898f1705c1d4ccc825fd19ab3e5f24c | |
parent | 65537ac1b41f18e029b8172b8308189434c310d6 (diff) | |
download | postgresql-b51366396b0e150c18ea62006b24a610c5a7f8d8.tar.gz postgresql-b51366396b0e150c18ea62006b24a610c5a7f8d8.zip |
Add support for \x hex strings in psql variables.
-rw-r--r-- | doc/src/sgml/ref/psql-ref.sgml | 7 | ||||
-rw-r--r-- | src/bin/psql/psqlscan.l | 14 |
2 files changed, 16 insertions, 5 deletions
diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml index 55c160e91cf..bc762ab7c18 100644 --- a/doc/src/sgml/ref/psql-ref.sgml +++ b/doc/src/sgml/ref/psql-ref.sgml @@ -1,5 +1,5 @@ <!-- -$PostgreSQL: pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.137 2005/05/30 15:24:23 momjian Exp $ +$PostgreSQL: pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.138 2005/06/02 01:23:48 momjian Exp $ PostgreSQL documentation --> @@ -589,8 +589,9 @@ testdb=> single quote. To include a single quote into such an argument, precede it by a backslash. Anything contained in single quotes is furthermore subject to C-like substitutions for - <literal>\n</literal> (new line), <literal>\t</literal> (tab), and - <literal>\</literal><replaceable>digits</replaceable> (octal). + <literal>\n</literal> (new line), <literal>\t</literal> (tab), + <literal>\</literal><replaceable>digits</replaceable> (octal), + <literal>\x</literal><replaceable>digits</replaceable> (hexadecimal). </para> <para> diff --git a/src/bin/psql/psqlscan.l b/src/bin/psql/psqlscan.l index 4159ee0220f..d0e1dc80d20 100644 --- a/src/bin/psql/psqlscan.l +++ b/src/bin/psql/psqlscan.l @@ -33,7 +33,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/bin/psql/psqlscan.l,v 1.12 2005/05/30 16:48:47 momjian Exp $ + * $PostgreSQL: pgsql/src/bin/psql/psqlscan.l,v 1.13 2005/06/02 01:23:48 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -250,8 +250,9 @@ xnstart [nN]{quote} xqstart {quote} xqdouble {quote}{quote} xqinside [^\\']+ -xqescape [\\][^0-7] +xqescape [\\][^0-7x] xqoctesc [\\][0-7]{1,3} +xqhexesc [\\]x[0-9A-Fa-f]{1,2} /* $foo$ style quotes ("dollar quoting") * The quoted string starts with $foo$ where "foo" is an optional string @@ -467,6 +468,9 @@ other . <xq>{xqoctesc} { ECHO; } +<xq>{xqhexesc} { + ECHO; + } <xq>{quotecontinue} { ECHO; } @@ -855,6 +859,12 @@ other . (char) strtol(yytext + 1, NULL, 8)); } +{xqhexesc} { + /* hex case */ + appendPQExpBufferChar(output_buf, + (char) strtol(yytext + 2, NULL, 16)); + } + "\\". { emit(yytext + 1, 1); } {other}|\n { ECHO; } |