X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Foid.c;h=b7ec98d9214ae20d203ad3e1fe595ed1883a1baf;hb=5c3d2d2ab097e4bb59ba5718a396b020a2d302c0;hp=2b7fb2da50324269dc390d2adfadcda2c4e0e3b8;hpb=c6e47cbbff56f39f6d81b079ebaeac41d793d4d9;p=yaz-moved-to-github.git diff --git a/src/oid.c b/src/oid.c index 2b7fb2d..b7ec98d 100644 --- a/src/oid.c +++ b/src/oid.c @@ -1,11 +1,14 @@ /* - * Copyright (c) 1995-2003, Index Data + * Copyright (c) 1995-2004, Index Data * See the file LICENSE for details. * - * $Id: oid.c,v 1.1 2003-10-27 12:21:34 adam Exp $ + * $Id: oid.c,v 1.6 2004-12-30 00:12:54 adam Exp $ */ -/* +/** + * \file oid.c + * \brief Implements OID database + * * More or less protocol-transparent OID database. * We could (and should?) extend this so that the user app can add new * entries to the list at initialization. @@ -98,6 +101,8 @@ static oident standard_oids[] = "Thesaurus-attset"}, {PROTO_Z3950, CLASS_ATTSET, VAL_IDXPATH, {3,1000,81,2,-1}, "IDXPATH"}, + {PROTO_Z3950, CLASS_ATTSET, VAL_EXTLITE, {3,1000,81,3,-1}, + "EXTLITE"}, {PROTO_Z3950, CLASS_DIAGSET, VAL_BIB1, {4,1,-1}, "Bib-1"}, {PROTO_Z3950, CLASS_DIAGSET, VAL_DIAG1, {4,2,-1}, @@ -112,6 +117,9 @@ static oident standard_oids[] = "Intermarc"}, {PROTO_Z3950, CLASS_RECSYN, VAL_CCF, {5,3,-1}, "CCF"}, + /* MARC21 is just an alias for the original USmarc */ + {PROTO_Z3950, CLASS_RECSYN, VAL_USMARC, {5,10,-1}, + "MARC21"}, {PROTO_Z3950, CLASS_RECSYN, VAL_USMARC, {5,10,-1}, "USmarc"}, {PROTO_Z3950, CLASS_RECSYN, VAL_UKMARC, {5,11,-1}, @@ -152,6 +160,12 @@ static oident standard_oids[] = "RUSmarc"}, {PROTO_Z3950, CLASS_RECSYN, VAL_HUNMARC, {5,29,-1}, "Hunmarc"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_NACSISCATP, {5,30,-1}, + "NACSIS-CATP"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_FINMARC2000, {5,31,-1}, + "FINMARC2000"}, + {PROTO_Z3950, CLASS_RECSYN, VAL_MARC21FIN, {5,32,-1}, + "MARC21-fin"}, {PROTO_Z3950, CLASS_RECSYN, VAL_EXPLAIN, {5,100,-1}, "Explain"}, {PROTO_Z3950, CLASS_RECSYN, VAL_SUTRS, {5,101,-1}, @@ -297,6 +311,8 @@ static oident standard_oids[] = "Zthes-tagset"}, {PROTO_Z3950, CLASS_NEGOT, VAL_CHARNEG3, {15,3,-1}, "CharSetandLanguageNegotiation-3"}, + {PROTO_Z3950, CLASS_NEGOT, VAL_CHARNEG4, {15,4,-1}, + "CharSetandLanguageNegotiation-4"}, {PROTO_Z3950, CLASS_NEGOT, VAL_ID_CHARSET, {15,1000,81,1,-1}, "ID-Charset" }, {PROTO_Z3950, CLASS_USERINFO,VAL_CQL, {16, 2, -1}, @@ -526,7 +542,7 @@ static oid_value oid_getval_raw(const char *name) int val = 0, i = 0, oid[OID_SIZE]; struct oident *oident; - while (isdigit (*name)) + while (isdigit (*(const unsigned char *) name)) { val = val*10 + (*name - '0'); name++; @@ -552,7 +568,7 @@ oid_value oid_getvalbyname(const char *name) struct oident_list *ol; oid_init (); - if (isdigit (*name)) + if (isdigit (*(const unsigned char *) name)) return oid_getval_raw (name); for (ol = oident_table; ol; ol = ol->next) if (!yaz_matchstr(ol->oident.desc, name))