X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Foid.c;h=bd4067446c32ec5425a7ba671255cd2d98b7bcf3;hb=b853eb3de1a249859eef71c9a285172a199656ce;hp=b7ec98d9214ae20d203ad3e1fe595ed1883a1baf;hpb=905df6869e5ad8ab9f34590cce771fe50c444473;p=yaz-moved-to-github.git diff --git a/src/oid.c b/src/oid.c index b7ec98d..bd40674 100644 --- a/src/oid.c +++ b/src/oid.c @@ -1,8 +1,8 @@ /* - * Copyright (c) 1995-2004, Index Data + * Copyright (C) 1995-2005, Index Data ApS * See the file LICENSE for details. * - * $Id: oid.c,v 1.6 2004-12-30 00:12:54 adam Exp $ + * $Id: oid.c,v 1.9 2005-06-06 10:29:33 adam Exp $ */ /** @@ -317,17 +317,19 @@ static oident standard_oids[] = "ID-Charset" }, {PROTO_Z3950, CLASS_USERINFO,VAL_CQL, {16, 2, -1}, "CQL"}, - {PROTO_GENERAL, CLASS_GENERAL, VAL_UCS2, {1,0,10646,1,0,2,-1}, + {PROTO_GENERAL, CLASS_GENERAL, VAL_UCS2, {1,0,10646,1,0,2,-1}, "UCS-2"}, - {PROTO_GENERAL, CLASS_GENERAL, VAL_UCS4, {1,0,10646,1,0,4,-1}, + {PROTO_GENERAL, CLASS_GENERAL, VAL_UCS4, {1,0,10646,1,0,4,-1}, "UCS-4"}, - {PROTO_GENERAL, CLASS_GENERAL, VAL_UTF16, {1,0,10646,1,0,5,-1}, + {PROTO_GENERAL, CLASS_GENERAL, VAL_UTF16, {1,0,10646,1,0,5,-1}, "UTF-16"}, - {PROTO_GENERAL, CLASS_GENERAL, VAL_UTF8, {1,0,10646,1,0,8,-1}, + {PROTO_GENERAL, CLASS_GENERAL, VAL_UTF8, {1,0,10646,1,0,8,-1}, "UTF-8"}, - {PROTO_Z3950, CLASS_USERINFO,VAL_OCLCUI, {10, 1000, 17, 1, -1}, + {PROTO_Z3950, CLASS_USERINFO,VAL_OCLCUI, {10, 1000, 17, 1, -1}, "OCLC-userInfo"}, - {PROTO_NOP, CLASS_NOP, VAL_NOP, {-1}, 0 } + {PROTO_Z3950, CLASS_EXTSERV, VAL_XMLUPDATE, {9,1000,105,4,-1}, + "XMLUpdate-ES"}, + {PROTO_NOP, CLASS_NOP, VAL_NOP, {-1}, 0 } }; /* OID utilities */ @@ -493,7 +495,6 @@ struct oident *oid_addent (int *oid, enum oid_proto proto, nmem_mutex_enter (oid_mutex); if (!oident) { - char desc_str[200]; struct oident_list *oident_list; oident_list = (struct oident_list *) nmem_malloc (oid_nmem, sizeof(*oident_list)); @@ -503,14 +504,20 @@ struct oident *oid_addent (int *oid, enum oid_proto proto, if (!desc) { + char desc_str[OID_SIZE*10]; int i; - sprintf (desc_str, "%d", *oid); - for (i = 1; i < 12 && oid[i] >= 0; i++) - sprintf (desc_str+strlen(desc_str), ".%d", oid[i]); - desc = desc_str; + *desc_str = '\0'; + if (*oid >= 0) + { + sprintf (desc_str, "%d", *oid); + for (i = 1; i < OID_SIZE && oid[i] >= 0; i++) + sprintf (desc_str+strlen(desc_str), ".%d", oid[i]); + } + oident->desc = nmem_strdup(oid_nmem, desc_str); } - oident->desc = nmem_strdup (oid_nmem, desc); + else + oident->desc = nmem_strdup(oid_nmem, desc); if (value == VAL_DYNAMIC) oident->value = (enum oid_value) (++oid_value_dynamic); else