1************************************************************************ 2* Official mandoc TODO. 3* $Id: TODO,v 1.289 2019/03/04 13:01:57 schwarze Exp $ 4************************************************************************ 5 6Many issues are annotated for difficulty as follows: 7 8 - loc = locality of the issue 9 * single file issue, affects file only, or very few 10 ** single module issue, affects several files of one module 11 *** cross-module issue, significantly impacts multiple modules 12 and may require substantial changes to internal interfaces 13 - exist = difficulty of the existing code in this area 14 * affected code is straightforward and easy to read and change 15 ** affected code is somewhat complex, but once you understand 16 the design, not particularly difficult to understand 17 *** affected code uses a special, exceptionally tricky design 18 - algo = difficulty of the new algorithm to be written 19 * the required logic and code is straightforward 20 ** the required logic is somewhat complex and needs a careful design 21 *** the required logic is exceptionally tricky, 22 maybe an approach to solve that is not even known yet 23 - size = the amount of code to be written or changed 24 * a small number of lines (at most 100, usually much less) 25 ** a considerable amount of code (several dozen to a few hundred) 26 *** a large amount of code (many hundreds, maybe thousands) 27 - imp = importance of the issue 28 * mostly for completeness 29 ** would be nice to have 30 *** issue causes considerable inconvenience 31 32Obviously, as the issues have not been solved yet, these annotations 33are mere guesses, and some may be wrong. 34 35************************************************************************ 36* missing features 37************************************************************************ 38 39--- missing roff features ---------------------------------------------- 40 41- .ad (adjust margins) 42 .ad l -- adjust left margin only (flush left) 43 .ad r -- adjust right margin only (flush right) 44 .ad c -- center text on line 45 .ad b -- adjust both margins (alias: .ad n) 46 .na -- temporarily disable adjustment without changing the mode 47 .ad -- re-enable adjustment without changing the mode 48 Adjustment mode is ignored while in no-fill mode (.nf). 49 loc *** exist *** algo ** size ** imp ** (parser reorg would help) 50 51- .fc (field control) 52 found by naddy@ in xloadimage(1) 53 loc ** exist *** algo * size * imp * 54 55- .ns (no-space mode) occurs in xine-config(1) 56 when implementing this, also let .TH set it 57 reported by brad@ Sat, 15 Jan 2011 15:45:23 -0500 58 loc *** exist *** algo *** size ** imp * 59 60- \w'' improve width measurements 61 would not be very useful without an expression parser, see below 62 needed for Tcl_NewStringObj(3) via wiz@ Wed, 5 Mar 2014 22:27:43 +0100 63 loc ** exist *** algo *** size * imp *** 64 65--- missing mdoc features ---------------------------------------------- 66 67- .Bl -column .Xo support is missing 68 ultimate goal: 69 restore .Xr and .Dv to 70 lib/libc/compat-43/sigvec.3 71 lib/libc/gen/signal.3 72 lib/libc/sys/sigaction.2 73 loc * exist *** algo *** size * imp ** 74 75- edge case: decide how to deal with blk_full bad nesting, e.g. 76 .Sh .Nm .Bk .Nm .Ek .Sh found by jmc@ in ssh-keygen(1) 77 from jmc@ Wed, 14 Jul 2010 18:10:32 +0100 78 loc * exist *** algo *** size ** imp ** 79 80- .Bd -filled should not be the same as .Bd -ragged, but align both 81 the left and right margin. In groff, it is implemented in terms 82 of .ad b, which we don't have either. Found in cksum(1). 83 loc *** exist *** algo ** size ** imp ** (parser reorg would help) 84 85- implement blank `Bl -column', such as 86 .Bl -column 87 .It foo Ta bar 88 .El 89 loc * exist *** algo *** size * imp * 90 91- explicitly disallow nested `Bl -column', which would clobber internal 92 flags defined for struct mdoc_macro 93 loc * exist * algo * size * imp ** 94 95- In .Bl -column .It, the end of the line probably has to be regarded 96 as an implicit .Ta, if there could be one, see the following mildly 97 ugly code from login.conf(5): 98 .Bl -column minpasswordlen program xetcxmotd 99 .It path Ta path Ta value of Dv _PATH_DEFPATH 100 .br 101 Default search path. 102 reported by Michal Mazurek <akfaew at jasminek dot net> 103 via jmc@ Thu, 7 Apr 2011 16:00:53 +0059 104 loc * exist *** algo ** size * imp ** 105 106- inside `.Bl -column' phrases, punctuation is handled like normal 107 text, e.g. `.Bl -column .It Fl x . Ta ...' should give "-x -." 108 109- inside `.Bl -column' phrases, TERMP_IGNDELIM handling by `Pf' 110 is not safe, e.g. `.Bl -column .It Pf a b .' gives "ab." 111 but should give "ab ." 112 113- prohibit `Nm' from having non-text HEAD children 114 (e.g., NetBSD mDNSShared/dns-sd.1) 115 (mdoc_html.c and mdoc_term.c `Nm' handlers can be slightly simplified) 116 117- support translated section names 118 e.g. x11/scrotwm scrotwm_es.1:21:2: error: NAME section must be first 119 that one uses NOMBRE because it is spanish... 120 deraadt tends to think that section-dependent macro behaviour 121 is a bad idea in the first place, so this may be irrelevant 122 loc ** exist ** algo ** size * imp ** 123 124- When there is free text in the SYNOPSIS and that free text contains 125 the .Nm macro, groff somehow understands to treat the .Nm as an in-line 126 macro, while mandoc treats it as a block macro and breaks the line. 127 No idea how the logic for distinguishing in-line and block instances 128 should be, needs investigation. 129 uqs@ Thu, 2 Jun 2011 11:03:51 +0200 130 uqs@ Thu, 2 Jun 2011 11:33:35 +0200 131 loc * exist ** algo *** size * imp ** 132 133--- missing man features ----------------------------------------------- 134 135- groff_www(7) .MTO and .URL 136 These macros were used by the GNU grep(1) man page. 137 The groff_www(7) manual page itself uses them, too. 138 We should probably *not* add them to mandoc. 139 Just mentioning this here to keep track of the abuse. 140 Laura Morales <lauretas at mail dot com> 20 Apr 2018 07:33:02 +0200 141 loc ** exist * algo * size ** imp * 142 143--- missing tbl features ----------------------------------------------- 144 145- vertical centering in cells vertically spanned with ^ 146 pali dot rohar at gmail dot com 16 Jul 2018 13:03:35 +0200 147 loc * exist *** algo *** size ** imp * 148 149- support mdoc(7) and man(7) macros inside tbl(7) code; 150 probably requires the parser reorg and letting tbl(7) 151 use roff_node such that macro sets can mix; 152 informed by bapt@ that FreeBSD needs this: 3 Jan 2015 23:32:23 +0100 153 loc *** exist ** algo *** size ** imp *** 154 155- look at the POSIX manuals in the books/man-pages-posix port, 156 they use some unsupported tbl(7) features, mostly macros in tbl(7). 157 loc * exist ** algo ** size ** imp *** 158 159- look what Joerg Schilling manual pages use 160 Thu, 19 Mar 2015 18:31:48 +0100 161 162--- missing eqn features ----------------------------------------------- 163 164- In a matrix, break the output line after each matrix line. 165 Found in the discussion at CDBUG 2015. Suggested by Avi Weinstock. 166 This may not be the ideal solution after all: eqn(7) matrices 167 are lists of columns, so Avi's proposal would show each *column* 168 on its own *line*, which is likely to cause confusion. 169 A better solution, but much harder to implement, would be to 170 actually show the coordinates of column vectors on different 171 terminal output lines, using the clumnated output facilities 172 developed for .Bl -tag, .Bl -column, and also used for tbl(7). 173 loc * exist * algo ** size ** imp ** 174 175- The "size" keyword is parsed, but ignored by the formatter. 176 loc * exist * algo * size * imp * 177 178- The spacing characters `~', `^', and tab are currently ignored, 179 see User's Guide (Second Edition) page 2 section 4. 180 loc * exist * algo ** size * imp ** 181 182- Mark and lineup are parsed and ignored, 183 see User's Guide (Second Edition) page 5 section 15. 184 loc ** exist ** algo ** size ** imp ** 185 186- GNU eqn converts some operators to special characters, for example, 187 input HYPHEN-MINUS becomes output \(mi, unless it is part of a 188 quoted word. mandoc(1) only does this when the operator is 189 surrounded by blanks, not when it is part of an unquoted word. 190 Also, check whether there are more such cases (e.g., +?). 191 reported by bentley@ 20 Jun 2017 02:04:29 -0600 192 loc * exist ** algo ** size * imp * 193 194- Primes, opprime, and ' 195 bentley@ Thu, 13 Jul 2017 23:14:20 -0600 196 197--- missing misc features ---------------------------------------------- 198 199- man -ks 1,8 route; kn@ Jul 13, 2018 orally 200 201- italic correction (\/) in PostScript mode 202 Werner LEMBERG on groff at gnu dot org Sun, 10 Nov 2013 12:47:46 203 loc ** exist ** algo * size * imp * 204 205- change the default PAGER to more -Es and use the pager 206 even for apropos title line output; req by bapt@ 207 loc * exist * algo * size * imp *** 208 209- clean up escape sequence handling, creating three classes: 210 (1) fully implemented, or parsed and ignored without loss of content 211 (2) unimplemented, potentially causing loss of content 212 or serious mangling of formatting (e.g. \n) -> ERROR 213 see textproc/mgdiff(1) for nice examples 214 (3) undefined, just output the character -> perhaps WARNING 215 loc *** exist ** algo ** size ** imp *** (parser reorg helps) 216 217- kettenis wants base roff, ms, and me Fri, 1 Jan 2010 22:13:15 +0100 (CET) 218 loc ** exist ** algo ** size *** imp * 219 220--- compatibility checks ----------------------------------------------- 221 222- is .Bk implemented correctly in modern groff? 223 sobrado@ Tue, 19 Apr 2011 22:12:55 +0200 224 225- compare output to Heirloom roff, Solaris roff, and 226 http://repo.or.cz/w/neatroff.git http://litcave.rudi.ir/ 227 228- look at AT&T DWB http://www2.research.att.com/sw/download 229 Carsten Kunze <carsten dot kunze at arcor dot de> has patches 230 Mon, 4 Aug 2014 17:01:28 +0200 231 ported version: https://github.com/n-t-roff/DWB3.3 232 Carsten Kunze Wed, 22 Apr 2015 11:21:43 +0200 233 234- look at pages generated from reStructeredText, e.g. devel/mercurial hg(1) 235 These are a weird mixture of man(7) and custom autogenerated low-level 236 roff stuff. Figure out to what extent we can cope. 237 For details, see http://docutils.sourceforge.net/rst.html 238 noted by stsp@ Sat, 24 Apr 2010 09:17:55 +0200 239 reminded by nicm@ Mon, 3 May 2010 09:52:41 +0100 240 241- look at pages generated from ronn(1) github.com/rtomayko/ronn 242 (based on markdown) 243 244- look at pages generated from Texinfo source by yat2m, e.g. security/gnupg 245 First impression is not that bad. 246 247- look at pages generated by pandoc; see 248 https://github.com/jgm/pandoc/blob/master/src/Text/Pandoc/Writers/Man.hs 249 porting planned by kili@ Thu, 19 Jun 2014 19:46:28 +0200 250 251- check compatibility with Plan9: 252 http://swtch.com/usr/local/plan9/tmac/tmac.an 253 http://swtch.com/plan9port/man/man7/man.html 254 "Anthony J. Bentley" <anthonyjbentley@gmail.com> 28 Dec 2010 21:58:40 -0700 255 256- check compatibility with COHERENT troff: 257 http://www.nesssoftware.com/home/mwc/source.php 258 259- check compatibility with the man(7) formatter 260 https://raw.githubusercontent.com/rofl0r/hardcore-utils/master/man.c 261 262- check compatibility with 263 http://ikiwiki.info/plugins/contrib/mandoc/ 264 https://github.com/schmonz/ikiwiki/compare/mandoc 265 Amitai Schlair Mon, 19 May 2014 14:05:53 -0400 266 267- check features of the Slackware man.conf(5) format 268 Carsten Kunze Wed, 11 Mar 2015 17:57:24 +0100 269 270************************************************************************ 271* formatting issues: ugly output 272************************************************************************ 273 274- revisit empty in-line macros 275 look at the difference between "Em x Em ." and "Sq x Em ." 276 Carsten Kunze Fri, 12 Dec 2014 00:15:41 +0100 277 loc *** exist *** algo *** size * imp ** 278 279- a column list with blank `Ta' cells triggers a spurious 280 start-with-whitespace printing of a newline 281 282- In .Bl -column, .It a<tab>"b<tab>c" 283 shows the quotes in groff, but not in mandoc 284 loc * exist *** algo ** size * imp ** 285 286- In .Bl -column, 287 .It Em Authentication<tab>Key Length 288 ought to render "Key Length" with emphasis, too, 289 see OpenBSD iked.conf(5). 290 reported again Nicolas Joly via wiz@ Wed, 12 Oct 2011 00:20:00 +0200 291 loc * exist *** algo *** size ** imp *** 292 293- empty phrases in .Bl column produce too few blanks 294 try e.g. .Bl -column It Ta Ta 295 reported by millert Fri, 02 Apr 2010 16:13:46 -0400 296 loc * exist *** algo *** size * imp ** 297 298- .%T can have trailing punctuation. Currently, it puts the trailing 299 punctuation into a trailing MDOC_TEXT element inside its own scope. 300 That element should rather be outside its scope, such that the 301 punctuation does not get underlines. This is not trivial to 302 implement because .%T then needs some features of in_line_eoln() - 303 slurp all arguments into one single text element - and one feature 304 of in_line() - put trailing punctuation out of scope. 305 Found in mount_nfs(8) and exports(5), search for "Appendix". 306 loc ** exist ** algo *** size * imp ** 307 308- Trailing punctuation after .%T triggers EOS spacing, at least 309 outside .Rs (eek!). Simply setting ARGSFL_DELIM for .%T is not 310 the right solution, it sends mandoc into an endless loop. 311 reported by Nicolas Joly Sat, 17 Nov 2012 11:49:54 +0100 312 loc * exist ** algo ** size * imp ** 313 314- global variables in the SYNOPSIS of section 3 pages 315 .Vt vs .Vt/.Va vs .Ft/.Va vs .Ft/.Fa ... 316 from kristaps@ Tue, 08 Jun 2010 11:13:32 +0200 317 318- implicit whitespace around inline equations 319 example code: where '$times$' denotes matrix multiplication 320 must not have an HTML line break, nor a blank, before <math> 321 partial solution: html.c {"math", HTML_NLINSIDE | HTML_INDENT}, 322 bentley@ Thu, 13 Jul 2017 19:00:59 -0600 323 324- in enclosures, mandoc sometimes fancies a bogus end of sentence 325 reminded by jmc@ Thu, 23 Sep 2010 18:13:39 +0059 326 loc * exist ** algo *** size * imp *** 327 328- a line starting with "\fB something" counts as starting with whitespace 329 and triggers a line break; found in audio/normalize-mp3(1) 330 This will become easier once escape sequences are represented 331 by syntax tree nodes. 332 loc ** exist * algo ** size * imp ** 333 334- formatting /usr/local/man/man1/latex2man.1 with groff and mandoc 335 reveals lots of bugs both in groff and mandoc... 336 reported by bentley@ Wed, 22 May 2013 23:49:30 -0600 337 338--- PostScript and PDF issues ------------------------------------------ 339 340- PDF output doesn't use a monospaced font for .Bd -literal 341 Example: "mandoc -Tpdf afterboot.8 > output.pdf && pdfviewer output.pdf". 342 Search the text "Routing tables". 343 Also check what PostScript mode does when fixing this. 344 reported by juanfra@ Wed, 04 Jun 2014 21:44:58 +0200 345 instructions from juanfra@ Wed, 11 Jun 2014 02:21:01 +0200 346 add a new <</Type /Font>> block to the PDF files with /BaseFont /Courier 347 and change the /Name from /F0 to the new font (/F5 (?)). 348 re-reported by tb@ Mon, 16 Mar 2015 16:47:21 +0100 349 loc * exist ** algo ** size * imp ** 350 351--- HTML issues -------------------------------------------------------- 352 353- .Bf at the beginning of a paragraph inserts a bogus 1ex horizontal 354 space, see for example random(3). Introduced in 355 http://mdocml.bsd.lv/cgi-bin/cvsweb/mdoc_html.c.diff?r1=1.91&r2=1.92 356 reported by deraadt@ Mon, 28 Sep 2015 20:14:13 -0600 (MDT) 357 loc ** exist ** algo ** size * imp * 358 359- jsg on icb, Nov 3, 2014: 360 try to guess Xr in man(7) for hyperlinking 361 and render them with <a class="Xr" href=...> 362 https://github.com/Debian/debiman/issues/15 363 loc * exist * algo ** size ** imp ** 364 365- The tables used to render the three-part page headers actually force 366 the width of the <body> to the max-width given for <html>. 367 Not yet sure how to fix that... 368 Observed by an Anonymous Coward on undeadly.org: 369 http://undeadly.org/cgi?action=article&sid=20140925064244&pid=1 370 loc * exist * algo ** size * imp *** 371 372- generate <img> tags in HTML 373 idea from florian@ Tue, 7 Apr 2015 00:26:28 +0000 374 may be possible to implement with .Lk img://something.png alt_text 375 376- check https://github.com/trentm/mdocml 377 378************************************************************************ 379* formatting issues: gratuitous differences 380************************************************************************ 381 382- .Fn reopens a new scope after punctuation in mandoc, 383 but closes its scope for good in groff. 384 Do we want to change mandoc or groff? 385 Steffen Nurpmeso Sat, 08 Nov 2014 13:34:59 +0100 386 loc * exist ** algo ** size * imp ** 387 388- In .Bl -enum -width 0n, groff continues one the same line after 389 the number, mandoc breaks the line. 390 mail to kristaps@ Mon, 20 Jul 2009 02:21:39 +0200 391 loc * exist ** algo ** size * imp ** 392 393- .Pp between two .It in .Bl -column should produce one, 394 not two blank lines, see e.g. login.conf(5). 395 reported by jmc@ Sun, 17 Apr 2011 14:04:58 +0059 396 reported again by sthen@ Wed, 18 Jan 2012 02:09:39 +0000 (UTC) 397 loc * exist *** algo ** size * imp ** 398 399- If the *first* line after .It is .Pp, break the line right after 400 the tag, do not pad with space characters before breaking. 401 See the description of the a, c, and i commands in sed(1). 402 loc * exist ** algo ** size * imp ** 403 404- If the first line after .It is .D1, do not assert a blank line 405 in between, see for example tmux(1). 406 reported by nicm@ 13 Jan 2011 00:18:57 +0000 407 loc * exist ** algo ** size * imp ** 408 409- Trailing punctuation after .It should trigger EOS spacing. 410 reported by Nicolas Joly Sat, 17 Nov 2012 11:49:54 +0100 411 Probably, this should be fixed somewhere in termp_it_pre(), not sure. 412 loc * exist ** algo ** size * imp ** 413 414- When the -width string contains macros, the macros must be rendered 415 before measuring the width, for example 416 .Bl -tag -width ".Dv message" 417 in magic(5), located in src/usr.bin/file, is the same 418 as -width 7n, not -width 11n. 419 The same applies to .Bl -column column widths; 420 reported again by Nicolas Joly Thu, 1 Mar 2012 13:41:26 +0100 via wiz@ 5 Mar 421 reported again by Franco Fichtner Fri, 27 Sep 2013 21:02:28 +0200 422 reported again by Bruce Evans Fri, 17 Feb 2017 21:22:44 +0100 via bapt@ 423 loc *** exist *** algo *** size ** imp *** 424 An easy partial fix would be to just skip the first word if it starts 425 with a dot, including any following white space, when measuring. 426 loc * exist * algo * size * imp *** 427 428- The \& zero-width character counts as output. 429 That is, when it is alone on a line between two .Pp, 430 we want three blank lines, not two as in mandoc. 431 loc ** exist ** algo ** size * imp ** 432 433- Sequences of multiple man(7) paragraphs (.PP, .IP) interspersed 434 with .ps and .nf/.fi produce execessive blank lines, see libJudy 435 and graphics/dcmtk. The parser reorg may help with this. 436 437- trailing whitespace must be ignored even when followed by a font escape, 438 see for example 439 makes 440 \fBdig \fR 441 operate in batch mode 442 in dig(1). 443 loc ** exist ** algo ** size * imp ** 444 445************************************************************************ 446* warning issues 447************************************************************************ 448 449- warn about duplicate .Sh/.Ss heads 450 gre(4): Rename duplicate sections 20 Apr 2018 15:27:33 +0200 451 loc * exist * algo * size * imp ** 452 453- style message about macros inside .Bd -literal and .Dl, in particular 454 font changing macros like .Cm, .Ar, .Fa (from the mdoclint TODO) 455 456- style message about mismatches between the section number in the 457 file name (if it is known) and the section number in .Dt 458 (from the mdoclint TODO) 459 460- style message about NULL without .Dv (from the mdoclint TODO) 461 462- style message about error constants without .Er (from the mdoclint TODO) 463 464- warn when .Sh or .Ss contain other macros 465 Steffen Nurpmeso, savannah.gnu.org/bugs/index.php?45034 466 loc * exist * algo * size * imp ** 467 468- style message about violations of the convention 469 .An name Aq Mt localpart@domain in AUTHORS (from the mdoclint TODO) 470 471- warn about attempts to call non-callable macros 472 Steffen Nurpmeso Tue, 11 Nov 2014 22:55:16 +0100 473 Note that formatting is inconsistent in groff. 474 .Fn Po prints "Po()", .Ar Sh prints "file ..." and no "Sh". 475 Relatively hard because the relevant code is scattered 476 all over mdoc_macro.c and all subtly different. 477 loc ** exist ** algo ** size ** imp ** 478 479- warn about punctuation - e.g. ',' and ';' - at the beginning 480 of a text line, if it is likely intended to follow the preceding 481 output without intervening whitespace, in particular after a 482 macro line (from the mdoclint TODO) 483 484- makewhatis -p complains about language subdirectories: 485 /usr/local/man//ru: Unknown directory part 486 487 488************************************************************************ 489* documentation issues 490************************************************************************ 491 492- mark macros as: page structure domain, manual domain, general text domain 493 is this useful? 494 495- mention /usr/share/misc/mdoc.template in mdoc(7)? 496 497- Is all the content from http://www.std.com/obi/BSD/doc/usd/28.tbl/tbl 498 covered in tbl(7)? 499 500************************************************************************ 501* performance issues 502************************************************************************ 503 504- the PDF file is HUGE: this can be reduced by using relative offsets 505 506************************************************************************ 507* structural issues 508************************************************************************ 509 510- POSIX says in the documentation of sysconf(3) that PATH_MAX 511 is allowed to be so large that it is a bad idea to use it 512 for sizing static buffers. So use dynamic buffers throughout. 513 See the file test-PATH_MAX.c for details. 514 Found by Aaron M. Ucko in the GNU Hurd via Bdale Garbee, 515 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=829624 516 517- Is it possible to further simplify ENDBODY_SPACE? 518 519- Find better ways to prevent endless loops 520 in roff(7) macro and string expansion. 521 522- make buffers for parsing functions const 523 christos@ via wiz@ Fri, 18 Dec 2015 17:10:01 +0100 524 525- struct mparse refactoring 526 Steffen Nurpmeso Thu, 04 Sep 2014 12:50:00 +0200 527 528************************************************************************ 529* CGI issues 530************************************************************************ 531 532 - Enable HTTP compression by detecting gzip encoding and filtering 533 output through libz. 534 - Privilege separation (see OpenSSH). 535 - Enable caching support via HTTP 304 and If-Modified-Since. 536 537************************************************************************ 538* to improve in the groff_mdoc(7) macros 539************************************************************************ 540 541- .Cd # arch1, arch2 in section 4 pages: 542 find better way to indicate multiple architectures, maybe: 543 allow .Dt vgafb 4 "macppc sparc64" 544 already shown as "Device Drivers Manual (macppc sparc64)" 545 for apropos, make that "vgafb(4) - macppc # sparc64" instead of "- all" 546 groff can be made to show multiple arches, too, but it is 547 tedious to do the string parsing in roff code... 548 jmc@ 23 Apr 2018 07:24:52 +0100 [man for vgafb(4)...] 549 loc ** exist ** algo * size * imp *** 550 551- use uname(1) to set doc-default-operating-system at install time 552 tobimensch Mon, 1 Dec 2014 00:25:07 +0100 553 554- apostrophe (39), circumflex (94), grave (96), tilde (126) 555 in manuals: \(aq, \(ha, \`, \(ti 556 Re: [Groff] ASCII Minus Sign in man Pages. 557 bentley@ 26 Apr 2017 10:02:06 -0600 558 Do we need to fix existing manuals? 559 Do we need to fix the definition of the mdoc(7) language? 560