X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=util%2Fres.c;h=6fc0825c52e1cf9a9de51c4aac55125161ee2a5b;hp=821137cf74a2d21d473100cead4908e767ebbfbd;hb=00d6544408e2de88277e091fb7f8f4dfe3949558;hpb=89d16cf15eda0e4802d18b8ad09bd3653508ebfc diff --git a/util/res.c b/util/res.c index 821137c..6fc0825 100644 --- a/util/res.c +++ b/util/res.c @@ -1,5 +1,5 @@ /* This file is part of the Zebra server. - Copyright (C) 1994-2009 Index Data + Copyright (C) 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 @@ -17,6 +17,9 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#if HAVE_CONFIG_H +#include +#endif #include #include #include @@ -122,7 +125,7 @@ static char *xstrdup_env(const char *src) strcpy(dst+j, env_val); j += strlen(env_val); } - else if (src[i] == ':' && src[i+1] == '-') + else if (src[i] == ':' && src[i+1] == '-') { i = i + 2; while (src[i] && !strchr("}\n\r\f", src[i])) @@ -160,12 +163,12 @@ ZEBRA_RES res_read_file(Res r, const char *fname) int lineno = 1; WRBUF wrbuf_val = wrbuf_alloc(); yaz_tok_cfg_t yt = yaz_tok_cfg_create(); - + while ((line = fgets(fr_buf, sizeof(fr_buf)-1, fr))) { yaz_tok_parse_t tp = yaz_tok_parse_buf(yt, line); int t = yaz_tok_move(tp); - + if (t == YAZ_TOK_STRING) { size_t sz; @@ -197,7 +200,7 @@ ZEBRA_RES res_read_file(Res r, const char *fname) { /* name: value */ t = yaz_tok_move(tp); - + if (t != YAZ_TOK_STRING) { resp->value = xstrdup(""); @@ -218,7 +221,7 @@ ZEBRA_RES res_read_file(Res r, const char *fname) } lineno++; yaz_tok_parse_destroy(tp); - } + } fclose(fr); yaz_tok_cfg_destroy(yt); wrbuf_destroy(wrbuf_val); @@ -273,7 +276,7 @@ const char *res_get_prefix(Res r, const char *name, const char *prefix, if (prefix) { char rname[128]; - + if (strlen(name) + strlen(prefix) >= (sizeof(rname)-2)) return 0; strcpy(rname, prefix); @@ -295,7 +298,7 @@ const char *res_get(Res r, const char *name) if (!r) return 0; - + v = res_get(r->over_res, name); if (v) return v; @@ -357,7 +360,7 @@ int res_trav(Res r, const char *prefix, void *p, struct res_entry *re; int l = 0; int no = 0; - + if (!r) return 0; no = res_trav(r->over_res, prefix, p, f); @@ -451,22 +454,22 @@ void res_add(Res r, const char *name, const char *value) re->value = xstrdup_env(value); } -void res_dump(Res r, int level) +void res_dump(Res r, int level) { struct res_entry *re; - + if (!r) return; - + for (re = r->first; re; re=re->next) { printf("%*s - %s:='%s'\n",level * 4,"",re->name,re->value); } - + if (r->def_res) { printf("%*s DEF ",level * 4,""); res_dump(r->def_res, level + 1); } - + if (r->over_res) { printf("%*s OVER ",level * 4,""); res_dump(r->over_res, level + 1); @@ -477,7 +480,7 @@ int res_check(Res r_i, Res r_v) { struct res_entry *e_i; int errors = 0; - + for (e_i = r_i->first; e_i; e_i = e_i->next) { struct res_entry *e_v; @@ -495,7 +498,7 @@ int res_check(Res r_i, Res r_v) prefix_allowed = 1; if (strchr(e_v->value, 's')) suffix_allowed = 1; - + first_dot = strchr(name, '.'); if (prefix_allowed && first_dot) { @@ -541,6 +544,7 @@ int res_check(Res r_i, Res r_v) /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab