************************************************************************
* Official mandoc TODO.
-* $Id: TODO,v 1.289 2019/03/04 13:01:57 schwarze Exp $
+* $Id: TODO,v 1.299 2019/12/25 13:20:33 schwarze Exp $
************************************************************************
Many issues are annotated for difficulty as follows:
Obviously, as the issues have not been solved yet, these annotations
are mere guesses, and some may be wrong.
+************************************************************************
+* crashes
+************************************************************************
+
+- .ce .if n .B two crashes because "return (*roffs[t].sub)" bypasses
+ the "high level macros abort .ce" safeguard in roff_parseln()
+ reported by espie@ in textproc/fstrcmp
+
************************************************************************
* missing features
************************************************************************
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 *
+
--- 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
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
--- 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
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 <body> to the max-width given for <html>.
Not yet sure how to fix that...
* 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:
allow .Dt vgafb 4 "macppc sparc64"