ignore cql2pqf and cql2xcql
[yaz-moved-to-github.git] / cql / lexer.c
index 0415a45..8ac8591 100644 (file)
@@ -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("()=></", c))
     {
         int c1;