[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[groff] 13/15: [troff]: Don't write incomp UTF-8 seqs in diags.
From: |
G. Branden Robinson |
Subject: |
[groff] 13/15: [troff]: Don't write incomp UTF-8 seqs in diags. |
Date: |
Tue, 16 Jul 2024 08:40:03 -0400 (EDT) |
gbranden pushed a commit to branch master
in repository groff.
commit 5cab1363e47c0891a7dce003db053ce15f5722a0
Author: G. Branden Robinson <g.branden.robinson@gmail.com>
AuthorDate: Mon Jul 15 17:32:45 2024 -0500
[troff]: Don't write incomp UTF-8 seqs in diags.
* src/roff/troff/input.cpp (token::description): Revise diagnostic when
reporting unexpected character code > 128 in input. Report only its
code in decimal and Unicode-style hexadecimal instead of trying to
write it literally.
Continues <https://savannah.gnu.org/bugs/?65724>.
---
ChangeLog | 9 +++++++++
src/roff/troff/input.cpp | 8 ++++++--
2 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 3db697a19..e18ceb871 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2024-07-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (token::description): Revise
+ diagnostic when reporting unexpected character code > 128 in
+ input. Report only its code in decimal and Unicode-style
+ hexadecimal instead of trying to write it literally.
+
+ Continues <https://savannah.gnu.org/bugs/?65724>.
+
2024-07-14 G. Branden Robinson <g.branden.robinson@gmail.com>
* doc/pic.ms: Reduce vertical spacing in displays only on
diff --git a/src/roff/troff/input.cpp b/src/roff/troff/input.cpp
index c558b8681..cc90eda1c 100644
--- a/src/roff/troff/input.cpp
+++ b/src/roff/troff/input.cpp
@@ -2545,7 +2545,7 @@ bool token::is_usable_as_delimiter(bool report_error)
const char *token::description()
{
- const size_t bufsz = sizeof "character 'x'" + 1;
+ const size_t bufsz = sizeof "character code XXX (U+XXXX)" + 1;
static char buf[bufsz];
(void) memset(buf, 0, bufsz);
switch (type) {
@@ -2558,10 +2558,14 @@ const char *token::description()
(void) snprintf(buf, bufsz, "character \"%c\"", c);
return buf;
}
- else {
+ else if (c < 128) {
(void) snprintf(buf, bufsz, "character '%c'", c);
return buf;
}
+ else {
+ (void) snprintf(buf, bufsz, "character code %d (U+%04X)", c, c);
+ return buf;
+ }
case TOKEN_DUMMY:
return "an escaped '&'";
case TOKEN_ESCAPE:
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [groff] 13/15: [troff]: Don't write incomp UTF-8 seqs in diags.,
G. Branden Robinson <=