X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=data1%2Fd1_attset.c;h=544dc42b4346d94fafeb47189d6c277b0bd93eae;hp=f7c82c37640e67133efa03ce5f8e6167778a6839;hb=6a0f9234f945bc4956e2bcef75f715661a9eba9a;hpb=4478d785b7769691261005c98063b98a5a5971b3 diff --git a/data1/d1_attset.c b/data1/d1_attset.c index f7c82c3..544dc42 100644 --- a/data1/d1_attset.c +++ b/data1/d1_attset.c @@ -1,8 +1,5 @@ -/* $Id: d1_attset.c,v 1.11 2006-08-14 10:40:06 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-2009 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 @@ -25,6 +22,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include #include +#include #include data1_att *data1_getattbyname(data1_handle dh, data1_attset *s, const char *name) @@ -52,7 +50,7 @@ data1_attset *data1_empty_attset(data1_handle dh) data1_attset *res = (data1_attset*) nmem_malloc(mem,sizeof(*res)); res->name = 0; - res->reference = VAL_NONE; + res->oid = 0; res->atts = 0; res->children = 0; res->next = 0; @@ -84,6 +82,7 @@ data1_attset *data1_read_attset(data1_handle dh, const char *file) { int num; char *name; + char *endptr; data1_att *t; if (argc < 3) @@ -96,7 +95,13 @@ data1_attset *data1_read_attset(data1_handle dh, const char *file) yaz_log(YLOG_WARN, "%s:%d: Local attributes not supported", file, lineno); } - num = atoi (argv[1]); + num = strtol(argv[1], &endptr, 10); + if (*endptr != '\0') + { + yaz_log(YLOG_WARN, "%s:%d: Bad attribute integer %s", + file, lineno, argv[1]); + continue; + } name = argv[2]; t = *attp = (data1_att *)nmem_malloc(mem, sizeof(*t)); @@ -125,7 +130,10 @@ data1_attset *data1_read_attset(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_ATTSET, name, mem); + if (!res->oid) { yaz_log(YLOG_WARN, "%s:%d: Unknown reference oid '%s'", file, lineno, name); @@ -176,6 +184,7 @@ data1_attset *data1_read_attset(data1_handle dh, const char *file) /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab