-/*
- * Copyright (C) 1995-2005, Index Data ApS
+/* This file is part of the YAZ toolkit.
+ * Copyright (C) 1995-2011 Index Data
* See the file LICENSE for details.
- *
- * $Id: yaz-xmlquery.c,v 1.2 2006-03-06 08:11:41 adam Exp $
*/
+#if HAVE_CONFIG_H
+#include <config.h>
+#endif
#include <stdlib.h>
#include <stdio.h>
#include <yaz/pquery.h>
#include <yaz/test.h>
-#if HAVE_XML2
+#if YAZ_HAVE_XML2
#include <libxml/parser.h>
#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();
}
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)
{
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);
}
}
{
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);
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");
int main (int argc, char **argv)
{
-#if HAVE_XML2
+#if YAZ_HAVE_XML2
char *arg;
int r;
int active = 0;