data1_concat_text didnt set last_child right in all cases
[idzebra-moved-to-github.git] / data1 / d1_absyn.c
index c7f8ba7..dec05b8 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: d1_absyn.c,v 1.6 2003-02-04 12:06:46 pop Exp $
+/* $Id: d1_absyn.c,v 1.9 2003-06-12 18:20:24 adam Exp $
    Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002
    Index Data Aps
 
@@ -76,12 +76,15 @@ void data1_absyn_destroy (data1_handle dh)
     while (p)
     {
         data1_absyn *abs = p->absyn;
-        data1_xpelement *xpe = abs->xp_elements;
-        while (xpe) {
-            logf (LOG_DEBUG,"Destroy xp element %s",xpe->xpath_expr);
-            if (xpe->dfa) {  dfa_delete (&xpe->dfa); }
-            xpe = xpe->next;
-        } 
+       if (abs)
+       {
+           data1_xpelement *xpe = abs->xp_elements;
+           while (xpe) {
+               logf (LOG_DEBUG,"Destroy xp element %s",xpe->xpath_expr);
+               if (xpe->dfa) {  dfa_delete (&xpe->dfa); }
+               xpe = xpe->next;
+           } 
+       }
         p = p->next;
     }
 }
@@ -665,7 +668,6 @@ data1_absyn *data1_read_absyn (data1_handle dh, const char *file,
            int i;
            char *p, *xpath_expr, *termlists;
            const char *regexp;
-           int type, value;
            struct DFA *dfa = dfa = dfa_init();
            data1_termlist **tp;
             
@@ -702,10 +704,11 @@ data1_absyn *data1_read_absyn (data1_handle dh, const char *file,
            cur_xpelement->dfa = dfa;
 
 #ifdef ENHANCED_XELM 
-            cur_xpelement->xpath_len = parse_xpath_str(xpath_expr, 
-                                                      cur_xpelement->xpath, 
-                                                      data1_nmem_get(dh));
-
+            cur_xpelement->xpath_len =
+                zebra_parse_xpath_str(xpath_expr, 
+                                      cur_xpelement->xpath, XPATH_STEP_COUNT,
+                                      data1_nmem_get(dh));
+            
            /*
            dump_xp_steps(cur_xpelement->xpath,cur_xpelement->xpath_len);
            */
@@ -958,7 +961,6 @@ data1_absyn *data1_read_absyn (data1_handle dh, const char *file,
        }
         else if (!strcmp(cmd, "systag"))
         {
-            struct data1_systag *st;
             if (argc != 3)
             {
                yaz_log(LOG_WARN, "%s:%d: Bad # or args for systag",