Fixed error with linked fields for UNIMARC clone records.
[idzebra-moved-to-github.git] / recctrl / xmlread.c
index 5071fc5..d89194e 100644 (file)
@@ -1,5 +1,5 @@
-/* $Id: xmlread.c,v 1.8 2003-08-21 10:29:00 adam Exp $
-   Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002
+/* $Id: xmlread.c,v 1.11 2003-09-08 09:51:02 adam Exp $
+   Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003
    Index Data Aps
 
 This file is part of the Zebra server.
@@ -202,10 +202,11 @@ static int cb_external_entity (XML_Parser pparser,
         }
         if (!XML_ParseBuffer (parser, r, done))
         {
-            yaz_log (LOG_WARN, "%s:%d:%d:XML error: %s",
-                     systemId,
-                     XML_GetCurrentLineNumber(parser),
-                     XML_GetCurrentColumnNumber(parser),
+           done = 1;
+           yaz_log (LOG_WARN, "%s:%d:%d:XML error: %s",
+                    systemId,
+                    XML_GetCurrentLineNumber(parser),
+                    XML_GetCurrentColumnNumber(parser),
                     XML_ErrorString(XML_GetErrorCode(parser)));
        }
     }
@@ -443,9 +444,10 @@ data1_node *zebra_read_xml (data1_handle dh,
             done = 1;
         if (!XML_ParseBuffer (parser, r, done))
         {
-            yaz_log (LOG_WARN, "%d:%d:XML error: %s",
-                     XML_GetCurrentLineNumber(parser),
-                     XML_GetCurrentColumnNumber(parser),
+           done = 1;
+           yaz_log (LOG_WARN, "%d:%d:XML error: %s",
+                    XML_GetCurrentLineNumber(parser),
+                    XML_GetCurrentColumnNumber(parser),
                     XML_ErrorString(XML_GetErrorCode(parser)));
        }
     }
@@ -456,12 +458,15 @@ data1_node *zebra_read_xml (data1_handle dh,
 }
 
 struct xml_info {
-    int dummy;
+    XML_Expat_Version expat_version;
 };
 
 static void *grs_init_xml(void)
 {
     struct xml_info *p = (struct xml_info *) xmalloc (sizeof(*p));
+
+    p->expat_version = XML_ExpatVersionInfo();
+
     return p;
 }
 
@@ -472,7 +477,7 @@ static data1_node *grs_read_xml (struct grs_read_info *p)
 
 static void grs_destroy_xml(void *clientData)
 {
-    struct sgml_getc_info *p = (struct sgml_getc_info *) clientData;
+    struct xml_info *p = (struct xml_info *) clientData;
 
     xfree (p);
 }