=================================================================== RCS file: /cvs/mandoc/TODO,v retrieving revision 1.290 retrieving revision 1.304 diff -u -p -r1.290 -r1.304 --- mandoc/TODO 2019/04/01 15:57:29 1.290 +++ mandoc/TODO 2020/06/24 12:09:29 1.304 @@ -1,6 +1,6 @@ ************************************************************************ * Official mandoc TODO. -* $Id: TODO,v 1.290 2019/04/01 15:57:29 schwarze Exp $ +* $Id: TODO,v 1.304 2020/06/24 12:09:29 schwarze Exp $ ************************************************************************ Many issues are annotated for difficulty as follows: @@ -62,8 +62,51 @@ are mere guesses, and some may be wrong. needed for Tcl_NewStringObj(3) via wiz@ Wed, 5 Mar 2014 22:27:43 +0100 loc ** exist *** algo *** size * imp *** +- .als only works for macros in mandoc, not for user-defined strings. + Also, the "val" field in struct roffkv would have to be replaced + with a pointer to a reference-counted wrapper, and an alias + would have to point to the same wrapper as the original. + .als to undefined does nothing; the alias is not created. + .rm'ing the original leaves the alias to point to the old value. + .de .als .de changes both, but + .de .als .rm .de only changes the new value, not the alias. + Found in groffer(1) version 1.19 + Jan Stary 20 Apr 2019 20:16:54 +0200 + loc * exist ** algo ** size ** imp * + +- roff string condition comparisons fail when vars contain quotes: + .ds s ' + .if '\*s'' \&... + hard to fix because of the basic architecture (string replacement + happens before roff(7) syntax parsing) + Found in groffer(1) version 1.19 + 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 + loc ** exist ** algo ** size ** imp * + --- missing mdoc features ---------------------------------------------- +- .Sh and .Ss should be parsed and partially callable, see groff_mdoc(7) + reed at reedmedia dot net Sat, 21 Dec 2019 17:13:07 -0600 + loc ** exist ** algo ** size ** imp * + - .Bl -column .Xo support is missing ultimate goal: restore .Xr and .Dv to @@ -196,30 +239,10 @@ are mere guesses, and some may be wrong. --- missing misc features ---------------------------------------------- -- man 3am readline - does not work because man(1) only accepts digit + one letter, - otherwise explicit -s is currently required - https://github.com/void-linux/void-packages/issues/9868 - loc * exist * algo * size * imp *** +- -T man does not handle eqn(7) and tbl(7) + Stephen Gregoratto 16 Feb 2020 01:28:07 +1100 + loc ** exist ** algo ** size *** imp ** -- man 3 readline may show readline(3m) - because in manpage_compare, "3" and "3am" compare equal - https://github.com/void-linux/void-packages/issues/9868 - probably requires putting string version of section into struct manpage - loc * exist ** algo * size * imp *** - -- restore flags for result ordering, but only for man(1), not for apropos(1) - such that man 3 syslog show syslog.3 not klogctl.3 - and such that man 3p acosl shows acosl.3p not acos.3p - https://github.com/void-linux/void-packages/issues/9868 - loc * exist ** algo * size * imp *** - -- dead .so links should be entered into the database to avoid: - man -M. lvm-config - man: outdated mandoc.db lacks lvm-config(8) entry, run makewhatis /co/void-man - https://github.com/void-linux/void-packages/issues/9868 - loc * exist ** algo * size * imp ** - - man -ks 1,8 route; kn@ Jul 13, 2018 orally - italic correction (\/) in PostScript mode @@ -288,6 +311,9 @@ are mere guesses, and some may be wrong. https://github.com/schmonz/ikiwiki/compare/mandoc Amitai Schlair Mon, 19 May 2014 14:05:53 -0400 +- check compatibility with + https://git.sr.ht/~sircmpwn/scdoc + - check features of the Slackware man.conf(5) format Carsten Kunze Wed, 11 Mar 2015 17:57:24 +0100 @@ -374,6 +400,11 @@ are mere guesses, and some may be wrong. --- HTML issues -------------------------------------------------------- +- get rid of the last handful of style= attributes such that + Content-Security-Policy: can be enabled without unsafe-inline + suggested by bentley@ Nov 10, 2019 at 06:02:49AM -0700 + loc * exist * algo * size * imp ** + - .Bf at the beginning of a paragraph inserts a bogus 1ex horizontal space, see for example random(3). Introduced in http://mdocml.bsd.lv/cgi-bin/cvsweb/mdoc_html.c.diff?r1=1.91&r2=1.92 @@ -386,6 +417,11 @@ are mere guesses, and some may be wrong. https://github.com/Debian/debiman/issues/15 loc * exist * algo ** size ** imp ** +- space characters can end up in href= attributes, for example coming + from the first .Xr argument (where they make no sense, but still); + does this affect other characters, other source macros...? + Jackson Pauls 29 Aug 2017 16:56:27 +0100 + - The tables used to render the three-part page headers actually force the width of the to the max-width given for . Not yet sure how to fix that... @@ -553,6 +589,9 @@ are mere guesses, and some may be wrong. * CGI issues ************************************************************************ + - Inspect httpd(8) logs on man.openbsd.org and consider + whether logging can be improved, where bad syntax comes from, + and what needs to be done to get rid of COMPAT_OLDURI. - Enable HTTP compression by detecting gzip encoding and filtering output through libz. - Privilege separation (see OpenSSH). @@ -561,6 +600,15 @@ are mere guesses, and some may be wrong. ************************************************************************ * to improve in the groff_mdoc(7) macros ************************************************************************ + +- delete OS release verification from .Dx, .Fx, .Nx, .Ox etc. + https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=629161 + also Branden Robinson 18 Dec 2019 00:59:52 +1100 + +- Can the distinction between .Vt and .Va be made stricter, + recommending .Vt extern char * Ns Va optarg ; ? + What about the block macro properties of .Vt in the SYNOPSIS? + zeurkous 25 Dec 2019 08:48:36 +0100 - .Cd # arch1, arch2 in section 4 pages: find better way to indicate multiple architectures, maybe: