=================================================================== RCS file: /cvs/mandoc/Attic/xml.c,v retrieving revision 1.19 retrieving revision 1.25 diff -u -p -r1.19 -r1.25 --- mandoc/Attic/xml.c 2008/12/07 23:44:19 1.19 +++ mandoc/Attic/xml.c 2008/12/10 17:31:58 1.25 @@ -1,4 +1,4 @@ -/* $Id: xml.c,v 1.19 2008/12/07 23:44:19 kristaps Exp $ */ +/* $Id: xml.c,v 1.25 2008/12/10 17:31:58 kristaps Exp $ */ /* * Copyright (c) 2008 Kristaps Dzonsons * @@ -20,42 +20,33 @@ #include #include -#include "libmdocml.h" #include "private.h" #include "ml.h" static int xml_alloc(void **); static void xml_free(void *); -static ssize_t xml_endtag(struct md_mbuf *, void *, - const struct md_args *, - enum md_ns, int); -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 *, +static ssize_t xml_beginstring(struct ml_args *, const char *, size_t); -static ssize_t xml_endstring(struct md_mbuf *, - const struct md_args *, +static ssize_t xml_endstring(struct ml_args *, const char *, size_t); -static int xml_begin(struct md_mbuf *, - const struct md_args *, - const struct tm *, +static int xml_begin(struct ml_args *, const struct tm *, const char *, const char *, - const char *, const char *); -static int xml_end(struct md_mbuf *, - const struct md_args *); -static ssize_t xml_printtagname(struct md_mbuf *, + enum roffmsec, enum roffvol); +static int xml_end(struct ml_args *, const struct tm *, + const char *, const char *, + enum roffmsec, enum roffvol); +static ssize_t xml_printtagname(struct ml_args *, enum md_ns, int); -static ssize_t xml_printtagargs(struct md_mbuf *, +static ssize_t xml_printtagargs(struct ml_args *, const int *, const char **); +static ssize_t xml_endtag(struct ml_args *, enum md_ns, int); +static ssize_t xml_begintag(struct ml_args *, enum md_ns, int, + const int *, const char **); static ssize_t -xml_printtagargs(struct md_mbuf *mbuf, const int *argc, - const char **argv) +xml_printtagargs(struct ml_args *p, const int *argc, const char **argv) { int i, c; size_t res; @@ -66,19 +57,21 @@ xml_printtagargs(struct md_mbuf *mbuf, const int *argc /* LINTED */ for (res = 0, i = 0; ROFF_ARGMAX != (c = argc[i]); i++) { - if ( ! ml_nputs(mbuf, " ", 1, &res)) + if ( ! ml_nputs(p->mbuf, " ", 1, &res)) return(-1); - if ( ! ml_puts(mbuf, tokargnames[c], &res)) + /* FIXME: should puke on some, no? */ + + if ( ! ml_puts(p->mbuf, tokargnames[c], &res)) return(-1); - if ( ! ml_nputs(mbuf, "=\"", 2, &res)) + if ( ! ml_nputs(p->mbuf, "=\"", 2, &res)) return(-1); if (argv[i]) { - if ( ! ml_putstring(mbuf, argv[i], &res)) + if ( ! ml_putstring(p->mbuf, argv[i], &res)) return(-1); - } else if ( ! ml_nputs(mbuf, "true", 4, &res)) + } else if ( ! ml_nputs(p->mbuf, "true", 4, &res)) return(-1); - if ( ! ml_nputs(mbuf, "\"", 1, &res)) + if ( ! ml_nputs(p->mbuf, "\"", 1, &res)) return(-1); } @@ -87,33 +80,33 @@ xml_printtagargs(struct md_mbuf *mbuf, const int *argc static ssize_t -xml_printtagname(struct md_mbuf *mbuf, enum md_ns ns, int tok) +xml_printtagname(struct ml_args *p, enum md_ns ns, int tok) { size_t res; res = 0; switch (ns) { case (MD_NS_BLOCK): - if ( ! ml_nputs(mbuf, "block:", 6, &res)) + if ( ! ml_nputs(p->mbuf, "block:", 6, &res)) return(-1); break; case (MD_NS_INLINE): - if ( ! ml_nputs(mbuf, "inline:", 7, &res)) + if ( ! ml_nputs(p->mbuf, "inline:", 7, &res)) return(-1); break; case (MD_NS_BODY): - if ( ! ml_nputs(mbuf, "body:", 5, &res)) + if ( ! ml_nputs(p->mbuf, "body:", 5, &res)) return(-1); break; case (MD_NS_HEAD): - if ( ! ml_nputs(mbuf, "head:", 5, &res)) + if ( ! ml_nputs(p->mbuf, "head:", 5, &res)) return(-1); break; default: break; } - if ( ! ml_puts(mbuf, toknames[tok], &res)) + if ( ! ml_puts(p->mbuf, toknames[tok], &res)) return(-1); return((ssize_t)res); } @@ -121,16 +114,14 @@ xml_printtagname(struct md_mbuf *mbuf, enum md_ns ns, /* ARGSUSED */ 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) +xml_begin(struct ml_args *p, const struct tm *tm, const char *os, + const char *title, enum roffmsec sec, enum roffvol vol) { - if ( ! ml_puts(mbuf, "mbuf, "\n", NULL)) return(0); - return(ml_puts(mbuf, "mbuf, "", NULL)); @@ -139,18 +130,17 @@ xml_begin(struct md_mbuf *mbuf, const struct md_args * /* ARGSUSED */ static int -xml_end(struct md_mbuf *mbuf, const struct md_args *args) +xml_end(struct ml_args *p, const struct tm *tm, const char *os, + const char *title, enum roffmsec sec, enum roffvol vol) { - return(ml_puts(mbuf, "", NULL)); + return(ml_puts(p->mbuf, "", NULL)); } /* ARGSUSED */ static ssize_t -xml_beginstring(struct md_mbuf *mbuf, - const struct md_args *args, - const char *buf, size_t sz) +xml_beginstring(struct ml_args *p, const char *buf, size_t sz) { return(0); @@ -159,9 +149,7 @@ xml_beginstring(struct md_mbuf *mbuf, /* ARGSUSED */ static ssize_t -xml_endstring(struct md_mbuf *mbuf, - const struct md_args *args, - const char *buf, size_t sz) +xml_endstring(struct ml_args *p, const char *buf, size_t sz) { return(0); @@ -170,15 +158,14 @@ xml_endstring(struct md_mbuf *mbuf, /* ARGSUSED */ static ssize_t -xml_begintag(struct md_mbuf *mbuf, void *data, - const struct md_args *args, enum md_ns ns, +xml_begintag(struct ml_args *p, enum md_ns ns, int tok, const int *argc, const char **argv) { ssize_t res, sz; - if (-1 == (res = xml_printtagname(mbuf, ns, tok))) + if (-1 == (res = xml_printtagname(p, ns, tok))) return(-1); - if (-1 == (sz = xml_printtagargs(mbuf, argc, argv))) + if (-1 == (sz = xml_printtagargs(p, argc, argv))) return(-1); return(res + sz); } @@ -186,11 +173,10 @@ xml_begintag(struct md_mbuf *mbuf, void *data, /* ARGSUSED */ static ssize_t -xml_endtag(struct md_mbuf *mbuf, void *data, - const struct md_args *args, enum md_ns ns, int tok) +xml_endtag(struct ml_args *p, enum md_ns ns, int tok) { - return(xml_printtagname(mbuf, ns, tok)); + return(xml_printtagname(p, ns, tok)); } @@ -199,6 +185,7 @@ int xml_alloc(void **p) { + *p = NULL; return(1); }