summaryrefslogtreecommitdiffstatshomepage
path: root/TODO
blob: de158aa83c47ede0ca5783347681ad8d57f0f166 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
************************************************************************
* missing features
************************************************************************

- .` "macro" not implemented (see gnu/usr.bin/cvs/man/cvs.1)
  found by Anthony Bentley (anthonyjbentley@gmail.com)
  06/01/10 23:48 on tech@openbsd

- explicit blocks with missing end macro should be implicitely closed
  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

- .Bl -column .Xo support is missing
  ultimate goal:
  restore .Xr and .Dv to
  lib/libc/compat-43/sigvec.3
  lib/libc/gen/signal.3
  lib/libc/sys/sigaction.2

- .Bk / .Ek is broken, e.g.
  $ man ssh
  [...]
  ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D
  [bind_address:]port] [-e escape_char] [-F configfile] [-I pkcs11]
  reminded by Ludo Smissaert  Mon, 10 May 2010 12:15:11 +0200
  also reported by jmc@ earlier

- implement \\
  in plain text, identical to \e
  as a macro argument, identical to \ i.e. escaping the next character
  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

- 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


- FIXED OpenBSD term.h 1.16 term.c 1.30 mdoc_term.c 1.75 schwarze 23.4.10
  handle tab characters outside literal context, e.g. usb(4)
  reported by jmc@  Mon, 19 Apr 2010 07:42:12 +0100
  NEEDS MERGING TO bsd.lv

- FIXED OpenBSD man.h 1.15 libman.h 1.16 man_hash.c 1.9 
  man.c 1.25 man_macro.c 1.15 man_validate.c 1.19 man_action.c 1.15 
  man_term.c 1.28 man_html.c 1.9 schwarze 25.4.
  implement .if .ie .el
  noticed by espie@  Fri, 23 Apr 2010 17:10:35 +0200
  NEEDS MERGING TO bsd.lv

- implement blank `Bl -column', such as
  .Bl -column
  .It foo Ta bar
  .El

- explicitly disallow nested `Bl -column', which would clobber internal
  flags defined for struct mdoc_macro

- set a meaningful default if no `Bl' list type is assigned

- have a blank `It' head for `Bl -tag' not puke

- ignore horrendous m[] font colouring
  reported by J.C. Roberts
  
************************************************************************
* formatting issues: ugly output
************************************************************************

- outside list context, text following .Sm off
  seems to follow without a blank (TERM_NOBLANK reset late?) e.g.
        .Sm off
        .Xo
        .Op Ar bind_address No /
        .Ar port
        .Xc
        .Sm on
        or by enclosing
  reported by jmc Tue, 13 Apr 2010 08:48:14 +0100

- do not break the line after "--", it's probably a long option
  reminded by stsp in net/pptp pptp.8  Fri, 23 Apr 2010 20:32:39 +0200

- URGENT, this is making many kernel manuals look bad:
  .Ft/.Fn should MAYBE behave in custom section like in SYNOPSIS?
  autoconf.9:
    .Sh DIRECT CONFIGURATION
    .nr nS 1
    .Ft "struct device *"
    .Fn config_found_sm "struct device *parent"
  groff:
    DIRECT CONFIGURATION
      struct device *
      config_found_sm(struct device *parent, ...
  reported by sthen  Tue, 20 Apr 2010 13:42:51 +0100

- indentation got lost in SYNOPSIS, e.g.
   SYNOPSIS
        date [-ajnu] [-d dst] [-r seconds] [-t minutes_west] [+format]
  -          [[[[[[cc]yy]mm]dd]HH]MM[.SS]]
  +     [[[[[[cc]yy]mm]dd]HH]MM[.SS]]
  reminded by Ludo Smissaert  Mon, 10 May 2010 12:15:11 +0200

- empty phrases in .Bl column produce too few blanks
  try e.g. .Bl -column It Ta Ta
  reported by millert Fri, 02 Apr 2010 16:13:46 -0400

- nroff inserts a space before :, mandoc doesn't:
    .Dl expr "/$a" Li : '.*/\e(.*\e)'

************************************************************************
* formatting issues: gratuitious differences
************************************************************************

- FIXED OpenBSD mdoc.c 1.52 schwarze 16.5.10
  lines containing blank characters, and nothing else,
  in literal context (.Bd -literal):
  groff outputs just blank lines "\n"
  mandoc outputs blanks to the left margin,
  then the number of balnks minus one
  NEEDS MERGING TO bsd.lv


************************************************************************
* parser errors without any effect on formatting
************************************************************************

- OpenBSD::PackageName(3p) has "if (block) 90:1" in the parse tree

************************************************************************
* performance issues
************************************************************************

Several areas can be cleaned up to make mandoc even faster.  These are 

- cache `Bd' display types as `Bl' types are cached (this primarily
  improves code-size by removing the a2disp type functions)

- improve caching mechanism to handle other per-element arguments so
  that they need not be recalculated between front- and back-ends (also
  reduces code size and complexity)

- improve hashing mechanism for macros (quite important: performance)

- improve hashing mechanism for characters (not as important)