X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=util%2Fyaz-xmlquery.c;h=4428f4608bd049e0f4c489b349871ff02f41bba6;hp=9fcab5a87c82e88c781ecb51c5c594aae7c1ae89;hb=30af0a1ebbea75c3e757eb03d3f988c61fce8511;hpb=401da56d4a26f687cd42024bdef6f29a29bb7663 diff --git a/util/yaz-xmlquery.c b/util/yaz-xmlquery.c index 9fcab5a..4428f46 100644 --- a/util/yaz-xmlquery.c +++ b/util/yaz-xmlquery.c @@ -1,9 +1,10 @@ -/* - * Copyright (C) 1995-2007, Index Data ApS +/* This file is part of the YAZ toolkit. + * Copyright (C) Index Data * See the file LICENSE for details. - * - * $Id: yaz-xmlquery.c,v 1.7 2007-03-19 14:40:08 adam Exp $ */ +#if HAVE_CONFIG_H +#include +#endif #include #include @@ -12,7 +13,7 @@ #include #include #include -#include +#include #if YAZ_HAVE_XML2 #include @@ -51,9 +52,9 @@ void pqftoxmlquery(const char *pqf) else { xmlDocPtr doc = 0; - + yaz_rpnquery2xml(rpn, &doc); - + if (!doc) { fprintf(stderr, "%s: yaz_rpnquery2xml failed for query %s\n", @@ -74,10 +75,16 @@ void pqftoxmlquery(const char *pqf) exit(4); } else - fwrite(buf_out, len_out, 1, stdout); + { + if (fwrite(buf_out, len_out, 1, stdout) != 1) + { + fprintf(stderr, "%s: write failed\n", prog); + exit(5); + } + } xmlFreeDoc(doc); } - } + } odr_destroy(odr); } @@ -117,7 +124,7 @@ void xmlquerytopqf(const char *xmlstr) { WRBUF w = wrbuf_alloc(); yaz_query_to_wrbuf(w, query); - printf("%s\n", wrbuf_buf(w)); + printf("%s\n", wrbuf_cstr(w)); wrbuf_destroy(w); } odr_destroy(odr); @@ -143,11 +150,19 @@ void xmlfiletopqf(const char *xmlfile) exit(1); } rewind(f); - xmlstr = xmalloc(sz+1); + xmlstr = (char *) xmalloc(sz+1); xmlstr[sz] = '\0'; - fread(xmlstr, sz, 1, f); - fclose(f); - + if (fread(xmlstr, sz, 1, f) != 1) + { + fprintf(stderr, "%s: read failed for file %s\n", prog, xmlfile); + exit(1); + } + if (fclose(f)) + { + fprintf(stderr, "%s: close failed for file %s\n", prog, xmlfile); + exit(1); + } + xmlquerytopqf(xmlstr); xfree(xmlstr); } @@ -168,6 +183,7 @@ int main (int argc, char **argv) int r; int active = 0; + yaz_enable_panic_backtrace(*argv); while ((r = options("-p:x:", argv, argc, &arg)) != -2) { switch(r)