From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=T_SCC_BODY_TEXT_LINE, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 31122 invoked from network); 6 Jun 2022 12:10:21 -0000 Received: from bsd.lv (HELO mandoc.bsd.lv) (66.111.2.12) by inbox.vuxu.org with ESMTPUTF8; 6 Jun 2022 12:10:21 -0000 Received: from fantadrom.bsd.lv (localhost [127.0.0.1]) by mandoc.bsd.lv (OpenSMTPD) with ESMTP id d228dd94 for ; Mon, 6 Jun 2022 07:10:18 -0500 (EST) Received: from localhost (mandoc.bsd.lv [local]) by mandoc.bsd.lv (OpenSMTPD) with ESMTPA id c3d98bbd for ; Mon, 6 Jun 2022 07:10:18 -0500 (EST) Date: Mon, 6 Jun 2022 07:10:18 -0500 (EST) X-Mailinglist: mandoc-source Reply-To: source@mandoc.bsd.lv MIME-Version: 1.0 From: schwarze@mandoc.bsd.lv To: source@mandoc.bsd.lv Subject: mandoc: Allow arbitrary argument delimiters for \C, like groff does. X-Mailer: activitymail 1.26, http://search.cpan.org/dist/activitymail/ Content-Type: text/plain; charset=utf-8 Message-ID: <3365a8815fb2f912@mandoc.bsd.lv> Log Message: ----------- Allow arbitrary argument delimiters for \C, like groff does. The restriction of only allowing ' as the delimiter was introduced by kristaps@ on 2011/04/09 when he first supported \C. For most other escape sequences, similar restrictions were relaxed later on, but for the rarely used \C, it was apparently forgotten. While here, reject empty character names: they are never valid. Modified Files: -------------- mandoc: roff_escape.c Revision Data ------------- Index: roff_escape.c =================================================================== RCS file: /home/cvs/mandoc/mandoc/roff_escape.c,v retrieving revision 1.10 retrieving revision 1.11 diff -Lroff_escape.c -Lroff_escape.c -u -p -r1.10 -r1.11 --- roff_escape.c +++ roff_escape.c @@ -206,10 +206,6 @@ roff_escape(const char *buf, const int l term = '\b'; break; case 'C': - if (buf[iarg] != '\'') { - rval = ESCAPE_ERROR; - goto out; - } rval = ESCAPE_SPECIAL; term = '\b'; break; @@ -391,6 +387,11 @@ roff_escape(const char *buf, const int l break; case ESCAPE_SPECIAL: + if (argl == 0) { + err = MANDOCERR_ESC_BADCHAR; + rval = ESCAPE_ERROR; + break; + } /* * The file chars.c only provides one common list of -- To unsubscribe send an email to source+unsubscribe@mandoc.bsd.lv