No leading spaces in warning comments
[yaz-moved-to-github.git] / util / marcdump.c
index d441855..6dd79d1 100644 (file)
@@ -1,8 +1,8 @@
 /*
- * Copyright (c) 1995-2004, Index Data
+ * Copyright (C) 1995-2005, Index Data ApS
  * See the file LICENSE for details.
  *
- * $Id: marcdump.c,v 1.25 2004-08-07 08:18:20 adam Exp $
+ * $Id: marcdump.c,v 1.28 2005-03-06 21:27:09 adam Exp $
  */
 
 #if HAVE_CONFIG_H
@@ -45,7 +45,7 @@
 
 static void usage(const char *prog)
 {
-    fprintf (stderr, "Usage: %s [-c cfile] [-f from] [-t to] [-x] [-O] [-X] [-I] [-v] file...\n",
+    fprintf (stderr, "Usage: %s [-c cfile] [-f from] [-t to] [-x] [-O] [-X] [-e] [-I] [-v] file...\n",
              prog);
 } 
 
@@ -123,7 +123,7 @@ int main (int argc, char **argv)
 #endif
 #endif
 
-    while ((r = options("pvc:xOXIf:t:2", argv, argc, &arg)) != -2)
+    while ((r = options("pvc:xOeXIf:t:2", argv, argc, &arg)) != -2)
     {
        int count;
        no++;
@@ -146,6 +146,9 @@ int main (int argc, char **argv)
         case 'O':
             xml = YAZ_MARC_OAIMARC;
             break;
+       case 'e':
+           xml = YAZ_MARC_XCHANGE;
+           break;
         case 'X':
             xml = YAZ_MARC_MARCXML;
             break;
@@ -190,7 +193,7 @@ int main (int argc, char **argv)
                 while (1)
                 {
                     int len;
-                    char *result;
+                    char *result = 0;
                     int rlen;
                     
                     r = fread (buf, 1, 5, inf);
@@ -213,11 +216,10 @@ int main (int argc, char **argv)
                     if (r < len)
                         break;
                     r = yaz_marc_decode_buf (mt, buf, -1, &result, &rlen);
-                    if (r <= 0)
-                        break;
-                   fwrite (result, rlen, 1, stdout);
+                   if (result)
+                       fwrite (result, rlen, 1, stdout);
 #if HAVE_XML2
-                   if (libxml_dom_test)
+                   if (r > 0 && libxml_dom_test)
                    {
                        xmlDocPtr doc = xmlParseMemory(result, rlen);
                        if (!doc)
@@ -253,7 +255,7 @@ int main (int argc, char **argv)
                        }
                    }
 #endif
-                    if (cfile)
+                    if (r > 0 && cfile)
                     {
                         char *p = buf;
                         int i;