X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=util%2Fsrwtst.c;h=e7411c522d799e26bf2f5a79b1c18b2b3e4c1a93;hp=1524abc4417ddd455f1e120504a54c35ac5deff5;hb=2f570511e1ca2d63705dc425e9e7bc3f3d744f64;hpb=fb6d99a0c7e07d9cc4a315c447deaf6564a85505 diff --git a/util/srwtst.c b/util/srwtst.c index 1524abc..e7411c5 100644 --- a/util/srwtst.c +++ b/util/srwtst.c @@ -1,14 +1,15 @@ -/* - * Copyright (C) 1995-2005, Index Data ApS +/* This file is part of the YAZ toolkit. + * Copyright (C) Index Data * See the file LICENSE for details. - * - * $Id: srwtst.c,v 1.4 2005-06-25 15:46:07 adam Exp $ */ +#if HAVE_CONFIG_H +#include +#endif #include #include -#if HAVE_XML2 +#if YAZ_HAVE_XML2 Z_SOAP_Handler h[2] = { {"http://www.loc.gov/zing/srw/v1.0/", 0, (Z_SOAP_fun) yaz_srw_codec}, {0, 0, 0} @@ -19,13 +20,11 @@ int main(int argc, char **argv) char buf[163840]; char *content_buf = buf; int content_len; - int ret; size_t no; Z_SOAP *soap_package = 0; ODR decode, encode; int debug = 0; - nmem_init(); if (argc == 2 && !strcmp(argv[1], "debug")) debug = 1; no = fread(buf, 1, sizeof(buf), stdin); @@ -37,8 +36,8 @@ int main(int argc, char **argv) decode = odr_createmem(ODR_DECODE); encode = odr_createmem(ODR_ENCODE); content_len = no; - ret = z_soap_codec(decode, &soap_package, - &content_buf, &content_len, h); + z_soap_codec(decode, &soap_package, + &content_buf, &content_len, h); if (!soap_package) { fprintf(stderr, "Decoding seriously failed\n"); @@ -50,22 +49,11 @@ int main(int argc, char **argv) if (soap_package->which == Z_SOAP_generic && soap_package->u.generic->no == 0) { - Z_SRW_PDU *sr = soap_package->u.generic->p; + Z_SRW_PDU *sr = (Z_SRW_PDU *) soap_package->u.generic->p; if (sr->which == Z_SRW_searchRetrieve_request) - { + { Z_SRW_searchRetrieveRequest *req = sr->u.request; - switch(req->query_type) - { - case Z_SRW_query_type_cql: - fprintf(stderr, "CQL: %s\n", req->query.cql); - break; - case Z_SRW_query_type_xcql: - fprintf(stderr, "XCQL\n"); - break; - case Z_SRW_query_type_pqf: - fprintf(stderr, "PQF: %s\n", req->query.pqf); - break; - } + fprintf(stderr, "%s: %s\n", req->queryType, req->query); } else if (sr->which == Z_SRW_searchRetrieve_response) { @@ -77,18 +65,22 @@ int main(int argc, char **argv) { fprintf (stderr, "%d\n", i); if (res->records[i].recordData_buf) - fwrite(res->records[i].recordData_buf, 1, - res->records[i].recordData_len, stderr); + { + fprintf(stderr, "%.*s", + res->records[i].recordData_len, + res->records[i].recordData_buf); + } } } } } } - ret = z_soap_codec(encode, &soap_package, - &content_buf, &content_len, h); + z_soap_codec(encode, &soap_package, &content_buf, &content_len, h); if (content_buf && content_len) - fwrite (content_buf, content_len, 1, stdout); + { + printf("%.*s", content_len, content_buf); + } else { fprintf(stderr, "No output!\n"); @@ -96,7 +88,6 @@ int main(int argc, char **argv) } odr_destroy(decode); odr_destroy(encode); - nmem_exit(); exit(0); } #else @@ -109,6 +100,7 @@ int main(int argc, char **argv) /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab