Modified oid_ent_to_oid so that if proto is general, then class
[yaz-moved-to-github.git] / util / oid.c
index 16a6d82..a37d65a 100644 (file)
@@ -1,9 +1,19 @@
 /*
- * Copyright (c) 1995-2000, Index Data
+ * Copyright (c) 1995-2001, Index Data
  * See the file LICENSE for details.
  *
  * $Log: oid.c,v $
- * Revision 1.42  2000-02-29 13:44:55  adam
+ * Revision 1.45  2001-05-16 07:25:59  adam
+ * Modified oid_ent_to_oid so that if proto is general, then class
+ * is ignored (only oid value is compared).
+ *
+ * Revision 1.44  2000/10/02 13:58:50  adam
+ * Added some OID's.
+ *
+ * Revision 1.43  2000/03/14 09:21:08  ian
+ * Added Admin Extended Service OID
+ *
+ * Revision 1.42  2000/02/29 13:44:55  adam
  * Check for config.h (currently not generated).
  *
  * Revision 1.41  2000/01/10 15:16:53  adam
@@ -229,6 +239,8 @@ static oident oids[] =
      "Fin-1"},
     {PROTO_Z3950,   CLASS_ATTSET,  VAL_DAN1,         {3,15,-1},
      "Dan-1"},
+    {PROTO_Z3950,   CLASS_ATTSET,  VAL_HOLDINGS,     {3,16,-1},
+     "Holdings"},
 
     {PROTO_Z3950,   CLASS_ATTSET,  VAL_THESAURUS,    {3,1000,81,1,-1},
      "Thesaurus-attset"},
@@ -284,6 +296,8 @@ static oident oids[] =
      "ISDSmarc"},
     {PROTO_Z3950,   CLASS_RECSYN,  VAL_RUSMARC,      {5,28,-1},
      "RUSmarc"},
+    {PROTO_Z3950,   CLASS_RECSYN,  VAL_HUNMARC,      {5,29,-1},
+     "Hunmarc"},
     {PROTO_Z3950,   CLASS_RECSYN,  VAL_EXPLAIN,      {5,100,-1},
      "Explain"},
     {PROTO_Z3950,   CLASS_RECSYN,  VAL_SUTRS,        {5,101,-1},
@@ -363,7 +377,8 @@ static oident oids[] =
      "exp. spec."},
     {PROTO_Z3950,   CLASS_EXTSERV, VAL_EXPORTINV,    {9,7,-1},
      "exp. inv."},
-
+    {PROTO_Z3950,   CLASS_EXTSERV, VAL_ADMINSERVICE, {9,81,1,-1},
+     "Admin"},
     {PROTO_Z3950,   CLASS_USERINFO,VAL_SEARCHRES1,   {10,1,-1},
      "searchResult-1"},
     {PROTO_Z3950,   CLASS_USERINFO,VAL_CHARLANG,     {10,2,-1},
@@ -398,6 +413,10 @@ static oident oids[] =
      "CIMI-schema"},
     {PROTO_Z3950,   CLASS_SCHEMA,  VAL_UPDATEES,     {13,6,-1},
      "Update ES"},
+    {PROTO_Z3950,   CLASS_SCHEMA,  VAL_HOLDINGS,     {13,7,-1},
+     "Holdings"},
+    {PROTO_Z3950,   CLASS_SCHEMA,  VAL_ZTHES,        {13,8,-1},
+     "Zthes"},
     {PROTO_Z3950,   CLASS_SCHEMA,  VAL_THESAURUS,    {13,1000,81,1,-1},
      "thesaurus-schema"},
     {PROTO_Z3950,   CLASS_SCHEMA,  VAL_EXPLAIN,      {13,1000,81,2,-1},
@@ -624,9 +643,9 @@ int *oid_ent_to_oid(struct oident *ent, int *ret)
     for (ol = oident_table; ol; ol = ol->next)
     {
        struct oident *p = &ol->oident;
-       if ((ent->proto == p->proto || p->proto == PROTO_GENERAL) &&
-           (ent->oclass == p->oclass || p->oclass == CLASS_GENERAL) &&
-           ent->value == p->value)
+        if (ent->value == p->value &&
+            (p->proto == PROTO_GENERAL || (ent->proto == p->proto &&  
+           (ent->oclass == p->oclass || ent->oclass == CLASS_GENERAL))))
        {
            if (p->proto == PROTO_Z3950)
                oid_oidcpy(ret, z3950_prefix);