projects
/
yaz-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Towards working facets
[yaz-moved-to-github.git]
/
src
/
pquery.c
diff --git
a/src/pquery.c
b/src/pquery.c
index
a0fde12
..
d4b9958
100644
(file)
--- a/
src/pquery.c
+++ b/
src/pquery.c
@@
-1,5
+1,5
@@
/* This file is part of the YAZ toolkit.
/* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2011 Index Data
+ * Copyright (C) 1995-2013 Index Data
* See the file LICENSE for details.
*/
/**
* See the file LICENSE for details.
*/
/**
@@
-33,7
+33,7
@@
struct yaz_pqf_parser {
};
static Z_RPNStructure *rpn_structure(struct yaz_pqf_parser *li, ODR o,
};
static Z_RPNStructure *rpn_structure(struct yaz_pqf_parser *li, ODR o,
- int num_attr, int max_attr,
+ int num_attr, int max_attr,
Odr_int *attr_list, char **attr_clist,
Odr_oid **attr_set);
Odr_int *attr_list, char **attr_clist,
Odr_oid **attr_set);
@@
-52,7
+52,7
@@
static int compare_term(struct yaz_pqf_parser *li, const char *src,
size_t off)
{
size_t len=strlen(src);
size_t off)
{
size_t len=strlen(src);
-
+
if (li->lex_len == len+off && !memcmp(li->lex_buf+off, src, len-off))
return 1;
return 0;
if (li->lex_len == len+off && !memcmp(li->lex_buf+off, src, len-off))
return 1;
return 0;
@@
-75,7
+75,7
@@
static int query_token(struct yaz_pqf_parser *li)
++(*qptr);
}
li->lex_buf = *qptr;
++(*qptr);
}
li->lex_buf = *qptr;
-
+
if (**qptr == li->escape_char && yaz_isdigit((*qptr)[1]))
{
++(li->lex_len);
if (**qptr == li->escape_char && yaz_isdigit((*qptr)[1]))
{
++(li->lex_len);
@@
-84,7
+84,7
@@
static int query_token(struct yaz_pqf_parser *li)
}
while (**qptr && **qptr != sep_char)
{
}
while (**qptr && **qptr != sep_char)
{
- if (**qptr == '\\')
+ if (**qptr == '\\' && (*qptr)[1])
{
++(li->lex_len);
++(*qptr);
{
++(li->lex_len);
++(*qptr);
@@
-122,7
+122,7
@@
static int lex(struct yaz_pqf_parser *li)
return li->query_look = query_token(li);
}
return li->query_look = query_token(li);
}
-int escape_string(char *out_buf, const char *in, int len)
+static int escape_string(char *out_buf, const char *in, int len)
{
char *out = out_buf;
{
char *out = out_buf;
@@
-166,7
+166,7
@@
int escape_string(char *out_buf, const char *in, int len)
char s[4];
int n = 0;
s[0] = *in;
char s[4];
int n = 0;
s[0] = *in;
- s[1] = *++in;
+ s[1] = *++in;
s[2] = *++in;
s[3] = '\0';
len = len - 2;
s[2] = *++in;
s[3] = '\0';
len = len - 2;
@@
-185,7
+185,7
@@
int escape_string(char *out_buf, const char *in, int len)
return out - out_buf;
}
return out - out_buf;
}
-int p_query_parse_attr(struct yaz_pqf_parser *li, ODR o,
+static int p_query_parse_attr(struct yaz_pqf_parser *li, ODR o,
int num_attr, Odr_int *attr_list,
char **attr_clist, Odr_oid **attr_set)
{
int num_attr, Odr_int *attr_list,
char **attr_clist, Odr_oid **attr_set)
{
@@
-212,7
+212,7
@@
int p_query_parse_attr(struct yaz_pqf_parser *li, ODR o,
return 0;
}
}
return 0;
}
}
- else
+ else
{
if (num_attr > 0)
attr_set[num_attr] = attr_set[num_attr-1];
{
if (num_attr > 0)
attr_set[num_attr] = attr_set[num_attr-1];
@@
-243,8
+243,9
@@
int p_query_parse_attr(struct yaz_pqf_parser *li, ODR o,
return 1;
}
return 1;
}
-Z_AttributeList *get_attributeList(ODR o, int num_attr, Odr_int *attr_list,
- char **attr_clist, Odr_oid **attr_set)
+static Z_AttributeList *get_attributeList(ODR o,
+ int num_attr, Odr_int *attr_list,
+ char **attr_clist, Odr_oid **attr_set)
{
int i, k = 0;
Odr_int *attr_tmp;
{
int i, k = 0;
Odr_int *attr_tmp;
@@
-258,7
+259,7
@@
Z_AttributeList *get_attributeList(ODR o, int num_attr, Odr_int *attr_list,
return attributes;
}
elements = (Z_AttributeElement**)
return attributes;
}
elements = (Z_AttributeElement**)
- odr_malloc (o, num_attr * sizeof(*elements));
+ odr_malloc(o, num_attr * sizeof(*elements));
attr_tmp = (Odr_int *)odr_malloc(o, num_attr * 2 * sizeof(*attr_tmp));
memcpy(attr_tmp, attr_list, num_attr * 2 * sizeof(*attr_tmp));
attr_tmp = (Odr_int *)odr_malloc(o, num_attr * 2 * sizeof(*attr_tmp));
memcpy(attr_tmp, attr_list, num_attr * 2 * sizeof(*attr_tmp));
@@
-314,7
+315,7
@@
Z_Term *z_Term_create(ODR o, int term_type, const char *buf, size_t len)
memcpy(term_octet->buf, buf, len);
term_octet->size = term_octet->len = len;
term_octet->buf[term_octet->size] = 0; /* null terminate */
memcpy(term_octet->buf, buf, len);
term_octet->size = term_octet->len = len;
term_octet->buf[term_octet->size] = 0; /* null terminate */
-
+
switch (term_type)
{
case Z_Term_general:
switch (term_type)
{
case Z_Term_general:
@@
-323,7
+324,7
@@
Z_Term *z_Term_create(ODR o, int term_type, const char *buf, size_t len)
break;
case Z_Term_characterString:
term->which = Z_Term_characterString;
break;
case Z_Term_characterString:
term->which = Z_Term_characterString;
- term->u.characterString = (char*) term_octet->buf;
+ term->u.characterString = (char*) term_octet->buf;
/* null terminated above */
break;
case Z_Term_numeric:
/* null terminated above */
break;
case Z_Term_numeric:
@@
-454,7
+455,7
@@
static Z_ProximityOperator *rpn_proximity(struct yaz_pqf_parser *li, ODR o)
li->error = YAZ_PQF_ERROR_PROXIMITY;
return NULL;
}
li->error = YAZ_PQF_ERROR_PROXIMITY;
return NULL;
}
-
+
if (!lex (li))
{
li->error = YAZ_PQF_ERROR_MISSING;
if (!lex (li))
{
li->error = YAZ_PQF_ERROR_MISSING;
@@
-503,7
+504,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,
}
static Z_Complex *rpn_complex(struct yaz_pqf_parser *li, ODR o,
- int num_attr, int max_attr,
+ int num_attr, int max_attr,
Odr_int *attr_list, char **attr_clist,
Odr_oid **attr_set)
{
Odr_int *attr_list, char **attr_clist,
Odr_oid **attr_set)
{
@@
-577,9
+578,9
@@
static void rpn_term_type(struct yaz_pqf_parser *li)
#endif
lex(li);
}
#endif
lex(li);
}
-
+
static Z_RPNStructure *rpn_structure(struct yaz_pqf_parser *li, ODR o,
static Z_RPNStructure *rpn_structure(struct yaz_pqf_parser *li, ODR o,
- int num_attr, int max_attr,
+ int num_attr, int max_attr,
Odr_int *attr_list,
char **attr_clist,
Odr_oid **attr_set)
Odr_int *attr_list,
char **attr_clist,
Odr_oid **attr_set)
@@
-863,7
+864,7
@@
static Z_FacetField* parse_facet(ODR odr, const char *facet)
facet_field->terms[facet_field->num_terms] =
(Z_FacetTerm *) odr_malloc(odr, sizeof(Z_FacetTerm));
facet_field->terms[facet_field->num_terms]->term = term;
facet_field->terms[facet_field->num_terms] =
(Z_FacetTerm *) odr_malloc(odr, sizeof(Z_FacetTerm));
facet_field->terms[facet_field->num_terms]->term = term;
- facet_field->terms[facet_field->num_terms]->count =
+ facet_field->terms[facet_field->num_terms]->count =
odr_intdup(odr, 0);
facet_field->num_terms++;
}
odr_intdup(odr, 0);
facet_field->num_terms++;
}