From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from krisdoz.my.domain (kristaps@localhost [127.0.0.1]) by krisdoz.my.domain (8.14.3/8.14.3) with ESMTP id p4HBJki1012371 for ; Tue, 17 May 2011 07:19:46 -0400 (EDT) Received: (from kristaps@localhost) by krisdoz.my.domain (8.14.3/8.14.3/Submit) id p4HBJkli006060; Tue, 17 May 2011 07:19:46 -0400 (EDT) Date: Tue, 17 May 2011 07:19:46 -0400 (EDT) Message-Id: <201105171119.p4HBJkli006060@krisdoz.my.domain> X-Mailinglist: mdocml-source Reply-To: source@mdocml.bsd.lv MIME-Version: 1.0 From: kristaps@mdocml.bsd.lv To: source@mdocml.bsd.lv Subject: mdocml: Clean-ups in -T[x]html: inline print_num(), as it was just a X-Mailer: activitymail 1.26, http://search.cpan.org/dist/activitymail/ Content-Type: text/plain; charset=utf-8 Log Message: ----------- Clean-ups in -T[x]html: inline print_num(), as it was just a single conditional; same for print_xmltype() and print_doctype(), same reason; make bufncat() be static, as it was only being called from html.c; have bufcat() simply call through to strlcat(). Finally, assert() whenever we truncate. Also rename buffmt() -> bufcat_fmt() to differentiate from buffmt_man et al., which do not concatenate. Modified Files: -------------- mdocml: html.c html.h man_html.c mdoc_html.c Revision Data ------------- Index: html.h =================================================================== RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/html.h,v retrieving revision 1.42 retrieving revision 1.43 diff -Lhtml.h -Lhtml.h -u -p -r1.42 -r1.43 --- html.h +++ html.h @@ -147,11 +147,10 @@ void bufcat_su(struct html *, const c void buffmt_man(struct html *, const char *, const char *); void buffmt_includes(struct html *, const char *); -void buffmt(struct html *, const char *, ...); +void bufcat_fmt(struct html *, const char *, ...); void bufcat(struct html *, const char *); void bufcat_style(struct html *, const char *, const char *); -void bufncat(struct html *, const char *, size_t); void bufinit(struct html *); void html_idcat(char *, const char *, int); Index: man_html.c =================================================================== RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/man_html.c,v retrieving revision 1.70 retrieving revision 1.71 diff -Lman_html.c -Lman_html.c -u -p -r1.70 -r1.71 --- man_html.c +++ man_html.c @@ -158,7 +158,7 @@ print_man_head(MAN_ARGS) print_gen_head(h); bufinit(h); - buffmt(h, "%s(%s)", m->title, m->msec); + bufcat_fmt(h, "%s(%s)", m->title, m->msec); print_otag(h, TAG_TITLE, 0, NULL); print_text(h, h->buf); Index: html.c =================================================================== RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/html.c,v retrieving revision 1.140 retrieving revision 1.141 diff -Lhtml.c -Lhtml.c -u -p -r1.140 -r1.141 --- html.c +++ html.c @@ -107,18 +107,14 @@ static const char *const roffscales[SCAL "ex", /* SCALE_FS */ }; -static void print_num(struct html *, const char *, size_t); -static void print_spec(struct html *, const char *, size_t); -static void print_res(struct html *, const char *, size_t); -static void print_ctag(struct html *, enum htmltag); -static void print_doctype(struct html *); -static void print_xmltype(struct html *); -static int print_encode(struct html *, const char *, int); -static void print_metaf(struct html *, enum mandoc_esc); -static void print_attr(struct html *, - const char *, const char *); -static void *ml_alloc(char *, enum htmltype); - +static void bufncat(struct html *, const char *, size_t); +static void print_spec(struct html *, const char *, size_t); +static void print_res(struct html *, const char *, size_t); +static void print_ctag(struct html *, enum htmltag); +static int print_encode(struct html *, const char *, int); +static void print_metaf(struct html *, enum mandoc_esc); +static void print_attr(struct html *, const char *, const char *); +static void *ml_alloc(char *, enum htmltype); static void * ml_alloc(char *outopts, enum htmltype type) @@ -222,16 +218,6 @@ print_gen_head(struct html *h) } } -/* ARGSUSED */ -static void -print_num(struct html *h, const char *p, size_t len) -{ - char c; - - if ('\0' != (c = mchars_num2char(p, len))) - putchar((int)c); -} - static void print_spec(struct html *h, const char *p, size_t len) { @@ -349,7 +335,7 @@ static int print_encode(struct html *h, const char *p, int norecurse) { size_t sz; - int len, nospace; + int c, len, nospace; const char *seq; enum mandoc_esc esc; static const char rejs[6] = { '\\', '<', '>', '&', ASCII_HYPH, '\0' }; @@ -388,7 +374,9 @@ print_encode(struct html *h, const char switch (esc) { case (ESCAPE_NUMBERED): - print_num(h, seq, len); + c = mchars_num2char(seq, len); + if ('\0' != c) + putchar(c); break; case (ESCAPE_PREDEF): print_res(h, seq, len); @@ -509,28 +497,9 @@ print_ctag(struct html *h, enum htmltag } } - void print_gen_decls(struct html *h) { - - print_xmltype(h); - print_doctype(h); -} - - -static void -print_xmltype(struct html *h) -{ - - if (HTML_XHTML_1_0_STRICT == h->type) - puts(""); -} - - -static void -print_doctype(struct html *h) -{ const char *doctype; const char *dtd; const char *name; @@ -542,6 +511,7 @@ print_doctype(struct html *h) dtd = "http://www.w3.org/TR/html4/strict.dtd"; break; default: + puts(""); name = "html"; doctype = "-//W3C//DTD XHTML 1.0 Strict//EN"; dtd = "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"; @@ -631,7 +601,6 @@ print_stagq(struct html *h, const struct } } - void bufinit(struct html *h) { @@ -640,28 +609,27 @@ bufinit(struct html *h) h->buflen = 0; } - void bufcat_style(struct html *h, const char *key, const char *val) { bufcat(h, key); - bufncat(h, ":", 1); + bufcat(h, ":"); bufcat(h, val); - bufncat(h, ";", 1); + bufcat(h, ";"); } - void bufcat(struct html *h, const char *p) { - bufncat(h, p, strlen(p)); + h->buflen = strlcat(h->buf, p, BUFSIZ); + assert(h->buflen < BUFSIZ); + h->buflen--; } - void -buffmt(struct html *h, const char *fmt, ...) +bufcat_fmt(struct html *h, const char *fmt, ...) { va_list ap; @@ -672,19 +640,15 @@ buffmt(struct html *h, const char *fmt, h->buflen = strlen(h->buf); } - -void +static void bufncat(struct html *h, const char *p, size_t sz) { - if (h->buflen + sz > BUFSIZ - 1) - sz = BUFSIZ - 1 - h->buflen; - - (void)strncat(h->buf, p, sz); + assert(h->buflen + sz + 1 < BUFSIZ); + strncat(h->buf, p, sz); h->buflen += sz; } - void buffmt_includes(struct html *h, const char *name) { @@ -708,7 +672,6 @@ buffmt_includes(struct html *h, const ch bufcat(h, pp); } - void buffmt_man(struct html *h, const char *name, const char *sec) @@ -725,7 +688,7 @@ buffmt_man(struct html *h, bufcat(h, sec ? sec : "1"); break; case('N'): - buffmt(h, name); + bufcat_fmt(h, name); break; default: bufncat(h, p, 2); @@ -737,7 +700,6 @@ buffmt_man(struct html *h, bufcat(h, pp); } - void bufcat_su(struct html *h, const char *p, const struct roffsu *su) { @@ -747,9 +709,8 @@ bufcat_su(struct html *h, const char *p, if (SCALE_MM == su->unit && 0.0 == (v /= 100.0)) v = 1.0; - buffmt(h, "%s: %.2f%s;", p, v, roffscales[su->unit]); + bufcat_fmt(h, "%s: %.2f%s;", p, v, roffscales[su->unit]); } - void html_idcat(char *dst, const char *src, int sz) Index: mdoc_html.c =================================================================== RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/mdoc_html.c,v retrieving revision 1.166 retrieving revision 1.167 diff -Lmdoc_html.c -Lmdoc_html.c -u -p -r1.166 -r1.167 --- mdoc_html.c +++ mdoc_html.c @@ -382,7 +382,7 @@ print_mdoc_head(MDOC_ARGS) print_gen_head(h); bufinit(h); - buffmt(h, "%s(%s)", m->title, m->msec); + bufcat_fmt(h, "%s(%s)", m->title, m->msec); if (m->arch) { bufcat(h, " ("); -- To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv