From 10c7195ae21b46c15b20ccb55be6aea83b9cb237 Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Thu, 27 Aug 2020 12:59:02 +0000 Subject: Avoid artifacts in the most common case of closing conditional blocks when no arguments follow the closing brace, \}. For example, the line "'br\}" contained in the pod2man(1) preamble would throw a bogus "escaped character not allowed in a name" error. This issue was originally reported by Chris Bennett on ports@, and afresh1@ noticed it came from the pod2man(1) preamble. --- roff.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/roff.c b/roff.c index f2ed61c8..36c87b61 100644 --- a/roff.c +++ b/roff.c @@ -1,4 +1,4 @@ -/* $Id: roff.c,v 1.375 2020/08/03 11:02:57 schwarze Exp $ */ +/* $Id: roff.c,v 1.376 2020/08/27 12:59:02 schwarze Exp $ */ /* * Copyright (c) 2010-2015, 2017-2020 Ingo Schwarze * Copyright (c) 2008-2012, 2014 Kristaps Dzonsons @@ -2362,7 +2362,9 @@ roff_cond_checkend(ROFF_ARGS) while ((ep = strchr(ep, '\\')) != NULL) { switch (ep[1]) { case '}': - if (rr) + if (ep[2] == '\0') + ep[0] = '\0'; + else if (rr) ep[1] = '&'; else memmove(ep, ep + 2, strlen(ep + 2) + 1); -- cgit v1.2.3