Fixed order of declarations
[yaz-moved-to-github.git] / src / nfaxml.c
index 60764a1..84a8b0b 100644 (file)
@@ -1,7 +1,7 @@
 /*  Copyright (C) 2006, Index Data ApS
  *  See the file LICENSE for details.
  * 
- *  $Id: nfaxml.c,v 1.3 2006-07-06 07:45:07 adam Exp $ 
+ *  $Id: nfaxml.c,v 1.8 2006-07-06 14:06:17 heikki Exp $ 
  */
 
 /**
  *
  */
 
-#if HAVE_XML2
+#if YAZ_HAVE_XML2
 
 #include <string.h>
 
-#include <libxml/parser.h>
+/* #include <libxml/parser.h> */
 #include <libxml/tree.h>
 #include <libxml/xinclude.h>
 
 
 /** \brief Parse the NFA from a XML document 
  */
-yaz_nfa *yaz_nfa_parse_xml_doc(void *xmlDocPtr)
+yaz_nfa *yaz_nfa_parse_xml_doc(xmlDocPtr doc)
 {
-    xmlDocPtr doc = (xmlDocPtr) *xmlDocPtr;
+    libxml2_error_to_yazlog(YLOG_FATAL, "yaz_nfa_parse_doc");
+
     if (!doc)
         return 0;
 
     return 0;
 }
 
-/** \brief Log XML errors in yaz_log
- *
- * Disabled because xmlErrorPtr does not exist for older Libxml2's
- */
-#if 0
-static void log_xml_error(int errlevel, char *msg) {
-    xmlErrorPtr e=xmlGetLastError();
-    if (!e)  /* no error happened */
-        return;
-    if (!errlevel)
-        errlevel=YLOG_FATAL;
-    yaz_log(errlevel,"%s %d/%d: %s:%d: '%s' ",
-            msg, e->domain, e->code, e->file, e->line, e->message);
-    if (e->str1 || e->str2 || e->str3 )
-        yaz_log(errlevel,"extra info: '%s' '%s' '%s' %d %d",
-            e->str1, e->str2, e->str3, e->int1, e->int2 );
-}
-#endif
 
 /** \brief Parse the NFA from a file 
  */
 yaz_nfa *yaz_nfa_parse_xml_file(const char *filepath) {
     int nSubst;
 
+    xmlDocPtr doc;
     libxml2_error_to_yazlog(YLOG_FATAL, "yaz_nfa_parse_xml_file");
 
-    xmlDocPtr doc = xmlParseFile(filepath);
+    doc = xmlParseFile(filepath);
     if (!doc) {
         return 0;
     }
@@ -73,9 +57,18 @@ yaz_nfa *yaz_nfa_parse_xml_file(const char *filepath) {
     return yaz_nfa_parse_xml_doc(doc);
 }
 
+/** \brief Parse the NFA from a memory buffer
+ */
+yaz_nfa *yaz_nfa_parse_xml_memory(const char *xmlbuff) {
+    xmlDocPtr doc;
+    libxml2_error_to_yazlog(YLOG_FATAL, "yaz_nfa_parse_xml_memory");
+    doc = xmlParseMemory(xmlbuff, strlen(xmlbuff));
+    return yaz_nfa_parse_xml_doc(doc);
+}
+
 
 
-#endif /* HAVE_XML2 */
+#endif /* YAZ_HAVE_XML2 */
 
 
 /*