add docbook DTD path for Red Hat 7.2
[yaz-moved-to-github.git] / retrieval / d1_write.c
index 69d8db6..565af5e 100644 (file)
@@ -3,7 +3,7 @@
  * See the file LICENSE for details.
  * Sebastian Hammer, Adam Dickmeiss
  *
- * $Id: d1_write.c,v 1.15 2002-07-25 12:52:53 adam Exp $
+ * $Id: d1_write.c,v 1.17 2002-08-23 14:25:07 adam Exp $
  */
 
 #include <string.h>
@@ -42,17 +42,18 @@ static void wrbuf_write_cdata(WRBUF b, const char *msg, int len)
         case '"':
             wrbuf_puts (b, "&quot;");
             break;
+        case '\'':
+            wrbuf_puts (b, "&apos;");
+            break;
         case '>':
             wrbuf_puts (b, "&gt;");
             break;
         case '<':
             wrbuf_puts (b, "&lt;");
             break;
-#if 0
         case '&':
             wrbuf_puts (b, "&amp;");
             break;
-#endif
         default:
             wrbuf_putc(b, msg[i]);
         }
@@ -220,8 +221,20 @@ char *data1_nodetoidsgml (data1_handle dh, data1_node *n, int select, int *len)
     
     wrbuf_rewind(b);
     
+    if (!data1_is_xmlmode (dh))
+    {
+        wrbuf_puts (b, "<");
+        wrbuf_puts (b, n->u.root.type);
+        wrbuf_puts (b, ">\n");
+    }
     if (nodetoidsgml(n, select, b, 0, 0 /* no pretty format */))
        return 0;
+    if (!data1_is_xmlmode (dh))
+    {
+        wrbuf_puts (b, "</");
+        wrbuf_puts (b, n->u.root.type);
+        wrbuf_puts (b, ">\n");
+    }
     *len = wrbuf_len(b);
     return wrbuf_buf(b);
 }