=================================================================== RCS file: /cvs/mandoc/TODO,v retrieving revision 1.302 retrieving revision 1.307 diff -u -p -r1.302 -r1.307 --- mandoc/TODO 2020/04/26 21:41:07 1.302 +++ mandoc/TODO 2020/10/26 13:30:46 1.307 @@ -1,6 +1,6 @@ ************************************************************************ * Official mandoc TODO. -* $Id: TODO,v 1.302 2020/04/26 21:41:07 schwarze Exp $ +* $Id: TODO,v 1.307 2020/10/26 13:30:46 schwarze Exp $ ************************************************************************ Many issues are annotated for difficulty as follows: @@ -33,6 +33,21 @@ Obviously, as the issues have not been solved yet, the are mere guesses, and some may be wrong. ************************************************************************ +* assertion failures +************************************************************************ + +- .if n .ce in the middle of .TS data + afl case f1/id:000103,sig:06,src:009024+009105,op:splice,rep:2 (jes@) + While roff_parseln() prevents .ce and similar requests in the middle + of a tbl, the guard is no longer effective when the .ce is wrapped + in a roff block, for example a conditional. The resulting assertion + has never been seen in any real-world manual page. + This is too dangerous to fix before release because it requires + reorganizing the very delicate internals of roff_parseln(), + which risks causing more severe bugs. + loc * exist *** algo *** size * imp * + +************************************************************************ * missing features ************************************************************************ @@ -83,6 +98,25 @@ 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 + Actually, more ASCII control characters than just 0x07 may need + later handling because they can for example be used in macro names. + So they may need handling after roff(7) processing. + pointed out by John Gardner 23 Jun 2020 18:28:08 +1000 + more info from John Gardner 29 Jun 2020 19:54:04 +1000 + loc ** exist ** algo ** size ** imp * + --- missing mdoc features ---------------------------------------------- - .Sh and .Ss should be parsed and partially callable, see groff_mdoc(7) @@ -487,6 +521,10 @@ are mere guesses, and some may be wrong. ************************************************************************ * warning issues ************************************************************************ + +- shorten/simplify error messages for usage errors + To: deraadt@ 25 Oct 2020 23:37:01 +0100 + loc ** exist * algo * size ** imp *** - warn about duplicate .Sh/.Ss heads gre(4): Rename duplicate sections 20 Apr 2018 15:27:33 +0200