New source grs1disp.c
[yaz-moved-to-github.git] / retrieval / d1_map.c
index 3befe06..d3c79e5 100644 (file)
@@ -3,7 +3,7 @@
  * See the file LICENSE for details.
  * Sebastian Hammer, Adam Dickmeiss
  *
- * $Id: d1_map.c,v 1.23 2002-07-03 14:09:34 adam Exp $
+ * $Id: d1_map.c,v 1.25 2002-09-24 08:05:41 adam Exp $
  */
 
 #include <stdio.h>
@@ -225,7 +225,7 @@ static data1_node *dup_child (data1_handle dh, data1_node *n,
 
     for (; n; n = n->next)
     {
-        *last = *m = nmem_malloc (mem, sizeof(**m));
+        *last = *m = (data1_node *) nmem_malloc (mem, sizeof(**m));
         memcpy (*m, n, sizeof(**m));
         
         (*m)->parent = parent;
@@ -302,10 +302,15 @@ data1_node *data1_map_record (data1_handle dh, data1_node *n,
        yaz_log(LOG_WARN, "%s: Failed to load target absyn '%s'",
                map->name, map->target_absyn_name);
     }
-    n = n->child;
-    if (!n)
-        return 0;
-    res1 = data1_mk_tag (dh, m, map->target_absyn_name, 0, res);
+    if (data1_is_xmlmode(dh))
+    {
+        n = n->child;
+        if (!n)
+            return 0;
+        res1 = data1_mk_tag (dh, m, map->target_absyn_name, 0, res);
+    }
+    else
+        res1 = res;
 
     if (map_children(dh, n, map, res1, m) < 0)
     {