From 2b6d484e350db6e14197e8ca4f6669b9a1bd0ee0 Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Mon, 4 Sep 1995 15:20:22 +0000 Subject: [PATCH 1/1] Minor changes. --- index/zrpn.c | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/index/zrpn.c b/index/zrpn.c index e82d230..4e30697 100644 --- a/index/zrpn.c +++ b/index/zrpn.c @@ -4,7 +4,10 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: zrpn.c,v $ - * Revision 1.2 1995-09-04 12:33:43 adam + * Revision 1.3 1995-09-04 15:20:22 adam + * Minor changes. + * + * Revision 1.2 1995/09/04 12:33:43 adam * Various cleanup. YAZ util used instead. * * Revision 1.1 1995/09/04 09:10:40 adam @@ -27,10 +30,12 @@ #include "index.h" -static Dict dict; -static ISAM isam; +struct index_info { + Dict dict; + ISAM isam; +}; -static RSET rpn_search_APT (Z_AttributesPlusTerm *zapt) +static RSET rpn_search_APT (struct index_info *ii, Z_AttributesPlusTerm *zapt) { struct rset_isam_parms parms; const char *info; @@ -38,15 +43,15 @@ static RSET rpn_search_APT (Z_AttributesPlusTerm *zapt) if (term->which != Z_Term_general) return NULL; - if (!(info = dict_lookup (dict, term->u.general->buf))) + if (!(info = dict_lookup (ii->dict, term->u.general->buf))) return NULL; assert (*info == sizeof(parms.pos)); memcpy (&parms.pos, info+1, sizeof(parms.pos)); - parms.is = isam; + parms.is = ii->isam; return rset_create (rset_kind_isam, &parms); } -static RSET rpn_search_and (RSET r_l, RSET r_r) +static RSET rpn_search_and (struct index_info *ii, RSET r_l, RSET r_r) { struct it_key k1, k2; RSET r_dst; @@ -85,41 +90,41 @@ static RSET rpn_search_and (RSET r_l, RSET r_r) return r_dst; } -static RSET rpn_search_or (RSET r_l, RSET r_r) +static RSET rpn_search_or (struct index_info *ii, RSET r_l, RSET r_r) { return r_l; } -static RSET rpn_search_not (RSET r_l, RSET r_r) +static RSET rpn_search_not (struct index_info *ii, RSET r_l, RSET r_r) { return r_l; } -static RSET rpn_search_ref (Z_ResultSetId *resultSetId) +static RSET rpn_search_ref (struct index_info *ii, Z_ResultSetId *resultSetId) { return NULL; } -static RSET rpn_search_structure (Z_RPNStructure *zs) +static RSET rpn_search_structure (struct index_info *ii, Z_RPNStructure *zs) { RSET r; if (zs->which == Z_RPNStructure_complex) { RSET r_l, r_r; - r_l = rpn_search_structure (zs->u.complex->s1); - r_r = rpn_search_structure (zs->u.complex->s2); + r_l = rpn_search_structure (ii, zs->u.complex->s1); + r_r = rpn_search_structure (ii, zs->u.complex->s2); switch (zs->u.complex->operator->which) { case Z_Operator_and: - r = rpn_search_and (r_l, r_r); + r = rpn_search_and (ii, r_l, r_r); break; case Z_Operator_or: - r = rpn_search_or (r_l, r_r); + r = rpn_search_or (ii, r_l, r_r); break; case Z_Operator_and_not: - r = rpn_search_not (r_l, r_r); + r = rpn_search_not (ii, r_l, r_r); break; default: assert (0); @@ -130,9 +135,9 @@ static RSET rpn_search_structure (Z_RPNStructure *zs) else if (zs->which == Z_RPNStructure_simple) { if (zs->u.simple->which == Z_Operand_APT) - r = rpn_search_APT (zs->u.simple->u.attributesPlusTerm); + r = rpn_search_APT (ii, zs->u.simple->u.attributesPlusTerm); else if (zs->u.simple->which == Z_Operand_resultSetId) - r = rpn_search_ref (zs->u.simple->u.resultSetId); + r = rpn_search_ref (ii, zs->u.simple->u.resultSetId); else { assert (0); -- 1.7.10.4