* Sebastian Hammer, Adam Dickmeiss
*
* $Log: zebramap.c,v $
- * Revision 1.18 1999-10-15 08:27:46 adam
+ * Revision 1.21 2001-01-22 10:42:56 adam
+ * Added numerical sort.
+ *
+ * Revision 1.20 2000/03/02 14:35:19 adam
+ * Added structure year and date.
+ *
+ * Revision 1.19 1999/11/30 13:48:04 adam
+ * Improved installation. Updated for inclusion of YAZ header files.
+ *
+ * Revision 1.18 1999/10/15 08:27:46 adam
* Fixed replace handler. 8-bit fix.
*
* Revision 1.17 1999/09/08 12:13:21 adam
#include <assert.h>
#include <ctype.h>
-#include <yaz-util.h>
+#include <yaz/yaz-util.h>
#include <charmap.h>
#include <zebramap.h>
logf (LOG_WARN, "Unknown register type: %c", reg_id);
zm->reg_id = reg_id;
- zm->maptab_name = NULL;
+ zm->maptab_name = nmem_strdup (zms->nmem, "@");
zm->maptab = NULL;
zm->type = ZEBRA_MAP_TYPE_INDEX;
zm->completeness = 0;
return 0;
}
-int zebra_maps_sort (ZebraMaps zms, Z_SortAttributes *sortAttributes)
+int zebra_maps_sort (ZebraMaps zms, Z_SortAttributes *sortAttributes,
+ int *numerical)
{
AttrType use;
+ AttrType structure;
+ int structure_value;
attr_init_AttrList (&use, sortAttributes->list, 1);
+ attr_init_AttrList (&structure, sortAttributes->list, 4);
+ *numerical = 0;
+ structure_value = attr_find (&structure, 0);
+ if (structure_value == 109)
+ *numerical = 1;
return attr_find (&use, NULL);
}
*reg_id = '0';
*search_type = "phrase";
break;
+ case 4: /* year */
+ *reg_id = 'y';
+ *search_type = "phrase";
+ break;
+ case 5: /* date */
+ *reg_id = 'd';
+ *search_type = "phrase";
+ break;
default:
return -1;
}
wrbuf_rewind(zms->wrbuf_1);
wrbuf_write(zms->wrbuf_1, input_str, input_len);
- if (!zm->replace_tokens)
+ if (!zm || !zm->replace_tokens)
return zms->wrbuf_1;
#if 0