X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fsrw.c;h=7fb30b4e40a4858c7fe05d464e177a5629250ecf;hp=375df80a4f9048988f9bdc8b4547925cf801d060;hb=69074d2162afddc94e48d98d260f2dd70d6462b7;hpb=073195289eb9b73d6793fa283e5a7dca7a24fba8 diff --git a/src/srw.c b/src/srw.c index 375df80..7fb30b4 100644 --- a/src/srw.c +++ b/src/srw.c @@ -2,7 +2,7 @@ * Copyright (c) 2002-2004, Index Data. * See the file LICENSE for details. * - * $Id: srw.c,v 1.16 2004-01-09 18:10:32 adam Exp $ + * $Id: srw.c,v 1.18 2004-01-15 23:33:29 adam Exp $ */ #include @@ -26,7 +26,7 @@ static void add_XML_n(xmlNodePtr ptr, const char *elem, char *val, int len) } } -xmlNodePtr add_xsd_string_n(xmlNodePtr ptr, const char *elem, char *val, +xmlNodePtr add_xsd_string_n(xmlNodePtr ptr, const char *elem, const char *val, int len) { if (val) @@ -39,14 +39,14 @@ xmlNodePtr add_xsd_string_n(xmlNodePtr ptr, const char *elem, char *val, return 0; } -xmlNodePtr add_xsd_string(xmlNodePtr ptr, const char *elem, char *val) +xmlNodePtr add_xsd_string(xmlNodePtr ptr, const char *elem, const char *val) { if (val) return xmlNewChild(ptr, 0, elem, val); return 0; } -static void add_xsd_integer(xmlNodePtr ptr, const char *elem, int *val) +static void add_xsd_integer(xmlNodePtr ptr, const char *elem, const int *val) { if (val) { @@ -318,6 +318,12 @@ static int yaz_srw_diagnostics(ODR o, xmlNodePtr pptr, Z_SRW_diagnostic **recs, { xmlNodePtr rptr = xmlNewChild(pptr, ns_diag, "diagnostic", 0); add_xsd_integer(rptr, "code", (*recs)[i].code); + if ((*recs)[i].code) + { + const char *message = yaz_diag_srw_str(*(*recs)[i].code); + if (message) + add_xsd_string(rptr, "message", message); + } add_xsd_string(rptr, "details", (*recs)[i].details); } }