X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=util%2Fres.c;h=15e65e58238cbecc19907b3cde3f0ab252e9b477;hb=c154b6ebab028dc512c43403864a8e4a7fc2b178;hp=af41a8b4d134dd9ed100cfbfd83249359af7a7b2;hpb=49d0ee122a9f86ec2967b577dcc297c501785edd;p=idzebra-moved-to-github.git diff --git a/util/res.c b/util/res.c index af41a8b..15e65e5 100644 --- a/util/res.c +++ b/util/res.c @@ -1,4 +1,4 @@ -/* $Id: res.c,v 1.41 2005-04-15 10:47:49 adam Exp $ +/* $Id: res.c,v 1.44 2005-08-17 21:28:07 adam Exp $ Copyright (C) 1995-2005 Index Data ApS @@ -26,7 +26,8 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #ifdef WIN32 #include -#else +#endif +#if HAVE_UNISTD_H #include #endif @@ -270,10 +271,8 @@ Res res_open (const char *name, Res def_res, Res over_res) return r; } -void res_close (Res r) +void res_clear (Res r) { - if (!r) - return; if (r->init) { struct res_entry *re, *re1; @@ -287,6 +286,16 @@ void res_close (Res r) xfree (re); } } + r->init = 0; + r->first = r->last = NULL; +} + +void res_close (Res r) +{ + if (!r) + return; + res_clear(r); + xfree (r->name); xfree (r); } @@ -455,3 +464,14 @@ int res_write (Res r) return 0; } +ZEBRA_RES res_get_int(Res r, const char *name, int *val) +{ + const char *cp = res_get(r, name); + if (cp) + { + if (sscanf(cp, "%d", val) == 1) + return ZEBRA_OK; + yaz_log(YLOG_WARN, "Expected integer for resource %s", name); + } + return ZEBRA_FAIL; +}