]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
*** empty log message ***
authorMichael Meskes <meskes@postgresql.org>
Fri, 3 Mar 2000 09:56:03 +0000 (09:56 +0000)
committerMichael Meskes <meskes@postgresql.org>
Fri, 3 Mar 2000 09:56:03 +0000 (09:56 +0000)
doc/src/sgml/ecpg.sgml
src/interfaces/ecpg/ChangeLog
src/interfaces/ecpg/preproc/pgc.l
src/interfaces/ecpg/preproc/preproc.y

index 4b0eed30cf5d2e9c79e00dc36ed70cba572c99f9..7f0f785d4b686d01262f8d6cdae85fb6e4879c0b 100644 (file)
@@ -2,7 +2,7 @@
 <DocInfo>
 <AuthorGroup>
 <Author>
-<FirstName>Linux</FirstName>
+<FirstName>Linus</FirstName>
 <Surname>Tolke</Surname>
 </Author>
 <Author>
index 846aa8a158a9124e7370a6a2431b4fd6c60c671d..a7882c20a1e108dff3c987c8f398ec2b3e1f53c4 100644 (file)
@@ -848,5 +848,9 @@ Thu Mar  2 17:42:16 CET 2000
 
        - Print error message if an indicator array is given for input
          variables.
+
+Fri Mar  3 10:47:06 CET 2000
+
+       - Fixed handling of double quote in C code.
        - Set library version to 3.1.0.
        - Set ecpg version to 2.7.0.
index fcb033787c5cee03b265cd6d6a5aadd49933c298..ec265dded162ad3d04cd8a0b30d2fd4774cf4013 100644 (file)
@@ -12,7 +12,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.51 2000/02/22 19:57:10 meskes Exp $
+ *       $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.52 2000/03/03 09:56:03 meskes Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -51,7 +51,7 @@ static int            literalalloc;   /* current allocated buffer size */
 #define startlit()  (literalbuf[0] = '\0', literallen = 0)
 static void addlit(char *ytext, int yleng);
 
-int before_comment;
+int state_before;
 
 struct _yy_buffer { YY_BUFFER_STATE    buffer;
                    long                lineno;
@@ -268,12 +268,12 @@ cppline                   {space}*#(.*\\{line_end})*.*
 {xcline}               { ECHO; }
 
 {xcstart}              {
-                               before_comment = YYSTATE;
+                               state_before = YYSTATE;
                                ECHO;
                                BEGIN(xc);
                        }
 
-<xc>{xcstop}   { ECHO; BEGIN(before_comment); }
+<xc>{xcstop}   { ECHO; BEGIN(state_before); }
 
 <xc>{xcinside} { ECHO; }
 
@@ -303,7 +303,7 @@ cppline                     {space}*#(.*\\{line_end})*.*
                                        BEGIN(xh);
                                        startlit();
                                }
-<xh>{xhstop}   {
+<xh>{xhstop}                   {
                                        char* endptr;
 
                                        BEGIN(SQL);
@@ -314,45 +314,36 @@ cppline                   {space}*#(.*\\{line_end})*.*
                                        return ICONST;
                                }
 
-<SQL>{xqstart}         {
+{xqstart}                      {
+                                       state_before == YYSTATE;
                                        BEGIN(xq);
                                        startlit();
                                }
-<xq>{xqstop}   {
-                                       BEGIN(SQL);
+<xq>{xqstop}                   {
+                                       BEGIN(state_before);
                                        yylval.str = mm_strdup(literalbuf);
                                        return SCONST;
                                }
 <xq>{xqdouble} |
 <xq>{xqinside} |
-<xq>{xqliteral} {
+<xq>{xqliteral}                {
                                        addlit(yytext, yyleng);
                                }
-<xq>{xqcat}            {               /* ignore */
+<xq>{xqcat}                    {
+                                       /* ignore */
                                }
 
-<SQL>{xdstart}         {
+{xdstart}                      {
+                                       state_before = YYSTATE;
                                        BEGIN(xd);
                                        startlit();
                                }
-<xd>{xdstop}   {
-                                       BEGIN(SQL);
-                                       yylval.str = mm_strdup(literalbuf);
-                                       return CSTRING;
-                               }
-<xd>{xdinside} {
-                                       addlit(yytext, yyleng);
-                               }
-{xdstart}              {
-                                       BEGIN(xdc);
-                                       startlit();
-                               }
-<xdc>{xdstop}  {
-                                       BEGIN(C);
+<xd>{xdstop}                   {
+                                       BEGIN(state_before);
                                        yylval.str = mm_strdup(literalbuf);
                                        return CSTRING;
                                }
-<xdc>{xdcinside}       {
+<xd>{xdinside}                 {
                                        addlit(yytext, yyleng);
                                }
 <SQL>{typecast}                        {       return TYPECAST; }
@@ -365,7 +356,7 @@ cppline                     {space}*#(.*\\{line_end})*.*
                                         BEGIN C;
                                  return yytext[0];
                                }
-<SQL>{operator}                {
+<SQL>{operator}                        {
                                        if (strcmp((char*)yytext,"!=") == 0)
                                                yylval.str = mm_strdup("<>"); /* compatability */
                                        else
index d3abd002286061b873483838992526a1b1ff211a..88591f831bc30ad5b16bed954a2ae9d356552d0a 100644 (file)
@@ -5086,6 +5086,7 @@ c_anything:  IDENT        { $$ = $1; }
        | CSTRING       { $$ = make3_str(make_str("\""), $1, make_str("\"")); }
        | Iconst        { $$ = $1; }
        | Fconst        { $$ = $1; }
+       | Sconst        { $$ = $1; }
        | '*'           { $$ = make_str("*"); }
        | '+'           { $$ = make_str("+"); }
        | '-'           { $$ = make_str("-"); }
@@ -5112,8 +5113,6 @@ c_anything:  IDENT        { $$ = $1; }
        | VARCHAR       { $$ = make_str("varchar"); }
         | '['          { $$ = make_str("["); }
        | ']'           { $$ = make_str("]"); }
-/*        | '('                { $$ = make_str("("); }
-       | ')'           { $$ = make_str(")"); }*/
        | '='           { $$ = make_str("="); }
 
 blockstart : '{' {