source@mandoc.bsd.lv
 help / color / mirror / Atom feed
From: schwarze@mandoc.bsd.lv
To: source@mandoc.bsd.lv
Subject: mandoc: With the improved escape sequence parser, it becomes easy to
Date: Sun, 5 Jun 2022 08:54:47 -0500 (EST)	[thread overview]
Message-ID: <3365a0e8f5aaecbe@mandoc.bsd.lv> (raw)

Log Message:
-----------
With the improved escape sequence parser, it becomes easy to also improve 
diagnostics.  Distinguish "incomplete escape sequence", "invalid special 
character", and "unknown special character" from the generic "invalid 
escape sequence", also promoting them from WARNING to ERROR because
incomplete escape sequences are severe syntax violations and because
encountering an invalid or unknown special character makes it likely
that part of the document content intended by the authors gets lost.

Modified Files:
--------------
    mandoc:
        mandoc.1
        mandoc.h
        mandoc_msg.c
        roff_escape.c
    mandoc/regress/char/accent:
        nocombine.out_lint
    mandoc/regress/char/space:
        invalid.out_lint
    mandoc/regress/char/unicode:
        input.out_lint
        invalid.out_lint
    mandoc/regress/roff/char:
        badarg.out_lint
    mandoc/regress/roff/esc:
        B.out_lint
        ignore.out_lint
        invalid.out_lint
        unsupp.out_lint
        w.out_lint
    mandoc/regress/roff/nr:
        escname.out_lint
    mandoc/regress/roff/string:
        name.out_lint

Revision Data
-------------
Index: ignore.out_lint
===================================================================
RCS file: /home/cvs/mandoc/mandoc/regress/roff/esc/ignore.out_lint,v
retrieving revision 1.8
retrieving revision 1.9
diff -Lregress/roff/esc/ignore.out_lint -Lregress/roff/esc/ignore.out_lint -u -p -r1.8 -r1.9
--- regress/roff/esc/ignore.out_lint
+++ regress/roff/esc/ignore.out_lint
@@ -1,14 +1,14 @@
-mandoc: ignore.in:7:36: WARNING: invalid escape sequence: \[%]
-mandoc: ignore.in:8:35: WARNING: invalid escape sequence: \[&]
-mandoc: ignore.in:9:51: WARNING: invalid escape sequence: \[)]
-mandoc: ignore.in:10:37: WARNING: invalid escape sequence: \[,]
-mandoc: ignore.in:11:38: WARNING: invalid escape sequence: \[/]
-mandoc: ignore.in:12:28: WARNING: invalid escape sequence: \[^]
-mandoc: ignore.in:13:17: WARNING: invalid escape sequence: \[a]
-mandoc: ignore.in:14:25: WARNING: invalid escape sequence: \[d]
-mandoc: ignore.in:15:25: WARNING: invalid escape sequence: \[t]
-mandoc: ignore.in:16:33: WARNING: invalid escape sequence: \[u]
-mandoc: ignore.in:17:20: WARNING: invalid escape sequence: \[{]
-mandoc: ignore.in:18:25: WARNING: invalid escape sequence: \[|]
-mandoc: ignore.in:19:20: WARNING: invalid escape sequence: \[}]
-mandoc: ignore.in:23:56: WARNING: invalid escape sequence: \s-
+mandoc: ignore.in:7:36: ERROR: invalid special character: \[%]
+mandoc: ignore.in:8:35: ERROR: invalid special character: \[&]
+mandoc: ignore.in:9:51: ERROR: invalid special character: \[)]
+mandoc: ignore.in:10:37: ERROR: invalid special character: \[,]
+mandoc: ignore.in:11:38: ERROR: invalid special character: \[/]
+mandoc: ignore.in:12:28: ERROR: invalid special character: \[^]
+mandoc: ignore.in:13:17: ERROR: invalid special character: \[a]
+mandoc: ignore.in:14:25: ERROR: invalid special character: \[d]
+mandoc: ignore.in:15:25: ERROR: invalid special character: \[t]
+mandoc: ignore.in:16:33: ERROR: invalid special character: \[u]
+mandoc: ignore.in:17:20: ERROR: invalid special character: \[{]
+mandoc: ignore.in:18:25: ERROR: invalid special character: \[|]
+mandoc: ignore.in:19:20: ERROR: invalid special character: \[}]
+mandoc: ignore.in:23:56: ERROR: incomplete escape sequence: \s-
Index: w.out_lint
===================================================================
RCS file: /home/cvs/mandoc/mandoc/regress/roff/esc/w.out_lint,v
retrieving revision 1.5
retrieving revision 1.6
diff -Lregress/roff/esc/w.out_lint -Lregress/roff/esc/w.out_lint -u -p -r1.5 -r1.6
--- regress/roff/esc/w.out_lint
+++ regress/roff/esc/w.out_lint
@@ -1 +1 @@
-mandoc: w.in:17:15: WARNING: invalid escape sequence: \w'foo
+mandoc: w.in:17:15: ERROR: incomplete escape sequence: \w'foo
Index: unsupp.out_lint
===================================================================
RCS file: /home/cvs/mandoc/mandoc/regress/roff/esc/unsupp.out_lint,v
retrieving revision 1.2
retrieving revision 1.3
diff -Lregress/roff/esc/unsupp.out_lint -Lregress/roff/esc/unsupp.out_lint -u -p -r1.2 -r1.3
--- regress/roff/esc/unsupp.out_lint
+++ regress/roff/esc/unsupp.out_lint
@@ -1,5 +1,5 @@
 mandoc: unsupp.in:7:20: UNSUPP: unsupported escape sequence: \!
-mandoc: unsupp.in:7:23: WARNING: invalid escape sequence: \[!]
+mandoc: unsupp.in:7:23: ERROR: invalid special character: \[!]
 mandoc: unsupp.in:8:17: UNSUPP: unsupported escape sequence: \?
 mandoc: unsupp.in:8:21: UNSUPP: unsupported escape sequence: \?
-mandoc: unsupp.in:8:24: WARNING: invalid escape sequence: \[?]
+mandoc: unsupp.in:8:24: ERROR: invalid special character: \[?]
Index: B.out_lint
===================================================================
RCS file: /home/cvs/mandoc/mandoc/regress/roff/esc/B.out_lint,v
retrieving revision 1.5
retrieving revision 1.6
diff -Lregress/roff/esc/B.out_lint -Lregress/roff/esc/B.out_lint -u -p -r1.5 -r1.6
--- regress/roff/esc/B.out_lint
+++ regress/roff/esc/B.out_lint
@@ -1 +1 @@
-mandoc: B.in:37:23: WARNING: invalid escape sequence: \B'1+1
+mandoc: B.in:37:23: ERROR: incomplete escape sequence: \B'1+1
Index: invalid.out_lint
===================================================================
RCS file: /home/cvs/mandoc/mandoc/regress/roff/esc/invalid.out_lint,v
retrieving revision 1.2
retrieving revision 1.3
diff -Lregress/roff/esc/invalid.out_lint -Lregress/roff/esc/invalid.out_lint -u -p -r1.2 -r1.3
--- regress/roff/esc/invalid.out_lint
+++ regress/roff/esc/invalid.out_lint
@@ -1,43 +1,43 @@
 mandoc: invalid.in:7:8: WARNING: undefined escape, printing literally: \+
-mandoc: invalid.in:7:11: WARNING: invalid escape sequence: \[+]
+mandoc: invalid.in:7:11: ERROR: invalid special character: \[+]
 mandoc: invalid.in:8:13: WARNING: undefined escape, printing literally: \;
-mandoc: invalid.in:8:16: WARNING: invalid escape sequence: \[;]
+mandoc: invalid.in:8:16: ERROR: invalid special character: \[;]
 mandoc: invalid.in:9:13: WARNING: undefined escape, printing literally: \<
-mandoc: invalid.in:9:16: WARNING: invalid escape sequence: \[<]
+mandoc: invalid.in:9:16: ERROR: invalid special character: \[<]
 mandoc: invalid.in:10:12: WARNING: undefined escape, printing literally: \=
-mandoc: invalid.in:10:15: WARNING: invalid escape sequence: \[=]
+mandoc: invalid.in:10:15: ERROR: invalid special character: \[=]
 mandoc: invalid.in:11:16: WARNING: undefined escape, printing literally: \>
-mandoc: invalid.in:11:19: WARNING: invalid escape sequence: \[>]
+mandoc: invalid.in:11:19: ERROR: invalid special character: \[>]
 mandoc: invalid.in:12:6: WARNING: undefined escape, printing literally: \@
-mandoc: invalid.in:12:9: WARNING: invalid escape sequence: \[@]
+mandoc: invalid.in:12:9: ERROR: invalid special character: \[@]
 mandoc: invalid.in:13:18: WARNING: undefined escape, printing literally: \]
-mandoc: invalid.in:14:16: WARNING: invalid escape sequence: \[{]
-mandoc: invalid.in:14:21: WARNING: invalid escape sequence: \[}]
+mandoc: invalid.in:14:16: ERROR: invalid special character: \[{]
+mandoc: invalid.in:14:21: ERROR: invalid special character: \[}]
 mandoc: invalid.in:15:9: WARNING: undefined escape, printing literally: \1
-mandoc: invalid.in:15:12: WARNING: invalid escape sequence: \[1]
+mandoc: invalid.in:15:12: ERROR: invalid special character: \[1]
 mandoc: invalid.in:16:5: WARNING: undefined escape, printing literally: \G
-mandoc: invalid.in:16:8: WARNING: invalid escape sequence: \[G]
+mandoc: invalid.in:16:8: ERROR: invalid special character: \[G]
 mandoc: invalid.in:17:5: WARNING: undefined escape, printing literally: \I
-mandoc: invalid.in:17:8: WARNING: invalid escape sequence: \[I]
+mandoc: invalid.in:17:8: ERROR: invalid special character: \[I]
 mandoc: invalid.in:18:5: WARNING: undefined escape, printing literally: \i
-mandoc: invalid.in:18:8: WARNING: invalid escape sequence: \[i]
+mandoc: invalid.in:18:8: ERROR: invalid special character: \[i]
 mandoc: invalid.in:19:5: WARNING: undefined escape, printing literally: \J
-mandoc: invalid.in:19:8: WARNING: invalid escape sequence: \[J]
+mandoc: invalid.in:19:8: ERROR: invalid special character: \[J]
 mandoc: invalid.in:20:5: WARNING: undefined escape, printing literally: \j
-mandoc: invalid.in:20:8: WARNING: invalid escape sequence: \[j]
+mandoc: invalid.in:20:8: ERROR: invalid special character: \[j]
 mandoc: invalid.in:21:5: WARNING: undefined escape, printing literally: \K
-mandoc: invalid.in:21:8: WARNING: invalid escape sequence: \[K]
+mandoc: invalid.in:21:8: ERROR: invalid special character: \[K]
 mandoc: invalid.in:22:5: WARNING: undefined escape, printing literally: \P
-mandoc: invalid.in:22:8: WARNING: invalid escape sequence: \[P]
+mandoc: invalid.in:22:8: ERROR: invalid special character: \[P]
 mandoc: invalid.in:23:5: WARNING: undefined escape, printing literally: \Q
-mandoc: invalid.in:23:8: WARNING: invalid escape sequence: \[Q]
+mandoc: invalid.in:23:8: ERROR: invalid special character: \[Q]
 mandoc: invalid.in:24:5: WARNING: undefined escape, printing literally: \q
-mandoc: invalid.in:24:8: WARNING: invalid escape sequence: \[q]
+mandoc: invalid.in:24:8: ERROR: invalid special character: \[q]
 mandoc: invalid.in:25:5: WARNING: undefined escape, printing literally: \T
-mandoc: invalid.in:25:8: WARNING: invalid escape sequence: \[T]
+mandoc: invalid.in:25:8: ERROR: invalid special character: \[T]
 mandoc: invalid.in:26:5: WARNING: undefined escape, printing literally: \U
-mandoc: invalid.in:26:8: WARNING: invalid escape sequence: \[U]
+mandoc: invalid.in:26:8: ERROR: invalid special character: \[U]
 mandoc: invalid.in:27:5: WARNING: undefined escape, printing literally: \W
-mandoc: invalid.in:27:8: WARNING: invalid escape sequence: \[W]
+mandoc: invalid.in:27:8: ERROR: invalid special character: \[W]
 mandoc: invalid.in:28:5: WARNING: undefined escape, printing literally: \y
-mandoc: invalid.in:28:8: WARNING: invalid escape sequence: \[y]
+mandoc: invalid.in:28:8: ERROR: invalid special character: \[y]
Index: roff_escape.c
===================================================================
RCS file: /home/cvs/mandoc/mandoc/roff_escape.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -Lroff_escape.c -Lroff_escape.c -u -p -r1.9 -r1.10
--- roff_escape.c
+++ roff_escape.c
@@ -310,13 +310,12 @@ roff_escape(const char *buf, const int l
 	iendarg = iarg;
 	while (maxl > 0) {
 		if (buf[iendarg] == '\0') {
+			err = MANDOCERR_ESC_INCOMPLETE;
+			if (rval != ESCAPE_EXPAND)
+				rval = ESCAPE_ERROR;
 			/* Ignore an incomplete argument except for \w. */
 			if (buf[inam] != 'w')
 				iendarg = iarg;
-			if (rval == ESCAPE_EXPAND)
-				err = MANDOCERR_ESC_BAD;
-			else
-				rval = ESCAPE_ERROR;
 			break;
 		}
 		if (buf[iendarg] == term) {
@@ -401,6 +400,7 @@ roff_escape(const char *buf, const int l
 		 */
 
 		if (term != '\0' && argl == 1 && buf[iarg] != '-') {
+			err = MANDOCERR_ESC_BADCHAR;
 			rval = ESCAPE_ERROR;
 			break;
 		}
@@ -416,8 +416,10 @@ roff_escape(const char *buf, const int l
 			c = 0;
 			for (i = iarg; i < iendarg; i++)
 				c = 10 * c + (buf[i] - '0');
-			if (c < 0x21 || (c > 0x7e && c < 0xa0) || c > 0xff)
+			if (c < 0x21 || (c > 0x7e && c < 0xa0) || c > 0xff) {
+				err = MANDOCERR_ESC_BADCHAR;
 				break;
+			}
 			iarg += 4;
 			rval = ESCAPE_NUMBERED;
 			break;
@@ -433,13 +435,19 @@ roff_escape(const char *buf, const int l
 		if (buf[iarg] != 'u' || argl < 5 || argl > 7)
 			break;
 		if (argl == 7 &&
-		    (buf[iarg + 1] != '1' || buf[iarg + 2] != '0'))
+		    (buf[iarg + 1] != '1' || buf[iarg + 2] != '0')) {
+			err = MANDOCERR_ESC_BADCHAR;
 			break;
-		if (argl == 6 && buf[iarg + 1] == '0')
+		}
+		if (argl == 6 && buf[iarg + 1] == '0') {
+			err = MANDOCERR_ESC_BADCHAR;
 			break;
+		}
 		if (argl == 5 && buf[iarg + 1] == 'D' &&
-		    strchr("89ABCDEF", buf[iarg + 2]) != NULL)
+		    strchr("89ABCDEF", buf[iarg + 2]) != NULL) {
+			err = MANDOCERR_ESC_BADCHAR;
 			break;
+		}
 		if ((int)strspn(buf + iarg + 1, "0123456789ABCDEFabcdef")
 		    + 1 == argl)
 			rval = ESCAPE_UNICODE;
@@ -477,7 +485,8 @@ out:
 	*resc = iesc;
 	switch (rval) {
 	case ESCAPE_ERROR:
-		err = MANDOCERR_ESC_BAD;
+		if (err == MANDOCERR_OK)
+			err = MANDOCERR_ESC_BAD;
 		break;
 	case ESCAPE_UNSUPP:
 		err = MANDOCERR_ESC_UNSUPP;
@@ -487,8 +496,10 @@ out:
 			err = MANDOCERR_ESC_UNDEF;
 		break;
 	case ESCAPE_SPECIAL:
-		if (mchars_spec2cp(buf + iarg, argl) < 0)
-			err = MANDOCERR_ESC_BAD;
+		if (mchars_spec2cp(buf + iarg, argl) >= 0)
+			err = MANDOCERR_OK;
+		else if (err == MANDOCERR_OK)
+			err = MANDOCERR_ESC_UNKCHAR;
 		break;
 	default:
 		break;
Index: mandoc_msg.c
===================================================================
RCS file: /home/cvs/mandoc/mandoc/mandoc_msg.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -Lmandoc_msg.c -Lmandoc_msg.c -u -p -r1.18 -r1.19
--- mandoc_msg.c
+++ mandoc_msg.c
@@ -236,6 +236,11 @@ static	const char *const type_message[MA
 	"skipping excess arguments",
 	"divide by zero",
 
+	/* related to escape sequences */
+	"incomplete escape sequence",
+	"invalid special character",
+	"unknown special character",
+
 	"unsupported feature",
 	"input too large",
 	"unsupported control character",
Index: mandoc.1
===================================================================
RCS file: /home/cvs/mandoc/mandoc/mandoc.1,v
retrieving revision 1.258
retrieving revision 1.259
diff -Lmandoc.1 -Lmandoc.1 -u -p -r1.258 -r1.259
--- mandoc.1
+++ mandoc.1
@@ -1799,21 +1799,9 @@ A new sentence starts in the middle of a
 Start it on a new input line to help formatters produce correct spacing.
 .It Sy "invalid escape sequence"
 .Pq roff
-An escape sequence has an invalid opening argument delimiter, lacks the
-closing argument delimiter, the argument is of an invalid form, or it is
-a character escape sequence with an invalid name.
-If the argument is incomplete,
-.Ic \e*
-and
-.Ic \en
-expand to an empty string,
-.Ic \eB
-to the digit
-.Sq 0 ,
-and
-.Ic \ew
-to the length of the incomplete argument.
-All other invalid escape sequences are ignored.
+An escape sequence has an invalid opening argument delimiter
+or the argument is of an invalid form.
+Invalid escape sequences are ignored.
 .It Sy "undefined escape, printing literally"
 .Pq roff
 In an escape sequence, the first character
@@ -2284,6 +2272,48 @@ or
 with invalid arguments
 .El
 The excess arguments are ignored.
+.El
+.Ss "Errors related to escape sequences"
+.Bl -ohang
+.It Sy "incomplete escape sequence"
+.Pq roff
+The end of the input line is encountered
+while parsing the argument of an escape sequence.
+In this case,
+.Ic \e*
+and
+.Ic \en
+expand to an empty string,
+.Ic \eB
+to the digit
+.Sq 0 ,
+and
+.Ic \ew
+to the length of the incomplete argument.
+All other incomplete escape sequences are ignored.
+.It Sy "invalid special character"
+.Pq roff
+A special character escape sequence is invalid,
+for example a Unicode sequence pointing to a surrogate
+or beyond the Unicode range, a \e[char...] escape sequence
+representing a control character or pointing beyond the
+.Vt unsigned char
+range, or an invalid variable-length form
+of a single-byte character escape sequence, for example writing
+.Qq \e[e]
+or
+.Qq \e[~]
+instead of
+.Qq \ee
+or
+.Qq \e~ ,
+respectively.
+The escape sequence is ignored.
+.It Sy "unknown special character"
+.Pq roff
+The name given in a special character escape sequence is not known to
+.Nm .
+The escape sequence is ignored.
 .El
 .Ss Unsupported features
 .Bl -ohang
Index: mandoc.h
===================================================================
RCS file: /home/cvs/mandoc/mandoc/mandoc.h,v
retrieving revision 1.277
retrieving revision 1.278
diff -Lmandoc.h -Lmandoc.h -u -p -r1.277 -r1.278
--- mandoc.h
+++ mandoc.h
@@ -235,6 +235,11 @@ enum	mandocerr {
 	MANDOCERR_ARG_EXCESS, /* skipping excess arguments: macro ... args */
 	MANDOCERR_DIVZERO, /* divide by zero */
 
+	/* related to escape sequences */
+	MANDOCERR_ESC_INCOMPLETE, /* incomplete escape sequence: esc */
+	MANDOCERR_ESC_BADCHAR, /* invalid special character: esc */
+	MANDOCERR_ESC_UNKCHAR, /* unknown special character: esc */
+
 	MANDOCERR_UNSUPP, /* ===== start of unsupported features ===== */
 
 	MANDOCERR_TOOLARGE, /* input too large */
Index: nocombine.out_lint
===================================================================
RCS file: /home/cvs/mandoc/mandoc/regress/char/accent/nocombine.out_lint,v
retrieving revision 1.1
retrieving revision 1.2
diff -Lregress/char/accent/nocombine.out_lint -Lregress/char/accent/nocombine.out_lint -u -p -r1.1 -r1.2
--- regress/char/accent/nocombine.out_lint
+++ regress/char/accent/nocombine.out_lint
@@ -1,2 +1,2 @@
-mandoc: nocombine.in:8:27: WARNING: invalid escape sequence: \[']
-mandoc: nocombine.in:14:27: WARNING: invalid escape sequence: \[`]
+mandoc: nocombine.in:8:27: ERROR: invalid special character: \[']
+mandoc: nocombine.in:14:27: ERROR: invalid special character: \[`]
Index: invalid.out_lint
===================================================================
RCS file: /home/cvs/mandoc/mandoc/regress/char/space/invalid.out_lint,v
retrieving revision 1.1
retrieving revision 1.2
diff -Lregress/char/space/invalid.out_lint -Lregress/char/space/invalid.out_lint -u -p -r1.1 -r1.2
--- regress/char/space/invalid.out_lint
+++ regress/char/space/invalid.out_lint
@@ -1,9 +1,9 @@
 mandoc: invalid.in:7:15: WARNING: invalid escape sequence: \[ 
-mandoc: invalid.in:8:14: WARNING: invalid escape sequence: \[%]
-mandoc: invalid.in:9:16: WARNING: invalid escape sequence: \[&]
-mandoc: invalid.in:10:12: WARNING: invalid escape sequence: \[:]
-mandoc: invalid.in:11:12: WARNING: invalid escape sequence: \[^]
-mandoc: invalid.in:12:16: WARNING: invalid escape sequence: \[_]
-mandoc: invalid.in:13:11: WARNING: invalid escape sequence: \[|]
-mandoc: invalid.in:14:12: WARNING: invalid escape sequence: \[~]
-mandoc: invalid.in:15:18: WARNING: invalid escape sequence: \[0]
+mandoc: invalid.in:8:14: ERROR: invalid special character: \[%]
+mandoc: invalid.in:9:16: ERROR: invalid special character: \[&]
+mandoc: invalid.in:10:12: ERROR: invalid special character: \[:]
+mandoc: invalid.in:11:12: ERROR: invalid special character: \[^]
+mandoc: invalid.in:12:16: ERROR: invalid special character: \[_]
+mandoc: invalid.in:13:11: ERROR: invalid special character: \[|]
+mandoc: invalid.in:14:12: ERROR: invalid special character: \[~]
+mandoc: invalid.in:15:18: ERROR: invalid special character: \[0]
Index: invalid.out_lint
===================================================================
RCS file: /home/cvs/mandoc/mandoc/regress/char/unicode/invalid.out_lint,v
retrieving revision 1.6
retrieving revision 1.7
diff -Lregress/char/unicode/invalid.out_lint -Lregress/char/unicode/invalid.out_lint -u -p -r1.6 -r1.7
--- regress/char/unicode/invalid.out_lint
+++ regress/char/unicode/invalid.out_lint
@@ -1,9 +1,9 @@
-mandoc: invalid.in:11:13: WARNING: invalid escape sequence: \[u2B]
-mandoc: invalid.in:11:20: WARNING: invalid escape sequence: \[u02B]
-mandoc: invalid.in:13:12: WARNING: invalid escape sequence: \[u0002B]
-mandoc: invalid.in:13:22: WARNING: invalid escape sequence: \[u00002B]
-mandoc: invalid.in:13:33: WARNING: invalid escape sequence: \[u000002B]
-mandoc: invalid.in:14:13: WARNING: invalid escape sequence: \[u110000]
-mandoc: invalid.in:14:24: WARNING: invalid escape sequence: \[u200000]
-mandoc: invalid.in:14:35: WARNING: invalid escape sequence: \[u1000000]
-mandoc: invalid.in:15:20: WARNING: invalid escape sequence: \[u1234g]
+mandoc: invalid.in:11:13: ERROR: unknown special character: \[u2B]
+mandoc: invalid.in:11:20: ERROR: unknown special character: \[u02B]
+mandoc: invalid.in:13:12: ERROR: invalid special character: \[u0002B]
+mandoc: invalid.in:13:22: ERROR: invalid special character: \[u00002B]
+mandoc: invalid.in:13:33: ERROR: unknown special character: \[u000002B]
+mandoc: invalid.in:14:13: ERROR: invalid special character: \[u110000]
+mandoc: invalid.in:14:24: ERROR: invalid special character: \[u200000]
+mandoc: invalid.in:14:35: ERROR: unknown special character: \[u1000000]
+mandoc: invalid.in:15:20: ERROR: unknown special character: \[u1234g]
Index: input.out_lint
===================================================================
RCS file: /home/cvs/mandoc/mandoc/regress/char/unicode/input.out_lint,v
retrieving revision 1.6
retrieving revision 1.7
diff -Lregress/char/unicode/input.out_lint -Lregress/char/unicode/input.out_lint -u -p -r1.6 -r1.7
--- regress/char/unicode/input.out_lint
+++ regress/char/unicode/input.out_lint
@@ -24,11 +24,11 @@ mandoc: input.in:35:19: ERROR: skipping 
 mandoc: input.in:42:25: ERROR: skipping bad character: 0xed
 mandoc: input.in:42:26: ERROR: skipping bad character: 0xa0
 mandoc: input.in:42:27: ERROR: skipping bad character: 0x80
-mandoc: input.in:42:17: WARNING: invalid escape sequence: \[uD800]
+mandoc: input.in:42:17: ERROR: invalid special character: \[uD800]
 mandoc: input.in:43:25: ERROR: skipping bad character: 0xed
 mandoc: input.in:43:26: ERROR: skipping bad character: 0xbf
 mandoc: input.in:43:27: ERROR: skipping bad character: 0xbf
-mandoc: input.in:43:17: WARNING: invalid escape sequence: \[uDFFF]
+mandoc: input.in:43:17: ERROR: invalid special character: \[uDFFF]
 mandoc: input.in:53:19: ERROR: skipping bad character: 0xf0
 mandoc: input.in:53:20: ERROR: skipping bad character: 0x80
 mandoc: input.in:53:21: ERROR: skipping bad character: 0x80
@@ -57,25 +57,25 @@ mandoc: input.in:67:31: ERROR: skipping 
 mandoc: input.in:67:32: ERROR: skipping bad character: 0x90
 mandoc: input.in:67:33: ERROR: skipping bad character: 0x80
 mandoc: input.in:67:34: ERROR: skipping bad character: 0x80
-mandoc: input.in:67:21: WARNING: invalid escape sequence: \[u110000]
+mandoc: input.in:67:21: ERROR: invalid special character: \[u110000]
 mandoc: input.in:68:31: ERROR: skipping bad character: 0xf4
 mandoc: input.in:68:32: ERROR: skipping bad character: 0xbf
 mandoc: input.in:68:33: ERROR: skipping bad character: 0xbf
 mandoc: input.in:68:34: ERROR: skipping bad character: 0xbf
-mandoc: input.in:68:21: WARNING: invalid escape sequence: \[u13FFFF]
+mandoc: input.in:68:21: ERROR: invalid special character: \[u13FFFF]
 mandoc: input.in:69:31: ERROR: skipping bad character: 0xf5
 mandoc: input.in:69:32: ERROR: skipping bad character: 0x80
 mandoc: input.in:69:33: ERROR: skipping bad character: 0x80
 mandoc: input.in:69:34: ERROR: skipping bad character: 0x80
-mandoc: input.in:69:21: WARNING: invalid escape sequence: \[u140000]
+mandoc: input.in:69:21: ERROR: invalid special character: \[u140000]
 mandoc: input.in:70:31: ERROR: skipping bad character: 0xf7
 mandoc: input.in:70:32: ERROR: skipping bad character: 0xbf
 mandoc: input.in:70:33: ERROR: skipping bad character: 0xbf
 mandoc: input.in:70:34: ERROR: skipping bad character: 0xbf
-mandoc: input.in:70:21: WARNING: invalid escape sequence: \[u1FFFFF]
+mandoc: input.in:70:21: ERROR: invalid special character: \[u1FFFFF]
 mandoc: input.in:71:33: ERROR: skipping bad character: 0xf8
 mandoc: input.in:71:34: ERROR: skipping bad character: 0x88
 mandoc: input.in:71:35: ERROR: skipping bad character: 0x80
 mandoc: input.in:71:36: ERROR: skipping bad character: 0x80
 mandoc: input.in:71:37: ERROR: skipping bad character: 0x80
-mandoc: input.in:71:23: WARNING: invalid escape sequence: \[u200000]
+mandoc: input.in:71:23: ERROR: invalid special character: \[u200000]
Index: badarg.out_lint
===================================================================
RCS file: /home/cvs/mandoc/mandoc/regress/roff/char/badarg.out_lint,v
retrieving revision 1.1
retrieving revision 1.2
diff -Lregress/roff/char/badarg.out_lint -Lregress/roff/char/badarg.out_lint -u -p -r1.1 -r1.2
--- regress/roff/char/badarg.out_lint
+++ regress/roff/char/badarg.out_lint
@@ -1,6 +1,6 @@
 mandoc: badarg.in:6:6: ERROR: argument is not a character: char 
 mandoc: badarg.in:7:7: ERROR: argument is not a character: char \fR myval
-mandoc: badarg.in:8:7: WARNING: invalid escape sequence: \[myc]
+mandoc: badarg.in:8:7: ERROR: unknown special character: \[myc]
 mandoc: badarg.in:8:7: ERROR: argument is not a character: char \[myc]x myval
 mandoc: badarg.in:9:7: ERROR: argument is not a character: char xy myval
-mandoc: badarg.in:10:7: WARNING: invalid escape sequence: \[myc]
+mandoc: badarg.in:10:7: ERROR: unknown special character: \[myc]
Index: escname.out_lint
===================================================================
RCS file: /home/cvs/mandoc/mandoc/regress/roff/nr/escname.out_lint,v
retrieving revision 1.6
retrieving revision 1.7
diff -Lregress/roff/nr/escname.out_lint -Lregress/roff/nr/escname.out_lint -u -p -r1.6 -r1.7
--- regress/roff/nr/escname.out_lint
+++ regress/roff/nr/escname.out_lint
@@ -1,5 +1,5 @@
 mandoc: escname.in:9:5: ERROR: escaped character not allowed in a name: first\e
 mandoc: escname.in:11:10: WARNING: undefined escape, printing literally: \G
 mandoc: escname.in:14:5: ERROR: escaped character not allowed in a name: first\e
-mandoc: escname.in:20:13: WARNING: invalid escape sequence: \n[second
+mandoc: escname.in:20:13: ERROR: incomplete escape sequence: \n[second
 mandoc: escname.in:20:12: STYLE: whitespace at end of input line
Index: name.out_lint
===================================================================
RCS file: /home/cvs/mandoc/mandoc/regress/roff/string/name.out_lint,v
retrieving revision 1.8
retrieving revision 1.9
diff -Lregress/roff/string/name.out_lint -Lregress/roff/string/name.out_lint -u -p -r1.8 -r1.9
--- regress/roff/string/name.out_lint
+++ regress/roff/string/name.out_lint
@@ -1,6 +1,6 @@
 mandoc: name.in:11:5: ERROR: escaped character not allowed in a name: bs\e
 mandoc: name.in:14:5: ERROR: escaped character not allowed in a name: bl\ 
-mandoc: name.in:18:29: WARNING: invalid escape sequence: \*[norm
+mandoc: name.in:18:29: ERROR: incomplete escape sequence: \*[norm
 mandoc: name.in:18:28: STYLE: whitespace at end of input line
 mandoc: name.in:20:7: WARNING: undefined string, using "": quot
 mandoc: name.in:20:6: STYLE: whitespace at end of input line
--
 To unsubscribe send an email to source+unsubscribe@mandoc.bsd.lv


                 reply	other threads:[~2022-06-05 13:54 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3365a0e8f5aaecbe@mandoc.bsd.lv \
    --to=schwarze@mandoc.bsd.lv \
    --cc=source@mandoc.bsd.lv \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).