Added snprintf/vsnprintf wrappers for systems that don't have
[yaz-moved-to-github.git] / src / marcdisp.c
index 02f3d3e..6eeccb3 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright (C) 1995-2007, Index Data ApS
  * See the file LICENSE for details.
  *
- * $Id: marcdisp.c,v 1.44 2007-01-18 14:45:05 adam Exp $
+ * $Id: marcdisp.c,v 1.47 2007-02-23 10:15:01 adam Exp $
  */
 
 /**
@@ -26,6 +26,7 @@
 #include <yaz/wrbuf.h>
 #include <yaz/yaz-util.h>
 #include <yaz/nmem_xml.h>
+#include <yaz/snprintf.h>
 
 #if YAZ_HAVE_XML2
 #include <libxml/parser.h>
@@ -129,20 +130,12 @@ static void marc_iconv_reset(yaz_marc_t mt, WRBUF wr)
 {
     if (mt->iconv_cd)
     {
-#if 1
         char outbuf[12];
         size_t outbytesleft = sizeof(outbuf);
         char *outp = outbuf;
         size_t r = yaz_iconv(mt->iconv_cd, 0, 0, &outp, &outbytesleft);
         if (r != (size_t) (-1))
             wrbuf_write(wr, outbuf, outp - outbuf);
-#else
-        int pos = wr->pos;
-        wrbuf_iconv_puts(wr, mt->iconv_cd, " ");
-        if (pos != wr->pos)
-            wr->pos--;
-        yaz_iconv(mt->iconv_cd, 0, 0, 0, 0);
-#endif
     }
 }
 
@@ -182,19 +175,9 @@ void yaz_marc_cprintf(yaz_marc_t mt, const char *fmt, ...)
 {
     va_list ap;
     char buf[200];
-    va_start(ap, fmt);
 
-#ifdef WIN32
-    _vsnprintf(buf, sizeof(buf)-1, fmt, ap);
-#else
-/* !WIN32 */
-#if HAVE_VSNPRINTF
-    vsnprintf(buf, sizeof(buf), fmt, ap);
-#else
-    vsprintf(buf, fmt, ap);
-#endif
-#endif
-/* WIN32 */
+    va_start(ap, fmt);
+    yaz_vsnprintf(buf, sizeof(buf)-1, fmt, ap);
     yaz_marc_add_comment(mt, buf);
     va_end (ap);
 }
@@ -651,6 +634,7 @@ static int yaz_marc_write_marcxml_ns(yaz_marc_t mt, WRBUF wr,
 {
     if (mt->write_using_libxml2)
     {
+#if YAZ_HAVE_XML2
         int ret;
         xmlNode *root_ptr;
 
@@ -670,6 +654,9 @@ static int yaz_marc_write_marcxml_ns(yaz_marc_t mt, WRBUF wr,
             xmlFreeDoc(doc);
         }
         return ret;
+#else
+        return -1;
+#endif
     }
     else
         return yaz_marc_write_marcxml_ns1(mt, wr, ns, format, type);