zoom-c.c zoom-z3950.c zoom-sru.c zoom-query.c zoom-record-cache.c \
zoom-event.c \
record_render.c zoom-socket.c zoom-opt.c zoom-p.h sru-p.h \
- grs1disp.c zgdu.c soap.c srw.c srwutil.c uri.c solr.c \
+ grs1disp.c zgdu.c soap.c srw.c srwutil.c uri.c solr.c diag_map.c \
opacdisp.c cclfind.c ccltoken.c cclerrms.c cclqual.c cclptree.c cclp.h \
cclqfile.c cclstr.c cclxmlconfig.c ccl_stop_words.c \
cql.y cqlstdio.c cqltransform.c cqlutil.c xcqlutil.c cqlstring.c \
--- /dev/null
+/* This file is part of the YAZ toolkit.
+ * Copyright (C) 1995-2011 Index Data
+ * See the file LICENSE for details.
+ */
+/**
+ * \file srwutil.c
+ * \brief Implements SRU/Z39.50 diagnostic mappings
+ */
+#if HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdlib.h>
+#include <assert.h>
+#include <yaz/srw.h>
+
+/* bib1:srw */
+static int bib1_srw_map[] = {
+ 1, 1,
+ 2, 2,
+ 3, 48,
+ 4, 35,
+ 5, 12,
+ 6, 38,
+ 7, 30,
+ 8, 32,
+ 9, 29,
+ 10, 10,
+ 11, 12,
+ 11, 23,
+ 12, 60,
+ 13, 61,
+ 13, 62,
+ 14, 63,
+ 14, 64,
+ 14, 65,
+ 15, 68,
+ 15, 69,
+ 16, 70,
+ 17, 70,
+ 18, 50,
+ 19, 55,
+ 20, 56,
+ 21, 52,
+ 22, 50,
+ 23, 3,
+ 24, 66,
+ 25, 66,
+ 26, 66,
+ 27, 51,
+ 28, 52,
+ 29, 52,
+ 30, 51,
+ 31, 57,
+ 32, 58,
+ 33, 59,
+ 100, 1, /* bad map */
+ 101, 3,
+ 102, 3,
+ 103, 3,
+ 104, 3,
+ 105, 3,
+ 106, 66,
+ 107, 11,
+ 108, 10,
+ 108, 13,
+ 108, 14,
+ 108, 25,
+ 108, 26,
+ 108, 27,
+ 108, 45,
+
+ 109, 2,
+ 110, 37,
+ 111, 1,
+ 112, 58,
+ 113, 10,
+ 114, 16,
+ 115, 16,
+ 116, 16,
+ 117, 19,
+ 117, 20,
+ 118, 22,
+ 119, 32,
+ 119, 31,
+ 120, 28,
+ 121, 15,
+ 122, 32,
+ 123, 22,
+ 123, 17,
+ 123, 18,
+ 124, 24,
+ 125, 36,
+ 126, 36,
+ 127, 36,
+ 128, 51,
+ 129, 39,
+ 130, 43,
+ 131, 40,
+ 132, 42,
+ 201, 44,
+ 201, 33,
+ 201, 34,
+ 202, 41,
+ 203, 43,
+ 205, 1, /* bad map */
+ 206, 1, /* bad map */
+ 207, 89,
+ 208, 1, /* bad map */
+ 209, 80,
+ 210, 80,
+ 210, 81,
+ 211, 84,
+ 212, 85,
+ 213, 92,
+ 214, 90,
+ 215, 91,
+ 216, 92,
+ 217, 63,
+ 218, 1, /* bad map */
+ 219, 1, /* bad map */
+ 220, 1, /* bad map */
+ 221, 1, /* bad map */
+ 222, 3,
+ 223, 1, /* bad map */
+ 224, 1, /* bad map */
+ 225, 1, /* bad map */
+ 226, 1, /* bad map */
+ 227, 66,
+ 228, 1, /* bad map */
+ 229, 36,
+ 230, 83,
+ 231, 89,
+ 232, 1,
+ 233, 1, /* bad map */
+ 234, 1, /* bad map */
+ 235, 2,
+ 236, 3,
+ 237, 82,
+ 238, 67,
+ 239, 66,
+ 240, 1, /* bad map */
+ 241, 1, /* bad map */
+ 242, 70,
+ 243, 1, /* bad map */
+ 244, 66,
+ 245, 10,
+ 246, 10,
+ 247, 10,
+ 1001, 1, /* bad map */
+ 1002, 1, /* bad map */
+ 1003, 1, /* bad map */
+ 1004, 1, /* bad map */
+ 1005, 1, /* bad map */
+ 1006, 1, /* bad map */
+ 1007, 100,
+ 1008, 1,
+ 1009, 1,
+ 1010, 3,
+ 1011, 3,
+ 1012, 3,
+ 1013, 3,
+ 1014, 3,
+ 1015, 3,
+ 1015, 3,
+ 1016, 3,
+ 1017, 3,
+ 1018, 2,
+ 1019, 2,
+ 1020, 2,
+ 1021, 3,
+ 1022, 3,
+ 1023, 3,
+ 1024, 16,
+ 1025, 3,
+ 1026, 64,
+ 1027, 1,
+ 1028, 65,
+ 1029, 1,
+ 1040, 1,
+ /* 1041-1065 */
+ 1066, 66,
+ 1066, 67,
+ 0
+};
+
+/*
+ * This array contains overrides for when the first occurrence of a
+ * particular SRW error in the array above does not correspond with
+ * the best back-translation of that SRW error.
+ */
+static int srw_bib1_map[] = {
+ 10, 108,
+ 66, 238,
+ /* No doubt there are many more */
+ 0
+};
+
+
+int yaz_diag_bib1_to_srw (int code)
+{
+ const int *p = bib1_srw_map;
+ while (*p)
+ {
+ if (code == p[0])
+ return p[1];
+ p += 2;
+ }
+ return 1;
+}
+
+int yaz_diag_srw_to_bib1(int code)
+{
+ /* Check explicit reverse-map first */
+ const int *p = srw_bib1_map;
+ while (*p)
+ {
+ if (code == p[0])
+ return p[1];
+ p += 2;
+ }
+
+ /* Fall back on reverse lookup in main map */
+ p = bib1_srw_map;
+ while (*p)
+ {
+ if (code == p[1])
+ return p[0];
+ p += 2;
+ }
+ return 1;
+}
+
+/*
+ * Local variables:
+ * c-basic-offset: 4
+ * c-file-style: "Stroustrup"
+ * indent-tabs-mode: nil
+ * End:
+ * vim: shiftwidth=4 tabstop=8 expandtab
+ */
+
return sr;
}
-/* bib1:srw */
-static int bib1_srw_map[] = {
- 1, 1,
- 2, 2,
- 3, 48,
- 4, 35,
- 5, 12,
- 6, 38,
- 7, 30,
- 8, 32,
- 9, 29,
- 10, 10,
- 11, 12,
- 11, 23,
- 12, 60,
- 13, 61,
- 13, 62,
- 14, 63,
- 14, 64,
- 14, 65,
- 15, 68,
- 15, 69,
- 16, 70,
- 17, 70,
- 18, 50,
- 19, 55,
- 20, 56,
- 21, 52,
- 22, 50,
- 23, 3,
- 24, 66,
- 25, 66,
- 26, 66,
- 27, 51,
- 28, 52,
- 29, 52,
- 30, 51,
- 31, 57,
- 32, 58,
- 33, 59,
- 100, 1, /* bad map */
- 101, 3,
- 102, 3,
- 103, 3,
- 104, 3,
- 105, 3,
- 106, 66,
- 107, 11,
- 108, 10,
- 108, 13,
- 108, 14,
- 108, 25,
- 108, 26,
- 108, 27,
- 108, 45,
-
- 109, 2,
- 110, 37,
- 111, 1,
- 112, 58,
- 113, 10,
- 114, 16,
- 115, 16,
- 116, 16,
- 117, 19,
- 117, 20,
- 118, 22,
- 119, 32,
- 119, 31,
- 120, 28,
- 121, 15,
- 122, 32,
- 123, 22,
- 123, 17,
- 123, 18,
- 124, 24,
- 125, 36,
- 126, 36,
- 127, 36,
- 128, 51,
- 129, 39,
- 130, 43,
- 131, 40,
- 132, 42,
- 201, 44,
- 201, 33,
- 201, 34,
- 202, 41,
- 203, 43,
- 205, 1, /* bad map */
- 206, 1, /* bad map */
- 207, 89,
- 208, 1, /* bad map */
- 209, 80,
- 210, 80,
- 210, 81,
- 211, 84,
- 212, 85,
- 213, 92,
- 214, 90,
- 215, 91,
- 216, 92,
- 217, 63,
- 218, 1, /* bad map */
- 219, 1, /* bad map */
- 220, 1, /* bad map */
- 221, 1, /* bad map */
- 222, 3,
- 223, 1, /* bad map */
- 224, 1, /* bad map */
- 225, 1, /* bad map */
- 226, 1, /* bad map */
- 227, 66,
- 228, 1, /* bad map */
- 229, 36,
- 230, 83,
- 231, 89,
- 232, 1,
- 233, 1, /* bad map */
- 234, 1, /* bad map */
- 235, 2,
- 236, 3,
- 237, 82,
- 238, 67,
- 239, 66,
- 240, 1, /* bad map */
- 241, 1, /* bad map */
- 242, 70,
- 243, 1, /* bad map */
- 244, 66,
- 245, 10,
- 246, 10,
- 247, 10,
- 1001, 1, /* bad map */
- 1002, 1, /* bad map */
- 1003, 1, /* bad map */
- 1004, 1, /* bad map */
- 1005, 1, /* bad map */
- 1006, 1, /* bad map */
- 1007, 100,
- 1008, 1,
- 1009, 1,
- 1010, 3,
- 1011, 3,
- 1012, 3,
- 1013, 3,
- 1014, 3,
- 1015, 3,
- 1015, 3,
- 1016, 3,
- 1017, 3,
- 1018, 2,
- 1019, 2,
- 1020, 2,
- 1021, 3,
- 1022, 3,
- 1023, 3,
- 1024, 16,
- 1025, 3,
- 1026, 64,
- 1027, 1,
- 1028, 65,
- 1029, 1,
- 1040, 1,
- /* 1041-1065 */
- 1066, 66,
- 1066, 67,
- 0
-};
-
-/*
- * This array contains overrides for when the first occurrence of a
- * particular SRW error in the array above does not correspond with
- * the best back-translation of that SRW error.
- */
-static int srw_bib1_map[] = {
- 10, 108,
- 66, 238,
- /* No doubt there are many more */
- 0
-};
-
-
-int yaz_diag_bib1_to_srw (int code)
-{
- const int *p = bib1_srw_map;
- while (*p)
- {
- if (code == p[0])
- return p[1];
- p += 2;
- }
- return 1;
-}
-
-int yaz_diag_srw_to_bib1(int code)
-{
- /* Check explicit reverse-map first */
- const int *p = srw_bib1_map;
- while (*p)
- {
- if (code == p[0])
- return p[1];
- p += 2;
- }
-
- /* Fall back on reverse lookup in main map */
- p = bib1_srw_map;
- while (*p)
- {
- if (code == p[1])
- return p[0];
- p += 2;
- }
- return 1;
-}
-
void yaz_add_name_value_int(ODR o, char **name, char **value, int *i,
char *a_name, Odr_int *val)
{
$(OBJDIR)\test_mutex.obj
MISC_OBJS= \
+ $(OBJDIR)\diag_map.obj \
$(OBJDIR)\base64.obj \
$(OBJDIR)\version.obj \
$(OBJDIR)\oid_std.obj \