version 1.24, 2008/12/10 12:05:33 |
version 1.25, 2008/12/10 17:31:58 |
|
|
|
|
static int xml_alloc(void **); |
static int xml_alloc(void **); |
static void xml_free(void *); |
static void xml_free(void *); |
static ssize_t xml_endtag(struct md_mbuf *, void *, |
static ssize_t xml_beginstring(struct ml_args *, |
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 *, |
|
const char *, size_t); |
const char *, size_t); |
static ssize_t xml_endstring(struct md_mbuf *, |
static ssize_t xml_endstring(struct ml_args *, |
const struct md_args *, |
|
const char *, size_t); |
const char *, size_t); |
static int xml_begin(struct md_mbuf *, |
static int xml_begin(struct ml_args *, const struct tm *, |
const struct md_args *, |
|
const struct tm *, |
|
const char *, const char *, |
const char *, const char *, |
enum roffmsec, enum roffvol); |
enum roffmsec, enum roffvol); |
static int xml_end(struct md_mbuf *, |
static int xml_end(struct ml_args *, const struct tm *, |
const struct md_args *, |
|
const struct tm *, |
|
const char *, const char *, |
const char *, const char *, |
enum roffmsec, enum roffvol); |
enum roffmsec, enum roffvol); |
static ssize_t xml_printtagname(struct md_mbuf *, |
static ssize_t xml_printtagname(struct ml_args *, |
enum md_ns, int); |
enum md_ns, int); |
static ssize_t xml_printtagargs(struct md_mbuf *, |
static ssize_t xml_printtagargs(struct ml_args *, |
const int *, const char **); |
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 |
static ssize_t |
xml_printtagargs(struct md_mbuf *mbuf, const int *argc, |
xml_printtagargs(struct ml_args *p, const int *argc, const char **argv) |
const char **argv) |
|
{ |
{ |
int i, c; |
int i, c; |
size_t res; |
size_t res; |
Line 68 xml_printtagargs(struct md_mbuf *mbuf, const int *argc |
|
Line 57 xml_printtagargs(struct md_mbuf *mbuf, const int *argc |
|
|
|
/* LINTED */ |
/* LINTED */ |
for (res = 0, i = 0; ROFF_ARGMAX != (c = argc[i]); i++) { |
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); |
return(-1); |
|
|
/* FIXME: should puke on some, no? */ |
/* FIXME: should puke on some, no? */ |
|
|
if ( ! ml_puts(mbuf, tokargnames[c], &res)) |
if ( ! ml_puts(p->mbuf, tokargnames[c], &res)) |
return(-1); |
return(-1); |
if ( ! ml_nputs(mbuf, "=\"", 2, &res)) |
if ( ! ml_nputs(p->mbuf, "=\"", 2, &res)) |
return(-1); |
return(-1); |
if (argv[i]) { |
if (argv[i]) { |
if ( ! ml_putstring(mbuf, argv[i], &res)) |
if ( ! ml_putstring(p->mbuf, argv[i], &res)) |
return(-1); |
return(-1); |
} else if ( ! ml_nputs(mbuf, "true", 4, &res)) |
} else if ( ! ml_nputs(p->mbuf, "true", 4, &res)) |
return(-1); |
return(-1); |
if ( ! ml_nputs(mbuf, "\"", 1, &res)) |
if ( ! ml_nputs(p->mbuf, "\"", 1, &res)) |
return(-1); |
return(-1); |
} |
} |
|
|
Line 91 xml_printtagargs(struct md_mbuf *mbuf, const int *argc |
|
Line 80 xml_printtagargs(struct md_mbuf *mbuf, const int *argc |
|
|
|
|
|
static ssize_t |
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; |
size_t res; |
|
|
res = 0; |
res = 0; |
switch (ns) { |
switch (ns) { |
case (MD_NS_BLOCK): |
case (MD_NS_BLOCK): |
if ( ! ml_nputs(mbuf, "block:", 6, &res)) |
if ( ! ml_nputs(p->mbuf, "block:", 6, &res)) |
return(-1); |
return(-1); |
break; |
break; |
case (MD_NS_INLINE): |
case (MD_NS_INLINE): |
if ( ! ml_nputs(mbuf, "inline:", 7, &res)) |
if ( ! ml_nputs(p->mbuf, "inline:", 7, &res)) |
return(-1); |
return(-1); |
break; |
break; |
case (MD_NS_BODY): |
case (MD_NS_BODY): |
if ( ! ml_nputs(mbuf, "body:", 5, &res)) |
if ( ! ml_nputs(p->mbuf, "body:", 5, &res)) |
return(-1); |
return(-1); |
break; |
break; |
case (MD_NS_HEAD): |
case (MD_NS_HEAD): |
if ( ! ml_nputs(mbuf, "head:", 5, &res)) |
if ( ! ml_nputs(p->mbuf, "head:", 5, &res)) |
return(-1); |
return(-1); |
break; |
break; |
default: |
default: |
break; |
break; |
} |
} |
|
|
if ( ! ml_puts(mbuf, toknames[tok], &res)) |
if ( ! ml_puts(p->mbuf, toknames[tok], &res)) |
return(-1); |
return(-1); |
return((ssize_t)res); |
return((ssize_t)res); |
} |
} |
Line 125 xml_printtagname(struct md_mbuf *mbuf, enum md_ns ns, |
|
Line 114 xml_printtagname(struct md_mbuf *mbuf, enum md_ns ns, |
|
|
|
/* ARGSUSED */ |
/* ARGSUSED */ |
static int |
static int |
xml_begin(struct md_mbuf *mbuf, const struct md_args *args, |
xml_begin(struct ml_args *p, const struct tm *tm, const char *os, |
const struct tm *tm, const char *os, |
|
const char *title, enum roffmsec sec, enum roffvol vol) |
const char *title, enum roffmsec sec, enum roffvol vol) |
{ |
{ |
|
|
if ( ! ml_puts(mbuf, "<?xml version=\"1.0\" " |
if ( ! ml_puts(p->mbuf, "<?xml version=\"1.0\" " |
"encoding=\"UTF-8\"?>\n", NULL)) |
"encoding=\"UTF-8\"?>\n", NULL)) |
return(0); |
return(0); |
return(ml_puts(mbuf, "<mdoc xmlns:block=\"block\" " |
return(ml_puts(p->mbuf, "<mdoc xmlns:block=\"block\" " |
"xmlns:body=\"body\" " |
"xmlns:body=\"body\" " |
"xmlns:head=\"head\" " |
"xmlns:head=\"head\" " |
"xmlns:inline=\"inline\">", NULL)); |
"xmlns:inline=\"inline\">", NULL)); |
Line 142 xml_begin(struct md_mbuf *mbuf, const struct md_args * |
|
Line 130 xml_begin(struct md_mbuf *mbuf, const struct md_args * |
|
|
|
/* ARGSUSED */ |
/* ARGSUSED */ |
static int |
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 struct tm *tm, const char *os, |
|
const char *title, enum roffmsec sec, enum roffvol vol) |
const char *title, enum roffmsec sec, enum roffvol vol) |
{ |
{ |
|
|
return(ml_puts(mbuf, "</mdoc>", NULL)); |
return(ml_puts(p->mbuf, "</mdoc>", NULL)); |
} |
} |
|
|
|
|
/* ARGSUSED */ |
/* ARGSUSED */ |
static ssize_t |
static ssize_t |
xml_beginstring(struct md_mbuf *mbuf, |
xml_beginstring(struct ml_args *p, const char *buf, size_t sz) |
const struct md_args *args, |
|
const char *buf, size_t sz) |
|
{ |
{ |
|
|
return(0); |
return(0); |
Line 164 xml_beginstring(struct md_mbuf *mbuf, |
|
Line 149 xml_beginstring(struct md_mbuf *mbuf, |
|
|
|
/* ARGSUSED */ |
/* ARGSUSED */ |
static ssize_t |
static ssize_t |
xml_endstring(struct md_mbuf *mbuf, |
xml_endstring(struct ml_args *p, const char *buf, size_t sz) |
const struct md_args *args, |
|
const char *buf, size_t sz) |
|
{ |
{ |
|
|
return(0); |
return(0); |
Line 175 xml_endstring(struct md_mbuf *mbuf, |
|
Line 158 xml_endstring(struct md_mbuf *mbuf, |
|
|
|
/* ARGSUSED */ |
/* ARGSUSED */ |
static ssize_t |
static ssize_t |
xml_begintag(struct md_mbuf *mbuf, void *data, |
xml_begintag(struct ml_args *p, enum md_ns ns, |
const struct md_args *args, enum md_ns ns, |
|
int tok, const int *argc, const char **argv) |
int tok, const int *argc, const char **argv) |
{ |
{ |
ssize_t res, sz; |
ssize_t res, sz; |
|
|
if (-1 == (res = xml_printtagname(mbuf, ns, tok))) |
if (-1 == (res = xml_printtagname(p, ns, tok))) |
return(-1); |
return(-1); |
if (-1 == (sz = xml_printtagargs(mbuf, argc, argv))) |
if (-1 == (sz = xml_printtagargs(p, argc, argv))) |
return(-1); |
return(-1); |
return(res + sz); |
return(res + sz); |
} |
} |
Line 191 xml_begintag(struct md_mbuf *mbuf, void *data, |
|
Line 173 xml_begintag(struct md_mbuf *mbuf, void *data, |
|
|
|
/* ARGSUSED */ |
/* ARGSUSED */ |
static ssize_t |
static ssize_t |
xml_endtag(struct md_mbuf *mbuf, void *data, |
xml_endtag(struct ml_args *p, enum md_ns ns, int tok) |
const struct md_args *args, enum md_ns ns, int tok) |
|
{ |
{ |
|
|
return(xml_printtagname(mbuf, ns, tok)); |
return(xml_printtagname(p, ns, tok)); |
} |
} |
|
|
|
|