X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=util%2Fyaz-xmlquery.c;h=34fefd2121bb71125004f58158dd80c6548d10e9;hp=b40ddaff80c14487a1a99bfcb6e6db90284938ee;hb=f05461c79b402d35bb6ca5feb75a848f4a5a3c7d;hpb=ee6ab2ee3a9ee1a8c65d7272ec7fba1d886f5af0 diff --git a/util/yaz-xmlquery.c b/util/yaz-xmlquery.c index b40ddaf..34fefd2 100644 --- a/util/yaz-xmlquery.c +++ b/util/yaz-xmlquery.c @@ -1,7 +1,10 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2008 Index Data + * Copyright (C) 1995-2013 Index Data * See the file LICENSE for details. */ +#if HAVE_CONFIG_H +#include +#endif #include #include @@ -49,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", @@ -72,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); } @@ -143,9 +152,17 @@ void xmlfiletopqf(const char *xmlfile) rewind(f); 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); }