=================================================================== RCS file: /cvs/mandoc/Attic/libmdocml.c,v retrieving revision 1.10 retrieving revision 1.18 diff -u -p -r1.10 -r1.18 --- mandoc/Attic/libmdocml.c 2008/11/25 12:51:17 1.10 +++ mandoc/Attic/libmdocml.c 2008/12/03 14:39:59 1.18 @@ -1,4 +1,4 @@ -/* $Id: libmdocml.c,v 1.10 2008/11/25 12:51:17 kristaps Exp $ */ +/* $Id: libmdocml.c,v 1.18 2008/12/03 14:39:59 kristaps Exp $ */ /* * Copyright (c) 2008 Kristaps Dzonsons * @@ -56,8 +56,7 @@ md_buf_fill(struct md_rbuf *in) } -static int -md_buf_flush(struct md_mbuf *buf) +static int md_buf_flush(struct md_mbuf *buf) { ssize_t sz; @@ -86,6 +85,8 @@ md_buf_flush(struct md_mbuf *buf) int md_buf_putchar(struct md_mbuf *buf, char c) { + + assert(buf); return(md_buf_puts(buf, &c, 1)); } @@ -93,6 +94,8 @@ md_buf_putchar(struct md_mbuf *buf, char c) int md_buf_putstring(struct md_mbuf *buf, const char *p) { + + assert(buf); return(md_buf_puts(buf, p, strlen(p))); } @@ -136,18 +139,18 @@ md_run_leave(const struct md_args *args, struct md_mbu /* Run exiters. */ switch (args->type) { - case (MD_HTML4_STRICT): - if ( ! md_exit_html4_strict(data, -1 == c ? 0 : 1)) + case (MD_HTML): + if ( ! md_exit_html(data, -1 == c ? 0 : 1)) c = -1; break; default: - if ( ! md_exit_dummy(data, -1 == c ? 0 : 1)) + if ( ! md_exit_xml(data, -1 == c ? 0 : 1)) c = -1; break; } /* Make final flush of buffer. */ - if ( ! md_buf_flush(mbuf)) + if (-1 != c && ! md_buf_flush(mbuf)) return(-1); return(c); @@ -169,11 +172,11 @@ md_run_enter(const struct md_args *args, struct md_mbu /* Function ptrs to line-parsers. */ switch (args->type) { - case (MD_HTML4_STRICT): - fp = md_line_html4_strict; + case (MD_HTML): + fp = md_line_html; break; default: - fp = md_line_dummy; + fp = md_line_xml; break; } @@ -189,11 +192,13 @@ again: return(md_run_leave(args, mbuf, rbuf, 0, p)); for (i = 0; i < sz; i++) { + /* if ( ! isascii(rbuf->buf[i])) { warnx("%s: non-ascii char (line %zu, col %zu)", rbuf->name, rbuf->line, pos); return(md_run_leave(args, mbuf, rbuf, -1, p)); } + */ if ('\n' != rbuf->buf[i]) { if (pos < BUFFER_LINE) { /* LINTED */ @@ -205,8 +210,8 @@ again: return(md_run_leave(args, mbuf, rbuf, -1, p)); } - line[pos] = 0; - if ( ! (*fp)(p, line, pos)) + line[(int)pos] = 0; + if ( ! (*fp)(p, line)) return(md_run_leave(args, mbuf, rbuf, -1, p)); rbuf->line++; pos = 0; @@ -237,13 +242,11 @@ md_run(const struct md_args *args, /* Run initialisers. */ switch (args->type) { - case (MD_HTML4_STRICT): - data = md_init_html4_strict - (args, &mbuf, &rbuf); + case (MD_HTML): + data = md_init_html(args, &mbuf, &rbuf); break; default: - data = md_init_dummy - (args, &mbuf, &rbuf); + data = md_init_xml(args, &mbuf, &rbuf); break; }