xref: /freebsd/contrib/mandoc/NEWS (revision c1c95add8c80843ba15d784f95c361d795b1f593)
1*c1c95addSBrooks Davis$Id: NEWS,v 1.41 2021/09/25 15:42:08 schwarze Exp $
261d06d6bSBaptiste Daroussin
361d06d6bSBaptiste DaroussinThis file lists the most important changes in the mandoc.bsd.lv distribution.
461d06d6bSBaptiste Daroussin
56d38604fSBaptiste DaroussinChanges in version 1.14.6, released on September 23, 2021
66d38604fSBaptiste Daroussin
76d38604fSBaptiste Daroussin    --- MAJOR NEW FEATURES ---
86d38604fSBaptiste Daroussin * mdoc(7): automatic tagging improved in many respects
96d38604fSBaptiste Daroussin * mdoc(7): new .Tg (tag) macro to explicitly mark a place as defining a term
106d38604fSBaptiste Daroussin * man(7): implement some automatic tagging support
116d38604fSBaptiste Daroussin * man(1): let -w without argument show the manpath, like in man-db and man-1.6
126d38604fSBaptiste Daroussin * -T html: wrap text and phrasing elements in paragraphs unless already
136d38604fSBaptiste Daroussin   contained in flow containers; never put them directly into sections.
146d38604fSBaptiste Daroussin   This helps to format paragraphs with the CSS class selector .Pp.
156d38604fSBaptiste Daroussin * man.conf(5): remove support for the "_whatdb" configuration directive
166d38604fSBaptiste Daroussin   that was deprecated in 2015; please use "manpath" instead
176d38604fSBaptiste Daroussin    --- MINOR NEW FEATURES ---
186d38604fSBaptiste Daroussin * man(1): switch the default pager from "more -s" to "less"
196d38604fSBaptiste Daroussin * man(1): in the fallback code to look for manual pages without using
206d38604fSBaptiste Daroussin   mandoc.db(5), accept files "man<one-digit-section>/<name>.<full-section>"
216d38604fSBaptiste Daroussin   in addition to the already supported "man<full-section>/name.[01-9]*"
226d38604fSBaptiste Daroussin * if messages are shown and output is printed without a pager, display
236d38604fSBaptiste Daroussin   a heads-up on stderr at the end because otherwise, users may easily
246d38604fSBaptiste Daroussin   miss the messages
256d38604fSBaptiste Daroussin * man.cgi(8): add a Content-Security-Policy HTTP header
266d38604fSBaptiste Daroussin * man.cgi(8): switch off autocomplete and autocapitalize
276d38604fSBaptiste Daroussin * mandoc.css: support prefers-color-scheme: dark
286d38604fSBaptiste Daroussin * -T html: add meta viewport element to help mobile devices
296d38604fSBaptiste Daroussin * -T html -O tag: let this pass a file:// URI to the pager
306d38604fSBaptiste Daroussin * tbl(7): implement the "nospaces" option
316d38604fSBaptiste Daroussin * tbl(7) -T html: implement the "a" (em indent) layout specification
326d38604fSBaptiste Daroussin * tbl(7) -T html: implement the "b" (bold) and "i" (italic) layout modifiers
336d38604fSBaptiste Daroussin * tbl(7): support two-character font names in the layout font modifier
346d38604fSBaptiste Daroussin * tbl(7) -T html: support horinzontal rulers in individual cells
356d38604fSBaptiste Daroussin * tbl(7) -T tree: print more details about columns, options, rows, and cells
366d38604fSBaptiste Daroussin * roff(7): implement the .break request (break out of a .while loop)
376d38604fSBaptiste Daroussin * roff(7): support the CB and CI fonts in \f and .ft
386d38604fSBaptiste Daroussin * -T lint: new STYLE message if a file name extension contradicts .Dt/.TH
396d38604fSBaptiste Daroussin * -T lint: new STYLE message about overlong text lines
406d38604fSBaptiste Daroussin * -W style: check .Xr links along the full manpath
416d38604fSBaptiste Daroussin    --- RELIABILITY BUGFIXES ---
426d38604fSBaptiste Daroussin * man(1): do not segfault if /tmp/ is not writeable
436d38604fSBaptiste Daroussin * man(1): do not access a NULL pointer when both -l and -w are given
446d38604fSBaptiste Daroussin * makewhatis(8): do not crash when a manpath directory contains
456d38604fSBaptiste Daroussin   a symbolic link that points to a directory
466d38604fSBaptiste Daroussin * man(7): fix an assertion failure caused by doubly nested next-line scopes
476d38604fSBaptiste Daroussin * tbl(7): fix a crash when the last column is only reached by spans
486d38604fSBaptiste Daroussin * tbl(7): fix a NULL pointer access in some cases of two spans on one row
496d38604fSBaptiste Daroussin * tbl(7) -T ascii: fix a NULL pointer access on empty data cells
506d38604fSBaptiste Daroussin * tbl(7) -T ascii: fix a NULL pointer access on a line next to a short row
516d38604fSBaptiste Daroussin * tbl(7): fix an assertion failure caused by excessive spacing modifiers
526d38604fSBaptiste Daroussin * tbl(7): fix an infinite loop for some overlapping horizontal spans
536d38604fSBaptiste Daroussin * roff(7): fix a rare case of writing one byte past the end of the input buffer
546d38604fSBaptiste Daroussin * roff(7): do not call abort(3) when \*[.T] is encountered
556d38604fSBaptiste Daroussin * roff(7): fix an assertion failure caused by a macro inside .ce .if
566d38604fSBaptiste Daroussin * roff(7): fix assertion failures for .ti and .po with excessive arguments
576d38604fSBaptiste Daroussin * roff(7): avoid near-infinte output for .ce inside explicit no-fill mode
586d38604fSBaptiste Daroussin * -T ascii/utf8: fix assertion failures caused by excessive spacing
596d38604fSBaptiste Daroussin * -T html: fix an assertion failure caused by .ft in rare situations
606d38604fSBaptiste Daroussin * -T man: fix an assertion failure caused by tbl(7) and eqn(7) input
616d38604fSBaptiste Daroussin    --- PORTABILITY IMPROVEMENTS ---
626d38604fSBaptiste Daroussin * rename HOMEBREWDIR to READ_ALLOWED_PATH, allow it to contain more than
636d38604fSBaptiste Daroussin   one directory, and explain how to use that for NixOS and GNU Guix Linux
646d38604fSBaptiste Daroussin * configure: stop trying to ask make(1) what the default compiler is
656d38604fSBaptiste Daroussin   because that test was too fragile; just use "cc" by default
666d38604fSBaptiste Daroussin * configure: various simplifications and improved robustness
676d38604fSBaptiste Daroussin * configure: only compile compat_*.c implementations that are needed
686d38604fSBaptiste Daroussin * configure: provide feature tests for __attribute__(()) and mkstemps(3)
696d38604fSBaptiste Daroussin * compat_*: sync with upstreams for security, functionality, and style
706d38604fSBaptiste Daroussin * in regress.pl, avoid the non-portable options sed(1) -i and echo(1) -n
716d38604fSBaptiste Daroussin * in the regression suite, avoid file names that differ only by case
726d38604fSBaptiste Daroussin    --- MINOR FUNCTIONAL IMPROVEMENTS ---
736d38604fSBaptiste Daroussin * man(1) -h: for pages lacking a SYNOPSIS, show the NAME section
746d38604fSBaptiste Daroussin * man(1): when the first argument starts with a digit, optionally
756d38604fSBaptiste Daroussin   followed by a letter, and at least one more argument follows,
766d38604fSBaptiste Daroussin   interpret the first argument as a section name even when additional
776d38604fSBaptiste Daroussin   characters follow after the digit and letter
786d38604fSBaptiste Daroussin * man(1): with a specific section requested, try harder to find
796d38604fSBaptiste Daroussin   the best match; use this order of preference:
806d38604fSBaptiste Daroussin   1. The section in both the directory name and the file name matches exactly.
816d38604fSBaptiste Daroussin   2. The section in the file name matches exactly.
826d38604fSBaptiste Daroussin   3. The section in the directory name matches exactly.
836d38604fSBaptiste Daroussin   4. Neither of them matches exactly.
846d38604fSBaptiste Daroussin * man(1): if no tags were generated at all, unlink(2) the empty tags file
856d38604fSBaptiste Daroussin   as soon as the condition can be detected and do not pass it to less(1)
866d38604fSBaptiste Daroussin * makewhatis(8): handle both dangling symlinks and .so links
876d38604fSBaptiste Daroussin   in manual page directories more gracefully
886d38604fSBaptiste Daroussin * man.cgi(8): for invalid queries and for valid queries returning
896d38604fSBaptiste Daroussin   no result, return the appropriate 40x status code rather than 200
906d38604fSBaptiste Daroussin * mdoc(7): let .Dd concatenate all arguments and default to the empty string
916d38604fSBaptiste Daroussin * mdoc(7): convert ".Fl Fl" to ".Fl \-" during validation, improving -T html
926d38604fSBaptiste Daroussin * mdoc(7): improve output of .At 32v
936d38604fSBaptiste Daroussin * man(7): no longer print multiple blank lines before NAME and page footer
946d38604fSBaptiste Daroussin * tbl(7) -T utf8: improved rendering of horizontal lines
956d38604fSBaptiste Daroussin * tbl(7) -T html: in "n" cells, align by padding numbers on the right
966d38604fSBaptiste Daroussin * tbl(7): no longer leak tabulator settings to subsequent roff(7) code
976d38604fSBaptiste Daroussin * mdoc(7) -T html: for .Bl -tag, use "column-count: 1" rather
986d38604fSBaptiste Daroussin   than "overflow: auto" to avoid the ugly side effects
996d38604fSBaptiste Daroussin * mdoc(7) -T html: render .Bd -unfilled in proportionally-spaced font
1006d38604fSBaptiste Daroussin * mdoc(7) -T html: format .Nd with <span> rather than <div>
1016d38604fSBaptiste Daroussin * mdoc(7) -T lint: do not warn about Mdocdate without an actual date
1026d38604fSBaptiste Daroussin * mdoc(7) -T lint: do not complain about function types of the
1036d38604fSBaptiste Daroussin   form "ret_type (fname)(args)", but otherwise check names more strictly
1046d38604fSBaptiste Daroussin * -T html: append .html suffix to temporary files to please browsers
1056d38604fSBaptiste Daroussin * -T markdown: print a BAGARG message if called on man(7) input
1066d38604fSBaptiste Daroussin    --- MINOR BUGFIXES ---
1076d38604fSBaptiste Daroussin * man(1): do the search for each name independently, and
1086d38604fSBaptiste Daroussin   show the results in the order of the command line argument
1096d38604fSBaptiste Daroussin * man(1): escape shell wildcard characters in name arguments before glob(3)
1106d38604fSBaptiste Daroussin * man(1): when asking for a single manual page by name, prefer file name
1116d38604fSBaptiste Daroussin   matches over .Dt/.TH matches over first NAME matches over later NAME
1126d38604fSBaptiste Daroussin   matches, but do not change the ordering for apropos(1) nor for man -a
1136d38604fSBaptiste Daroussin * man(1): correctly extract the section name from the file name extension
1146d38604fSBaptiste Daroussin   of gzipped manual page files
1156d38604fSBaptiste Daroussin * makewhatis(8): fix file type tests putting wrong data into mandoc.db(5)
1166d38604fSBaptiste Daroussin * man.cgi(8): fix section number in the <title> element for preformatted pages
1176d38604fSBaptiste Daroussin * tbl(7): correct handling of T& after horizontal rulers in the layout
1186d38604fSBaptiste Daroussin * tbl(7): correct column widths if rows have different numbers of cells
1196d38604fSBaptiste Daroussin * tbl(7): empty columns are 1n wide rather than 0n
1206d38604fSBaptiste Daroussin * tbl(7): correctly calculate required column widths for tables containing
1216d38604fSBaptiste Daroussin   cells that horizontally span columns which contains "n" (number) formatted
1226d38604fSBaptiste Daroussin   cells on other rows
1236d38604fSBaptiste Daroussin * tbl(7): skip escape sequences when looking for column separators
1246d38604fSBaptiste Daroussin * eqn(7): skip whitespace before tokens
1256d38604fSBaptiste Daroussin * roff(7): when calling an empty macro, do not clobber existing arguments
1266d38604fSBaptiste Daroussin * roff(7): recognize \} on lines closing a macro definition request
1276d38604fSBaptiste Daroussin * roff(7): do not throw a bogus warning for "'br\}" and similar lines
1286d38604fSBaptiste Daroussin * roff(7): stop generating comment nodes when encountering the first content
1296d38604fSBaptiste Daroussin * mandoc_char(7): make \0 (digit-width space) non-breaking
1306d38604fSBaptiste Daroussin * mdoc(7) .Bl -column: parse Macro in .It "word<tab>word" Ta word Macro<eol>
1316d38604fSBaptiste Daroussin * mdoc(7) -T html: display straight quotes, not curly quotes, for .Qq/.Qo
1326d38604fSBaptiste Daroussin * -T html: remove some spurious line breaks, in particular inside <pre>
1336d38604fSBaptiste Daroussin * -T html: use <br/> for a space character at the beginning of an input line
1346d38604fSBaptiste Daroussin * -T html: use ~%d for ordinal fragment suffixes, reserve '~' for that purpose
1356d38604fSBaptiste Daroussin    --- STRUCTURAL IMPROVEMENTS ---
1366d38604fSBaptiste Daroussin * introduce the concept of semantically transparent syntax tree nodes,
1376d38604fSBaptiste Daroussin   allowing improved decisions in various validators and formatters
1386d38604fSBaptiste Daroussin * move some code out of the giant main() into separate functions
1396d38604fSBaptiste Daroussin   doing one well-defined task each
1406d38604fSBaptiste Daroussin * clearly separate parser state (struct curparse) and formatter state
1416d38604fSBaptiste Daroussin   (struct outstate), don't mix them in the same struct
1426d38604fSBaptiste Daroussin * in the HTML formatter, assert(3) that no HTML nesting violation occurs
1436d38604fSBaptiste Daroussin * let html_close_paragraph() close any phrasing context
1446d38604fSBaptiste Daroussin    --- THANKS TO ---
1456d38604fSBaptiste Daroussin * Anthony Bentley and Klemens Nanni (OpenBSD) for many patches and bug
1466d38604fSBaptiste Daroussin   reports, for useful discussions, and for checking patches
1476d38604fSBaptiste Daroussin * Anton Lindqvist (OpenBSD) for two patches and a bug report
1486d38604fSBaptiste Daroussin * Marc Espie (OpenBSD) for a patch, many bug reports, and useful discussions
1496d38604fSBaptiste Daroussin * Lukas Epple (NixOS) for a patch, bug reports, suggesting a minor
1506d38604fSBaptiste Daroussin   portability feature, checking patches, and extensive release testing
1516d38604fSBaptiste Daroussin * Abel Romero Perez for a patch, a bug report, and suggesting a new feature
1526d38604fSBaptiste Daroussin * nabijaczleweli for a patch and for suggesting feature improvements
1536d38604fSBaptiste Daroussin * Jonathan Gray (OpenBSD) for a patch and for bug reports
1546d38604fSBaptiste Daroussin * Otto Moerbeek (OpenBSD) and Alexander Gromnitsky for a patch
1556d38604fSBaptiste Daroussin * Armin Besirovic for a contribution to mandoc.css
1566d38604fSBaptiste Daroussin * Jason McIntyre (OpenBSD) for manual page patches, suggesting a new feature,
1576d38604fSBaptiste Daroussin   checking many patches, and useful discussions
1586d38604fSBaptiste Daroussin * Martin Vahlensieck for a manual page patch and reporting a code style issue
1596d38604fSBaptiste Daroussin * Frederic Cambus and Ian Sutton (OpenBSD) for a manual page patch
1606d38604fSBaptiste Daroussin * Jan Schreiber for many bug reports found with afl(1)
1616d38604fSBaptiste Daroussin * G. Branden Robinson (GNU troff) for several bug reports, feature
1626d38604fSBaptiste Daroussin   suggestions, and for checking many groff patches
1636d38604fSBaptiste Daroussin * Michael Stapelberg (Debian) for several bug reports and feature
1646d38604fSBaptiste Daroussin   suggestions, and for extensive release testing
1656d38604fSBaptiste Daroussin * Ian Ropers, Lorenzo Beretta, and Oliver Corff for several bug reports
1666d38604fSBaptiste Daroussin   and feature suggestions
1676d38604fSBaptiste Daroussin * Stephen Gregoratto for several bug reports
1686d38604fSBaptiste Daroussin * Theo de Raadt (OpenBSD) for two bug reports, checking a patch,
1696d38604fSBaptiste Daroussin   and a useful discussion
1706d38604fSBaptiste Daroussin * Thomas Klausner (NetBSD) for two bug reports and for release testing
1716d38604fSBaptiste Daroussin * Andreas Kahari and Jason A. Donenfeld for two bug reports
1726d38604fSBaptiste Daroussin * Soeren Tempel (Alpine Linux) for a bug report, suggesting a feature
1736d38604fSBaptiste Daroussin   improvement, and checking two patches
1746d38604fSBaptiste Daroussin * Aman Verma, Jan Stary, and John Gardner for a bug report
1756d38604fSBaptiste Daroussin   and for suggesting a feature impovement
1766d38604fSBaptiste Daroussin * Todd Miller (OpenBSD) for a bug report, checking a patch,
1776d38604fSBaptiste Daroussin   and a useful discussion
1786d38604fSBaptiste Daroussin * Andrew Fresh, Brian Callahan, Christian Weisgerber, Paul de Weerd (OpenBSD),
1796d38604fSBaptiste Daroussin   Havard Eidnes, Jason Thorpe (NetBSD), Yuri Pankov (FreeBSD),
1806d38604fSBaptiste Daroussin   Bjarni Ingi Gislason, Chris Bennett, Edgar Pettijohn, Eldred Habert,
1816d38604fSBaptiste Daroussin   Jamie Landeg-Jones, Kazuo KUROI, and Wynn Wolf Arbor for a bug report
1826d38604fSBaptiste Daroussin * Theo Buehler (OpenBSD) for suggesting two feature impovements
1836d38604fSBaptiste Daroussin   and for checking a patch
1846d38604fSBaptiste Daroussin * Leah Neukirchen (Void Linux) for suggesting a feature impovement
1856d38604fSBaptiste Daroussin   and for release testing
1866d38604fSBaptiste Daroussin * Colin Watson (Debian) for suggesting a feature impovement
1876d38604fSBaptiste Daroussin   and for checking groff patches
1886d38604fSBaptiste Daroussin * Matej Cepl (SUSE Linux), Matthew Martin, Steffen Nurpmeso,
1896d38604fSBaptiste Daroussin   and Tim Baumgard for suggesting a feature impovement
1906d38604fSBaptiste Daroussin * Christos Zoulas (NetBSD) for a report regarding portability
1916d38604fSBaptiste Daroussin * Daniel Dickman (OpenBSD) for suggesting a portability improvement
1926d38604fSBaptiste Daroussin * Werner Lemberg (GNU troff) and Douglas McIlroy
1936d38604fSBaptiste Daroussin   for reporting bugs in manual pages
1946d38604fSBaptiste Daroussin * Baptiste Daroussin and Eygene Ryabinkin (FreeBSD)
1956d38604fSBaptiste Daroussin   for an additional regression test
1966d38604fSBaptiste Daroussin * Michal Nowak for reporting several code style issues
1976d38604fSBaptiste Daroussin * TJ Townsend (OpenBSD) for help with CSS
198*c1c95addSBrooks Davis * Sevan Janiyan (Viewpoint Linux) and Robert Mustacchi (Illumos)
1996d38604fSBaptiste Daroussin   for extensive release testing
2006d38604fSBaptiste Daroussin * Job Snijders, Kinichiro INOGUCHI, and Martijn van Duren (OpenBSD)
2016d38604fSBaptiste Daroussin   for checking patches
2026d38604fSBaptiste Daroussin * Bertrand Garrigues and Ralph Corderoy (GNU troff) for checking groff patches
2036d38604fSBaptiste Daroussin
2047295610fSBaptiste DaroussinChanges in version 1.14.5, released on March 10, 2019
2057295610fSBaptiste Daroussin
2067295610fSBaptiste Daroussin    --- MAJOR NEW FEATURES ---
2077295610fSBaptiste Daroussin * apropos(1): improve POSIX compliance by accepting case-insensitive
2087295610fSBaptiste Daroussin   extended regular expressions by default
2097295610fSBaptiste Daroussin * new -O tag[=term] output option (open a page at the definition of a term)
2107295610fSBaptiste Daroussin * tbl(7) -T html: spanning and horizontal and vertical alignment of cells
2117295610fSBaptiste Daroussin * tbl(7) -T html: draw lines on the edges of table cells
2127295610fSBaptiste Daroussin * tbl(7) -T utf8: render lines with the Unicode box drawing characters
2137295610fSBaptiste Daroussin * mandoc is now able to handle the manual pages of the groff package.
2147295610fSBaptiste Daroussin    --- MINOR NEW FEATURES ---
2157295610fSBaptiste Daroussin * -T html: new option -O toc (table of contents)
2167295610fSBaptiste Daroussin * -T html: second argument to -O man to support local and remote links
2177295610fSBaptiste Daroussin * mdoc(7) .Bd -centered now fills the text contained in it
2187295610fSBaptiste Daroussin * man-ext .SY and .YS macros (synopsis block)
2197295610fSBaptiste Daroussin * man-ext .TQ macro (tagged paragraph without vertical space before it)
2207295610fSBaptiste Daroussin * tbl(7) \& explicit alignment indicator
2217295610fSBaptiste Daroussin * roff(7) .shift, .while, and .return requests
2227295610fSBaptiste Daroussin * roff(7) .char request (output glyph definition)
2237295610fSBaptiste Daroussin * roff(7) .nop request (no operation)
2247295610fSBaptiste Daroussin * roff(7) .ft request: handle the CB, CI, and CR fonts
2257295610fSBaptiste Daroussin * roff(7) .if c conditional (character available)
2267295610fSBaptiste Daroussin * roff(7) \\$@ escape sequence (insert all macro arguments, quoted)
2277295610fSBaptiste Daroussin * roff(7) \*(.T predefined string (interpolate output device name)
2287295610fSBaptiste Daroussin * roff(7) \[charNNN] escape sequence (for printable ASCII characters)
2297295610fSBaptiste Daroussin * roff(7) \# escape sequence (line continuation with comment)
2307295610fSBaptiste Daroussin    --- HTML OUTPUT SYNTAX CORRECTIONS ---
2317295610fSBaptiste Daroussin * Render .br and \p as <br/>, not as an empty <div>.
2327295610fSBaptiste Daroussin * Render .Pp and .PP as <p> and automatically close it when needed.
2337295610fSBaptiste Daroussin * Stop writing empty list elements for non-compact .Bl -tag lists.
2347295610fSBaptiste Daroussin * Do not put <p> inside <a> if .UR or .MT contain .PP.
2357295610fSBaptiste Daroussin * Implement tooltips purely in CSS rather than abusing title= attributes.
2367295610fSBaptiste Daroussin    --- MINOR FUNCTIONAL IMPROVEMENTS ---
2377295610fSBaptiste Daroussin * many improvements to the handling of fill and no-fill mode
2387295610fSBaptiste Daroussin * tbl(7): better column widths in the presence of horizontal spans
2397295610fSBaptiste Daroussin * several minor improvements to escape sequence handling
2407295610fSBaptiste Daroussin * several minor improvements to manual font handling
2417295610fSBaptiste Daroussin * portability: autodetect need for _GNU_SOURCE or _OPENBSD_SOURCE
2427295610fSBaptiste Daroussin * portability: autodetect whether less(1) supports the -T option
2437295610fSBaptiste Daroussin * large numbers of bugfixes of diverse kinds
2447295610fSBaptiste Daroussin    --- STRUCTURAL IMPROVEMENTS ---
2457295610fSBaptiste Daroussin * Disentangle eqn(7) and tbl(7) from other parser header files,
2467295610fSBaptiste Daroussin   and clean up some parser data structures.
2477295610fSBaptiste Daroussin * Substantially simplify error and warning message infrastructure.
2487295610fSBaptiste Daroussin    --- THANKS TO ---
2497295610fSBaptiste Daroussin * John Gardner for crucial help implementing tooltips in CSS.
2507295610fSBaptiste Daroussin * Alexander Bluhm, Raphael Graf, Ted Unangst (OpenBSD)
2517295610fSBaptiste Daroussin   and Daniel Sabogal (Alpine Linux) for patches.
2527295610fSBaptiste Daroussin * Anthony Bentley and Jason McIntyre (OpenBSD) for documentation patches,
2537295610fSBaptiste Daroussin   suggesting new features, bug reports, and useful discussions.
2547295610fSBaptiste Daroussin * Kyle Evans and Baptiste Daroussin (FreeBSD) for minor patches.
2557295610fSBaptiste Daroussin * Pali Rohar for suggesting multiple new features and for reporting
2567295610fSBaptiste Daroussin   several bugs and missing features.
2577295610fSBaptiste Daroussin * Klemens Nanni (OpenBSD) for suggesting multiple new features.
2587295610fSBaptiste Daroussin * Kristaps Dzonsons (bsd.lv), Marc Espie (OpenBSD), Adam Kalisz,
2597295610fSBaptiste Daroussin   and Laura Morales for suggesting new features.
2607295610fSBaptiste Daroussin * Wolfram Schneider and Yuri Pankov (FreeBSD) for reporting missing features.
2617295610fSBaptiste Daroussin * Edward Tomasz Napierala (FreeBSD) for suggesting a feature improvement.
2627295610fSBaptiste Daroussin * Thomas Klausner (NetBSD) and Sevan Janiyan (SmartOS)
2637295610fSBaptiste Daroussin   for bug reports and release testing.
2647295610fSBaptiste Daroussin * Bryan Steele, Janne Johansson, Kurt Mosiejczuk, Mike Belopuhov, Theo
2657295610fSBaptiste Daroussin   Buehler, Todd Miller (OpenBSD), Andreas Gustafsson, Christos Zoulas,
2667295610fSBaptiste Daroussin   Robert Elz (NetBSD), Kurt Jaeger (FreeBSD), Fabio Scotoni, Kelvin
2677295610fSBaptiste Daroussin   Sherlock, Mark Harris, Orestis Ioannou, Raf Czlonka, and Sean Farrell
2687295610fSBaptiste Daroussin   for bug reports.
2697295610fSBaptiste Daroussin * Ulrich Spoerlein (FreeBSD), Leah Neukirchen (Void Linux),
2707295610fSBaptiste Daroussin   Matej Cepl (openSUSE), and Jan Stary (MacOS X) for release testing.
2717295610fSBaptiste Daroussin * Brian Callahan and Stuart Henderson (OpenBSD) for help
2727295610fSBaptiste Daroussin   with the OpenBSD groff port.
2737295610fSBaptiste Daroussin * Bertrand Garrigues, Branden Robinson, Ralph Corderoy, and Werner
2747295610fSBaptiste Daroussin   Lemberg (GNU troff) for checking groff patches.
2757295610fSBaptiste Daroussin * Scott Cheloha, Theo de Raadt (OpenBSD)
2767295610fSBaptiste Daroussin   and Natanael Copa (Alpine Linux) for useful discussions.
2777295610fSBaptiste Daroussin
27861d06d6bSBaptiste DaroussinChanges in version 1.14.4, released on August 8, 2018
27961d06d6bSBaptiste Daroussin
28061d06d6bSBaptiste Daroussin    --- MAJOR NEW FEATURES ---
28161d06d6bSBaptiste Daroussin * In ASCII output, render mathematical symbols and greek letters
28261d06d6bSBaptiste Daroussin   as transliterations conveying the characters' meanings rather
28361d06d6bSBaptiste Daroussin   than trying to imitate their shape.  Consequently, such characters
28461d06d6bSBaptiste Daroussin   can now be used in portable manual pages.  All the same, please
28561d06d6bSBaptiste Daroussin   limit their use to contexts where they really matter, for example
28661d06d6bSBaptiste Daroussin   when showing complicated mathematical formulae.
28761d06d6bSBaptiste Daroussin * First steps towards better support for small screens in HTML
28861d06d6bSBaptiste Daroussin   output (responsive design): avoid most style= attributes, in
28961d06d6bSBaptiste Daroussin   particular all hard-coded indentations and column widths, and
29061d06d6bSBaptiste Daroussin   provide a better mandoc.css style sheet with a @media query,
29161d06d6bSBaptiste Daroussin   using em units throughout, and avoiding redundancy in selectors.
29261d06d6bSBaptiste Daroussin * Better HTML output with some more fitting HTML elements, eliminating
29361d06d6bSBaptiste Daroussin   needless class= attributes, and avoiding various HTML syntax errors
29461d06d6bSBaptiste Daroussin   (element nesting, URL-fragment syntax, duplicate id= attributes).
29561d06d6bSBaptiste Daroussin    --- MINOR NEW FEATURES ---
29661d06d6bSBaptiste Daroussin * When a man(1) argument contains a slash, imply -l like in man-db.
29761d06d6bSBaptiste Daroussin * Use TIOCGWINSZ to reduce the default -Owidth and -Oindent during
29861d06d6bSBaptiste Daroussin   interactive use on terminals narrower than 79 columns.
29961d06d6bSBaptiste Daroussin * Generated PostScript files are now more than 50% smaller.
30061d06d6bSBaptiste Daroussin * Terminal rendering of eqn(7) is improved in several respects.
30161d06d6bSBaptiste Daroussin * Simplified and nicer output from the mdoc(7) .Lk macro, formatting
30261d06d6bSBaptiste Daroussin   all links in-line, even long ones.
30361d06d6bSBaptiste Daroussin * roff(7) \n+ and \n- numerical register auto-increment and -decrement
30461d06d6bSBaptiste Daroussin * roff(7) .nr optional third argument (auto-increment step size)
30561d06d6bSBaptiste Daroussin * Autodetect in ./configure whether the compiler can use -W and -static,
30661d06d6bSBaptiste Daroussin   allowing to build on Solaris 10 and 11 without any configure.local.
30761d06d6bSBaptiste Daroussin    --- RELIABILITY BUGFIXES ---
30861d06d6bSBaptiste Daroussin * Only activate UTF-8 output when the user really selected UTF-8,
30961d06d6bSBaptiste Daroussin   not some other multibyte character encoding.
31061d06d6bSBaptiste Daroussin * Prevent excessive .ll arguments from generating infinite output.
31161d06d6bSBaptiste Daroussin * Fix out of bounds accesses to parse buffers that could happen when
31261d06d6bSBaptiste Daroussin   using renamed or user defined macros after roff(7) conditionals.
31361d06d6bSBaptiste Daroussin * Avoid an assertion failure in certain .Bl -column lists.
31461d06d6bSBaptiste Daroussin * Avoid a NULL pointer access on deroff() failure after '.SS ""'.
31561d06d6bSBaptiste Daroussin * Fix a segfault that could be triggered by two invalid .Dt macros.
31661d06d6bSBaptiste Daroussin * Fix two syntax errors in generated PDF files.
31761d06d6bSBaptiste Daroussin * Properly state the page size in generated PostScript files.
31861d06d6bSBaptiste Daroussin * Close a memory leak caused by missing gzclose(3).
31961d06d6bSBaptiste Daroussin * Fix misformatting of man(7) documents lacking .SH macros
32061d06d6bSBaptiste Daroussin   in PostScript and PDF output.
32161d06d6bSBaptiste Daroussin * And many minor bugfixes.
32261d06d6bSBaptiste Daroussin    --- THANKS TO ---
32361d06d6bSBaptiste Daroussin * Marc Espie (OpenBSD) for implementing the size reduction of
32461d06d6bSBaptiste Daroussin   PostScript files, one additional patch for code simplification,
32561d06d6bSBaptiste Daroussin   and two bug reports.
32661d06d6bSBaptiste Daroussin * Theo Buehler (OpenBSD) for a bugfix patch,
32761d06d6bSBaptiste Daroussin   and Theo de Raadt (OpenBSD) for checking it.
32861d06d6bSBaptiste Daroussin * John Gardner for more than a dozen suggestions regarding HTML output.
32961d06d6bSBaptiste Daroussin * Mike Williams for teaching me how to use %%DocumentMedia and
33061d06d6bSBaptiste Daroussin   setpagedevice in PostScript files.
33161d06d6bSBaptiste Daroussin * Werner Lemberg (groff) for feedback on mdoc(7) language changes.
33261d06d6bSBaptiste Daroussin * Colin Watson (man-db) for feedback on man-db semantics.
33361d06d6bSBaptiste Daroussin * Jason McIntyre (OpenBSD) for lots of feedback and suggestions
33461d06d6bSBaptiste Daroussin   on diagnostic messages and on the documentation.
33561d06d6bSBaptiste Daroussin * Thomas Klausner (NetBSD) for suggesting two new style messages
33661d06d6bSBaptiste Daroussin   and one new feature, for two bug reports, and for release testing.
33761d06d6bSBaptiste Daroussin * Leah Neukirchen (Void Linux) for suggesting a new style message,
33861d06d6bSBaptiste Daroussin   five bug reports, and release testing.
33961d06d6bSBaptiste Daroussin * Anthony Bentley (OpenBSD) for reporting multiple bugs and missing
34061d06d6bSBaptiste Daroussin   features.
34161d06d6bSBaptiste Daroussin * Paul Irofti (OpenBSD) and Nate Bargmann for suggesting new features.
34261d06d6bSBaptiste Daroussin * Michael Stapelberg (Debian) for bug reports and release testing.
34361d06d6bSBaptiste Daroussin * Christian Weisgerber, Jonathan Gray, Stuart Henderson,
34461d06d6bSBaptiste Daroussin   Ted Unangst (OpenBSD), Takeshi Nakayama (NetBSD),
34561d06d6bSBaptiste Daroussin   Anton Lazarov, Jakub Klinkovsky, Jan Stary, Jesper Wallin,
34661d06d6bSBaptiste Daroussin   Will Backmam, and Wolfgang Mueller for bug reports.
34761d06d6bSBaptiste Daroussin * Sevan Janiyan (NetBSD) for additions to lib.in.
34861d06d6bSBaptiste Daroussin * George Brown for suggesting code simplifications.
34961d06d6bSBaptiste Daroussin * David Coppa, Igor Sobrado (OpenBSD), and Alexander Kuleshov
35061d06d6bSBaptiste Daroussin   for documentation improvements.
35161d06d6bSBaptiste Daroussin * Laura Morales and Raf Czlonka for questions resulting in better
35261d06d6bSBaptiste Daroussin   documentation.
35361d06d6bSBaptiste Daroussin * Yuri Pankov (illumos) for release testing.
35461d06d6bSBaptiste Daroussin
35561d06d6bSBaptiste DaroussinChanges in version 1.14.3, released on August 5, 2017
35661d06d6bSBaptiste Daroussin
35761d06d6bSBaptiste Daroussin    --- BUG FIXES ---
35861d06d6bSBaptiste Daroussin * man(7): Do not crash with out-of-bounds read access to a constant
35961d06d6bSBaptiste Daroussin   array if .sp or a blank line immediately precedes .SS or .SH.
36061d06d6bSBaptiste Daroussin * mdoc(7): Do not crash with out-of-bounds read access to a constant
36161d06d6bSBaptiste Daroussin   array if .sp or a blank line precede the first .Sh macro.
36261d06d6bSBaptiste Daroussin * tbl(7): Ignore explicitly specified negative column widths rather than
36361d06d6bSBaptiste Daroussin   wrapping around to huge numbers and risking memory exhaustion.
36461d06d6bSBaptiste Daroussin * man(1): No longer use names that only occur in the SYNOPSIS section.
36561d06d6bSBaptiste Daroussin   Gets rid of some surprising behaviour and bogus warnings.
36661d06d6bSBaptiste Daroussin    --- THANKS TO ---
36761d06d6bSBaptiste Daroussin   Leah Neukirchen (Void Linux), Markus Waldeck (Debian),
36861d06d6bSBaptiste Daroussin   Peter Bui (nd.edu), and Yuri Pankov (illumos) for bug reports.
36961d06d6bSBaptiste Daroussin
37061d06d6bSBaptiste DaroussinChanges in version 1.14.2, released on July 28, 2017
37161d06d6bSBaptiste Daroussin
37261d06d6bSBaptiste Daroussin    --- MAJOR NEW FEATURES ---
37361d06d6bSBaptiste Daroussin * New mdoc(7) -Tmarkdown output mode.
37461d06d6bSBaptiste Daroussin * For -Thtml, implement internal hyperlinks pointing to authoritative
37561d06d6bSBaptiste Daroussin   definitions of various syntax elements, similar to the ctags(1)-like
37661d06d6bSBaptiste Daroussin   less(1) :t internal searching in terminal mode.
37761d06d6bSBaptiste Daroussin * Provide a superset of the functionality of the former mdoclint(1)
37861d06d6bSBaptiste Daroussin   utility and a new -Wstyle message level with several new messages,
37961d06d6bSBaptiste Daroussin   including validity checking of .Xr cross references.
38061d06d6bSBaptiste Daroussin * tbl(7): Implement automatic line breaking inside individual table
38161d06d6bSBaptiste Daroussin   cells, and several other formatting improvements.
38261d06d6bSBaptiste Daroussin * eqn(7): Complete rewrite of the lexer, resulting in several bugfixes.
38361d06d6bSBaptiste Daroussin * Continue parser unification, in particular allowing generation
38461d06d6bSBaptiste Daroussin   of syntax tree nodes on the roff(7) level, allowing implementation
38561d06d6bSBaptiste Daroussin   of many additional roff requests.
38661d06d6bSBaptiste Daroussin    --- REMOVED FUNCTIONALITY ---
38761d06d6bSBaptiste Daroussin * Delete the manpage(1) utility.  It was never enabled in any release.
38861d06d6bSBaptiste Daroussin * Delete the -Txhtml command line option.  It has been an obsolete
38961d06d6bSBaptiste Daroussin   alias for the -Thtml output mode for more than two years.
39061d06d6bSBaptiste Daroussin    --- MINOR NEW FEATURES ---
39161d06d6bSBaptiste Daroussin * -Tlint now puts parser messages on stdout instead of stderr,
39261d06d6bSBaptiste Daroussin   making commands like "man -l -Tlint *.1" useful.
39361d06d6bSBaptiste Daroussin * mdoc(7): Various .Lk formatting improvements.
39461d06d6bSBaptiste Daroussin * mdoc(7) -Thtml: Better CSS for .Bl lists.
39561d06d6bSBaptiste Daroussin * man(7): Implement the .MT/.ME block macro (mailto hyperlink).
39661d06d6bSBaptiste Daroussin * man(7): Implement the .DT macro (restore default tab positions).
39761d06d6bSBaptiste Daroussin * man(7): Improved support for manuals generated with reStructuredText
39861d06d6bSBaptiste Daroussin   by partial support for the \n[an-margin] number register.
39961d06d6bSBaptiste Daroussin * man(7) -Thtml: Support deep linking to .SH and .SS headers.
40061d06d6bSBaptiste Daroussin * tbl(7): Implement the "allbox" table option.
40161d06d6bSBaptiste Daroussin * tbl(7): Implement the column spacing and the 'w' (minimum column
40261d06d6bSBaptiste Daroussin   width) layout modifiers.
40361d06d6bSBaptiste Daroussin * tbl(7): Significant improvements of the manual page.
40461d06d6bSBaptiste Daroussin * eqn(7): Much improved font selection, including recognition of
40561d06d6bSBaptiste Daroussin   well-known function names, and a few other formatting improvements.
40661d06d6bSBaptiste Daroussin * eqn(7) -Thtml: Use <mn> and <mo> in addition to <mi>.
40761d06d6bSBaptiste Daroussin * roff(7): Implement the .ce (centering), .mc (margin character),
40861d06d6bSBaptiste Daroussin   .rj (right justify), .ta (define tab stops), .ti (temporary indent),
40961d06d6bSBaptiste Daroussin   .als (macro alias), .ec and .eo (escape character control),
41061d06d6bSBaptiste Daroussin   .po (page offset), and .rn (macro rename) requests.
41161d06d6bSBaptiste Daroussin * roff(7) .am: Implement appending to mdoc(7) and man(7) macros.
41261d06d6bSBaptiste Daroussin * roff(7): implement the \h (horizontol motion), \l (horizontal
41361d06d6bSBaptiste Daroussin   line drawing), and \p (break output line) escape sequences,
41461d06d6bSBaptiste Daroussin   and also several additional character escape sequences.
41561d06d6bSBaptiste Daroussin * roff(7): Implement the 'd' conditional (macro or string defined).
41661d06d6bSBaptiste Daroussin * man.cgi(8) now uses pledge(2), too.
41761d06d6bSBaptiste Daroussin * regress.pl(1): simpler user interface, better summary output,
41861d06d6bSBaptiste Daroussin   simpler code, and no more recursion.
41961d06d6bSBaptiste Daroussin    --- THANKS TO ---
42061d06d6bSBaptiste Daroussin * Anthony Bentley (OpenBSD) for the implementation of .MT/.ME,
42161d06d6bSBaptiste Daroussin   reports of many bugs and missing features, and suggestions
42261d06d6bSBaptiste Daroussin   for a number of feature and documentation improvements.
42361d06d6bSBaptiste Daroussin * Sebastien Marie (OpenBSD) for two source code patches and
42461d06d6bSBaptiste Daroussin   for some useful discussions.
42561d06d6bSBaptiste Daroussin * Florian Obser (OpenBSD) for a bugfix patch and a bug report.
42661d06d6bSBaptiste Daroussin * Jonathan Gray (OpenBSD) for several bug reports from afl(1)
42761d06d6bSBaptiste Daroussin   and several more from static analysis tools.
42861d06d6bSBaptiste Daroussin * Theo Buehler (OpenBSD) for several bug reports, most from afl(1).
42961d06d6bSBaptiste Daroussin * Jason McIntyre (OpenBSD) for many useful discussions about a
43061d06d6bSBaptiste Daroussin   wide variety of topics, lots of continuous testing, a number of
43161d06d6bSBaptiste Daroussin   bug reports, and some suggestions for messages and documentation.
43261d06d6bSBaptiste Daroussin * Thomas Klausner (NetBSD) for lots of help while migrating
43361d06d6bSBaptiste Daroussin   mdoclint(1) functionality to mandoc -Tlint, for suggesting
43461d06d6bSBaptiste Daroussin   several useful new messages, and for release testing.
43561d06d6bSBaptiste Daroussin * Reyk Floeter (OpenBSD) and Vsevolod Stakhov (FreeBSD) for
43661d06d6bSBaptiste Daroussin   suggesting a markdown output mode.
43761d06d6bSBaptiste Daroussin * Thomas Guettler for suggesting -Thtml internal hyperlinks.
43861d06d6bSBaptiste Daroussin * Yuri Pankov (Illumos) for inspiring new warning messages and
43961d06d6bSBaptiste Daroussin   for extensive release testing.
44061d06d6bSBaptiste Daroussin * Anton Lindqvist and TJ Townsend (both OpenBSD) and Jan Stary
44161d06d6bSBaptiste Daroussin   for multiple bug reports.
44261d06d6bSBaptiste Daroussin * Leah Neukirchen (Void Linux) for bug reports and release testing.
44361d06d6bSBaptiste Daroussin * Michael Stapelberg (Debian) for suggesting feature improvements
44461d06d6bSBaptiste Daroussin   and for release testing.
44561d06d6bSBaptiste Daroussin * Martin Natano and Theo de Raadt (both OpenBSD), Andreas Voegele,
44661d06d6bSBaptiste Daroussin   Gabriel Guzman, Gonzalo Tornaria, Markus Waldeck, and Raf Czlonka
44761d06d6bSBaptiste Daroussin   for bug reports.
44861d06d6bSBaptiste Daroussin * Antoine Jacoutot (OpenBSD) and Steffen Nurpmeso for suggesting
44961d06d6bSBaptiste Daroussin   feature improvements.
45061d06d6bSBaptiste Daroussin * Dag-Erling Smoergrav (FreeBSD) for inspiring new warning messages.
45161d06d6bSBaptiste Daroussin * Ted Unangst and Marc Espie (OpenBSD) for providing useful ideas.
45261d06d6bSBaptiste Daroussin * Svyatoslav Mishyn (Crux Linux) for release testing.
45361d06d6bSBaptiste Daroussin * Carsten Kunze (Heirloom roff) for help keeping mandoc and groff
45461d06d6bSBaptiste Daroussin   compatible and for committing some of my patches to groff.
45561d06d6bSBaptiste Daroussin
45661d06d6bSBaptiste DaroussinChanges in version 1.14.1, released on February 21, 2017
45761d06d6bSBaptiste Daroussin
45861d06d6bSBaptiste Daroussin    --- MAJOR NEW FEATURES ---
45961d06d6bSBaptiste Daroussin * apropos(1): Reimplement complete semantic search functionality
46061d06d6bSBaptiste Daroussin   without the dependency on SQLite3, using only POSIX APIs.
46161d06d6bSBaptiste Daroussin   This comes with a completely new mandoc.db(5) file format.
46261d06d6bSBaptiste Daroussin * man(1): Support more than one tag entry for the same search term,
46361d06d6bSBaptiste Daroussin   plus some minor improvements to the less(1) :t support.
46461d06d6bSBaptiste Daroussin * -Thtml: Use real macro names for CSS classes.
46561d06d6bSBaptiste Daroussin   Systematic cleanup of and many improvements to mandoc.css.
46661d06d6bSBaptiste Daroussin * -Thtml: Produce human readable HTML code by using indentation
46761d06d6bSBaptiste Daroussin   and better line breaks.  Improve various HTML elements,
46861d06d6bSBaptiste Daroussin   and trim several useless ones.
46961d06d6bSBaptiste Daroussin * New catman(8) utility, still somewhat experimental.
47061d06d6bSBaptiste Daroussin * Now includes a portable version of the OpenBSD mandoc regression
47161d06d6bSBaptiste Daroussin   suite, see regress/regress.pl.1 for details.
47261d06d6bSBaptiste Daroussin    --- REMOVED FUNCTIONALITY ---
47361d06d6bSBaptiste Daroussin * Operating systems that don't provide mmap(3) are no longer supported.
47461d06d6bSBaptiste Daroussin * Drop support for manpath(1).  Even if your system has manpath(1),
47561d06d6bSBaptiste Daroussin   it is simpler to use MANPATH_DEFAULT in configure.local for
47661d06d6bSBaptiste Daroussin   operating system defaults, man.conf(5) for machine-specific
47761d06d6bSBaptiste Daroussin   modifications, and ${MANPATH}, -m, and -M for user preferences
47861d06d6bSBaptiste Daroussin   than to bother with the complexity of manpath(1).
47961d06d6bSBaptiste Daroussin * makewhatis(8) -p: No longer warn about missing MLINKS since these
48061d06d6bSBaptiste Daroussin   are no longer needed for anything.
48161d06d6bSBaptiste Daroussin    --- MINOR NEW FEATURES ---
48261d06d6bSBaptiste Daroussin * mdoc(7): Warn about invalid punctuation and content below NAME.
48361d06d6bSBaptiste Daroussin * mdoc(7): Warn about .Xr lacking the second argument (section).
48461d06d6bSBaptiste Daroussin * mdoc(7): Warn about violations of the rule "new sentence, new line".
48561d06d6bSBaptiste Daroussin * roff(7): Warn about trailing whitespace at the end of comments.
48661d06d6bSBaptiste Daroussin * mdoc(7): Improve rendering of double quotes.
48761d06d6bSBaptiste Daroussin * mdoc(7): Always do text production in the validator, never in the
48861d06d6bSBaptiste Daroussin   formatters.  Cleaner, simpler, shorter, helps NetBSD apropos(1)
48961d06d6bSBaptiste Daroussin   and also makes -Ttree output more useful.
49061d06d6bSBaptiste Daroussin * -Ttree: Show metadata and some additional node flags.
49161d06d6bSBaptiste Daroussin   New -Onoval output option to show the unvalidated tree.
49261d06d6bSBaptiste Daroussin    --- RELIABILITY BUGFIXES ---
49361d06d6bSBaptiste Daroussin * man(1): Make "man -l" work with standard input from a pipe or file,
49461d06d6bSBaptiste Daroussin   as long as standard output is a terminal.
49561d06d6bSBaptiste Daroussin * man(7): Fix out of bounds read access if a text node immediately
49661d06d6bSBaptiste Daroussin   preceded the first .SH header.
49761d06d6bSBaptiste Daroussin * mdoc(7): Fix out of bounds read access for .Bl without a type
49861d06d6bSBaptiste Daroussin   but with a width.
49961d06d6bSBaptiste Daroussin * mdoc(7): Fix out of bounds read access for .Bl -column starting
50061d06d6bSBaptiste Daroussin   with a tab character instead of a child .It macro.
50161d06d6bSBaptiste Daroussin * mdoc(7): Fix syntax tree corruption leading to segfaults caused
50261d06d6bSBaptiste Daroussin   by stray block end macros in nested blocks of mismatching type.
50361d06d6bSBaptiste Daroussin * man(1): Fix NULL dereference when the first of multiple pages
50461d06d6bSBaptiste Daroussin   shown was preformatted.
50561d06d6bSBaptiste Daroussin * mdoc(7): Fix syntax tree corruption leading to NULL dereference
50661d06d6bSBaptiste Daroussin   caused by partial implicit macros inside .Bl -column table cells.
50761d06d6bSBaptiste Daroussin * mdoc(7): Fix syntax tree corruption leading to NULL dereference
50861d06d6bSBaptiste Daroussin   for macro sequences like .Bl .Bl .It Bo .El .It.
50961d06d6bSBaptiste Daroussin * mdoc(7): Fix syntax tree corruption leading to NULL dereference
51061d06d6bSBaptiste Daroussin   caused by .Ta following a nested .Bl -column breaking another block.
51161d06d6bSBaptiste Daroussin * mdoc(7): Fix syntax tree corruption sometimes leading to NULL
51261d06d6bSBaptiste Daroussin   dereference caused by indirectly broken .Nd or .Nm blocks.
51361d06d6bSBaptiste Daroussin * mdoc(7) -Thtml: Fix a NULL dereference for .Bl -column with 0 columns.
51461d06d6bSBaptiste Daroussin * mdoc(7): Fix NULL dereference in some specific cases of a
51561d06d6bSBaptiste Daroussin   block-end macro calling another block-end macro.
51661d06d6bSBaptiste Daroussin * mdoc(7): Fix NULL dereference if the only child of the head
51761d06d6bSBaptiste Daroussin   of the first .Sh was an empty in-line macro.
51861d06d6bSBaptiste Daroussin * eqn(7): Fix NULL dereference in the terminal formatter
51961d06d6bSBaptiste Daroussin   for empty matrices and empty square roots.
52061d06d6bSBaptiste Daroussin * mdoc(7): Fix an assertion failure for a .Bd without a type that
52161d06d6bSBaptiste Daroussin   breaks another block.
52261d06d6bSBaptiste Daroussin * mdoc(7): Fix an assertion failure that happened for some .Bl -column
52361d06d6bSBaptiste Daroussin   lists containing a column width of "-4n", "-3n", or "-2n".
52461d06d6bSBaptiste Daroussin * mdoc(7): Fix an assertion failure caused by .Bl -column without .It
52561d06d6bSBaptiste Daroussin   but containing eqn(7) or tbl(7) code.
52661d06d6bSBaptiste Daroussin * roff(7): Fix an assertion failure caused by \z\[u00FF] with -Tps/-Tpdf.
52761d06d6bSBaptiste Daroussin * roff(7): Fix an assertion failures caused by whitespace inside \o''
52861d06d6bSBaptiste Daroussin   (overstrike) sequences.
52961d06d6bSBaptiste Daroussin * -Thtml: Fix an assertion failure caused by -Oman or -Oincludes of
53061d06d6bSBaptiste Daroussin   excessive length.
53161d06d6bSBaptiste Daroussin    --- PORTABILITY IMPROVEMENTS ---
53261d06d6bSBaptiste Daroussin * man(1): Do not mix stdio narrow and wide stream orientation
53361d06d6bSBaptiste Daroussin   on stdout, which could cause output corruption on glibc.
53461d06d6bSBaptiste Daroussin * mandoc(1): Autodetect a suitable locale for -Tutf8 mode.
53561d06d6bSBaptiste Daroussin * ./configure: Autodetect whether PATH_MAX and O_DIRECTORY are defined.
53661d06d6bSBaptiste Daroussin * ./configure: Autodetect if nanosleep(3) needs -lrt.
53761d06d6bSBaptiste Daroussin * ./configure: Provide an ${LN} configuration variable.
53861d06d6bSBaptiste Daroussin * ./configure: Put compiler arguments that may contain -l at the end.
53961d06d6bSBaptiste Daroussin    --- MINOR BUGFIXES ---
54061d06d6bSBaptiste Daroussin * mdoc(7): Fix SYNOPSIS output if the first child of .Nm is a macro.
54161d06d6bSBaptiste Daroussin * mdoc(7) -Thtml: Improve formatting of .Bl -tag with short tags.
54261d06d6bSBaptiste Daroussin * man(7) -Thtml: Preserve whitespace in .nf (nofill) mode.
54361d06d6bSBaptiste Daroussin * mandoc(1): Error out on invalid output options on the command line.
54461d06d6bSBaptiste Daroussin    --- STRUCTURAL CHANGES, no functional change ---
54561d06d6bSBaptiste Daroussin * Redesign part of the mandoc_html(3) interfaces, making them much
54661d06d6bSBaptiste Daroussin   easier to use and reducing the amount of code by a few hundred lines.
54761d06d6bSBaptiste Daroussin    --- THANKS TO ---
54861d06d6bSBaptiste Daroussin * Michael Stapelberg (Debian) for designing the new mandocd(8)
54961d06d6bSBaptiste Daroussin   and parts of the new catman(8), for release testing, and for a
55061d06d6bSBaptiste Daroussin   number of patches and bug reports.
55161d06d6bSBaptiste Daroussin * Baptiste Daroussin (FreeBSD) for profiling the new makewhatis(8)
55261d06d6bSBaptiste Daroussin   implementation and suggesting an algorithmic improvement which
55361d06d6bSBaptiste Daroussin   more than doubled performance, and for a few bug reports.
55461d06d6bSBaptiste Daroussin * Ed Maste (FreeBSD) for an important patch improving reproducibility
55561d06d6bSBaptiste Daroussin   of builds in makewhatis(8), and for a few bug reports.
55661d06d6bSBaptiste Daroussin * Theo Buehler (OpenBSD) for almost twenty important bug reports,
55761d06d6bSBaptiste Daroussin   most of them found by systematic afl(1) fuzzing.
55861d06d6bSBaptiste Daroussin * Benny Lofgren, David Dahlberg, and in particular Vadim Zhukov
55961d06d6bSBaptiste Daroussin   for crucial help in getting .Bl -tag CSS formatting fixed.
56061d06d6bSBaptiste Daroussin * Svyatoslav Mishyn (Crux Linux) for an initial version of the
56161d06d6bSBaptiste Daroussin   patch to autodetect a suitable locale for -Tutf8 mode
56261d06d6bSBaptiste Daroussin   and for release testing.
56361d06d6bSBaptiste Daroussin * Jason McIntyre (OpenBSD) for multiple useful discussions
56461d06d6bSBaptiste Daroussin   and a number of bug reports.
56561d06d6bSBaptiste Daroussin * Sevan Janiyan (NetBSD) for extensive release testing and multiple
56661d06d6bSBaptiste Daroussin   bug reports.
56761d06d6bSBaptiste Daroussin * Thomas Klausner and Christos Zoulas (NetBSD), Yuri Pankov (illumos),
56861d06d6bSBaptiste Daroussin   and Leah Neukirchen (Void Linux) for release testing and bug reports.
56961d06d6bSBaptiste Daroussin * Ulrich Spoerlein (FreeBSD) for release testing.
57061d06d6bSBaptiste Daroussin * Alexander Bluhm, Andrew Fresh, Antoine Jacoutot, Antony Bentley,
57161d06d6bSBaptiste Daroussin   Christian Weisgerber, Jonathan Gray, Marc Espie, Martijn van Duren,
57261d06d6bSBaptiste Daroussin   Stuart Henderson, Ted Unangst, Theo de Raadt (OpenBSD), Abhinav
57361d06d6bSBaptiste Daroussin   Upadhyay, Kamil Rytarowski (NetBSD), Aaron M. Ucko, Bdale Garbee,
57461d06d6bSBaptiste Daroussin   Reiner Herrmann, Shane Kerr (Debian), Daniel Sabogal (Alpine Linux),
57561d06d6bSBaptiste Daroussin   Carsten Kunze (Heirloom roff), Kristaps Dzonsons (bsd.lv),
57661d06d6bSBaptiste Daroussin   Anton Lindqvist, Jan Stary, Jeremy A. Mates, Mark Patruck,
57761d06d6bSBaptiste Daroussin   Pavan Maddamsetti, Sean Levy <attila@stalphonsos.com>, and
57861d06d6bSBaptiste Daroussin   Tiago Silva for bug reports.
57961d06d6bSBaptiste Daroussin * Brent Cook, Marc Espie, Philip Guenther, Todd Miller (OpenBSD)
58061d06d6bSBaptiste Daroussin   and Markus Waldeck for useful discussions.
58161d06d6bSBaptiste Daroussin * And as usual, OpenCSW for providing me with a Solaris 9/10/11
58261d06d6bSBaptiste Daroussin   testing environment.
58361d06d6bSBaptiste Daroussin
58461d06d6bSBaptiste DaroussinChanges in version 1.13.4, released on July 14, 2016
58561d06d6bSBaptiste Daroussin
58661d06d6bSBaptiste Daroussin    --- MAJOR NEW FEATURES ---
58761d06d6bSBaptiste Daroussin * man.conf(5): Design and implement a simpler configuration file format.
58861d06d6bSBaptiste Daroussin * man(1): Leverage less(1) -T and :t in a way resembling ctags(1)
58961d06d6bSBaptiste Daroussin   to jump to the definitions of various terms inside manual pages.
59061d06d6bSBaptiste Daroussin * soelim(1): New implementation by Baptiste Daroussin.
59161d06d6bSBaptiste Daroussin * privilege limitation: Use OpenBSD pledge(2) or OS X sandbox_init(3)
59261d06d6bSBaptiste Daroussin   when available.
59361d06d6bSBaptiste Daroussin * man.cgi(8): Support short URIs like http://man.openbsd.org/mdoc .
59461d06d6bSBaptiste Daroussin * mandoc.css: Use one unified stylesheet rather than three different ones.
59561d06d6bSBaptiste Daroussin    --- MAJOR FUNCTIONALLY RELEVANT BUGFIXES ---
59661d06d6bSBaptiste Daroussin * mdoc(7): Fix multiple aspects of SYNOPSIS .Nm formatting.
59761d06d6bSBaptiste Daroussin * man(1): Fix process group handling, avoiding unclean shutdowns.
59861d06d6bSBaptiste Daroussin    --- PORTABILITY IMPROVEMENTS ---
59961d06d6bSBaptiste Daroussin * Correctly use the ohash(3) compatibility implementation
60061d06d6bSBaptiste Daroussin   even when building without SQLite support.
60161d06d6bSBaptiste Daroussin * Add compat glue for building on Solaris 9 and 10.
60261d06d6bSBaptiste Daroussin * Let ./configure select a supported RE syntax for word boundaries.
60361d06d6bSBaptiste Daroussin * Support LDFLAGS, to be used for example for hardening options.
60461d06d6bSBaptiste Daroussin * Avoid mixing putchar(3) and putwchar(3) on the same file descriptor,
60561d06d6bSBaptiste Daroussin   it resulted in output corruption on some platforms.
60661d06d6bSBaptiste Daroussin * Avoid reusing va_lists, use va_copy(3) for better portability.
60761d06d6bSBaptiste Daroussin * Do not hardcode the path to the more(1) program.
60861d06d6bSBaptiste Daroussin    --- MINOR NEW FEATURES ---
60961d06d6bSBaptiste Daroussin * roff(7): Implement \n(.$ (number of macro arguments).
61061d06d6bSBaptiste Daroussin * roff(7): Fully implement \z (do not advance cursor).
61161d06d6bSBaptiste Daroussin * roff(7): Implement the `r'  conditional (register exists).
61261d06d6bSBaptiste Daroussin * roff(7): Implement \\$* (interpolate all arguments).
61361d06d6bSBaptiste Daroussin * roff(7): Parse and ignore \, and \/ (italic corrections).
61461d06d6bSBaptiste Daroussin * When there is no -m, no -M, no MANPATH and no /etc/man.conf,
61561d06d6bSBaptiste Daroussin   fall back to /usr/share/man:/usr/X11R6/man:/usr/local/man.
61661d06d6bSBaptiste Daroussin * man(1): Give manuals in purely numerical sections priority over
61761d06d6bSBaptiste Daroussin   manuals of the same name in sections with an alphabetical suffix.
61861d06d6bSBaptiste Daroussin * man.cgi(8): Support "header.html" and "footer.html".
61961d06d6bSBaptiste Daroussin * man.cgi(8): Set the "autofocus" attribute on the query text box.
62061d06d6bSBaptiste Daroussin * man.cgi(8): Simplify the search form, drop two useless buttons.
62161d06d6bSBaptiste Daroussin * man.cgi(8): Delete the pseudo-manpath "mandoc", assume that
62261d06d6bSBaptiste Daroussin   apropos(1) and man.cgi(8) are installed in the default manpath.
62361d06d6bSBaptiste Daroussin    --- RELIABILITY BUGFIXES ---
62461d06d6bSBaptiste Daroussin * mdoc(7): Avoid a use after free and an assertion failure when nodes
62561d06d6bSBaptiste Daroussin   are deleted during validation.
62661d06d6bSBaptiste Daroussin * mdoc(7): Avoid a NULL pointer access when .Bd has no arguments.
62761d06d6bSBaptiste Daroussin * mdoc(7): Avoid a NULL pointer access triggered by mismatching end macros.
62861d06d6bSBaptiste Daroussin * mdoc(7): Avoid an assertion when .Fo has no argument.
62961d06d6bSBaptiste Daroussin * mdoc(7): Avoid an assertion when .Ta<tab> occurs in .Bl -column.
63061d06d6bSBaptiste Daroussin * mdoc(7): Avoid an assertion when a body gets broken and has a tail.
63161d06d6bSBaptiste Daroussin * roff(7): Avoid an assertion caused by blanks inside \o.
63261d06d6bSBaptiste Daroussin * roff(7): Make .so links to gziped manuals work without mandoc.db(5).
63361d06d6bSBaptiste Daroussin * tbl(7): Avoid a use after free when the last line of a layout is empty.
63461d06d6bSBaptiste Daroussin * eqn(7): Avoid an infinite loop caused by recursive "define".
63561d06d6bSBaptiste Daroussin * makewhatis(8): Avoid a segfault caused by unusual directory structures.
63661d06d6bSBaptiste Daroussin * Fix handling of leading, trailing, and double colons in MANPATH and -m.
63761d06d6bSBaptiste Daroussin    --- MINOR BUGFIXES ---
63861d06d6bSBaptiste Daroussin * mdoc(7): Put arguments to end macros of broken partial explicit blocks
63961d06d6bSBaptiste Daroussin   inside the breaking block.
64061d06d6bSBaptiste Daroussin * mdoc(7): Let .Dv force normal font.
64161d06d6bSBaptiste Daroussin * mdoc(7): Make trailing whitespace significant in .Bl -tag widths.
64261d06d6bSBaptiste Daroussin * mdoc(7): Fix macro interpretation around tabs in .Bl -column.
64361d06d6bSBaptiste Daroussin * man(7): Use the default width for .RS without arguments.
64461d06d6bSBaptiste Daroussin * man(7): On a new RS nesting level, the saved width starts from
64561d06d6bSBaptiste Daroussin   the default width, not from the saved width of the previous level.
64661d06d6bSBaptiste Daroussin * man(7): Allow .PD in next-line scope.
64761d06d6bSBaptiste Daroussin * man(7): Improve handling of empty .HP.
64861d06d6bSBaptiste Daroussin * man(7): Improve formatting of .br and .sp inside .HP.
64961d06d6bSBaptiste Daroussin * man(7): Do not mistreat empty arguments to font alternating
65061d06d6bSBaptiste Daroussin   macros as vertical spacing requests.
65161d06d6bSBaptiste Daroussin * man(7): Allow fill mode changes in tagged paragraph next-line scope.
65261d06d6bSBaptiste Daroussin * man(7): Fix minor bugs in block rewinding and simplify the related code.
65361d06d6bSBaptiste Daroussin * man(7): Add missing line breaks before subsection headers.
65461d06d6bSBaptiste Daroussin * man(7): Give section and subsection headers hanging indentation.
65561d06d6bSBaptiste Daroussin * man(7): Make trailing whitespace significant in .TP widths.
65661d06d6bSBaptiste Daroussin * roff(7): Don't allow breaking the output line after hyphens
65761d06d6bSBaptiste Daroussin   that immediately follow escape sequences.
65861d06d6bSBaptiste Daroussin * roff(7): Ignore blank characters at the beginning of conditional blocks.
65961d06d6bSBaptiste Daroussin * roff(7): Escape breakable hyphens only after handling input line traps.
66061d06d6bSBaptiste Daroussin * roff(7): Reject \[uD800] to \[uDFFF] (surrogates) in the parser.
66161d06d6bSBaptiste Daroussin * tbl(7): Allow more than one data field after T} on the same input line.
66261d06d6bSBaptiste Daroussin * terminal output: Apply bold and italic to non-ASCII Unicode codepoints.
66361d06d6bSBaptiste Daroussin * terminal output: Improve rounding rules for horizontal scaling widths.
66461d06d6bSBaptiste Daroussin * HTML output: Render ASCII_NBRSP as "&nbsp;", not "-".
66561d06d6bSBaptiste Daroussin * man(1): Do not match the first part of a name if it continues with a dot.
66661d06d6bSBaptiste Daroussin * man(1): Keep working even if the current directory is unusable.
66761d06d6bSBaptiste Daroussin * man(1): Better error message when $PAGER is invalid.
66861d06d6bSBaptiste Daroussin * makewhatis(8): Improve handling of .Va and .Vt macros.
66961d06d6bSBaptiste Daroussin * apropos(1): Print "nothing appropriate" to stderr when appropriate.
67061d06d6bSBaptiste Daroussin * apropos(1): Abort with a useful error message when elementary
67161d06d6bSBaptiste Daroussin   database operations like preparing queries or binding variables fail.
67261d06d6bSBaptiste Daroussin    --- STRUCTURAL CHANGES, no functional change ---
67361d06d6bSBaptiste Daroussin * mdoc(7) and man(7): Unified data structures struct roff_node etc.
67461d06d6bSBaptiste Daroussin * mdoc(7) and man(7): Unified node handling library in roff.c.
67561d06d6bSBaptiste Daroussin * mdoc(7) and man(7): Seperate validation phase from parsing.
67661d06d6bSBaptiste Daroussin * roff(7): Major character table cleanup.
67761d06d6bSBaptiste Daroussin * Link with libz rather than forking gunzip(1).
67861d06d6bSBaptiste Daroussin    --- THANKS TO ---
67961d06d6bSBaptiste Daroussin * Baptiste Daroussin (FreeBSD) for the new soelim(1)
68061d06d6bSBaptiste Daroussin   and for release testing.
68161d06d6bSBaptiste Daroussin * Anthony Bentley (OpenBSD) for unifying mandoc.css, two nice
68261d06d6bSBaptiste Daroussin   patches for man.cgi(8), some documentation patches, some bug
68361d06d6bSBaptiste Daroussin   reports, and various useful discussions.
68461d06d6bSBaptiste Daroussin * Todd Miller (OpenBSD) for lots of help with process group and
68561d06d6bSBaptiste Daroussin   signal handling, a few patches, some bug reports and some useful
68661d06d6bSBaptiste Daroussin   discussions.
68761d06d6bSBaptiste Daroussin * Jonathan Gray (OpenBSD) for yet more testing with afl(1)
68861d06d6bSBaptiste Daroussin   again resulting in more than half a dozen important bug reports.
68961d06d6bSBaptiste Daroussin * Svyatoslav Mishyn (Crux Linux) for some patches, several bug
69061d06d6bSBaptiste Daroussin   reports, and extensive release testing.
69161d06d6bSBaptiste Daroussin * Leah Neukirchen (Void Linux) for a number of compatibility
69261d06d6bSBaptiste Daroussin   patches and suggestions and several bug reports.
69361d06d6bSBaptiste Daroussin * Christos Zoulas (NetBSD) for a bug fix patch and some useful
69461d06d6bSBaptiste Daroussin   suggestions for cleanup.
69561d06d6bSBaptiste Daroussin * Florian Obser (OpenBSD) for a bugfix patch and some bug reports.
69661d06d6bSBaptiste Daroussin * Sevan Janiyan for help with Solaris compatibility and release
69761d06d6bSBaptiste Daroussin   testing on many platforms.
69861d06d6bSBaptiste Daroussin * Jan Holzhueter and OpenCSW in general for help with Solaris
69961d06d6bSBaptiste Daroussin   compatibility, and for providing me with a Solaris 9/10/11 testing
70061d06d6bSBaptiste Daroussin   environment.
70161d06d6bSBaptiste Daroussin * Michael McConville (OpenBSD) for some simple cleanup patches.
70261d06d6bSBaptiste Daroussin * Thomas Klausner (NetBSD) for some bug reports and release testing.
70361d06d6bSBaptiste Daroussin * Christian Weisgerber, Dmitrij Czarkoff, Igor Sobrado,
70461d06d6bSBaptiste Daroussin   Ken Westerback, Marc Espie, Mike Belopuhov, Rafael Neves,
70561d06d6bSBaptiste Daroussin   Ted Unangst, Tim van der Molen, Theo Buehler, Theo de Raadt
70661d06d6bSBaptiste Daroussin   (OpenBSD), Kurt Jaeger, Dag Erling Smoergrav (FreeBSD),
70761d06d6bSBaptiste Daroussin   Joerg Sonnenberger (NetBSD), Carsten Kunze (Heirloom troff),
70861d06d6bSBaptiste Daroussin   Daniel Levai, Fabian Raetz, Jan Stary, Jean-Yves Migeon,
70961d06d6bSBaptiste Daroussin   Lorenzo Beretta, Markus Waldeck, Maxim Belooussov, Michael Reed,
71061d06d6bSBaptiste Daroussin   Peter Bray, and Serguey Parkhomovsky for bug reports and feature
71161d06d6bSBaptiste Daroussin   suggestions.
71261d06d6bSBaptiste Daroussin * Alexander Hall, Andrew Fresh, Antoine Jacoutot, Doug Hogan,
71361d06d6bSBaptiste Daroussin   Jason McIntyre, Jasper Lievisse Adriaanse, Kent Spillner,
71461d06d6bSBaptiste Daroussin   Nicholas Marriott, Peter Hessler, Sebastien Marie, Stefan Sperling,
71561d06d6bSBaptiste Daroussin   and Theo de Raadt (OpenBSD) for helpful discussions and feedback.
71661d06d6bSBaptiste Daroussin
71761d06d6bSBaptiste DaroussinChanges in version 1.13.3, released on March 13, 2015
71861d06d6bSBaptiste Daroussin
71961d06d6bSBaptiste Daroussin    --- MAJOR NEW FEATURES ---
72061d06d6bSBaptiste Daroussin * When a manual is missing from an outdated database, let man(1)
72161d06d6bSBaptiste Daroussin   show it anyway, using a KISS file system lookup as a fallback.
72261d06d6bSBaptiste Daroussin * Use this to always provide man(1), even without database support.
72361d06d6bSBaptiste Daroussin * Fatal errors no longer exist.  If a file can be opened, mandoc
72461d06d6bSBaptiste Daroussin   will produce some output; at worst, the output may be almost empty.
72561d06d6bSBaptiste Daroussin * New -Wunsupp message level.
72661d06d6bSBaptiste Daroussin    --- POTENTIONALLY SECURITY RELEVANT BUGFIXES ---
72761d06d6bSBaptiste Daroussin * Fix a potential write buffer overrun on incomplete string conditionals.
72861d06d6bSBaptiste Daroussin   http://mandoc.bsd.lv/cgi-bin/cvsweb/roff.c#rev1.241
72961d06d6bSBaptiste Daroussin * Fix a potential write buffer overrun on backslash at EOF in a conditional.
73061d06d6bSBaptiste Daroussin   http://mandoc.bsd.lv/cgi-bin/cvsweb/roff.c#rev1.247
73161d06d6bSBaptiste Daroussin * Fix a use after free sometimes hit when validation deletes a block.
73261d06d6bSBaptiste Daroussin   http://mandoc.bsd.lv/cgi-bin/cvsweb/mdoc_macro.c#rev1.180
73361d06d6bSBaptiste Daroussin    --- MAJOR FUNCTIONALLY RELEVANT BUGFIXES ---
73461d06d6bSBaptiste Daroussin * Let man(1) show manuals for the current architecture by default,
73561d06d6bSBaptiste Daroussin   and support the MACHINE environment variable.
73661d06d6bSBaptiste Daroussin * Fix the man(1) and apropos(1) -m option, it didn't work at all.
73761d06d6bSBaptiste Daroussin * Do not spawn a pager when there is no output.
73861d06d6bSBaptiste Daroussin * In makewhatis(8), fix detection of hardlinked manuals on platforms
73961d06d6bSBaptiste Daroussin   having padding in struct inodev (typically 64bit platforms).
74061d06d6bSBaptiste Daroussin    --- PORTABILITY IMPROVEMENTS ---
74161d06d6bSBaptiste Daroussin * Ignore O_CLOEXEC when the operating system doesn't provide it.
74261d06d6bSBaptiste Daroussin * Avoid forward reference to enum type which violates ISO C99.
74361d06d6bSBaptiste Daroussin * Support homebrew-style linking on Mac OS X.
74461d06d6bSBaptiste Daroussin    --- MINOR NEW FEATURES ---
74561d06d6bSBaptiste Daroussin * lookup: Accept digit+letter and "n" as section names in man(1),
74661d06d6bSBaptiste Daroussin   and consistently handle digit+letter in file name extensions.
74761d06d6bSBaptiste Daroussin * lookup: Speed up -s/-S by using the "mlinks" rather than the "keys" table.
74861d06d6bSBaptiste Daroussin * output: Insert horizontal lines between formatted manual pages.
74961d06d6bSBaptiste Daroussin * input: New stricter and more resilient UTF-8 parser.
75061d06d6bSBaptiste Daroussin * mdoc(7): Refactor block rewinding for simpler and more robust parsing.
75161d06d6bSBaptiste Daroussin * man(7): Use the -Ios option when .TH has less than four arguments.
75261d06d6bSBaptiste Daroussin * tbl(7): Implement the "center" option.
75361d06d6bSBaptiste Daroussin * tbl(7): New option and format parsers, improved in many respects.
75461d06d6bSBaptiste Daroussin * roff(7): Basic implementation of the \o escape sequence (overstrike),
75561d06d6bSBaptiste Daroussin   and improved rendering of overstrikes in PostScript and PDF output.
75661d06d6bSBaptiste Daroussin * Message improvements, in particular for, but not restricted to,
75761d06d6bSBaptiste Daroussin   eqn(7), tbl(7), and wrong numbers of arguments in mdoc(7) and man(7),
75861d06d6bSBaptiste Daroussin   in various cases also improving output generated by invalid input.
75961d06d6bSBaptiste Daroussin * Delete the -V option.  It serves no purpose but keeps confusing people.
76061d06d6bSBaptiste Daroussin * gmdiff: Minimal support for Heirloom roff.
76161d06d6bSBaptiste Daroussin    --- RELIABILITY BUGFIXES ---
76261d06d6bSBaptiste Daroussin * tbl(7): Fix a read buffer overrun on 'f' at EOL in a layout.
76361d06d6bSBaptiste Daroussin * roff(7): Fix a read buffer overrun on incomplete numerical conditions.
76461d06d6bSBaptiste Daroussin * mdoc(7): Fix a NULL pointer access on .Nd followed by an explicit block.
76561d06d6bSBaptiste Daroussin * mdoc(7): Fix a NULL pointer access on .It Xo without .Xc.
76661d06d6bSBaptiste Daroussin * mdoc(7): Fix a NULL pointer access on .Eo without a tail.
76761d06d6bSBaptiste Daroussin * mdoc(7): Fix a NULL pointer access in the validation of empty .St macros.
76861d06d6bSBaptiste Daroussin * man(7)/tbl(7): Fix a NULL pointer access on .TS right after .TP.
76961d06d6bSBaptiste Daroussin * tbl(7): Fix a NULL pointer access on layout lines without any cells.
77061d06d6bSBaptiste Daroussin * eqn(7): Fix NULL pointer accesses in the terminal formatter.
77161d06d6bSBaptiste Daroussin * roff(7): Fix a NULL pointer access on trailing \s-/\s+ without an argument.
77261d06d6bSBaptiste Daroussin * gz: Fix a potential NULL pointer access after waitpid() failure.
77361d06d6bSBaptiste Daroussin * roff(7): Don't let the modulo operator divide by zero.
77461d06d6bSBaptiste Daroussin * input: Fix an assertion failure on certain invalid UTF-8 input.
77561d06d6bSBaptiste Daroussin * terminal output: Allow arbitrary depth of the font stack (assertion fix).
77661d06d6bSBaptiste Daroussin * mdoc(7): Fix assertion failures and endless loops on invalid block closing.
77761d06d6bSBaptiste Daroussin * mdoc(7): Fix an assertion failure on .Bl .Sm not followed by .It.
77861d06d6bSBaptiste Daroussin * mdoc(7): Fix an assertion failure on .Bl -column ... .El .Ta.
77961d06d6bSBaptiste Daroussin * tbl(7): Fix assertion failures by macros inside table data,
78061d06d6bSBaptiste Daroussin   but do not throw away the macro arguments.
78161d06d6bSBaptiste Daroussin * Prevent certain kinds of unreasonable input from producing excessive
78261d06d6bSBaptiste Daroussin   output, in one case caused by unsigned integer underflow.
78361d06d6bSBaptiste Daroussin * Fix a potential memory leak in makewhatis(8) on very long filenames.
78461d06d6bSBaptiste Daroussin    --- MINOR BUGFIXES ---
78561d06d6bSBaptiste Daroussin * mdoc(7): Fix parsing of badly nested blocks with multiple identical blocks.
78661d06d6bSBaptiste Daroussin * mdoc(7): Support negative indentations for displays and lists.
78761d06d6bSBaptiste Daroussin * mdoc(7): Don't mistreat negative .sp arguments as large positive ones.
78861d06d6bSBaptiste Daroussin * mdoc(7): Some spacing fixes for .Eo/.Ec.
78961d06d6bSBaptiste Daroussin * man(7): Support negative horizontal widths.
79061d06d6bSBaptiste Daroussin * man(7): Do not print out invalid .IP arguments.
79161d06d6bSBaptiste Daroussin * man(7): Correctly handle scaling units after .PD.
79261d06d6bSBaptiste Daroussin * man(7): Support .RE with an argument.
79361d06d6bSBaptiste Daroussin * man(7): Fix restoring indentation after .RS with large negative arguments.
79461d06d6bSBaptiste Daroussin * tbl(7): Prevent tables from breaking the filling of preceding text.
79561d06d6bSBaptiste Daroussin * tbl(7): Fix vertical spacing at the beginning of tables.
79661d06d6bSBaptiste Daroussin * tbl(7): Parser and formatter fixes for line drawing and font modifiers.
79761d06d6bSBaptiste Daroussin * tbl(7): Correct handling of blank data lines.
79861d06d6bSBaptiste Daroussin * eqn(7): Add sometimes missing whitespace before equation output.
79961d06d6bSBaptiste Daroussin * roff(7): Fix vertical scaling, most of it was wrong.
80061d06d6bSBaptiste Daroussin * roff(7): Slightly improve \w width measurements.
80161d06d6bSBaptiste Daroussin * roff(7): Accept the historic aliases \s10 to \s39 for \s(10 to \s(39.
80261d06d6bSBaptiste Daroussin * roff(7): Correctly escape quotes when expanding macro arguments.
80361d06d6bSBaptiste Daroussin * roff(7): Correctly handle scaling units in numerical expressions,
80461d06d6bSBaptiste Daroussin   and some other improvements to the parsing of numerical expressions.
80561d06d6bSBaptiste Daroussin * roff(7): Three minor fixes with respect to evaluation of conditionals.
80661d06d6bSBaptiste Daroussin * roff(7): Let .it accept numerical expressions, not just constants.
80761d06d6bSBaptiste Daroussin * mandoc_char(7): Correct some character names and renderings.
80861d06d6bSBaptiste Daroussin * If earlier files set a non-zero exit status, never reset it to zero.
80961d06d6bSBaptiste Daroussin    --- THANKS TO ---
81061d06d6bSBaptiste Daroussin * Jonathan Gray (OpenBSD) for yet more testing with afl (the American
81161d06d6bSBaptiste Daroussin   Fuzzy Lop security fuzzer), again resulting in many bug reports.
81261d06d6bSBaptiste Daroussin * Theo de Raadt (OpenBSD) for suggesting the main new feature (man(1) file
81361d06d6bSBaptiste Daroussin   system lookup) and for reporting an important bug (pager without output).
81461d06d6bSBaptiste Daroussin * Theo Buehler for an important bug report (-s/-S slowness)
81561d06d6bSBaptiste Daroussin   and for proposing a nice new feature (lines between pages).
81661d06d6bSBaptiste Daroussin * Jason McIntyre for an important bug report (hardlink detection)
81761d06d6bSBaptiste Daroussin   and multiple documentation patches.
81861d06d6bSBaptiste Daroussin * Pascal Stumpf (OpenBSD) and Alessandro de Laurenzis for
81961d06d6bSBaptiste Daroussin   important bug reports (architecture and man -m, respectively).
82061d06d6bSBaptiste Daroussin * Thomas Klausner (NetBSD) for proposing a new feature (man(7) -Ios),
82161d06d6bSBaptiste Daroussin   a bug report, and release testing.
82261d06d6bSBaptiste Daroussin * Anthony Bentley, Daniel Dickman, Ted Unangst (OpenBSD) and
82361d06d6bSBaptiste Daroussin   Kristaps Dzonsons (bsd.lv) for source code patches and bug reports.
82461d06d6bSBaptiste Daroussin * Christian Weisgerber (OpenBSD) for more than half a dozen bug reports.
82561d06d6bSBaptiste Daroussin * Carsten Kunze (Heirloom troff) for bug reports and release testing.
82661d06d6bSBaptiste Daroussin * Antoine Jacoutot (OpenBSD) for release testing.
82761d06d6bSBaptiste Daroussin * Alexis Hildebrandt (Homebrew), Baptiste Daroussin (FreeBSD),
82861d06d6bSBaptiste Daroussin   Jonathan Perkin (SmartOS), Pedro Giffuni (FreeBSD), Svyatoslav
82961d06d6bSBaptiste Daroussin   Mishyn (Crux Linux), Ulrich Spoerlein (FreeBSD), Jan Stary, Patrick
83061d06d6bSBaptiste Daroussin   Keshishian, Sebastien Marie, and Steffen Nurpmeso for bug reports.
83161d06d6bSBaptiste Daroussin
83261d06d6bSBaptiste DaroussinChanges in version 1.13.2, released on December 13, 2014
83361d06d6bSBaptiste Daroussin
83461d06d6bSBaptiste Daroussin    --- MAJOR NEW FEATURES ---
83561d06d6bSBaptiste Daroussin * Include an implementation of man(1), the manual page viewer.
83661d06d6bSBaptiste Daroussin * Unified set of command line option, each one supported by all
83761d06d6bSBaptiste Daroussin   command names, including new options -a (format all), -c (no
83861d06d6bSBaptiste Daroussin   pager), -h (synopsis only), and -w (list filenames).
83961d06d6bSBaptiste Daroussin * Support the MANPAGER and PAGER environment variables.
84061d06d6bSBaptiste Daroussin * Support gzip'ed manuals by the whole toolset, even as .so targets.
84161d06d6bSBaptiste Daroussin * Support UTF-8 and Latin-1 input by the whole toolset, delete preconv(1).
84261d06d6bSBaptiste Daroussin * Switch the default output mode from -Tascii to -Tlocale.
84361d06d6bSBaptiste Daroussin * Improve -Tascii output for Unicode escape sequences.
84461d06d6bSBaptiste Daroussin * Let the -Thtml output mode produce polyglot HTML5.
84561d06d6bSBaptiste Daroussin * Many improvements for eqn(7), in particular in-line equations,
84661d06d6bSBaptiste Daroussin   MathML output in -Thtml mode, and much improved terminal formatting.
84761d06d6bSBaptiste Daroussin    --- PORTABILITY IMPROVEMENTS ---
84861d06d6bSBaptiste Daroussin * Change the build sequence to the usual ./configure; make; make install.
84961d06d6bSBaptiste Daroussin * Support ./configure.local for build customizations.
85061d06d6bSBaptiste Daroussin * Autodetect wchar, sqlite3, and manpath support.
85161d06d6bSBaptiste Daroussin * Provide a fallback version of fts(3) for systems lacking it.
85261d06d6bSBaptiste Daroussin * Support choosing alternative binary and manual names.
85361d06d6bSBaptiste Daroussin    --- MINOR NEW FEATURES ---
85461d06d6bSBaptiste Daroussin * Rudimentary implementation of the e, x, and z tbl(7) layout
85561d06d6bSBaptiste Daroussin   modifiers to equalize, maximize, and ignore the width of columns.
85661d06d6bSBaptiste Daroussin * Implement font modifiers in tbl(7) layouts.
85761d06d6bSBaptiste Daroussin * Allow comma-separated options in the tbl(7) options line.
85861d06d6bSBaptiste Daroussin * Parse and ignore the .pl (page length) roff(7) request.
85961d06d6bSBaptiste Daroussin * Implement .An -[no]split for the mdoc(7) -Thtml output mode.
86061d06d6bSBaptiste Daroussin * Support bold italic font in PostScript and PDF output.
86161d06d6bSBaptiste Daroussin * Warn about commas in function arguments and parentheses in function names.
86261d06d6bSBaptiste Daroussin * Warn about botched .Xr ordering and punctuation below SEE ALSO.
86361d06d6bSBaptiste Daroussin * Warn about AUTHORS sections without .An macros.
86461d06d6bSBaptiste Daroussin * Warn about attempts to call non-callable macros.
86561d06d6bSBaptiste Daroussin * New developer documentation manual page mandoc_headers(3).
86661d06d6bSBaptiste Daroussin    --- BUGFIXES ---
86761d06d6bSBaptiste Daroussin * Fix read buffer overrun sometimes triggered by trailing whitespace.
86861d06d6bSBaptiste Daroussin * Fix read buffer overrun triggered by certain invalid \H sequences.
86961d06d6bSBaptiste Daroussin * Fix NULL pointer access triggered by .Bl without any arguments.
87061d06d6bSBaptiste Daroussin * Fix NULL pointer access triggered by .It Nm Fo without .Fc.
87161d06d6bSBaptiste Daroussin * Fix NULL pointer access triggered by .Sh Xo .Sh without .Xc.
87261d06d6bSBaptiste Daroussin * Fix NULL pointer access triggered by missing .Nm.
87361d06d6bSBaptiste Daroussin * Fix an assertion triggered by .It right after .El.
87461d06d6bSBaptiste Daroussin * Fix an assertion triggered by .Ec without preceding .Eo.
87561d06d6bSBaptiste Daroussin * Fix an assertion triggered by .Sm or .Db with multiple arguments.
87661d06d6bSBaptiste Daroussin * Fix assertion failures triggered by very large width arguments.
87761d06d6bSBaptiste Daroussin * Fix a division by zero in the roff(7) parser.
87861d06d6bSBaptiste Daroussin * Prevent negative arguments to .ll from causing integer underflow.
87961d06d6bSBaptiste Daroussin * Correctly autodetect source format even when .Dd is preceded by .ll.
88061d06d6bSBaptiste Daroussin * Multiple fixes with respect to .Bd and .Bl -offset and -width.
88161d06d6bSBaptiste Daroussin * Many bugfixes with respect to scaling units.
88261d06d6bSBaptiste Daroussin * Multiple fixes with respect to delimiter handling by in-line macros.
88361d06d6bSBaptiste Daroussin * Multiple fixes with respect to .Pf.
88461d06d6bSBaptiste Daroussin * Make \c work properly in no-fill mode.
88561d06d6bSBaptiste Daroussin * Stricter syntax checking of Unicode character names.
88661d06d6bSBaptiste Daroussin    --- THANKS TO ---
88761d06d6bSBaptiste Daroussin * Kristaps Dzonsons for rewriting the eqn(7) parser, implementing
88861d06d6bSBaptiste Daroussin   HTML5 and MathML output, and various other code contributions.
88961d06d6bSBaptiste Daroussin * Jonathan Gray (OpenBSD) for extensive testing with afl (the
89061d06d6bSBaptiste Daroussin   American Fuzzy Lop security fuzzer) resulting in many bug reports.
89161d06d6bSBaptiste Daroussin * Anthony Bentley (OpenBSD), Baptiste Daroussin (FreeBSD), Daniel
89261d06d6bSBaptiste Daroussin   Dickman, Doug Hogan, Jason McIntyre, Theo de Raadt (OpenBSD),
89361d06d6bSBaptiste Daroussin   and Martin Natano for source code patches.
89461d06d6bSBaptiste Daroussin * Carsten Kunze (Heirloom troff), Daniel Levai (Slackware),
89561d06d6bSBaptiste Daroussin   Garrett D'Amore (illumos), Giovanni Becchis, Matthew Dempsky,
89661d06d6bSBaptiste Daroussin   Stuart Henderson, Ted Unangst, Todd Miller (OpenBSD), Thomas
89761d06d6bSBaptiste Daroussin   Klausner (NetBSD), Ulrich Spoerlein (FreeBSD), Justin Haynes,
89861d06d6bSBaptiste Daroussin   Marcus Merighi, Sebastien Marie, Steffen Nurpmeso and Theo Buehler
89961d06d6bSBaptiste Daroussin   for bug reports.
90061d06d6bSBaptiste Daroussin
90161d06d6bSBaptiste DaroussinChanges in version 1.13.1, released on August 10, 2014
90261d06d6bSBaptiste Daroussin
90361d06d6bSBaptiste Daroussin    --- MAJOR NEW FEATURES ---
90461d06d6bSBaptiste Daroussin * A complete apropos(1)/makewhatis(8)/man.cgi(8) suite
90561d06d6bSBaptiste Daroussin   based on SQLite3 is now included.
90661d06d6bSBaptiste Daroussin * The roff(7) parser now provides an almost complete implementation
90761d06d6bSBaptiste Daroussin   of numerical expressions.
90861d06d6bSBaptiste Daroussin * Warning and error messages have been improved in many ways.
90961d06d6bSBaptiste Daroussin   Almost all fatal errors were downgraded to normal errors and some
91061d06d6bSBaptiste Daroussin   even to warnings.  Almost all messages now mention the macro where
91161d06d6bSBaptiste Daroussin   the issue is detected and many indicate the workaround employed.
91261d06d6bSBaptiste Daroussin   The mandoc(1) manual now includes a list explaining all messages.
91361d06d6bSBaptiste Daroussin    --- MINOR NEW FEATURES ---
91461d06d6bSBaptiste Daroussin * The roff(7) parser now supports the .ami (append to macro with
91561d06d6bSBaptiste Daroussin   indirectly specified name), .as (append to user-defined
91661d06d6bSBaptiste Daroussin   string), .dei (define macro with indirectly specified name),
91761d06d6bSBaptiste Daroussin   .ll (line length), and .rr (remove register) requests.
91861d06d6bSBaptiste Daroussin * The roff(7) parser now supports string comparison and numerical
91961d06d6bSBaptiste Daroussin   conditionals in the .if and .ie requests.
92061d06d6bSBaptiste Daroussin * The roff parser now fully supports the \B (validate numerical
92161d06d6bSBaptiste Daroussin   expression) and partially supports the \w (measure text width)
92261d06d6bSBaptiste Daroussin   escape sequences.
92361d06d6bSBaptiste Daroussin * The terminal formatter now supports the \: (optional line break)
92461d06d6bSBaptiste Daroussin   escape sequence.
92561d06d6bSBaptiste Daroussin * The roff parser now supports expansion of user-defined strings
92661d06d6bSBaptiste Daroussin   involving indirect references.
92761d06d6bSBaptiste Daroussin * The roff(7) parser now handles some pre-defined read-only
92861d06d6bSBaptiste Daroussin   number registers that occur in the pod2man(1) preamble.
92961d06d6bSBaptiste Daroussin * For backward compatibility, the mdoc(7) parser and formatters
93061d06d6bSBaptiste Daroussin   now support the obsolete macros .En, .Es, .Fr, and .Ot.
93161d06d6bSBaptiste Daroussin * The mdoc(7) formatter non partially supports .Bd -centered.
93261d06d6bSBaptiste Daroussin * tbl(7) now handles leading and trailing vertical lines.
93361d06d6bSBaptiste Daroussin * The build system now provides fallback versions of strcasestr(3)
93461d06d6bSBaptiste Daroussin   and strsep(3) for systems lacking them.
93561d06d6bSBaptiste Daroussin * The mdoc(7) manual now explains how various standards
93661d06d6bSBaptiste Daroussin   supported by the .St macro are related to each other.
93761d06d6bSBaptiste Daroussin    --- BUGFIXES ---
93861d06d6bSBaptiste Daroussin * In the roff(7) parser, several bugs were fixed with respect
93961d06d6bSBaptiste Daroussin   to closing conditional blocks on macro lines.
94061d06d6bSBaptiste Daroussin * Parsing of roff(7) identifiers and escape sequences was improved
94161d06d6bSBaptiste Daroussin   in multiple respects.
94261d06d6bSBaptiste Daroussin * In the mdoc(7) parser, the handling of defective document
94361d06d6bSBaptiste Daroussin   prologues was improved in multiple ways.
94461d06d6bSBaptiste Daroussin * The mdoc(7) parser no longer skips content before the first section
94561d06d6bSBaptiste Daroussin   header, and it no longer deletes non-.% content from .Rs blocks.
94661d06d6bSBaptiste Daroussin * In the mdoc(7) parser, a crash was fixed related to weird .Sh headers.
94761d06d6bSBaptiste Daroussin * In the mdoc(7) parser, handling of .Sm with missing or invalid
94861d06d6bSBaptiste Daroussin   arguments was corrected.
94961d06d6bSBaptiste Daroussin * In the mdoc(7) parser, trailing punctuation at the end of partial
95061d06d6bSBaptiste Daroussin   implicit macros no longer triggers end-of-sentence spacing.
95161d06d6bSBaptiste Daroussin * In the terminal formatter, two crashes were fixed: one triggered by
95261d06d6bSBaptiste Daroussin   excessive indentation and another by excessively long .Nm arguments.
95361d06d6bSBaptiste Daroussin * In the terminal formatter, a floating point rounding bug was
95461d06d6bSBaptiste Daroussin   fixed that sometimes caused an off-by-one error in indentation.
95561d06d6bSBaptiste Daroussin * In the UTF-8 formatter, rendering of accents, breakable hyphens,
95661d06d6bSBaptiste Daroussin   and non-breakable spaces was corrected.
95761d06d6bSBaptiste Daroussin * In the HTML formatter, encoding of special characters was
95861d06d6bSBaptiste Daroussin   corrected in multiple respects.
95961d06d6bSBaptiste Daroussin * In the mdoc(7) formatter, rendering of .Ex and .Rv was
96061d06d6bSBaptiste Daroussin   improved for various edge cases.
96161d06d6bSBaptiste Daroussin * In the mdoc(7) formatter, handling of empty .Bl -inset item
96261d06d6bSBaptiste Daroussin   heads was improved.
96361d06d6bSBaptiste Daroussin * In the man(7) formatter, some bugs were fixed with respect
96461d06d6bSBaptiste Daroussin   to same-line detection in the context of .TP and .nf macros,
96561d06d6bSBaptiste Daroussin   and the indentation of .IP and .TP blocks was improved.
96661d06d6bSBaptiste Daroussin * The mandoc(3) library no longer prints to stderr.
96761d06d6bSBaptiste Daroussin    --- THANKS TO ---
96861d06d6bSBaptiste Daroussin   Abhinav Upadhyay (NetBSD), Andreas Voegele, Anthony Bentley (OpenBSD),
96961d06d6bSBaptiste Daroussin   Christian Weisgerber (OpenBSD), Havard Eidnes (NetBSD), Jan Stary,
97061d06d6bSBaptiste Daroussin   Jason McIntyre (OpenBSD), Jeremie Courreges-Anglas (OpenBSD),
97161d06d6bSBaptiste Daroussin   Joerg Sonnenberger (NetBSD), Juan Francisco Cantero Hurtado (OpenBSD),
97261d06d6bSBaptiste Daroussin   Marc Espie (OpenBSD), Matthias Scheler (NetBSD), Pascal Stumpf (OpenBSD),
97361d06d6bSBaptiste Daroussin   Paul Onyschuk (Alpine Linux), Sebastien Marie, Steffen Nurpmeso,
97461d06d6bSBaptiste Daroussin   Stuart Henderson (OpenBSD), Ted Unangst (OpenBSD), Theo de Raadt (OpenBSD),
97561d06d6bSBaptiste Daroussin   Thomas Klausner (NetBSD), and Ulrich Spoerlein (FreeBSD)
97661d06d6bSBaptiste Daroussin   for reporting bugs and missing features.
97761d06d6bSBaptiste Daroussin
97861d06d6bSBaptiste DaroussinChanges in version 1.12.3, released on December 31, 2013
97961d06d6bSBaptiste Daroussin
98061d06d6bSBaptiste Daroussin * In the mdoc(7) SYNOPSIS, line breaks and hanging indentation
98161d06d6bSBaptiste Daroussin   now work correctly for .Fo/.Fa/.Fc and .Fn blocks.
98261d06d6bSBaptiste Daroussin   Thanks to Franco Fichtner for doing part of the work.
98361d06d6bSBaptiste Daroussin * The mdoc(7) .Bk macro got some addititonal bugfixes.
98461d06d6bSBaptiste Daroussin * In mdoc(7) macro arguments, double quotes can now be quoted
98561d06d6bSBaptiste Daroussin   by doubling them, just like in man(7).
98661d06d6bSBaptiste Daroussin   Thanks to Tsugutomo ENAMI for the patch.
98761d06d6bSBaptiste Daroussin * At the end of man(7) macro lines, end-of-sentence spacing
98861d06d6bSBaptiste Daroussin   now works.  Thanks to Franco Fichtner for the patch.
98961d06d6bSBaptiste Daroussin * For backward compatibility, the man(7) parser now supports the
99061d06d6bSBaptiste Daroussin   man-ext .UR/.UE (uniform resource identifier) block macros.
99161d06d6bSBaptiste Daroussin * The man(7) parser now handles closing blocks that are not open
99261d06d6bSBaptiste Daroussin   more gracefully.
99361d06d6bSBaptiste Daroussin * The man(7) parser now ignores blank lines right after .SH and .SS.
99461d06d6bSBaptiste Daroussin * In the man(7) formatter, reset indentation when leaving a block,
99561d06d6bSBaptiste Daroussin   not just when entering the next one.
99661d06d6bSBaptiste Daroussin * The roff(7) .nr request now supports incrementing and decrementing
99761d06d6bSBaptiste Daroussin   number registers and stops parsing the number right before the
99861d06d6bSBaptiste Daroussin   first non-digit character.
99961d06d6bSBaptiste Daroussin * The roff(7) parser now supports the alternative escape sequence
100061d06d6bSBaptiste Daroussin   syntax \C'uXXXX' for Unicode characters.
100161d06d6bSBaptiste Daroussin * The roff(7) parser now parses and ignores the .fam (font family)
100261d06d6bSBaptiste Daroussin   and .hw (hyphenation points) requests and the \d and \u escape
100361d06d6bSBaptiste Daroussin   sequences.
100461d06d6bSBaptiste Daroussin * The roff(7) manual got a new ESCAPE SEQUENCE REFERENCE.
100561d06d6bSBaptiste Daroussin
100661d06d6bSBaptiste DaroussinChanges in version 1.12.2, released on Oktober 5, 2013
100761d06d6bSBaptiste Daroussin
100861d06d6bSBaptiste Daroussin * The mdoc(7) to man(7) converter, to be called as mandoc -Tman,
100961d06d6bSBaptiste Daroussin   is now fully functional.
101061d06d6bSBaptiste Daroussin * The mandoc(1) utility now supports the -Ios (default operating system)
101161d06d6bSBaptiste Daroussin   input option, and the -Tutf8 output mode now actually works.
101261d06d6bSBaptiste Daroussin * The mandocdb(8) utility no longer truncates existing databases when
101361d06d6bSBaptiste Daroussin   starting to build new ones, but only replaces them when the build
101461d06d6bSBaptiste Daroussin   actually succeeds.
101561d06d6bSBaptiste Daroussin * The man(7) parser now supports the PD macro (paragraph distance),
101661d06d6bSBaptiste Daroussin   and (for GNU man-ext compatibility only) EX (example block) and EE
101761d06d6bSBaptiste Daroussin   (example end).  Plus several bugfixes regarding indentation, line
101861d06d6bSBaptiste Daroussin   breaks, and vertical spacing, and regarding RS following TP.
101961d06d6bSBaptiste Daroussin * The roff(7) parser now supports the \f(BI (bold+italic) font escape,
102061d06d6bSBaptiste Daroussin   the \z (zero cursor advance) escape and the cc (change control
102161d06d6bSBaptiste Daroussin   character) and it (input line trap) requests. Plus bugfixes regarding
102261d06d6bSBaptiste Daroussin   the \t (tab) escape, nested escape sequences, and conditional requests.
102361d06d6bSBaptiste Daroussin * In mdoc(7), several bugs were fixed related to UTF-8 output of quoting
102461d06d6bSBaptiste Daroussin   enclosures, delimiter handling, list indentation and horizontal and
102561d06d6bSBaptiste Daroussin   vertical spacing, formatting of the Lk, %U, and %C macros, plus some
102661d06d6bSBaptiste Daroussin   bugfixes related to the handling of syntax errors like badly nested
102761d06d6bSBaptiste Daroussin   font blocks, stray Ta macros outside column lists, unterminated It Xo
102861d06d6bSBaptiste Daroussin   blocks, and non-text children of Nm blocks.
102961d06d6bSBaptiste Daroussin * In tbl(7), the width of horizontal spans and the vertical spacing
103061d06d6bSBaptiste Daroussin   around tables was corrected, and in man(7) files, a crash was fixed
103161d06d6bSBaptiste Daroussin   that was triggered by some particular unclosed T{ macros.
103261d06d6bSBaptiste Daroussin * For mandoc developers, we now provide a tbl(3) library manual and
103361d06d6bSBaptiste Daroussin   gmdiff, a very small, very simplistic groff-versus-mandoc output
103461d06d6bSBaptiste Daroussin   comparison tool.
103561d06d6bSBaptiste Daroussin * Provide this NEWS file.
103661d06d6bSBaptiste Daroussin
103761d06d6bSBaptiste DaroussinChanges in version 1.12.1, released on March 23, 2012
103861d06d6bSBaptiste Daroussin
103961d06d6bSBaptiste Daroussin * Significant work on apropos(1) and mandocdb(8). These tools are now
104061d06d6bSBaptiste Daroussin   much more robust.  A whatis(1) implementation is now handled as an
104161d06d6bSBaptiste Daroussin   apropos(1) mode.  These tools are also able to minimally handle
104261d06d6bSBaptiste Daroussin   pre-formatted pages, that is, those already formatted by another
104361d06d6bSBaptiste Daroussin   utility such as GNU troff.
104461d06d6bSBaptiste Daroussin * The man.cgi(7) script is also now available for wider testing.
104561d06d6bSBaptiste Daroussin   It interfaces with mandocdb(8) manuals cached by catman(8).
104661d06d6bSBaptiste Daroussin   HTML output is generated on-the-fly by libmandoc or internal
104761d06d6bSBaptiste Daroussin   methods to convert pre-formatted pages.
104861d06d6bSBaptiste Daroussin * The mailing list archive for the discuss and tech lists are being
104961d06d6bSBaptiste Daroussin   hosted by Gmane at gmane.comp.tools.mdocml.user and
105061d06d6bSBaptiste Daroussin   gmane.comp.tools.mdocml.devel, respectively.
105161d06d6bSBaptiste Daroussin
105261d06d6bSBaptiste DaroussinChanges in version 1.12.0, released on October 8, 2011
105361d06d6bSBaptiste Daroussin
105461d06d6bSBaptiste Daroussin * This version features a new, work-in-progress mandoc(1) output mode:
105561d06d6bSBaptiste Daroussin   -Tman.  This mode allows a system maintainer to distribute man(7)
105661d06d6bSBaptiste Daroussin   media for older systems that may not natively support mdoc(7), such
105761d06d6bSBaptiste Daroussin   as old Solaris systems.
105861d06d6bSBaptiste Daroussin * The -Ofragment option was added to mandoc(1)'s -Thtml and -Txhtml modes.
105961d06d6bSBaptiste Daroussin * While adding features, an apropos(1) utility has been merged from the
106061d06d6bSBaptiste Daroussin   mandoc-tools sandbox.  This interfaces with mandocdb(8) for semantic
106161d06d6bSBaptiste Daroussin   search of manual content.  apropos(1) is different from the traditional
106261d06d6bSBaptiste Daroussin   apropos primarily in allowing keyword search (such as for functions,
106361d06d6bSBaptiste Daroussin   utilities, etc.) and regular expressions.  Note that the calling
106461d06d6bSBaptiste Daroussin   syntax for apropos is likely to change as it settles down.
106561d06d6bSBaptiste Daroussin * In documentation news, the mdoc(7) and man(7) manuals have been
106661d06d6bSBaptiste Daroussin   made considerably more readable by adding MACRO OVERVIEW sections, by
106761d06d6bSBaptiste Daroussin   moving the gory details of the LANGUAGE SYNTAX to the roff(7) manual,
106861d06d6bSBaptiste Daroussin   and by moving the very technical MACRO SYNTAX sections down to the
106961d06d6bSBaptiste Daroussin   bottom of the page.
107061d06d6bSBaptiste Daroussin * Furthermore, for tbl(7), the -Tascii mode horizontal spacing of tables
107161d06d6bSBaptiste Daroussin   was rewritten completely.  It is now compatible with groff(1), both
107261d06d6bSBaptiste Daroussin   with and without frames and rulers.
107361d06d6bSBaptiste Daroussin * Nesting of indented blocks is now supported in man(7), and several
107461d06d6bSBaptiste Daroussin   bugs were fixed regarding indentation and alignment.
107561d06d6bSBaptiste Daroussin * The page headers in mdoc(7) are now nicer for very long titles.
107661d06d6bSBaptiste Daroussin
107761d06d6bSBaptiste DaroussinChanges in version 1.11.7, released on September 2, 2011
107861d06d6bSBaptiste Daroussin
107961d06d6bSBaptiste Daroussin * Added demandoc(1) utility for stripping away macros and escapes.
108061d06d6bSBaptiste Daroussin   This replaces the historical deroff(1) utility.
108161d06d6bSBaptiste Daroussin * Also improved the mdoc(7) and man(7) manuals.
108261d06d6bSBaptiste Daroussin
108361d06d6bSBaptiste DaroussinChanges in version 1.11.6, released on August 16, 2011
108461d06d6bSBaptiste Daroussin
108561d06d6bSBaptiste Daroussin * Handling of tr macro in roff(7) implemented.  This makes Perl
108661d06d6bSBaptiste Daroussin   documentation much more readable.  Hyphenation is also now enabled in
108761d06d6bSBaptiste Daroussin   man(7) format documents.  Many other general improvements have been
108861d06d6bSBaptiste Daroussin   implemented.
108961d06d6bSBaptiste Daroussin
109061d06d6bSBaptiste DaroussinChanges in version 1.11.5, released on July 24, 2011
109161d06d6bSBaptiste Daroussin
109261d06d6bSBaptiste Daroussin * Significant eqn(7) improvements.  mdocml can now parse arbitrary eqn
109361d06d6bSBaptiste Daroussin   input (although few GNU extensions are accepted, nor is mixing
109461d06d6bSBaptiste Daroussin   low-level roff with eqn).  See the eqn(7) manual for details.
109561d06d6bSBaptiste Daroussin   For the time being, equations are rendered as simple in-line text.
109661d06d6bSBaptiste Daroussin   The equation parser satisfies the language specified in the
109761d06d6bSBaptiste Daroussin   Second Edition User's Guide:
109861d06d6bSBaptiste Daroussin   http://www.kohala.com/start/troff/v7man/eqn/eqn2e.ps
109961d06d6bSBaptiste Daroussin
110061d06d6bSBaptiste DaroussinChanges in version 1.11.4, released on July 12, 2011
110161d06d6bSBaptiste Daroussin
110261d06d6bSBaptiste Daroussin * Bug-fixes and clean-ups across all systems, especially in mandocdb(8)
110361d06d6bSBaptiste Daroussin   and the man(7) parser.  This release was significantly assisted by
110461d06d6bSBaptiste Daroussin   participants in OpenBSD's c2k11.  Thanks!
110561d06d6bSBaptiste Daroussin
110661d06d6bSBaptiste DaroussinChanges in version 1.11.3, released on May 26, 2011
110761d06d6bSBaptiste Daroussin
110861d06d6bSBaptiste Daroussin * Introduce locale-encoding of output with the -Tlocale output option and
110961d06d6bSBaptiste Daroussin   Unicode escaped-character input.  See mandoc(1) and mandoc_char(7),
111061d06d6bSBaptiste Daroussin   respectively, for details.  This allows for non-ASCII characters (e.g.,
111161d06d6bSBaptiste Daroussin   \[u5000]) to be rendered in the locale's encoding, if said environment
111261d06d6bSBaptiste Daroussin   supports wide-character encoding (if it does not, -Tascii is used
111361d06d6bSBaptiste Daroussin   instead).  Locale support can be turned off at compile time by removing
111461d06d6bSBaptiste Daroussin   -DUSE_WCHAR in the Makefile, in which case -Tlocale is always a synonym
111561d06d6bSBaptiste Daroussin   for -Tascii.
111661d06d6bSBaptiste Daroussin * Furthermore, multibyte-encoded documents, such as those in UTF-8, may
111761d06d6bSBaptiste Daroussin   be on-the-fly recoded into mandoc(1) input by using the newly-added
111861d06d6bSBaptiste Daroussin   preconv(1) utility.  Note: in the future, this feature may be
111961d06d6bSBaptiste Daroussin   integrated into mandoc(1).
112061d06d6bSBaptiste Daroussin
112161d06d6bSBaptiste DaroussinChanges in version 1.11.2, released on May 12, 2011
112261d06d6bSBaptiste Daroussin
112361d06d6bSBaptiste Daroussin * Corrected some installation issues in version 1.11.1.
112461d06d6bSBaptiste Daroussin * Further migration to libmandoc.
112561d06d6bSBaptiste Daroussin * Initial public release (this utility is very much under development)
112661d06d6bSBaptiste Daroussin   of mandocdb(8).  This utility produces keyword databases of manual
112761d06d6bSBaptiste Daroussin   content, which features semantic querying of manual content.
112861d06d6bSBaptiste Daroussin
112961d06d6bSBaptiste DaroussinChanges in version 1.11.1, released on April 4, 2011
113061d06d6bSBaptiste Daroussin
113161d06d6bSBaptiste Daroussin * The earlier libroff, libmdoc, and libman soup have been merged into
113261d06d6bSBaptiste Daroussin   a single library, libmandoc, which manages all aspects of parsing
113361d06d6bSBaptiste Daroussin   real manuals, from line-handling to tbl(7) parsing.
113461d06d6bSBaptiste Daroussin * As usual, many general fixes and improvements have also occurred.
113561d06d6bSBaptiste Daroussin   In particular, a great deal of redundancy and superfluous code has
113661d06d6bSBaptiste Daroussin   been removed with the merging of the backend libraries.
113761d06d6bSBaptiste Daroussin * see also the changes in 1.10.10
113861d06d6bSBaptiste Daroussin
113961d06d6bSBaptiste DaroussinChanges in version 1.10.10, March 20, 2011, NOT released
114061d06d6bSBaptiste Daroussin
114161d06d6bSBaptiste Daroussin * Initial eqn(7) functionality is in place.  For the time being,
114261d06d6bSBaptiste Daroussin   this is limited to the recognition of equation blocks;
114361d06d6bSBaptiste Daroussin   future version of mdocml will expand upon this framework.
114461d06d6bSBaptiste Daroussin
114561d06d6bSBaptiste DaroussinChanges in version 1.10.9, released on January 7, 2011
114661d06d6bSBaptiste Daroussin
114761d06d6bSBaptiste Daroussin * Many back-end fixes have been implemented: argument handling (quoting),
114861d06d6bSBaptiste Daroussin   man(7) improvements, error/warning classes, and many more.
114961d06d6bSBaptiste Daroussin * Initial tbl(7) functionality (see the "TS", "TE", and "T&" macros in
115061d06d6bSBaptiste Daroussin   the roff(7) manual) has been merged from tbl.bsd.lv.  Output is still
115161d06d6bSBaptiste Daroussin   minimal, especially for -Thtml and -Txhtml, but manages to at least
115261d06d6bSBaptiste Daroussin   display data.  This means that mandoc(1) now has built-in support
115361d06d6bSBaptiste Daroussin   for two troff preprocessors via libroff: soelim(1) and tbl(1).
115461d06d6bSBaptiste Daroussin
115561d06d6bSBaptiste DaroussinChanges in version 1.10.8, released on December 24, 2010
115661d06d6bSBaptiste Daroussin
115761d06d6bSBaptiste Daroussin * Overhauled the -Thtml and -Txhtml output modes.  They now display
115861d06d6bSBaptiste Daroussin   readable output in arbitrary browsers, including text-based ones like
115961d06d6bSBaptiste Daroussin   lynx(1).  See HTML and XHTML manuals in the DOCUMENTATION section
116061d06d6bSBaptiste Daroussin   for examples.  Attention: available style-sheet classes have been
116161d06d6bSBaptiste Daroussin   considerably changed!  See the example.style.css file for details.
116261d06d6bSBaptiste Daroussin   Lastly, libmdoc and libman have been cleaned up and reduced in size
116361d06d6bSBaptiste Daroussin   and complexity.
116461d06d6bSBaptiste Daroussin * see also the changes in 1.10.7
116561d06d6bSBaptiste Daroussin
116661d06d6bSBaptiste DaroussinChanges in version 1.10.7, December 6, 2010, NOT released
116761d06d6bSBaptiste Daroussin
116861d06d6bSBaptiste Daroussin Significant improvements merged from OpenBSD downstream, including:
116961d06d6bSBaptiste Daroussin * many new roff(7) components,
117061d06d6bSBaptiste Daroussin * in-line implementation of troff's soelim(1),
117161d06d6bSBaptiste Daroussin * broken-block handling,
117261d06d6bSBaptiste Daroussin * overhauled error classifications, and
117361d06d6bSBaptiste Daroussin * cleaned up handling of error conditions.
117461d06d6bSBaptiste Daroussin
117561d06d6bSBaptiste DaroussinChanges in version 1.10.6, released on September 27, 2010
117661d06d6bSBaptiste Daroussin
117761d06d6bSBaptiste Daroussin * Calling conventions for mandoc(1) have changed: -W improved and -f
117861d06d6bSBaptiste Daroussin   deprecated.
117961d06d6bSBaptiste Daroussin * Non-ASCII characters are also now uniformly discarded.
118061d06d6bSBaptiste Daroussin * Lots of documentation improvements.
118161d06d6bSBaptiste Daroussin * Many incremental fixes accomodating for groff's more interesting
118261d06d6bSBaptiste Daroussin   productions.
118361d06d6bSBaptiste Daroussin * Lastly, pod2man(1) preambles are now fully accepted after some
118461d06d6bSBaptiste Daroussin   considerable roff(7) and special character support.
118561d06d6bSBaptiste Daroussin
118661d06d6bSBaptiste DaroussinChanges in version 1.10.5, released on July 27, 2010
118761d06d6bSBaptiste Daroussin
118861d06d6bSBaptiste Daroussin * Primarily a bug-fix and polish release, but including -Tpdf support
118961d06d6bSBaptiste Daroussin   in mandoc(1) by way of "Summer of Code".  Highlights:
119061d06d6bSBaptiste Daroussin * fix "Sm" and "Bd" handling
119161d06d6bSBaptiste Daroussin * fix end-of-sentence handling for embedded sentences
119261d06d6bSBaptiste Daroussin * polish man(7) documentation
119361d06d6bSBaptiste Daroussin * document all mdoc(7) macros
119461d06d6bSBaptiste Daroussin * polish mandoc(1) -Tps output
119561d06d6bSBaptiste Daroussin * lots of internal clean-ups in character escapes
119661d06d6bSBaptiste Daroussin * un-break literal contexts in man(7) documents
119761d06d6bSBaptiste Daroussin * improve -Thtml output for -man
119861d06d6bSBaptiste Daroussin * add mandoc(1) -Tpdf support
119961d06d6bSBaptiste Daroussin
120061d06d6bSBaptiste DaroussinChanges in version 1.10.4, released on July 12, 2010
120161d06d6bSBaptiste Daroussin
120261d06d6bSBaptiste Daroussin * Lots of features developed during both "Summer of Code" and the
120361d06d6bSBaptiste Daroussin   OpenBSD c2k10 hackathon:
120461d06d6bSBaptiste Daroussin * minimal "ds" roff(7) symbols are supported
120561d06d6bSBaptiste Daroussin * beautified SYNOPSIS section output
120661d06d6bSBaptiste Daroussin * acceptance of scope-block breakage in mdoc(7)
120761d06d6bSBaptiste Daroussin * clarify error message status
120861d06d6bSBaptiste Daroussin * many minor bug-fixes and formatting issues resolved
120961d06d6bSBaptiste Daroussin * see also changes in 1.10.3
121061d06d6bSBaptiste Daroussin
121161d06d6bSBaptiste DaroussinChanges in version 1.10.3, June 29, 2010, NOT released
121261d06d6bSBaptiste Daroussin
121361d06d6bSBaptiste Daroussin * variable font-width and paper-size support in mandoc(1) -Tps output
121461d06d6bSBaptiste Daroussin * "Bk" mdoc(7) support
121561d06d6bSBaptiste Daroussin
121661d06d6bSBaptiste DaroussinChanges in version 1.10.2, released on June 19, 2010
121761d06d6bSBaptiste Daroussin
121861d06d6bSBaptiste Daroussin * Small release featuring text-decoration in -Tps output,
121961d06d6bSBaptiste Daroussin   a few minor relaxations of errors, and some optimisations.
122061d06d6bSBaptiste Daroussin
122161d06d6bSBaptiste DaroussinChanges in version 1.10.1, released on June 7, 2010
122261d06d6bSBaptiste Daroussin
122361d06d6bSBaptiste Daroussin * This primarily focusses on the "Bl" and "It" macros described in
122461d06d6bSBaptiste Daroussin   mdoc(7).  Multi-line column support is now fully compatible with groff,
122561d06d6bSBaptiste Daroussin   as are implicit list entries for columns.
122661d06d6bSBaptiste Daroussin * Removed manuals(7) in favour of http://manpages.bsd.lv.
122761d06d6bSBaptiste Daroussin * The way we handle the SYNOPSIS section (see the SYNOPSIS documentation
122861d06d6bSBaptiste Daroussin   in MANUAL STRUCTURE) has also been considerably simplified compared
122961d06d6bSBaptiste Daroussin   to groff's method.
123061d06d6bSBaptiste Daroussin * Furthermore, the -Owidth=width output option has been added to -Tascii,
123161d06d6bSBaptiste Daroussin   see mandoc(1).
123261d06d6bSBaptiste Daroussin * Lastly, initial PostScript output has been added with the -Tps option
123361d06d6bSBaptiste Daroussin   to mandoc(1).  It's brutally simple at the moment: fixed-font, with no
123461d06d6bSBaptiste Daroussin   font decorations.
123561d06d6bSBaptiste Daroussin
123661d06d6bSBaptiste DaroussinChanges in version 1.10.0, released on May 29, 2010
123761d06d6bSBaptiste Daroussin
123861d06d6bSBaptiste Daroussin * Release consisting of the results from the m2k10 hackathon and up-merge
123961d06d6bSBaptiste Daroussin   from OpenBSD.  This requires a significant note of thanks to Ingo
124061d06d6bSBaptiste Daroussin   Schwarze (OpenBSD) and Joerg Sonnenberger (NetBSD) for their hard work,
124161d06d6bSBaptiste Daroussin   and again to Joerg for hosting m2k10.  Highlights (mostly cribbed from
124261d06d6bSBaptiste Daroussin   Ingo's m2k10 report) follow in no particular order:
124361d06d6bSBaptiste Daroussin * a libroff preprocessor in front of libmdoc and libman stripping out
124461d06d6bSBaptiste Daroussin   roff(7) instructions;
124561d06d6bSBaptiste Daroussin * end-of-sentence (EOS) detection in free-form and macro lines;
124661d06d6bSBaptiste Daroussin * correct handling of tab-separated columnar lists in mdoc(7);
124761d06d6bSBaptiste Daroussin * improved main calling routines to optionally use mmap(3) for better
124861d06d6bSBaptiste Daroussin   performance;
124961d06d6bSBaptiste Daroussin * cleaned up exiting when invoked as -Tlint or over multiple files
125061d06d6bSBaptiste Daroussin   with -fign-errors;
125161d06d6bSBaptiste Daroussin * error and warning message handling re-written to be unified for
125261d06d6bSBaptiste Daroussin   libroff, libmdoc, and libman;
125361d06d6bSBaptiste Daroussin * handling of badly-nested explicit-scoped macros;
125461d06d6bSBaptiste Daroussin * improved free-form text parsing in libman and libmdoc;
125561d06d6bSBaptiste Daroussin * significant GNU troff compatibility improvements in -Tascii,
125661d06d6bSBaptiste Daroussin   largely in terms of spacing;
125761d06d6bSBaptiste Daroussin * a regression framework for making sure the many fragilities of GNU
125861d06d6bSBaptiste Daroussin   troff aren't trampled in subsequent work;
125961d06d6bSBaptiste Daroussin * support for -Tascii breaking at hyphens encountered in free-form text;
126061d06d6bSBaptiste Daroussin * and many more minor fixes and improvements
126161d06d6bSBaptiste Daroussin
126261d06d6bSBaptiste DaroussinChanges in version 1.9.25, released on May 13, 2010
126361d06d6bSBaptiste Daroussin
126461d06d6bSBaptiste Daroussin * Fixed handling of "\*(Ba" escape.
126561d06d6bSBaptiste Daroussin * Backed out -fno-ign-chars (pointless complexity).
126661d06d6bSBaptiste Daroussin * Fixed erroneous breaking of literal lines.
126761d06d6bSBaptiste Daroussin * Fixed SYNOPSIS breaking lines before non-initial macros.
126861d06d6bSBaptiste Daroussin * Changed default section ordering.
126961d06d6bSBaptiste Daroussin * Most importantly, the framework for end-of-sentence double-spacing is
127061d06d6bSBaptiste Daroussin   in place, now implemented for the "end-of-sentence, end-of-line" rule.
127161d06d6bSBaptiste Daroussin * This is a stable roll-back point before the mandoc hackathon in Rostock!
127261d06d6bSBaptiste Daroussin
127361d06d6bSBaptiste DaroussinChanges in version 1.9.24, released on May 9, 2010
127461d06d6bSBaptiste Daroussin
127561d06d6bSBaptiste Daroussin * Rolled back break-at-hyphen.
127661d06d6bSBaptiste Daroussin * -DUGLY is now the default (no feature splits!).
127761d06d6bSBaptiste Daroussin * Free-form text is not de-chunked any more: lines are passed
127861d06d6bSBaptiste Daroussin   whole-sale into the front-end, including whitespace.
127961d06d6bSBaptiste Daroussin * Added mailing lists.
128061d06d6bSBaptiste Daroussin
128161d06d6bSBaptiste DaroussinChanges in version 1.9.23, released on April 7, 2010
128261d06d6bSBaptiste Daroussin
128361d06d6bSBaptiste Daroussin * mdocml has been linked to the OpenBSD build.
128461d06d6bSBaptiste Daroussin * This version incorporates many small changes, mostly from patches
128561d06d6bSBaptiste Daroussin   by OpenBSD, allowing crufty manuals to slip by with warnings instead
128661d06d6bSBaptiste Daroussin   of erroring-out.
128761d06d6bSBaptiste Daroussin * Some subtle semantic issues, such as punctuation scope, have also
128861d06d6bSBaptiste Daroussin   been fixed.
128961d06d6bSBaptiste Daroussin * Lastly, some issues with -Thtml have been fixed, which prompted an
129061d06d6bSBaptiste Daroussin   update to the online manual pages style layout.
129161d06d6bSBaptiste Daroussin
129261d06d6bSBaptiste DaroussinChanges in version 1.9.22, released on March 31, 2010
129361d06d6bSBaptiste Daroussin
129461d06d6bSBaptiste Daroussin * Adjusted merge of the significant work by Ingo Schwarze
129561d06d6bSBaptiste Daroussin   in getting "Xo" blocks (block full implicit, e.g., "It"
129661d06d6bSBaptiste Daroussin   for non-columnar lists) to work properly.  This isn't
129761d06d6bSBaptiste Daroussin   enabled by default: you must specify -DUGLY as a compiler
129861d06d6bSBaptiste Daroussin   flag (see the Makefile for details).
129961d06d6bSBaptiste Daroussin
130061d06d6bSBaptiste DaroussinChanges in version 1.9.20, released on March 30, 2010
130161d06d6bSBaptiste Daroussin
130261d06d6bSBaptiste Daroussin * More efforts to get roff instructions in man(7) documents under
130361d06d6bSBaptiste Daroussin   control.  Note that roff instructions embedded in line-scoped,
130461d06d6bSBaptiste Daroussin   next-line macros (e.g. "B") are not supported.
130561d06d6bSBaptiste Daroussin * Leading punctuation for mdoc(7) macros, such as "Fl ( ( a",
130661d06d6bSBaptiste Daroussin   are now correctly handled.
130761d06d6bSBaptiste Daroussin
130861d06d6bSBaptiste DaroussinChanges in version 1.9.18, released on March 27, 2010
130961d06d6bSBaptiste Daroussin
131061d06d6bSBaptiste Daroussin * Many fixes (largely pertaining to scope)
131161d06d6bSBaptiste Daroussin   and improvements (e.g., handling of apostrophe-control macros,
131261d06d6bSBaptiste Daroussin   which fixes the strange "BR" seen in some macro output)
131361d06d6bSBaptiste Daroussin   to handling roff instructions in man(7) documents.
131461d06d6bSBaptiste Daroussin
131561d06d6bSBaptiste DaroussinChanges in version 1.9.17, released on March 25, 2010
131661d06d6bSBaptiste Daroussin
131761d06d6bSBaptiste Daroussin * Accept perlpod(1) standard preamble.
131861d06d6bSBaptiste Daroussin * Also accept (and discard) "de", "dei", "am", "ami", and "ig"
131961d06d6bSBaptiste Daroussin   roff macro blocks.
132061d06d6bSBaptiste Daroussin
132161d06d6bSBaptiste DaroussinChanges in version 1.9.16, released on March 22, 2010
132261d06d6bSBaptiste Daroussin
132361d06d6bSBaptiste Daroussin * Inspired by patches and bug reports by Ingo Schwarze,
132461d06d6bSBaptiste Daroussin   allowed man(7) to accept non-printing elements to be nested
132561d06d6bSBaptiste Daroussin   within next-line scopes, such as "br" within "B" or "TH",
132661d06d6bSBaptiste Daroussin   which is valid roff.
132761d06d6bSBaptiste Daroussin * Longsoon architecture also noted and Makefile cleaned up.
132861d06d6bSBaptiste Daroussin
132961d06d6bSBaptiste DaroussinChanges in version 1.9.15, released on February 18, 2010
133061d06d6bSBaptiste Daroussin
133161d06d6bSBaptiste Daroussin * Moved to our new BSD.lv home.
133261d06d6bSBaptiste Daroussin * XHTML is now an acceptable output mode for mandoc(1);
133361d06d6bSBaptiste Daroussin * "Xr" made more compatible with groff;
133461d06d6bSBaptiste Daroussin * "Vt" fixed when invoked in SYNOPSIS;
133561d06d6bSBaptiste Daroussin * "\\" escape removed;
133661d06d6bSBaptiste Daroussin * end-of-line white-space detected for all lines;
133761d06d6bSBaptiste Daroussin * subtle bug fixed in list display for some modes;
133861d06d6bSBaptiste Daroussin * compatibility layer checked in for compilation in diverse
133961d06d6bSBaptiste Daroussin   UNIX systems;
134061d06d6bSBaptiste Daroussin * and column lengths handled correctly.
134161d06d6bSBaptiste Daroussin
134261d06d6bSBaptiste DaroussinFor older releases, see the ChangeLog files
134361d06d6bSBaptiste Daroussinin http://mandoc.bsd.lv/snapshots/ .
1344