X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Fzrpn.c;h=badb91e801d330e89c78b0c738c6cbc481e75c0f;hb=32140b47f685f9aadf7117442470e07609184463;hp=c801aebb9c2d8c3bf12b62de7dae13372143acda;hpb=8f7e8952ccd2eca24d2bb91a79d2f17f346c490c;p=idzebra-moved-to-github.git diff --git a/index/zrpn.c b/index/zrpn.c index c801aeb..badb91e 100644 --- a/index/zrpn.c +++ b/index/zrpn.c @@ -1,10 +1,26 @@ -/* - * Copyright (C) 1995-2002, Index Data - * All rights reserved. - * Sebastian Hammer, Adam Dickmeiss - * - * $Id: zrpn.c,v 1.119 2002-08-02 10:07:48 adam Exp $ - */ +/* $Id: zrpn.c,v 1.121 2002-08-23 14:30:51 adam Exp $ + Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 + Index Data Aps + +This file is part of the Zebra server. + +Zebra is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2, or (at your option) any later +version. + +Zebra is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with Zebra; see the file LICENSE.zebra. If not, write to the +Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA +02111-1307, USA. +*/ + + #include #include #ifdef WIN32 @@ -2120,12 +2136,28 @@ static RSET xpath_trunc(ZebraHandle zh, NMEM stream, int prefix_len = 0; int ord = zebraExplain_lookupSU (zh->reg->zei, curAttributeSet, use); int ord_len, i, r, max_pos; + int term_type = Z_Term_characterString; + const char *flags = "void"; if (grep_info_prepare (zh, 0 /* zapt */, &grep_info, '0', stream)) - return 0; + { + rset_null_parms parms; + + parms.rset_term = rset_term_create (term, strlen(term), + flags, term_type); + parms.rset_term->nn = 0; + return rset_create (rset_kind_null, &parms); + } if (ord < 0) - return 0; + { + rset_null_parms parms; + + parms.rset_term = rset_term_create (term, strlen(term), + flags, term_type); + parms.rset_term->nn = 0; + return rset_create (rset_kind_null, &parms); + } if (prefix_len) term_dict[prefix_len++] = '|'; else @@ -2150,7 +2182,7 @@ static RSET xpath_trunc(ZebraHandle zh, NMEM stream, grep_info.isam_p_indx); rset = rset_trunc (zh, grep_info.isam_p_buf, grep_info.isam_p_indx, term, strlen(term), - "void", 1, Z_Term_characterString); + flags, 1, term_type); grep_info_delete (&grep_info); return rset; } @@ -2278,7 +2310,7 @@ static RSET rpn_search_xpath (ZebraHandle zh, rset_end_tag = xpath_trunc(zh, stream, '0', xpath_rev, 2, curAttributeSet); - + parms.key_size = sizeof(struct it_key); parms.cmp = key_compare_it; parms.rset_l = rset_start_tag;