X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=util%2Fzebramap.c;h=0a7cfb9bc8ba4722a8fd852879782a633f86cbcc;hb=27a6d4f7f7425896345ab5a2bfdf35a96c97416e;hp=dfec14ccb05e4e4a7e7e8a1228d5410fe6509330;hpb=25aa9d21203318cca1927f906ab4f7370e43a5fe;p=idzebra-moved-to-github.git diff --git a/util/zebramap.c b/util/zebramap.c index dfec14c..0a7cfb9 100644 --- a/util/zebramap.c +++ b/util/zebramap.c @@ -1,4 +1,4 @@ -/* $Id: zebramap.c,v 1.56 2007-01-22 18:15:04 adam Exp $ +/* $Id: zebramap.c,v 1.58 2007-03-21 13:47:12 adam Exp $ Copyright (C) 1995-2007 Index Data ApS @@ -77,7 +77,7 @@ void zebra_maps_close(ZebraMaps zms) chrmaptab_destroy(zm->maptab); zm = zm->next; } - wrbuf_free(zms->wrbuf_1, 1); + wrbuf_destroy(zms->wrbuf_1); nmem_destroy(zms->nmem); xfree(zms); } @@ -438,6 +438,7 @@ int zebra_maps_attr(ZebraMaps zms, Z_AttributesPlusTerm *zapt, AttrType use; int completeness_value; int structure_value; + const char *structure_str = 0; int relation_value; int sort_relation_value; int weight_value; @@ -451,7 +452,7 @@ int zebra_maps_attr(ZebraMaps zms, Z_AttributesPlusTerm *zapt, attr_init_APT(&use, zapt, 1); completeness_value = attr_find(&completeness, NULL); - structure_value = attr_find(&structure, NULL); + structure_value = attr_find_ex(&structure, NULL, &structure_str); relation_value = attr_find(&relation, NULL); sort_relation_value = attr_find(&sort_relation, NULL); weight_value = attr_find(&weight, NULL); @@ -517,6 +518,12 @@ int zebra_maps_attr(ZebraMaps zms, Z_AttributesPlusTerm *zapt, *reg_id = 'd'; *search_type = "phrase"; break; + case -2: + if (structure_str && *structure_str) + *reg_id = *structure_str; + else + return -1; + break; default: return -1; }