Updated footer comment
[yaz-moved-to-github.git] / src / pquery.c
index de99f0c..16d826a 100644 (file)
@@ -1,8 +1,6 @@
-/*
- * Copyright (C) 1995-2007, Index Data ApS
+/* This file is part of the YAZ toolkit.
+ * Copyright (C) 1995-2009 Index Data
  * See the file LICENSE for details.
- *
- * $Id: pquery.c,v 1.11 2007-04-16 21:53:09 adam Exp $
  */
 /**
  * \file pquery.c
@@ -34,13 +32,13 @@ struct yaz_pqf_parser {
 static Z_RPNStructure *rpn_structure(struct yaz_pqf_parser *li, ODR o,
                                      int num_attr, int max_attr, 
                                      int *attr_list, char **attr_clist,
-                                     int **attr_set);
+                                     Odr_oid **attr_set);
 
-static int *query_oid_getvalbyname(struct yaz_pqf_parser *li, ODR o)
+static Odr_oid *query_oid_getvalbyname(struct yaz_pqf_parser *li, ODR o)
 {
     char buf[32];
 
-    if (li->lex_len > 31)
+    if (li->lex_len >= sizeof(buf)-1)
         return 0;
     memcpy (buf, li->lex_buf, li->lex_len);
     buf[li->lex_len] = '\0';
@@ -186,7 +184,7 @@ static int escape_string(char *out_buf, const char *in, int len)
 
 static int p_query_parse_attr(struct yaz_pqf_parser *li, ODR o,
                               int num_attr, int *attr_list,
-                              char **attr_clist, int **attr_set)
+                              char **attr_clist, Odr_oid **attr_set)
 {
     const char *cp;
 
@@ -242,7 +240,7 @@ static int p_query_parse_attr(struct yaz_pqf_parser *li, ODR o,
 
 static Z_AttributesPlusTerm *rpn_term(struct yaz_pqf_parser *li, ODR o,
                                       int num_attr, int *attr_list,
-                                      char **attr_clist, int **attr_set)
+                                      char **attr_clist, Odr_oid **attr_set)
 {
     Z_AttributesPlusTerm *zapt;
     Odr_oct *term_octet;
@@ -294,8 +292,7 @@ static Z_AttributesPlusTerm *rpn_term(struct yaz_pqf_parser *li, ODR o,
                     Z_StringOrNumeric_string;
                 elements[k]->value.complex->list[0]->u.string =
                     attr_clist[i];
-                elements[k]->value.complex->semanticAction = (int **)
-                    odr_nullval();
+                elements[k]->value.complex->semanticAction = 0;
                 elements[k]->value.complex->num_semanticAction = 0;
             }
             else
@@ -352,7 +349,7 @@ static Z_AttributesPlusTerm *rpn_term(struct yaz_pqf_parser *li, ODR o,
 
 static Z_Operand *rpn_simple(struct yaz_pqf_parser *li, ODR o,
                              int num_attr, int *attr_list, char **attr_clist,
-                             int **attr_set)
+                             Odr_oid **attr_set)
 {
     Z_Operand *zo;
 
@@ -362,7 +359,7 @@ static Z_Operand *rpn_simple(struct yaz_pqf_parser *li, ODR o,
     case 't':
         zo->which = Z_Operand_APT;
         if (!(zo->u.attributesPlusTerm =
-              rpn_term (li, o, num_attr, attr_list, attr_clist, attr_set)))
+              rpn_term(li, o, num_attr, attr_list, attr_clist, attr_set)))
             return 0;
         lex (li);
         break;
@@ -487,7 +484,7 @@ static Z_ProximityOperator *rpn_proximity (struct yaz_pqf_parser *li, ODR o)
 static Z_Complex *rpn_complex(struct yaz_pqf_parser *li, ODR o,
                               int num_attr, int max_attr, 
                               int *attr_list, char **attr_clist,
-                              int **attr_set)
+                              Odr_oid **attr_set)
 {
     Z_Complex *zc;
     Z_Operator *zo;
@@ -564,7 +561,7 @@ static Z_RPNStructure *rpn_structure(struct yaz_pqf_parser *li, ODR o,
                                      int num_attr, int max_attr, 
                                      int *attr_list,
                                      char **attr_clist,
-                                     int **attr_set)
+                                     Odr_oid **attr_set)
 {
     Z_RPNStructure *sz;
 
@@ -627,8 +624,8 @@ Z_RPNQuery *p_query_rpn_mk(ODR o, struct yaz_pqf_parser *li, const char *qbuf)
     Z_RPNQuery *zq;
     int attr_array[1024];
     char *attr_clist[512];
-    int *attr_set[512];
-    int *top_set = 0;
+    Odr_oid *attr_set[512];
+    Odr_oid *top_set = 0;
 
     zq = (Z_RPNQuery *)odr_malloc (o, sizeof(*zq));
     lex (li);
@@ -689,10 +686,10 @@ Z_AttributesPlusTerm *p_query_scan_mk(struct yaz_pqf_parser *li,
 {
     int attr_list[1024];
     char *attr_clist[512];
-    int *attr_set[512];
+    Odr_oid *attr_set[512];
     int num_attr = 0;
     int max_attr = 512;
-    int *top_set = 0;
+    Odr_oid *top_set = 0;
     Z_AttributesPlusTerm *apt;
 
     lex (li);
@@ -845,6 +842,7 @@ int yaz_pqf_error (YAZ_PQF_Parser p, const char **msg, size_t *off)
 /*
  * Local variables:
  * c-basic-offset: 4
+ * c-file-style: "Stroustrup"
  * indent-tabs-mode: nil
  * End:
  * vim: shiftwidth=4 tabstop=8 expandtab