diff options
-rw-r--r-- | index.sgml | 7 | ||||
-rw-r--r-- | mdoc.7 | 6 | ||||
-rw-r--r-- | mdoc_action.c | 22 | ||||
-rw-r--r-- | mdoc_validate.c | 2 |
4 files changed, 30 insertions, 7 deletions
@@ -241,7 +241,12 @@ <TBODY> <TR> <TD VALIGN="top"><SPAN CLASS="date">xx-05-2010</SPAN></TD> - + Day 1 of Rostock hackathon: proper handling of quotations in tab-separated + column lists, finished patching of SYNOPSIS breaking (1.9.25), fixed pre-comment + white-space stripping, added end-of-sentence spacing to black partial-implicit + macros, relaxed column warnings, relaxed acceptence of bad standards arguments, + significant documentation of lists in <A HREF="mdoc.7.html">mdoc(7)</A>. + Version: <SPAN CLASS="rev">1.9.26</SPAN>. <TD VALIGN="top"> </TR> <TR> @@ -1960,6 +1960,12 @@ and .Sx \&Ex macros were stipulated only to occur in certain manual sections. mandoc does not have these restrictions. +.It +Newer groff and mandoc print +.Qq AT&T UNIX +prior to unknown arguments of +.Sx \&At ; +older groff did nothing. .El .Sh SEE ALSO .Xr mandoc 1 , diff --git a/mdoc_action.c b/mdoc_action.c index 4739e0b6..9d2a3420 100644 --- a/mdoc_action.c +++ b/mdoc_action.c @@ -382,15 +382,27 @@ post_st(POST_ARGS) static int post_at(POST_ARGS) { - struct mdoc_node *nn; - const char *p; + struct mdoc_node *nn; + const char *p, *q; + char *buf; + size_t sz; if (n->child) { assert(MDOC_TEXT == n->child->type); p = mdoc_a2att(n->child->string); - assert(p); - free(n->child->string); - n->child->string = mandoc_strdup(p); + if (p) { + free(n->child->string); + n->child->string = mandoc_strdup(p); + } else { + p = "AT&T UNIX "; + q = n->child->string; + sz = strlen(p) + strlen(q) + 1; + buf = mandoc_malloc(sz); + strlcpy(buf, p, sz); + strlcat(buf, q, sz); + free(n->child->string); + n->child->string = buf; + } return(1); } diff --git a/mdoc_validate.c b/mdoc_validate.c index ad33b1f4..a8c6b956 100644 --- a/mdoc_validate.c +++ b/mdoc_validate.c @@ -921,7 +921,7 @@ post_at(POST_ARGS) return(mdoc_nerr(mdoc, mdoc->last, EATT)); if (mdoc_a2att(mdoc->last->child->string)) return(1); - return(mdoc_nerr(mdoc, mdoc->last, EATT)); + return(mdoc_nwarn(mdoc, mdoc->last, EATT)); } |