Fixed bug #1142: Non-indexed but listed attributes issues diagnostic.
[idzebra-moved-to-github.git] / util / zebramap.c
index dfec14c..0a7cfb9 100644 (file)
@@ -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;
     }