-static int nodetoidsgml(data1_node *n, int select, WRBUF b, int col)
+static void indent (WRBUF b, int col)
+{
+ int i;
+ for (i = 0; i<col; i++)
+ wrbuf_putc (b, ' ');
+}
+
+static void wrbuf_write_cdata(WRBUF b, const char *msg, int len)
+{
+ int i;
+
+ for (i = 0; i < len; i++)
+ {
+ switch (msg[i])
+ {
+ case '"':
+ wrbuf_puts (b, """);
+ break;
+ case '\'':
+ wrbuf_puts (b, "'");
+ break;
+ case '>':
+ wrbuf_puts (b, ">");
+ break;
+ case '<':
+ wrbuf_puts (b, "<");
+ break;
+ case '&':
+ wrbuf_puts (b, "&");
+ break;
+ default:
+ wrbuf_putc(b, msg[i]);
+ }
+ }
+}
+
+static void wrbuf_put_cdata(WRBUF b, const char *msg)
+{
+ wrbuf_write_cdata (b, msg, strlen(msg));
+}
+
+static int nodetoidsgml(data1_node *n, int select, WRBUF b, int col,
+ int pretty_format)