From 68ee58ed4322ccf352eeaf662fd82bdf36a8bc22 Mon Sep 17 00:00:00 2001
From: Michael Meskes <meskes@postgresql.org>
Date: Fri, 17 Sep 1999 09:48:25 +0000
Subject: [PATCH] *** empty log message ***

---
 src/interfaces/ecpg/ChangeLog        |  7 +++++++
 src/interfaces/ecpg/include/sqlca.h  |  2 +-
 src/interfaces/ecpg/preproc/Makefile |  2 +-
 src/interfaces/ecpg/preproc/pgc.l    | 11 +++++++----
 4 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog
index 55c1cfde8b9..53c81753edc 100644
--- a/src/interfaces/ecpg/ChangeLog
+++ b/src/interfaces/ecpg/ChangeLog
@@ -631,3 +631,10 @@ Tue Sep 14 22:26:40 CEST 1999
 	- Return OID in sqlca.sqlerrd[1] if possible.
 	- Set ecpg version to 2.6.3
 	- Set library version to 3.0.2
+
+Fri Sep 17 07:43:55 CEST 1999
+
+	- Fixed bug in parsing C strings.
+	- Fixed bug in parsing operators.
+	- Set ecpg version to 2.6.4
+
diff --git a/src/interfaces/ecpg/include/sqlca.h b/src/interfaces/ecpg/include/sqlca.h
index 003d6ebff8b..4e6534c8e4f 100644
--- a/src/interfaces/ecpg/include/sqlca.h
+++ b/src/interfaces/ecpg/include/sqlca.h
@@ -19,7 +19,7 @@ extern		"C"
 		char		sqlerrp[8];
 		long		sqlerrd[6];
 		/* Element 0: empty						*/
-		/* 1:  OID of processed tuple if applicable  		*/
+		/* 1: OID of processed tuple if applicable  		*/
 		/* 2: number of rows processed	*/
 		/* after an INSERT, UPDATE or */
 		/* DELETE statement			 */
diff --git a/src/interfaces/ecpg/preproc/Makefile b/src/interfaces/ecpg/preproc/Makefile
index b7894548aef..117e2527afe 100644
--- a/src/interfaces/ecpg/preproc/Makefile
+++ b/src/interfaces/ecpg/preproc/Makefile
@@ -3,7 +3,7 @@ include $(SRCDIR)/Makefile.global
 
 MAJOR_VERSION=2
 MINOR_VERSION=6
-PATCHLEVEL=3
+PATCHLEVEL=4
 
 CFLAGS+=-I../include -DMAJOR_VERSION=$(MAJOR_VERSION) \
 	-DMINOR_VERSION=$(MINOR_VERSION) -DPATCHLEVEL=$(PATCHLEVEL) \
diff --git a/src/interfaces/ecpg/preproc/pgc.l b/src/interfaces/ecpg/preproc/pgc.l
index f583a60294b..71fd39a1086 100644
--- a/src/interfaces/ecpg/preproc/pgc.l
+++ b/src/interfaces/ecpg/preproc/pgc.l
@@ -110,9 +110,13 @@ xqcat			{quote}{space}*\n{space}*{quote}
 dquote			\"
 xdstart			{dquote}
 xdstop			{dquote}
-xdcqdq			\\\"
 xdinside		[^"]*
-xdcinside		({xdinside}|{xdcqdq})*
+
+/* special stuff for C strings */
+xdcqq			\\\\
+xdcqdq			\\\"
+xdcother		[^"]
+xdcinside		({xdcqq}|{xdcqdq}|{xdcother})
 
 /* Comments
  * Ignored by the scanner and parser.
@@ -133,7 +137,7 @@ identifier		{letter}{letter_or_digit}*
 typecast		"::"
 
 self			[,()\[\].;$\:\+\-\*\/\%\^\<\>\=\|]
-op_and_self		[\~\!\@\#\^\&\|\?\$\:\+\-\*\/\%\<\>\=]
+op_and_self		[\~\!\@\#\^\&\|\`\?\$\:\+\-\*\/\%\<\>\=]
 operator		{op_and_self}+
 
 xmstop			-
@@ -287,7 +291,6 @@ cppline		{space}*#.*(\\{space}*\n)*\n*
 					memcpy(literal+llen, yytext, yyleng+1);
 					llen += yyleng;
 				}
-
 <xm>{space}*	{ /* ignore */ }
 <xm>{xmstop}	{
 					BEGIN(SQL);
-- 
GitLab