=================================================================== RCS file: /cvs/mandoc/html.c,v retrieving revision 1.94 retrieving revision 1.98 diff -u -p -r1.94 -r1.98 --- mandoc/html.c 2010/01/30 06:55:56 1.94 +++ mandoc/html.c 2010/04/08 07:05:38 1.98 @@ -1,4 +1,4 @@ -/* $Id: html.c,v 1.94 2010/01/30 06:55:56 kristaps Exp $ */ +/* $Id: html.c,v 1.98 2010/04/08 07:05:38 kristaps Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * @@ -312,7 +312,6 @@ print_encode(struct html *h, const char *p, int norecu } else if ('>' == *p) { printf(">"); continue; - /* FIXME: already escaped? */ } else if ('&' == *p) { printf("&"); continue; @@ -467,19 +466,23 @@ print_doctype(struct html *h) { const char *doctype; const char *dtd; + const char *name; switch (h->type) { case (HTML_HTML_4_01_STRICT): + name = "HTML"; doctype = "-//W3C//DTD HTML 4.01//EN"; dtd = "http://www.w3.org/TR/html4/strict.dtd"; break; default: + name = "html"; doctype = "-//W3C//DTD XHTML 1.0 Strict//EN"; dtd = "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"; break; } - printf("\n", doctype, dtd); + printf("\n", + name, doctype, dtd); } @@ -504,8 +507,6 @@ print_text(struct html *h, const char *p) case(')'): /* FALLTHROUGH */ case(']'): - /* FALLTHROUGH */ - case('}'): if ( ! (HTML_IGNDELIM & h->flags)) h->flags |= HTML_NOSPACE; break; @@ -520,13 +521,15 @@ print_text(struct html *h, const char *p) if ( ! print_encode(h, p, 0)) h->flags &= ~HTML_NOSPACE; + /* + * Note that we don't process the pipe: the parser sees it as + * punctuation, but we don't in terms of typography. + */ if (*p && 0 == *(p + 1)) switch (*p) { case('('): /* FALLTHROUGH */ case('['): - /* FALLTHROUGH */ - case('{'): h->flags |= HTML_NOSPACE; break; default: