X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=data1%2Fd1_absyn.c;h=d737d35df8c93ba4e25c3ac4774f5ef12ad33b1a;hp=96f3b6b6bc9b0856dded52087203d1c817e86851;hb=d513d15e315601b730b0b3a6126c3163d00223fb;hpb=b04a1cdb1a0345252a78caa8f7731089df314ad0 diff --git a/data1/d1_absyn.c b/data1/d1_absyn.c index 96f3b6b..d737d35 100644 --- a/data1/d1_absyn.c +++ b/data1/d1_absyn.c @@ -1,8 +1,5 @@ -/* $Id: d1_absyn.c,v 1.32 2006-12-22 13:57:25 adam Exp $ - Copyright (C) 1995-2006 - Index Data ApS - -This file is part of the Zebra server. +/* This file is part of the Zebra server. + Copyright (C) 1994-2011 Index Data Zebra is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free @@ -20,13 +17,16 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#if HAVE_CONFIG_H +#include +#endif #include #include #include #include #include -#include +#include #include #include #include @@ -250,13 +250,13 @@ data1_attset *data1_attset_search_name (data1_handle dh, const char *name) return 0; } -data1_attset *data1_attset_search_id (data1_handle dh, int id) +data1_attset *data1_attset_search_id(data1_handle dh, const Odr_oid *oid) { data1_attset_cache p = *data1_attset_cache_get (dh); while (p) { - if (id == p->attset->reference) + if (p->attset->oid && !oid_oidcmp(oid, p->attset->oid)) return p->attset; p = p->next; } @@ -700,10 +700,9 @@ static data1_absyn *data1_read_absyn(data1_handle dh, const char *file, res = (data1_absyn *) nmem_malloc(data1_nmem_get(dh), sizeof(*res)); res->name = 0; - res->reference = VAL_NONE; + res->oid = 0; res->tagset = 0; res->encoding = 0; - res->staticrank = 0; res->xpath_indexing = (f ? DATA1_XPATH_INDEXING_DISABLE : default_xpath); res->systags = 0; @@ -865,9 +864,10 @@ static data1_absyn *data1_read_absyn(data1_handle dh, const char *file, data1_xpelement *xp_ele = 0; data1_xpelement *last_match = 0; - if (argc < 3) + if (argc != 3) { - yaz_log(YLOG_WARN, "%s:%d: Bad # of args to xelm", file, lineno); + yaz_log(YLOG_WARN, "%s:%d: Bad # of args to %s", + file, lineno, cmd); continue; } @@ -1023,7 +1023,10 @@ static data1_absyn *data1_read_absyn(data1_handle dh, const char *file, continue; } name = argv[1]; - if ((res->reference = oid_getvalbyname(name)) == VAL_NONE) + res->oid = yaz_string_to_oid_nmem(yaz_oid_std(), + CLASS_SCHEMA, name, + data1_nmem_get(dh)); + if (!res->oid) { yaz_log(YLOG_WARN, "%s:%d: Unknown tagset ref '%s'", file, lineno, name); @@ -1183,18 +1186,6 @@ static data1_absyn *data1_read_absyn(data1_handle dh, const char *file, (*systagsp)->value = nmem_strdup(data1_nmem_get(dh), argv[2]); systagsp = &(*systagsp)->next; } - else if (!strcmp(cmd, "staticrank")) - { - if (argc != 2) - { - yaz_log(YLOG_WARN, "%s:%d: Bad # or args for staticrank", - file, lineno); - } - else - { - res->staticrank = nmem_strdup(data1_nmem_get(dh), argv[1]); - } - } else { yaz_log(YLOG_WARN, "%s:%d: Unknown directive '%s'", file, @@ -1216,14 +1207,10 @@ static data1_absyn *data1_read_absyn(data1_handle dh, const char *file, return res; } -YAZ_EXPORT const char *data1_absyn_get_staticrank(data1_absyn *absyn) -{ - return absyn ? absyn->staticrank : 0; -} - /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab