[BACK]Return to TODO CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Diff for /mandoc/TODO between version 1.45 and 1.82

version 1.45, 2010/09/08 11:57:29 version 1.82, 2011/01/23 15:35:10
Line 4 
Line 4 
 ************************************************************************  ************************************************************************
   
 ************************************************************************  ************************************************************************
   * parser bugs
   ************************************************************************
   
   - .TP before .SH is still FATAL in man(7)
     reported by brad@  Sat, 15 Jan 2011 15:54:54 -0500
   
   - the roff parser doesn't tolerate additional characters between
     a macro and the \} terminating a conditional block, e.g.
     .if n \{
     .br \}
     reported by ulrich spoerlein  Tue, 19 Oct 2010 20:39:50 +0200
   
   ************************************************************************
   * formatter bugs
   ************************************************************************
   
   ************************************************************************
 * missing features  * missing features
 ************************************************************************  ************************************************************************
   
 - explicit blocks with missing end macro should be implicitely closed  --- missing roff features ----------------------------------------------
   at the end of the enclosing block, e.g. .Bl It (El) Sh  
   reminded by stsp@  in net/pptp pptp.8  Fri, 23 Apr 2010 20:32:39 +0200  
   
   - .ad (adjust margins)
     .ad l -- adjust left margin only (flush left)
     .ad r -- adjust right margin only (flush right)
     .ad c -- center text on line
     .ad b -- adjust both margins (alias: .ad n)
     .na   -- temporarily disable adjustment without changing the mode
     .ad   -- re-enable adjustment without changing the mode
     Adjustment mode is ignored while in no-fill mode (.nf).
   
   - .it (line traps) occur in mysql(1), yasm_arch(7)
     generated by DocBook XSL Stylesheets v1.71.1 <http://docbook.sf.net/>
     reported by brad@  Sat, 15 Jan 2011 15:48:18 -0500
   
   - .ns (no-space mode) occurs in xine-config(1)
     reported by brad@  Sat, 15 Jan 2011 15:45:23 -0500
   
   - xloadimage(1) wants .ti (temporary indent), rep by naddy@
   
   - .ta (tab settings) occurs in ircbug(1) and probably gnats(1)
     reported by brad@  Sat, 15 Jan 2011 15:50:51 -0500
   
   - pod2man expects `tr' to be implemented for \*(-- to work
   
   --- missing mdoc features ----------------------------------------------
   
 - fix bad block nesting involving multiple identical explicit blocks  - fix bad block nesting involving multiple identical explicit blocks
   see the OpenBSD mdoc_macro.c 1.47 commit message    see the OpenBSD mdoc_macro.c 1.47 commit message
   
Line 25 
Line 65 
   .Sh .Nm .Bk .Nm .Ek .Sh found by jmc@ in ssh-keygen(1)    .Sh .Nm .Bk .Nm .Ek .Sh found by jmc@ in ssh-keygen(1)
   from jmc@  Wed, 14 Jul 2010 18:10:32 +0100    from jmc@  Wed, 14 Jul 2010 18:10:32 +0100
   
 - auto-Bk in the SYNOPSIS  - \\ is now implemented correctly
   patch from kristaps@  Fri, 16 Jul 2010 14:51:24 +0200    * when defining strings and macros using .ds and .de
   to be revisited after OpenBSD 4.8 tree unlock    * when parsing roff(7) and man(7) macro arguments
     It does not yet work in mdoc(7) macro arguments
     because libmdoc does not yet use mandoc_getarg().
     Also check what happens in plain text, it must be identical to \e.
   
 - implement \\  - .Bd -filled should not be the same as .Bd -ragged, but align both
   in plain text, identical to \e    the left and right margin.  In groff, it is implemented in terms
   as a macro argument, identical to \ i.e. escaping the next character    of .ad b, which we don't have either.  Found in cksum(1).
   We do not have macro definitions yet; if we implement them,  
   \\ must behave in a macro def like in a macro argument,  
   and when using the macro, it must expand yet again.  
   
 - look at bsd.lv tbl(1)  
   from kristaps@  Fri, 11 Sep 2009 17:10:53 +0200  
   also look at the mail from Thomas Klausner wiz at NetBSD  
     on Wed, 2 Jun 2010 11:01:29 +0200  
   joerg@ has patches for this somewhere...  
   
 - look at pages generated from reStructeredText, e.g. devel/mercurial hg(1)  
   These are a weird mixture of man(7) and custom autogenerated low-level  
   roff stuff.  Figure out to what extent we can cope.  
   noted by stsp@  Sat, 24 Apr 2010 09:17:55 +0200  
   reminded by nicm@  Mon, 3 May 2010 09:52:41 +0100  
   
 - implement blank `Bl -column', such as  - implement blank `Bl -column', such as
   .Bl -column    .Bl -column
   .It foo Ta bar    .It foo Ta bar
Line 71 
Line 99 
   (e.g., NetBSD mDNSShared/dns-sd.1)    (e.g., NetBSD mDNSShared/dns-sd.1)
   (mdoc_html.c and mdoc_term.c `Nm' handlers can be slightly simplified)    (mdoc_html.c and mdoc_term.c `Nm' handlers can be slightly simplified)
   
 - allow `Qq', `Dq', `Sq', `Aq', `Bq' to have 0 arguments  --- missing man features -----------------------------------------------
   noted by Alex Kozlov 08/06/10 23:05  
   
   - bashbug(1) complains "line scope broken" after
     .SM
     .B something
     should either just work or be a warning
     reported by naddy@
   
   - groff an-ext.tmac macros (.UR, .UE) occur in xine(5)
     reported by brad@  Sat, 15 Jan 2011 15:45:23 -0500
   
   --- missing tbl features -----------------------------------------------
   
   - implement basic non-parametric .de to support e.g. sox(1)
     reported by naddy@ Sat, 16 Oct 2010 23:51:57 +0200
     *** sox(1) still doesn't work, tbl(1) errors need investigation
   
   --- missing misc features ----------------------------------------------
   
   - clean up escape sequence handling, creating three classes:
     (1) fully implemented, or parsed and ignored without loss of content
     (2) unimplemented, potentially causing loss of content
         or serious mangling of formatting (e.g. \n) -> ERROR
         see textproc/mgdiff(1) for nice examples
     (3) undefined, just output the character -> perhaps WARNING
   
   - look at pages generated from reStructeredText, e.g. devel/mercurial hg(1)
     These are a weird mixture of man(7) and custom autogenerated low-level
     roff stuff.  Figure out to what extent we can cope.
     For details, see http://docutils.sourceforge.net/rst.html
     noted by stsp@  Sat, 24 Apr 2010 09:17:55 +0200
     reminded by nicm@  Mon, 3 May 2010 09:52:41 +0100
   
   - check compatibility with Plan9:
     http://swtch.com/usr/local/plan9/tmac/tmac.an
     http://swtch.com/plan9port/man/man7/man.html
     "Anthony J. Bentley" <anthonyjbentley@gmail.com> 28 Dec 2010 21:58:40 -0700
   
 ************************************************************************  ************************************************************************
 * formatting issues: ugly output  * formatting issues: ugly output
 ************************************************************************  ************************************************************************
   
   - double quotes inside double quotes are escaped by doubling them
     implement this in mdoc(7), too
     so far, we only have it in roff(7) and man(7)
     reminded by millert@  Thu, 09 Dec 2010 17:29:52 -0500
   
 - perl(1) SYNOPSIS looks bad; reported by deraadt@  - perl(1) SYNOPSIS looks bad; reported by deraadt@
   1) man(7) seems to need SYNOPSIS .Nm blocks, too    1) man(7) seems to need SYNOPSIS .Nm blocks, too
   
Line 90 
Line 158 
   try e.g. .Bl -column It Ta Ta    try e.g. .Bl -column It Ta Ta
   reported by millert Fri, 02 Apr 2010 16:13:46 -0400    reported by millert Fri, 02 Apr 2010 16:13:46 -0400
   
   - in enclosures, mandoc sometimes fancies a bogus end of sentence
     reminded by jmc@  Thu, 23 Sep 2010 18:13:39 +0059
   
 ************************************************************************  ************************************************************************
 * formatting issues: gratuitious differences  * formatting issues: gratuitious differences
 ************************************************************************  ************************************************************************
   
 - .%T should be quoted, not underlined, when .%J is also present,  - .Rv (and probably .Ex) print different text if an `Nm' has been named
   to better distinguish the contents of .%T and .%J,    or not (run a manual without `Nm blah' to see this).  I'm not sure
   see for example OpenBSD cat(1)    that this exists in the wild, but it's still an error.
   
 - .It ${name Ns [ selector ] Ns }  
   should be "${name[selector]}" not "${name [selector]}"  
   This is parsed as  
   text("${name") text("[") Ns() text(selector)...  
   Opening punctuation should not fall out of .Ns.  
   see for example OpenBSD csh(1)  
   
 - In .Bl -bullet, the groff bullet is "+\b+\bo\bo", the mandoc bullet  - In .Bl -bullet, the groff bullet is "+\b+\bo\bo", the mandoc bullet
   is just "o\bo".    is just "o\bo".
   see for example OpenBSD ksh(1)    see for example OpenBSD ksh(1)
   
 - .No text No ) is "text )", not "text)"  
   see the terrible example  
     case word in [[(]  pattern [| pattern] ... ) list ;; ] ... esac  
   in OpenBSD ksh(1)  
   
 - .Sm should *not* produce as a blank line in .Bd -literal  
   see for example "Brace expansion" in OpenBSD ksh(1)  
   
 - The characters "|" and "\*(Ba" should never be bold,  - The characters "|" and "\*(Ba" should never be bold,
   not even in the middle of a word, e.g. ".Cm b\*(Bac" in    not even in the middle of a word, e.g. ".Cm b\*(Bac" in
   "mknod [-m mode] name b|c major minor"    "mknod [-m mode] name b|c major minor"
Line 125 
Line 181 
 - A bogus .Pp between two .It must not produce a double blank line,  - A bogus .Pp between two .It must not produce a double blank line,
   see between -R and -r in OpenBSD rm(1), before "update" in mount(8),    see between -R and -r in OpenBSD rm(1), before "update" in mount(8),
   or in DIAGNOSTICS in init(8).    or in DIAGNOSTICS in init(8).
     Also have `It' complain if `Pp' is invoked at certain times (not
     -compact?).
   
 - .Bd -literal and .Bd -unfilled are *not* identical.  
   In -literal, tabs are 8 spaces.  
   In -unfilled, tabs are 5 spaces, just like in -filled and -ragged.  
   See the CCDF_* display in OpenBSD ccdconfig(8).  
   
 - In .Bd -unfilled, .Pp should produce one blank line, not two;  
   see the ccd.conf display in OpenBSD ccdconfig(8).  
   
 - .Nx 1.0a  - .Nx 1.0a
   should be "NetBSD 1.0A", not "NetBSD 1.0a",    should be "NetBSD 1.0A", not "NetBSD 1.0a",
   see OpenBSD ccdconfig(8).    see OpenBSD ccdconfig(8).
Line 142 
Line 192 
   on the next line, it must be indented by -width, not width+1;    on the next line, it must be indented by -width, not width+1;
   see "rule block|pass" in OpenBSD ifconfig(8).    see "rule block|pass" in OpenBSD ifconfig(8).
   
 - When .%T is used outside an .Rs context and with a trailing comma,  - The \& zero-width character counts as output.
   there is no point in rendering two commata,    That is, when it is alone on a line between two .Pp,
   see the first paragraph of the DESCRIPTION in OpenBSD mount_nfs(8).    we want three blank lines, not two as in mandoc.
   
 - When .%T is used outside an .Rs context and without a trailing comma,  - When .Fn arguments exceed one output line, all but the first
   no comma should be rendered at all,    should be indented, see e.g. rpc(3);
   see the first paragraph of the DESCRIPTION in OpenBSD exports(5).    reported by jmc@ on discuss@  Fri, 29 Oct 2010 13:48:33 +0100
   
 - Bogus .Pp before .Bl should not cause a double blank line,  - Header lines of excessive length:
   see "The route utility provides the following simple commands:"    Port OpenBSD man_term.c rev. 1.25 to mdoc_term.c
   in OpenBSD route(8).    and document it in mdoc(7) and man(7) COMPATIBILITY
     found while talking to Chris Bennett
   
 - In -T[x]html, Rs/Re need a div.  ************************************************************************
   * error reporting issues
   ************************************************************************
   
 ************************************************************************  ************************************************************************
 * performance issues  * performance issues
Line 172  Several areas can be cleaned up to make mandoc even fa
Line 225  Several areas can be cleaned up to make mandoc even fa
 * structural issues  * structural issues
 ************************************************************************  ************************************************************************
   
 - rendering frontend code can calculate widths only for plain strings,  - Find better ways to prevent endless loops
   not for strings containing escape sequences.  For example, this    in roff(7) macro and string expansion.
   hinders calculation of the indent required for .Nm \&[ in text(1).  
   comments from kristaps@  Wed, 21 Jul 2010 23:26:08 +0200  
   
 - another example of the same problem:  
   .Bl -tag -width "\eD{format}XX" -compact  
   in OpenBSD ksh(1) gives the wrong width  
   because "\e" is one character in groff, two in mandoc  
   
 - Now that `ds' is minimally supported, we can get rid of some  
   predefined strings.  \*(C+ has already been thrown out.  Track these  
   down and whack them.  Look in e.g. gcc.1 for the top-level `ds'  
   invocations.  These are reproduced across most crappy GNU manuals.  

Legend:
Removed from v.1.45  
changed lines
  Added in v.1.82

CVSweb