X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=cql%2Flexer.c;h=8ac8591f13ecfb1fe8c9476b912c596cdf2d50fe;hb=cf273cb8a7f73124935713928cd5df5b537f8b9c;hp=0415a45eefa66d79bbff6491fd30fe39e912a691;hpb=2a8b6ee438067fd3cc2f85685b727d726136bfb8;p=yaz-moved-to-github.git diff --git a/cql/lexer.c b/cql/lexer.c index 0415a45..8ac8591 100644 --- a/cql/lexer.c +++ b/cql/lexer.c @@ -1,4 +1,4 @@ -/* $Id: lexer.c,v 1.2 2003-04-11 15:53:39 adam Exp $ +/* $Id: lexer.c,v 1.4 2003-04-14 16:52:10 adam Exp $ Copyright (C) 2002-2003 Index Data Aps @@ -9,7 +9,7 @@ See the file LICENSE. static void putb(YYSTYPE *lval, CQL_parser cp, int c) { - if (lval->len >= lval->size) + if (lval->len+1 >= lval->size) { char *nb = nmem_malloc(cp->nmem, (lval->size = lval->len * 2 + 20)); memcpy (nb, lval->buf, lval->len); @@ -28,6 +28,12 @@ int yylex(YYSTYPE *lval, void *vp) { CQL_parser cp = (CQL_parser) vp; int c; + lval->cql = 0; + lval->rel = 0; + lval->len = 0; + lval->size = 10; + lval->buf = nmem_malloc(cp->nmem, lval->size); + lval->buf[0] = '\0'; do { c = cp->getbyte(cp->client_data); @@ -36,10 +42,6 @@ int yylex(YYSTYPE *lval, void *vp) if (c == '\n') return 0; } while (isspace(c)); - lval->rel = 0; - lval->len = 0; - lval->size = 10; - lval->buf = nmem_malloc(cp->nmem, lval->size); if (strchr("()=>