X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=util%2Fyaz-xmlquery.c;h=dae8105d43be367784579fbc48f5e61e1b5c179f;hp=12a9c472a797d7e62381d5c8d0629e2e330f38bf;hb=b6aa93dcb5c07ed09b664c006b5f33b0135a0854;hpb=732c1fae8404e9895941ffd173d0ad19fb4400e1 diff --git a/util/yaz-xmlquery.c b/util/yaz-xmlquery.c index 12a9c47..dae8105 100644 --- a/util/yaz-xmlquery.c +++ b/util/yaz-xmlquery.c @@ -1,8 +1,6 @@ -/* - * Copyright (C) 1995-2005, Index Data ApS +/* This file is part of the YAZ toolkit. + * Copyright (C) 1995-2010 Index Data * See the file LICENSE for details. - * - * $Id: yaz-xmlquery.c,v 1.2 2006-03-06 08:11:41 adam Exp $ */ #include @@ -14,13 +12,13 @@ #include #include -#if HAVE_XML2 +#if YAZ_HAVE_XML2 #include #endif static char *prog = "yaz-xmlquery"; -#if HAVE_XML2 +#if YAZ_HAVE_XML2 void pqftoxmlquery(const char *pqf) { YAZ_PQF_Parser parser = yaz_pqf_create(); @@ -62,10 +60,10 @@ void pqftoxmlquery(const char *pqf) } else { - char *buf_out = 0; + xmlChar *buf_out = 0; int len_out = 0; - xmlDocDumpMemory(doc, (xmlChar **) &buf_out, &len_out); + xmlDocDumpMemory(doc, &buf_out, &len_out); if (!len_out || !buf_out) { @@ -74,7 +72,13 @@ 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); } } @@ -117,8 +121,8 @@ void xmlquerytopqf(const char *xmlstr) { WRBUF w = wrbuf_alloc(); yaz_query_to_wrbuf(w, query); - printf("%s\n", wrbuf_buf(w)); - wrbuf_free(w, 1); + printf("%s\n", wrbuf_cstr(w)); + wrbuf_destroy(w); } odr_destroy(odr); xmlFreeDoc(doc); @@ -143,17 +147,25 @@ 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); } #endif -void usage() +void usage(void) { fprintf(stderr, "%s [-p pqf] [-x xmlfile]\n", prog); fprintf(stderr, " -p pqf reads pqf. write xml to stdout\n"); @@ -163,7 +175,7 @@ void usage() int main (int argc, char **argv) { -#if HAVE_XML2 +#if YAZ_HAVE_XML2 char *arg; int r; int active = 0;