aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2020-06-22 18:00:30 +0000
committerIngo Schwarze <schwarze@openbsd.org>2020-06-22 18:00:30 +0000
commit5d8b8229b2d8a64077ef83efbe26644564aa435f (patch)
tree17ca3d95165fdf24f3d9727394ba2a5acb0967c6
parentb28f36c493960262afac5600d250b2e8adc286e8 (diff)
downloadmandoc-5d8b8229b2d8a64077ef83efbe26644564aa435f.tar.gz
mandoc-5d8b8229b2d8a64077ef83efbe26644564aa435f.tar.zst
mandoc-5d8b8229b2d8a64077ef83efbe26644564aa435f.zip
John Gardner: handling of ASCII control characters during input
-rw-r--r--TODO16
1 files changed, 15 insertions, 1 deletions
diff --git a/TODO b/TODO
index ae1a1819..6a56446d 100644
--- a/TODO
+++ b/TODO
@@ -1,6 +1,6 @@
************************************************************************
* Official mandoc TODO.
-* $Id: TODO,v 1.302 2020/04/26 21:41:07 schwarze Exp $
+* $Id: TODO,v 1.303 2020/06/22 18:00:30 schwarze Exp $
************************************************************************
Many issues are annotated for difficulty as follows:
@@ -83,6 +83,20 @@ are mere guesses, and some may be wrong.
Jan Stary 20 Apr 2019 20:16:54 +0200
loc * exist *** algo *** size ** imp *
+- mandoc replaces all ASCII control characters except tab and line feed
+ with '?' during input. It would be better to replace them with
+ Unicode escapes in preconv_encode() or somewhere in the vicinity,
+ such that the already existing better replacement strings show
+ up in the output. Emulating groff is not desirable: groff replaces
+ 0x00, 0x0b, and 0x0d to 0x1f with the empty string (bad because
+ that's easy to overlook for the document author), 0x01 with '.'
+ (very confusing), and passes through 0x02 to 0x08, 0x0c, and 0x7f
+ raw (bad because that is insecure output). Remember that 0x07 may
+ need special handling because it is sometimes used for certain
+ delimiters, so it may need handling *after* roff.c rather than before.
+ reminded by John Gardner 16 Jun 2020 14:26:28 +1000
+ loc ** exist ** algo ** size ** imp *
+
--- missing mdoc features ----------------------------------------------
- .Sh and .Ss should be parsed and partially callable, see groff_mdoc(7)