Use oid_class rather than int for OID class.
[yaz-moved-to-github.git] / src / cql.y
index 187cba1..20013cb 100644 (file)
--- a/src/cql.y
+++ b/src/cql.y
@@ -1,4 +1,4 @@
-/* $Id: cql.y,v 1.13 2006-12-14 09:05:18 adam Exp $
+/* $Id: cql.y,v 1.15 2007-10-31 21:58:07 adam Exp $
    Copyright (C) 2002-2006
    Index Data ApS
 
@@ -140,7 +140,7 @@ boolean:
 modifiers: modifiers '/' searchTerm
 { 
     struct cql_node *mod = cql_node_mk_sc(((CQL_parser)parm)->nmem,
-                                         $3.buf, "=", 0);
+                                         $3.buf, 0, 0);
 
     mod->u.st.modifiers = $1.cql;
     $$.cql = mod;
@@ -278,8 +278,13 @@ int yylex(YYSTYPE *lval, void *vp)
         while ((c = cp->getbyte(cp->client_data)) != 0 && c != '"')
         {
             if (c == '\\')
+           {
+               putb(lval, cp, c);
                 c = cp->getbyte(cp->client_data);
-            putb(lval, cp, c);
+               if (!c)
+                   break;
+           }
+           putb(lval, cp, c);
         }
         putb(lval, cp, 0);
     }
@@ -288,10 +293,16 @@ int yylex(YYSTYPE *lval, void *vp)
         while (c != 0 && !strchr(" \n()=<>/", c))
         {
             if (c == '\\')
+           {
+               putb(lval, cp, c);
                 c = cp->getbyte(cp->client_data);
+               if (!c)
+                   break;
+           }
             putb(lval, cp, c);
            c = cp->getbyte(cp->client_data);
         }
+       putb(lval, cp, 0);
 #if YYDEBUG
         printf ("got %s\n", lval->buf);
 #endif