提交 e6851f05 编写于 作者: M Michael Meskes

Synced pgc.l with scan.l.

上级 ba8b844f
......@@ -1060,8 +1060,12 @@ Mon Feb 26 15:22:04 CET 2001
- Fixed misplaced variables FoundInto and QueryIsRule.
Don Mar 29 10:23:05 CEST 2001
Thu Mar 29 10:23:05 CEST 2001
- Applied bug fix in ecpgtype.h by Adriaan Joubert.
Mon Apr 2 10:16:10 CEST 2001
- Synced scan.l and pgc.l.
- Set ecpg version to 2.8.0.
- Set library version to 3.2.0.
......@@ -12,7 +12,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.77 2001/02/21 18:53:47 tgl Exp $
* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.78 2001/04/02 08:17:24 meskes Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -335,13 +335,20 @@ cppline {space}*#(.*\\{line_end})*.*
startlit();
}
<xh>{xhstop} {
long val;
char* endptr;
BEGIN(SQL);
errno = 0;
yylval.ival = strtol(literalbuf, &endptr, 16);
if (*endptr != '\0' || errno == ERANGE)
val = strtol(literalbuf, &endptr, 16);
if (*endptr != '\0' || errno == ERANGE
#ifdef HAVE_LONG_INT_64
/* if long > 32 bits, check for overflow of int4 */
|| val != (long) ((int32) val)
#endif
)
mmerror(ET_ERROR, "Bad hexadecimal integer input");
yylval.ival = val;
return ICONST;
}
......@@ -498,16 +505,23 @@ cppline {space}*#(.*\\{line_end})*.*
return PARAM;
}
<C,SQL>{integer} {
long val;
char* endptr;
errno = 0;
yylval.ival = strtol((char *)yytext, &endptr,10);
if (*endptr != '\0' || errno == ERANGE)
val = strtol((char *)yytext, &endptr,10);
if (*endptr != '\0' || errno == ERANGE
#ifdef HAVE_LONG_INT_64
/* if long > 32 bits, check for overflow of int4 */
|| val != (long) ((int32) val)
#endif
)
{
errno = 0;
yylval.str = mm_strdup((char*)yytext);
return FCONST;
}
yylval.ival = val;
return ICONST;
}
<SQL>{ip} {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册