*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.89 2001/09/04 00:19:39 petere Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.90 2001/09/07 23:17:14 tgl Exp $
*
*-------------------------------------------------------------------------
*/
extern YYSTYPE yylval;
+static int xcdepth = 0; /* depth of nesting in slash-star comments */
+
/*
* literalbuf is used to accumulate literal values when multiple rules
* are needed to parse a single literal. Call startlit to reset buffer
static int literallen; /* actual current length */
static int literalalloc; /* current allocated buffer size */
-static int xcdepth = 0; /* depth of nesting in slash-star comments */
-
#define startlit() (literalbuf[0] = '\0', literallen = 0)
static void addlit(char *ytext, int yleng);
return IDENT;
}
<xd>{xddouble} {
- addlit(yytext+1, yyleng-1);
+ addlit(yytext, yyleng-1);
}
<xd>{xdinside} {
addlit(yytext, yyleng);
} while ((literallen+yleng) >= literalalloc);
literalbuf = (char *) repalloc(literalbuf, literalalloc);
}
- /* append data --- note we assume ytext is null-terminated */
- memcpy(literalbuf+literallen, ytext, yleng+1);
+ /* append new data, add trailing null */
+ memcpy(literalbuf+literallen, ytext, yleng);
literallen += yleng;
+ literalbuf[literallen] = '\0';
}
#if !defined(FLEX_SCANNER)
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.79 2001/06/13 12:38:58 meskes Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.80 2001/09/07 23:17:14 tgl Exp $
*
*-------------------------------------------------------------------------
*/
extern YYSTYPE yylval;
+static int xcdepth = 0; /* depth of nesting in slash-star comments */
+
/*
* literalbuf is used to accumulate literal values when multiple rules
* are needed to parse a single literal. Call startlit to reset buffer
static int literallen; /* actual current length */
static int literalalloc; /* current allocated buffer size */
-static int xcdepth = 0;
-
#define startlit() (literalbuf[0] = '\0', literallen = 0)
static void addlit(char *ytext, int yleng);
} while ((literallen+yleng) >= literalalloc);
literalbuf = (char *) realloc(literalbuf, literalalloc);
}
- /* append data --- note we assume ytext is null-terminated */
- memcpy(literalbuf+literallen, ytext, yleng+1);
+ /* append new data, add trailing null */
+ memcpy(literalbuf+literallen, ytext, yleng);
literallen += yleng;
+ literalbuf[literallen] = '\0';
}
int yywrap(void)