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

Diff for /mandoc/TODO between version 1.73 and 1.101

version 1.73, 2011/01/06 14:05:12 version 1.101, 2011/04/16 22:35:26
Line 7 
Line 7 
 * parser bugs  * 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  - the roff parser doesn't tolerate additional characters between
   a macro and the \} terminating a conditional block, e.g.    a macro and the \} terminating a conditional block, e.g.
   .if n \{    .if n \{
   .br \}    .br \}
   reported by ulrich spoerlein  Tue, 19 Oct 2010 20:39:50 +0200    reported by ulrich spoerlein  Tue, 19 Oct 2010 20:39:50 +0200
   
 - .BI "string string " word punct in gettext(3)  ************************************************************************
   add bogus line breaks (rep by naddy@)  * formatter bugs
   committed; currently working on IP and TP?  ************************************************************************
   and what about B and I?  
   
   - tbl(7): Horizontal and vertical lines are formatted badly:
     With the box option, there is too much white space at the end of cells.
     Horizontal lines from "=" lines are a bit too long.
     yuri dot pankov at gmail dot com  Thu, 14 Apr 2011 05:45:26 +0400
   
 ************************************************************************  ************************************************************************
 * missing features  * missing features
 ************************************************************************  ************************************************************************
   
   --- missing roff features ----------------------------------------------
   
   - .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  - pod2man expects `tr' to be implemented for \*(-- to work
   
 - explicit blocks with missing end macro should be implicitely closed  - \c (interrupted text) occurs in chat(8)
   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  
   
   - \f(CW (constant width font) occurs in rsyncd.conf(5).
     I think we should treat unknown/unavailable fonts as \fR
     such that switching back with \fP works correctly -
     and doesn't revert the _previous_ \fP.
   
   --- 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 42 
Line 77 
   .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.  
   
 - 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  
   
 - 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.  
   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 93 
Line 111 
   (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)
   
 - xloadimage(1) wants .ti (temporary indent), rep by naddy@  --- missing man features -----------------------------------------------
   
 - bashbug(1) complains "line scope broken" after  - .RS/.RE can be nested, see e.g. the x11/fluxbox manuals
   .SM    noticed by dcoppa@  Wed, Apr 13, 2011 at 04:58:14PM +0200:
   .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
   
   - The \t escape sequence is the same as a literal tab, see for example
     the ASCII table in hexdump(1) where
       .Bl -column \&000_nu \&001_so \&002_st \&003_et \&004_eo
       .It \&000\ nul\t001\ soh\t002\ stx\t003\ etx\t004\ eot\t005\ enq
     produces
       000 nul  001 soh  002 stx  003 etx  004 eot  005 enq
     and the example in oldrdist(1)
   
   - 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:  - check compatibility with Plan9:
   http://swtch.com/usr/local/plan9/tmac/tmac.an    http://swtch.com/usr/local/plan9/tmac/tmac.an
   http://swtch.com/plan9port/man/man7/man.html    http://swtch.com/plan9port/man/man7/man.html
Line 110 
Line 158 
 * formatting issues: ugly output  * formatting issues: ugly output
 ************************************************************************  ************************************************************************
   
   - a column list with blank `Ta' cells triggers a spurrious
     start-with-whitespace printing of a newline
   
 - double quotes inside double quotes are escaped by doubling them  - double quotes inside double quotes are escaped by doubling them
   implement this in man(7) and mdoc(7)    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    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@
Line 126 
Line 178 
   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
   
   - .%T can have trailing punctuation.  Currently, it puts the trailing
     punctuation into a trailing MDOC_TEXT element inside its own scope.
     That element should rather be outside its scope, such that the
     punctuation does not get underlines.  This is not trivial to
     implement because .%T then needs some features of in_line_eoln() -
     slurp all arguments into one single text element - and one feature
     of in_line() - put trailing punctuation out of scope.
     Found in mount_nfs(8) and exports(5), search for "Appendix".
   
 - in enclosures, mandoc sometimes fancies a bogus end of sentence  - in enclosures, mandoc sometimes fancies a bogus end of sentence
   reminded by jmc@  Thu, 23 Sep 2010 18:13:39 +0059    reminded by jmc@  Thu, 23 Sep 2010 18:13:39 +0059
   
Line 148 
Line 209 
   
 - 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), or before "is always true" in ksh(1).
     The same happens with .Pp just before .El, see bgpd.conf(5).
   Also have `It' complain if `Pp' is invoked at certain times (not    Also have `It' complain if `Pp' is invoked at certain times (not
   -compact?).    -compact?).
   
   - If the *first* line after .It is .Pp, break the line right after
     the tag, do not pad with space characters before breaking.
     See the description of the a, c, and i commands in sed(1).
   
   - If the first line after .It is .D1, do not assert a blank line
     in between, see for example tmux(1).
     reported by nicm@  13 Jan 2011 00:18:57 +0000
   
 - .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 160 
Line 230 
   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 the -width string contains macros, the macros must be rendered
     before measuring the width, for example
       .Bl -tag -width ".Dv message"
     in magic(5), located in src/usr.bin/file, is the same
     as -width 7n, not -width 11n.
   
 - The \& zero-width character counts as output.  - The \& zero-width character counts as output.
   That is, when it is alone on a line between two .Pp,    That is, when it is alone on a line between two .Pp,
   we want three blank lines, not two as in mandoc.    we want three blank lines, not two as in mandoc.
Line 168 
Line 244 
   should be indented, see e.g. rpc(3);    should be indented, see e.g. rpc(3);
   reported by jmc@ on discuss@  Fri, 29 Oct 2010 13:48:33 +0100    reported by jmc@ on discuss@  Fri, 29 Oct 2010 13:48:33 +0100
   
 - It seems that .TP does not want TWOSPACE after the tag;  - .Ns should work when called at the end of an input line, see
   see bashbug(1); reported by naddy@    the following code in vi(1):
       .It Xo
       .Op Ar line
       .Cm a Ns Op Cm ppend Ns
       .Op Cm !\&
       .Xc
       The input text is appended after the specified line.
   
 - Header lines of excessive length:  - Header lines of excessive length:
   Port OpenBSD man_term.c rev. 1.25 to mdoc_term.c    Port OpenBSD man_term.c rev. 1.25 to mdoc_term.c
   and document it in mdoc(7) and man(7) COMPATIBILITY    and document it in mdoc(7) and man(7) COMPATIBILITY
   found while talking to Chris Bennett    found while talking to Chris Bennett
   
   - In man(7), the sequence
       .HP
       one line of regular text
       .SH
     should not produce two blank lines before the .SH,
     see for example named-checkconf(8).
   
   - In man(7), the sequence
       regular text
       .RS
       .IP
     should have a blank line between the text and the beginning of the
     indented paragraph, see for example sudo(1).
   
   - In man(7), the sequence
       .SH HEADER
       <blank line>
       .PP
       regular text
     should not produce any blank lines between the header and the text,
     see for example rsync(1).
     Reported by naddy@  Mon, 28 Mar 2011 20:45:42 +0200
   
   - In man(7), the sequence
       regular text
       .PP
       .RS
       indented text
     should produce one blank line between the regular and indented texts,
     see for example rsync(1), and
       .RE
       <blank line>
       .PP
       .RS
     should produce two,not one blank lines.
     Reported by naddy@  Mon, 28 Mar 2011 20:45:42 +0200
   
   - In man(7), the sequence
       regular text
       .IP
       .IP "tag"
       indented text
     should produce one, not four blank lines between the regular text
     and the tag, see for example rsync(1).
     Likewise,
       regular text
       .IP
       indented text
     should produce one, not two blank lines in between, and
       regular text
       .IP
       .RS
       .IP tag
       indented text
     should produce one, not three blank lines.
     Reported by naddy@  Mon, 28 Mar 2011 20:45:42 +0200
   
   - At least sometimes, .sp is ignored right after .SH; see named.conf(5).
   
   - trailing whitespace must be ignored even when followed by a font escape,
     see for example
       makes
       \fBdig \fR
       operate in batch mode
     in dig(1).
   
 ************************************************************************  ************************************************************************
   * error reporting issues
   ************************************************************************
   
   ************************************************************************
 * performance issues  * performance issues
 ************************************************************************  ************************************************************************
   
Line 194  Several areas can be cleaned up to make mandoc even fa
Line 346  Several areas can be cleaned up to make mandoc even fa
   
 - Find better ways to prevent endless loops  - Find better ways to prevent endless loops
   in roff(7) macro and string expansion.    in roff(7) macro and string expansion.
   
   - Finish cleanup of date handling.
     Decide which formats should be recognized where.
     Update both mdoc(7) and man(7) documentation.
     Triggered by  Tim van der Molen  Tue, 22 Feb 2011 20:30:45 +0100

Legend:
Removed from v.1.73  
changed lines
  Added in v.1.101

CVSweb