[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug #63074] [troff] support construction of arbitrary byte sequences in
From: |
G. Branden Robinson |
Subject: |
[bug #63074] [troff] support construction of arbitrary byte sequences in device control commands |
Date: |
Sat, 31 Aug 2024 00:41:56 -0400 (EDT) |
Follow-up Comment #34, bug #63074 (group groff):
commit 9e9c5139b8a16f5614727e3e0b08ef3378fe96e1
Author: G. Branden Robinson <g.branden.robinson@gmail.com>
Date: Fri Aug 30 20:53:22 2024 -0500
[troff]: Reject some nonsense in `\X` arguments.
* src/roff/troff/input.cpp (encode_special_character_for_device_output):
Reject tab, leader, and backspace characters in a `\X` device
extension escape sequence argument. Silently ignore hyphen indicator
`\%`, dummy character `\&`, and zero-width break `\:` escape sequences
in such arguments.
Continues fixing Savannah #63074.
commit b4389abb267c36b3ca3b32c5643e4ab7e0fa8324
Author: G. Branden Robinson <g.branden.robinson@gmail.com>
Date: Fri Aug 30 01:22:00 2024 -0500
[troff]: Detect special chars in `\X` arg better.
* src/roff/troff/input.cpp (encode_special_character_for_device_output):
Improve detection of non-Unicode special character escape sequences.
Continues fixing Savannah #63074.
Exhibit:
$ printf '\\X@\\[notdef]\\[bs]\\[u1000]\\[bracketrighttp]\\[u23A4]@\n.pl
1v\n' | ./build/test-groff -ww -Z | grep '^x X'
troff:<standard input>:1: error: special character 'notdef' is unusable
within a device control escape sequence
troff:<standard input>:1: error: special character 'bs' is unusable within
a device control escape sequence
x X \[u1000]\[u23A4]\[u23A4]
You can still get an error (though I plan to make that a warning in the
'char' category since input processing continues), but only for the
small handful of groff special character identifiers that lack a mapping
to a Unicode character--like the Bell System logo, shown above.
...or if it just plain doesn't exist, as with 'notdef'.
commit 74fb463c61267a05945308d1c092667c9c26fb6c
Author: G. Branden Robinson <g.branden.robinson@gmail.com>
Date: Fri Aug 30 03:57:57 2024 -0500
[troff]: Demote some errors to 'char' warnings.
* src/roff/troff/input.cpp (encode_special_character_for_device_output):
Demote diagnostics arising from non-encodable items from errors to
warnings in category "char", since unlike most (all?) errors, GNU
troff continues processing the input. Clarify language to make it
clearer what is wrong with the rejected input.
Continues fixing Savannah #63074.
commit 663ac037d98b8a2428b11fd7811226ff60d6451c
Author: G. Branden Robinson <g.branden.robinson@gmail.com>
Date: Fri Aug 30 04:25:55 2024 -0500
[groff]: Test diags on invalid grout attempts.
[groff]: Add test of diagnostics for attempts to write invalid things to
device-independent output. We don't generally write tests for invalid
or incorrect input, but this particular area has been a sore and poorly
understood point for a long time.
* src/roff/groff/tests/unencodable-things-in-grout.sh: Do it.
* src/roff/groff/groff.am (groff_TESTS): Run test.
Continues fixing Savannah #63074.
commit 6d970eeed411493dd7dbb2439495a19aaed4bd6e
Author: G. Branden Robinson <g.branden.robinson@gmail.com>
Date: Fri Aug 30 15:46:48 2024 -0500
[groff]: Revise `\X` spec char test expectations.
* src/roff/groff/tests/device-control-special-character-handling.sh:
* src/roff/groff/tests/device_control_escapes_express_basic_latin.sh:
Revise test expectations.
Continues fixing Savannah #63074.
commit dcae60b0fb1ad3fa3314fdfdbecb973961a40410
Author: G. Branden Robinson <g.branden.robinson@gmail.com>
Date: Fri Aug 30 16:10:34 2024 -0500
[troff]: \X maps some basic Latin chars to specs.
* src/roff/troff/input.cpp (encode_character_for_device_output): In
device-independent output, represent ordinary characters that normally
map to non-basic Latin code points ('-^`~) in a way that is compatible
with how they're typeset, to avoid confusion when these characters are
used in ways that are ultimately visible, as in tag names for PDF
bookmarks, which can appear in a viewer's navigation pane.
* src/roff/groff/tests/device-control-special-character-handling.sh:
Test conversions of basic Latin input characters to Unicode code
points.
Continues fixing Savannah #63074.
commit a9df692a94a2f5019765658af1c7d697ab3ca074
Author: G. Branden Robinson <g.branden.robinson@gmail.com>
Date: Fri Aug 30 16:16:50 2024 -0500
[docs]: Update \X & `char` warning category descs.
* doc/groff.texi.in (Postprocessor Access):
* man/groff.7.man (Escape sequence short reference):
* man/groff_diff.7.man (Escape sequences): Update discussion of `\X`
escape sequence behavior.
* doc/groff.texi.in (Warnings):
* src/roff/troff/troff.1.man (Warnings): Update description of `char`
warning category.
Continues fixing Savannah #63074.
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?63074>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
signature.asc
Description: PGP signature
Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- [bug #63074] [troff] support construction of arbitrary byte sequences in device control commands, G. Branden Robinson, 2024/08/28
Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- Message not available
- [bug #63074] [troff] support construction of arbitrary byte sequences in device control commands,
G. Branden Robinson <=