Never treat @op as operator in quotes
[yaz-moved-to-github.git] / zutil / pquery.c
index adb54c7..46b221a 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright (c) 1995-2002, Index Data.
  * See the file LICENSE for details.
  *
- * $Id: pquery.c,v 1.12 2002-01-23 20:25:42 adam Exp $
+ * $Id: pquery.c,v 1.14 2002-05-01 10:22:52 adam Exp $
  */
 
 #include <stdio.h>
@@ -70,7 +70,13 @@ static int query_token (struct lex_info *li)
         ++(*qptr);
     }
     li->lex_buf = *qptr;
-    
+   
+    if (**qptr == li->escape_char && isdigit ((*qptr)[1]))
+    {
+       ++(li->lex_len);
+       ++(*qptr);
+       return 'l';
+    }
     while (**qptr && **qptr != sep_char)
     {
        if (**qptr == '\\')
@@ -83,7 +89,8 @@ static int query_token (struct lex_info *li)
     }
     if (**qptr)
        ++(*qptr);
-    if (li->lex_len >= 1 && li->lex_buf[0] == li->escape_char)
+    if (sep_char == ' ' &&
+        li->lex_len >= 1 && li->lex_buf[0] == li->escape_char)
     {
        if (compare_term (li, "and", 1))
            return 'a';