]> git.cameronkatri.com Git - mandoc.git/blobdiff - xml.c
*** empty log message ***
[mandoc.git] / xml.c
diff --git a/xml.c b/xml.c
index 81979a1533463d3716c10aaba7cf67f08e127ca5..8d73301bc87d4b7504e9fc0ae997b7f97b890317 100644 (file)
--- a/xml.c
+++ b/xml.c
@@ -1,4 +1,4 @@
-/* $Id: xml.c,v 1.17 2008/12/06 21:10:31 kristaps Exp $ */
+/* $Id: xml.c,v 1.23 2008/12/10 10:43:57 kristaps Exp $ */
 /*
  * Copyright (c) 2008 Kristaps Dzonsons <kristaps@kth.se>
  *
@@ -20,7 +20,6 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "libmdocml.h"
 #include "private.h"
 #include "ml.h"
 
@@ -34,11 +33,17 @@ static      ssize_t         xml_begintag(struct md_mbuf *, void *,
                                const struct md_args *, 
                                enum md_ns, int, 
                                const int *, const char **);
+static ssize_t         xml_beginstring(struct md_mbuf *, 
+                               const struct md_args *, 
+                               const char *, size_t);
+static ssize_t         xml_endstring(struct md_mbuf *, 
+                               const struct md_args *, 
+                               const char *, size_t);
 static int             xml_begin(struct md_mbuf *,
                                const struct md_args *, 
                                const struct tm *, 
                                const char *, const char *, 
-                               const char *, const char *);
+                               enum roffmsec, enum roffvol);
 static int             xml_end(struct md_mbuf *, 
                                const struct md_args *);
 static ssize_t         xml_printtagname(struct md_mbuf *, 
@@ -63,6 +68,8 @@ xml_printtagargs(struct md_mbuf *mbuf, const int *argc,
                if ( ! ml_nputs(mbuf, " ", 1, &res))
                        return(-1);
 
+               /* FIXME: should puke on some, no? */
+
                if ( ! ml_puts(mbuf, tokargnames[c], &res))
                        return(-1);
                if ( ! ml_nputs(mbuf, "=\"", 2, &res))
@@ -117,15 +124,15 @@ xml_printtagname(struct md_mbuf *mbuf, enum md_ns ns, int tok)
 static int 
 xml_begin(struct md_mbuf *mbuf, const struct md_args *args,
                const struct tm *tm, const char *os, 
-               const char *title, const char *section, 
-               const char *vol)
+               const char *title, enum roffmsec sec, enum roffvol vol)
 {
 
        if ( ! ml_puts(mbuf, "<?xml version=\"1.0\" "
                                "encoding=\"UTF-8\"?>\n", NULL))
                return(0);
        return(ml_puts(mbuf, "<mdoc xmlns:block=\"block\" "
-                               "xmlns:special=\"special\" "
+                               "xmlns:body=\"body\" "
+                               "xmlns:head=\"head\" "
                                "xmlns:inline=\"inline\">", NULL));
 }
 
@@ -139,6 +146,28 @@ xml_end(struct md_mbuf *mbuf, const struct md_args *args)
 }
 
 
+/* ARGSUSED */
+static ssize_t 
+xml_beginstring(struct md_mbuf *mbuf, 
+               const struct md_args *args, 
+               const char *buf, size_t sz)
+{
+
+       return(0);
+}
+
+
+/* ARGSUSED */
+static ssize_t 
+xml_endstring(struct md_mbuf *mbuf, 
+               const struct md_args *args, 
+               const char *buf, size_t sz)
+{
+
+       return(0);
+}
+
+
 /* ARGSUSED */
 static ssize_t 
 xml_begintag(struct md_mbuf *mbuf, void *data,
@@ -170,6 +199,7 @@ int
 xml_alloc(void **p)
 {
 
+       *p = NULL;
        return(1);
 }
 
@@ -211,6 +241,8 @@ md_init_xml(const struct md_args *args,
        cbs.ml_endtag = xml_endtag;
        cbs.ml_begin = xml_begin;
        cbs.ml_end = xml_end;
+       cbs.ml_beginstring = xml_beginstring;
+       cbs.ml_endstring = xml_endstring;
 
        return(mlg_alloc(args, rbuf, mbuf, &cbs));
 }