-/* $Id: logic.c,v 1.69 2007-10-02 12:11:14 adam Exp $
+/* $Id: logic.c,v 1.73 2007-12-22 17:10:37 adam Exp $
Copyright (c) 2006-2007, Index Data.
This file is part of Pazpar2.
if (s->watchlist[what].fun)
{
/* our watch is no longer associated with http_channel */
+ void *data;
+ session_watchfun fun;
+
http_remove_observer(s->watchlist[what].obs);
- session_watchfun fun = s->watchlist[what].fun;
- void *data = s->watchlist[what].data;
+ fun = s->watchlist[what].fun;
+ data = s->watchlist[what].data;
/* reset watch before fun is invoked - in case fun wants to set
it again */
rec_md->data.text.disp = nmem_strdup(nmem, p);
rec_md->data.text.sort = 0;
}
- else if (type == Metadata_type_year)
+ else if (type == Metadata_type_year || type == Metadata_type_date)
{
int first, last;
- if (extract7bit_years((char *) value, &first, &last) < 0)
+ int longdate = 0;
+
+ if (type == Metadata_type_date)
+ longdate = 1;
+ if (extract7bit_dates((char *) value, &first, &last, longdate) < 0)
return 0;
+
rec_md->data.number.min = first;
rec_md->data.number.max = last;
}
cluster->sortkeys[sk_field_id]->text.disp =
rec_md->data.text.disp;
+ if (!sort_str)
+ {
+ sort_str = rec_md->data.text.disp;
+ yaz_log(YLOG_WARN,
+ "Could not make sortkey. Bug #1858");
+ }
cluster->sortkeys[sk_field_id]->text.sort =
nmem_strdup(se->nmem, sort_str);
#if 0