/*
- * Copyright (c) 1995-1998, Index Data.
+ * Copyright (c) 1995-1999, Index Data.
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: d1_grs.c,v $
- * Revision 1.15 1999-03-31 11:18:25 adam
+ * Revision 1.20 2002-05-13 14:13:37 adam
+ * XML reader for data1 (EXPAT)
+ *
+ * Revision 1.19 2002/04/15 09:06:30 adam
+ * Fix explain tags for XML writer
+ *
+ * Revision 1.18 2002/04/12 14:40:07 adam
+ * GRS-1 writer accepts non-abs
+ *
+ * Revision 1.17 1999/11/30 13:47:12 adam
+ * Improved installation. Moved header files to include/yaz.
+ *
+ * Revision 1.16 1999/08/27 09:40:32 adam
+ * Renamed logf function to yaz_log. Removed VC++ project files.
+ *
+ * Revision 1.15 1999/03/31 11:18:25 adam
* Implemented odr_strdup. Added Reference ID to backend server API.
*
* Revision 1.14 1998/03/16 12:21:15 adam
#include <assert.h>
#include <stdlib.h>
-#include <proto.h>
-#include <log.h>
-
-#include <data1.h>
+#include <yaz/proto.h>
+#include <yaz/log.h>
+#include <yaz/data1.h>
#define D1_VARIANTARRAY 20 /* fixed max length on sup'd variant-list. Lazy me */
odr_strdup(o, p->u.variant.value);
break;
default:
- logf(LOG_WARN, "Unable to handle value for variant %s",
- p->u.variant.type->name);
+ yaz_log(LOG_WARN, "Unable to handle value for variant %s",
+ p->u.variant.type->name);
return 0;
}
}
D1_VARIANTARRAY);
else if (m->num_supportedVariants >= D1_VARIANTARRAY)
{
- logf(LOG_WARN, "Too many variants (D1_VARIANTARRAY==%d)",
- D1_VARIANTARRAY);
+ yaz_log(LOG_WARN, "Too many variants (D1_VARIANTARRAY==%d)",
+ D1_VARIANTARRAY);
return -1;
}
break;
case DATA1I_text:
toget = n->u.data.len;
- if (p->u.tag.get_bytes > 0 && p->u.tag.get_bytes < toget)
+ if (p && p->u.tag.get_bytes > 0 && p->u.tag.get_bytes < toget)
toget = p->u.tag.get_bytes;
res->which = Z_ElementData_string;
res->u.string = (char *)odr_malloc(o, toget+1);
*len += n->u.data.len;
break;
default:
- logf(LOG_WARN, "Can't handle datatype.");
+ yaz_log(LOG_WARN, "Can't handle datatype.");
return 0;
}
}
*/
else if (n->which == DATA1N_data || n->which == DATA1N_variant)
{
- if (!(tag = data1_gettagbyname (dh, n->root->u.root.absyn->tagset,
+ if (n->root->u.root.absyn &&
+ !(tag = data1_gettagbyname (dh, n->root->u.root.absyn->tagset,
"wellKnown")))
{
- logf(LOG_WARN, "Unable to locate tag for 'wellKnown'");
+ yaz_log(LOG_WARN, "Unable to locate tag for 'wellKnown'");
return 0;
}
data = n;
}
else
{
- logf(LOG_WARN, "Bad data.");
+ yaz_log(LOG_WARN, "Bad data.");
return 0;
}
else if (tag)
tagstr = tag->value.string; /* no take from well-known */
else
- tagstr = "?"; /* no tag at all! */
+ tagstr = "???"; /* no tag at all! */
res->tagValue->which = Z_StringOrNumeric_string;
res->tagValue->u.string = odr_strdup(o, tagstr);
}