git.postgresql.org Git - postgresql.git/commitdiff

git projects / postgresql.git / commitdiff
? search:
summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: f4b7624)
Changed statement escaping to not escape continuation line markers.
2008年3月20日 15:56:59 +0000 (15:56 +0000)
2008年3月20日 15:56:59 +0000 (15:56 +0000)

diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog
index 613a3096886d947511174925ab6bc66635025a38..2147d28efcb083e91053c2106ed8507ac6bce371 100644 (file)
--- a/src/interfaces/ecpg/ChangeLog
+++ b/src/interfaces/ecpg/ChangeLog
@@ -2327,3 +2327,8 @@ Sun, 02 Mar 2008 11:50:48 +0100
- Fixed bug that caused arrays of varchar to be output with incomplete
name.
+
+Thu, 20 Mar 2008 16:54:27 +0100
+
+ - Changed statement escaping to not escape continuation line markers.
+
diff --git a/src/interfaces/ecpg/preproc/output.c b/src/interfaces/ecpg/preproc/output.c
index 74da49a0d20db853df9febab02f80570786ceb89..e12308d666fa42c292bac42dbc114eee226a6a1b 100644 (file)
--- a/src/interfaces/ecpg/preproc/output.c
+++ b/src/interfaces/ecpg/preproc/output.c
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/output.c,v 1.23 2007年11月15日 21:14:45 momjian Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/output.c,v 1.24 2008年03月20日 15:56:59 meskes Exp $ */
#include "postgres_fe.h"
@@ -193,7 +193,18 @@ output_escaped_str(char *str, bool quoted)
else if (str[i] == '\n')
fputs("\\\n", yyout);
else if (str[i] == '\\')
- fputs("\\\\", yyout);
+ {
+ int j = i;
+
+ /* check whether this is a continuation line
+ * if it is, do not output anything because newlines are escaped anyway */
+
+ /* accept blanks after the '\' as some other compilers do too */
+ do { j++; } while (str[j] == ' ' || str[j] == '\t');
+
+ if ((str[j] != '\n') && (str[j] != '\r' || str[j + 1] != '\n')) /* not followed by a newline */
+ fputs("\\\\", yyout);
+ }
else if (str[i] == '\r' && str[i + 1] == '\n')
{
fputs("\\\r\n", yyout);
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /