From 3ab6e5b465cb0d5d38813ac55a78b9eb484d32b9 Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Tue, 7 Oct 2014 14:07:03 +0000 Subject: If a tbl(7) layout contains unknown font modifiers, fall back to the default font rather than failing the whole table. Needed by some pages in books/man-pages-posix. Written on the plane back from EuroBSDCon in Sofia. --- mandoc.1 | 13 +++++++++---- tbl_layout.c | 7 ++++++- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/mandoc.1 b/mandoc.1 index 75a8b8c2..95f52689 100644 --- a/mandoc.1 +++ b/mandoc.1 @@ -1,4 +1,4 @@ -.\" $Id: mandoc.1,v 1.114 2014/09/27 11:17:19 kristaps Exp $ +.\" $Id: mandoc.1,v 1.115 2014/10/07 14:07:03 schwarze Exp $ .\" .\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons .\" Copyright (c) 2012, 2014 Ingo Schwarze @@ -15,7 +15,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: September 27 2014 $ +.Dd $Mdocdate: October 7 2014 $ .Dt MANDOC 1 .Os .Sh NAME @@ -1134,11 +1134,16 @@ or The invalid argument is moved out of the macro, which leaves the macro empty, causing it to toggle the spacing mode. .It Sy "unknown font, skipping request" -.Pq man +.Pq man , tbl A .Xr roff 7 .Ic \&ft -request has an invalid argument. +request or a +.Xr tbl 7 +.Ic \&f +layout modifier has an unknown +.Ar font +argument. .El .Ss "Warnings related to plain text" .Bl -ohang diff --git a/tbl_layout.c b/tbl_layout.c index d288c08b..3d27ee1a 100644 --- a/tbl_layout.c +++ b/tbl_layout.c @@ -1,4 +1,4 @@ -/* $Id: tbl_layout.c,v 1.27 2014/08/10 23:54:41 schwarze Exp $ */ +/* $Id: tbl_layout.c,v 1.28 2014/10/07 14:07:03 schwarze Exp $ */ /* * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2012, 2014 Ingo Schwarze @@ -201,6 +201,11 @@ mod: default: break; } + if (isalnum((unsigned char)p[*pos - 1])) { + mandoc_vmsg(MANDOCERR_FT_BAD, tbl->parse, + ln, *pos - 1, "TS f%c", p[*pos - 1]); + goto mod; + } mandoc_msg(MANDOCERR_TBLLAYOUT, tbl->parse, ln, *pos - 1, NULL); -- cgit v1.2.3