-/*
- * Copyright (C) 1995-2007, Index Data ApS
+/* This file is part of the YAZ toolkit.
+ * Copyright (C) 1995-2008 Index Data
* See the file LICENSE for details.
- *
- * $Id: pquery.c,v 1.10 2007-04-12 13:52:57 adam Exp $
*/
/**
* \file pquery.c
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';
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;
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;
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;
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;
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;
int num_attr, int max_attr,
int *attr_list,
char **attr_clist,
- int **attr_set)
+ Odr_oid **attr_set)
{
Z_RPNStructure *sz;
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);
}
if (!top_set)
{
- top_set = yaz_string_to_oid_odr(yaz_oid_std(),
- CLASS_ATTSET, OID_STR_BIB1, o);
+ top_set = odr_oiddup(o, yaz_oid_attset_bib_1);
}
zq->attributeSetId = top_set;
{
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);
}
if (!top_set)
{
- top_set = yaz_string_to_oid_odr(yaz_oid_std(),
- CLASS_ATTSET, OID_STR_BIB1, o);
+ top_set = odr_oiddup(o, yaz_oid_attset_bib_1);
}
*attributeSetP = top_set;