xref: /freebsd/contrib/mandoc/NEWS (revision 7295610f5da64ab1818458ce007d9eb924496330)
1*7295610fSBaptiste Daroussin$Id: NEWS,v 1.34 2019/03/10 09:32:00 schwarze Exp $
261d06d6bSBaptiste Daroussin
361d06d6bSBaptiste DaroussinThis file lists the most important changes in the mandoc.bsd.lv distribution.
461d06d6bSBaptiste Daroussin
5*7295610fSBaptiste DaroussinChanges in version 1.14.5, released on March 10, 2019
6*7295610fSBaptiste Daroussin
7*7295610fSBaptiste Daroussin    --- MAJOR NEW FEATURES ---
8*7295610fSBaptiste Daroussin * apropos(1): improve POSIX compliance by accepting case-insensitive
9*7295610fSBaptiste Daroussin   extended regular expressions by default
10*7295610fSBaptiste Daroussin * new -O tag[=term] output option (open a page at the definition of a term)
11*7295610fSBaptiste Daroussin * tbl(7) -T html: spanning and horizontal and vertical alignment of cells
12*7295610fSBaptiste Daroussin * tbl(7) -T html: draw lines on the edges of table cells
13*7295610fSBaptiste Daroussin * tbl(7) -T utf8: render lines with the Unicode box drawing characters
14*7295610fSBaptiste Daroussin * mandoc is now able to handle the manual pages of the groff package.
15*7295610fSBaptiste Daroussin    --- MINOR NEW FEATURES ---
16*7295610fSBaptiste Daroussin * -T html: new option -O toc (table of contents)
17*7295610fSBaptiste Daroussin * -T html: second argument to -O man to support local and remote links
18*7295610fSBaptiste Daroussin * mdoc(7) .Bd -centered now fills the text contained in it
19*7295610fSBaptiste Daroussin * man-ext .SY and .YS macros (synopsis block)
20*7295610fSBaptiste Daroussin * man-ext .TQ macro (tagged paragraph without vertical space before it)
21*7295610fSBaptiste Daroussin * tbl(7) \& explicit alignment indicator
22*7295610fSBaptiste Daroussin * roff(7) .shift, .while, and .return requests
23*7295610fSBaptiste Daroussin * roff(7) .char request (output glyph definition)
24*7295610fSBaptiste Daroussin * roff(7) .nop request (no operation)
25*7295610fSBaptiste Daroussin * roff(7) .ft request: handle the CB, CI, and CR fonts
26*7295610fSBaptiste Daroussin * roff(7) .if c conditional (character available)
27*7295610fSBaptiste Daroussin * roff(7) \\$@ escape sequence (insert all macro arguments, quoted)
28*7295610fSBaptiste Daroussin * roff(7) \*(.T predefined string (interpolate output device name)
29*7295610fSBaptiste Daroussin * roff(7) \[charNNN] escape sequence (for printable ASCII characters)
30*7295610fSBaptiste Daroussin * roff(7) \# escape sequence (line continuation with comment)
31*7295610fSBaptiste Daroussin    --- HTML OUTPUT SYNTAX CORRECTIONS ---
32*7295610fSBaptiste Daroussin * Render .br and \p as <br/>, not as an empty <div>.
33*7295610fSBaptiste Daroussin * Render .Pp and .PP as <p> and automatically close it when needed.
34*7295610fSBaptiste Daroussin * Stop writing empty list elements for non-compact .Bl -tag lists.
35*7295610fSBaptiste Daroussin * Do not put <p> inside <a> if .UR or .MT contain .PP.
36*7295610fSBaptiste Daroussin * Implement tooltips purely in CSS rather than abusing title= attributes.
37*7295610fSBaptiste Daroussin    --- MINOR FUNCTIONAL IMPROVEMENTS ---
38*7295610fSBaptiste Daroussin * many improvements to the handling of fill and no-fill mode
39*7295610fSBaptiste Daroussin * tbl(7): better column widths in the presence of horizontal spans
40*7295610fSBaptiste Daroussin * several minor improvements to escape sequence handling
41*7295610fSBaptiste Daroussin * several minor improvements to manual font handling
42*7295610fSBaptiste Daroussin * portability: autodetect need for _GNU_SOURCE or _OPENBSD_SOURCE
43*7295610fSBaptiste Daroussin * portability: autodetect whether less(1) supports the -T option
44*7295610fSBaptiste Daroussin * large numbers of bugfixes of diverse kinds
45*7295610fSBaptiste Daroussin    --- STRUCTURAL IMPROVEMENTS ---
46*7295610fSBaptiste Daroussin * Disentangle eqn(7) and tbl(7) from other parser header files,
47*7295610fSBaptiste Daroussin   and clean up some parser data structures.
48*7295610fSBaptiste Daroussin * Substantially simplify error and warning message infrastructure.
49*7295610fSBaptiste Daroussin    --- THANKS TO ---
50*7295610fSBaptiste Daroussin * John Gardner for crucial help implementing tooltips in CSS.
51*7295610fSBaptiste Daroussin * Alexander Bluhm, Raphael Graf, Ted Unangst (OpenBSD)
52*7295610fSBaptiste Daroussin   and Daniel Sabogal (Alpine Linux) for patches.
53*7295610fSBaptiste Daroussin * Anthony Bentley and Jason McIntyre (OpenBSD) for documentation patches,
54*7295610fSBaptiste Daroussin   suggesting new features, bug reports, and useful discussions.
55*7295610fSBaptiste Daroussin * Kyle Evans and Baptiste Daroussin (FreeBSD) for minor patches.
56*7295610fSBaptiste Daroussin * Pali Rohar for suggesting multiple new features and for reporting
57*7295610fSBaptiste Daroussin   several bugs and missing features.
58*7295610fSBaptiste Daroussin * Klemens Nanni (OpenBSD) for suggesting multiple new features.
59*7295610fSBaptiste Daroussin * Kristaps Dzonsons (bsd.lv), Marc Espie (OpenBSD), Adam Kalisz,
60*7295610fSBaptiste Daroussin   and Laura Morales for suggesting new features.
61*7295610fSBaptiste Daroussin * Wolfram Schneider and Yuri Pankov (FreeBSD) for reporting missing features.
62*7295610fSBaptiste Daroussin * Edward Tomasz Napierala (FreeBSD) for suggesting a feature improvement.
63*7295610fSBaptiste Daroussin * Thomas Klausner (NetBSD) and Sevan Janiyan (SmartOS)
64*7295610fSBaptiste Daroussin   for bug reports and release testing.
65*7295610fSBaptiste Daroussin * Bryan Steele, Janne Johansson, Kurt Mosiejczuk, Mike Belopuhov, Theo
66*7295610fSBaptiste Daroussin   Buehler, Todd Miller (OpenBSD), Andreas Gustafsson, Christos Zoulas,
67*7295610fSBaptiste Daroussin   Robert Elz (NetBSD), Kurt Jaeger (FreeBSD), Fabio Scotoni, Kelvin
68*7295610fSBaptiste Daroussin   Sherlock, Mark Harris, Orestis Ioannou, Raf Czlonka, and Sean Farrell
69*7295610fSBaptiste Daroussin   for bug reports.
70*7295610fSBaptiste Daroussin * Ulrich Spoerlein (FreeBSD), Leah Neukirchen (Void Linux),
71*7295610fSBaptiste Daroussin   Matej Cepl (openSUSE), and Jan Stary (MacOS X) for release testing.
72*7295610fSBaptiste Daroussin * Brian Callahan and Stuart Henderson (OpenBSD) for help
73*7295610fSBaptiste Daroussin   with the OpenBSD groff port.
74*7295610fSBaptiste Daroussin * Bertrand Garrigues, Branden Robinson, Ralph Corderoy, and Werner
75*7295610fSBaptiste Daroussin   Lemberg (GNU troff) for checking groff patches.
76*7295610fSBaptiste Daroussin * Scott Cheloha, Theo de Raadt (OpenBSD)
77*7295610fSBaptiste Daroussin   and Natanael Copa (Alpine Linux) for useful discussions.
78*7295610fSBaptiste Daroussin
7961d06d6bSBaptiste DaroussinChanges in version 1.14.4, released on August 8, 2018
8061d06d6bSBaptiste Daroussin
8161d06d6bSBaptiste Daroussin    --- MAJOR NEW FEATURES ---
8261d06d6bSBaptiste Daroussin * In ASCII output, render mathematical symbols and greek letters
8361d06d6bSBaptiste Daroussin   as transliterations conveying the characters' meanings rather
8461d06d6bSBaptiste Daroussin   than trying to imitate their shape.  Consequently, such characters
8561d06d6bSBaptiste Daroussin   can now be used in portable manual pages.  All the same, please
8661d06d6bSBaptiste Daroussin   limit their use to contexts where they really matter, for example
8761d06d6bSBaptiste Daroussin   when showing complicated mathematical formulae.
8861d06d6bSBaptiste Daroussin * First steps towards better support for small screens in HTML
8961d06d6bSBaptiste Daroussin   output (responsive design): avoid most style= attributes, in
9061d06d6bSBaptiste Daroussin   particular all hard-coded indentations and column widths, and
9161d06d6bSBaptiste Daroussin   provide a better mandoc.css style sheet with a @media query,
9261d06d6bSBaptiste Daroussin   using em units throughout, and avoiding redundancy in selectors.
9361d06d6bSBaptiste Daroussin * Better HTML output with some more fitting HTML elements, eliminating
9461d06d6bSBaptiste Daroussin   needless class= attributes, and avoiding various HTML syntax errors
9561d06d6bSBaptiste Daroussin   (element nesting, URL-fragment syntax, duplicate id= attributes).
9661d06d6bSBaptiste Daroussin    --- MINOR NEW FEATURES ---
9761d06d6bSBaptiste Daroussin * When a man(1) argument contains a slash, imply -l like in man-db.
9861d06d6bSBaptiste Daroussin * Use TIOCGWINSZ to reduce the default -Owidth and -Oindent during
9961d06d6bSBaptiste Daroussin   interactive use on terminals narrower than 79 columns.
10061d06d6bSBaptiste Daroussin * Generated PostScript files are now more than 50% smaller.
10161d06d6bSBaptiste Daroussin * Terminal rendering of eqn(7) is improved in several respects.
10261d06d6bSBaptiste Daroussin * Simplified and nicer output from the mdoc(7) .Lk macro, formatting
10361d06d6bSBaptiste Daroussin   all links in-line, even long ones.
10461d06d6bSBaptiste Daroussin * roff(7) \n+ and \n- numerical register auto-increment and -decrement
10561d06d6bSBaptiste Daroussin * roff(7) .nr optional third argument (auto-increment step size)
10661d06d6bSBaptiste Daroussin * Autodetect in ./configure whether the compiler can use -W and -static,
10761d06d6bSBaptiste Daroussin   allowing to build on Solaris 10 and 11 without any configure.local.
10861d06d6bSBaptiste Daroussin    --- RELIABILITY BUGFIXES ---
10961d06d6bSBaptiste Daroussin * Only activate UTF-8 output when the user really selected UTF-8,
11061d06d6bSBaptiste Daroussin   not some other multibyte character encoding.
11161d06d6bSBaptiste Daroussin * Prevent excessive .ll arguments from generating infinite output.
11261d06d6bSBaptiste Daroussin * Fix out of bounds accesses to parse buffers that could happen when
11361d06d6bSBaptiste Daroussin   using renamed or user defined macros after roff(7) conditionals.
11461d06d6bSBaptiste Daroussin * Avoid an assertion failure in certain .Bl -column lists.
11561d06d6bSBaptiste Daroussin * Avoid a NULL pointer access on deroff() failure after '.SS ""'.
11661d06d6bSBaptiste Daroussin * Fix a segfault that could be triggered by two invalid .Dt macros.
11761d06d6bSBaptiste Daroussin * Fix two syntax errors in generated PDF files.
11861d06d6bSBaptiste Daroussin * Properly state the page size in generated PostScript files.
11961d06d6bSBaptiste Daroussin * Close a memory leak caused by missing gzclose(3).
12061d06d6bSBaptiste Daroussin * Fix misformatting of man(7) documents lacking .SH macros
12161d06d6bSBaptiste Daroussin   in PostScript and PDF output.
12261d06d6bSBaptiste Daroussin * And many minor bugfixes.
12361d06d6bSBaptiste Daroussin    --- THANKS TO ---
12461d06d6bSBaptiste Daroussin * Marc Espie (OpenBSD) for implementing the size reduction of
12561d06d6bSBaptiste Daroussin   PostScript files, one additional patch for code simplification,
12661d06d6bSBaptiste Daroussin   and two bug reports.
12761d06d6bSBaptiste Daroussin * Theo Buehler (OpenBSD) for a bugfix patch,
12861d06d6bSBaptiste Daroussin   and Theo de Raadt (OpenBSD) for checking it.
12961d06d6bSBaptiste Daroussin * John Gardner for more than a dozen suggestions regarding HTML output.
13061d06d6bSBaptiste Daroussin * Mike Williams for teaching me how to use %%DocumentMedia and
13161d06d6bSBaptiste Daroussin   setpagedevice in PostScript files.
13261d06d6bSBaptiste Daroussin * Werner Lemberg (groff) for feedback on mdoc(7) language changes.
13361d06d6bSBaptiste Daroussin * Colin Watson (man-db) for feedback on man-db semantics.
13461d06d6bSBaptiste Daroussin * Jason McIntyre (OpenBSD) for lots of feedback and suggestions
13561d06d6bSBaptiste Daroussin   on diagnostic messages and on the documentation.
13661d06d6bSBaptiste Daroussin * Thomas Klausner (NetBSD) for suggesting two new style messages
13761d06d6bSBaptiste Daroussin   and one new feature, for two bug reports, and for release testing.
13861d06d6bSBaptiste Daroussin * Leah Neukirchen (Void Linux) for suggesting a new style message,
13961d06d6bSBaptiste Daroussin   five bug reports, and release testing.
14061d06d6bSBaptiste Daroussin * Anthony Bentley (OpenBSD) for reporting multiple bugs and missing
14161d06d6bSBaptiste Daroussin   features.
14261d06d6bSBaptiste Daroussin * Paul Irofti (OpenBSD) and Nate Bargmann for suggesting new features.
14361d06d6bSBaptiste Daroussin * Michael Stapelberg (Debian) for bug reports and release testing.
14461d06d6bSBaptiste Daroussin * Christian Weisgerber, Jonathan Gray, Stuart Henderson,
14561d06d6bSBaptiste Daroussin   Ted Unangst (OpenBSD), Takeshi Nakayama (NetBSD),
14661d06d6bSBaptiste Daroussin   Anton Lazarov, Jakub Klinkovsky, Jan Stary, Jesper Wallin,
14761d06d6bSBaptiste Daroussin   Will Backmam, and Wolfgang Mueller for bug reports.
14861d06d6bSBaptiste Daroussin * Sevan Janiyan (NetBSD) for additions to lib.in.
14961d06d6bSBaptiste Daroussin * George Brown for suggesting code simplifications.
15061d06d6bSBaptiste Daroussin * David Coppa, Igor Sobrado (OpenBSD), and Alexander Kuleshov
15161d06d6bSBaptiste Daroussin   for documentation improvements.
15261d06d6bSBaptiste Daroussin * Laura Morales and Raf Czlonka for questions resulting in better
15361d06d6bSBaptiste Daroussin   documentation.
15461d06d6bSBaptiste Daroussin * Yuri Pankov (illumos) for release testing.
15561d06d6bSBaptiste Daroussin
15661d06d6bSBaptiste DaroussinChanges in version 1.14.3, released on August 5, 2017
15761d06d6bSBaptiste Daroussin
15861d06d6bSBaptiste Daroussin    --- BUG FIXES ---
15961d06d6bSBaptiste Daroussin * man(7): Do not crash with out-of-bounds read access to a constant
16061d06d6bSBaptiste Daroussin   array if .sp or a blank line immediately precedes .SS or .SH.
16161d06d6bSBaptiste Daroussin * mdoc(7): Do not crash with out-of-bounds read access to a constant
16261d06d6bSBaptiste Daroussin   array if .sp or a blank line precede the first .Sh macro.
16361d06d6bSBaptiste Daroussin * tbl(7): Ignore explicitly specified negative column widths rather than
16461d06d6bSBaptiste Daroussin   wrapping around to huge numbers and risking memory exhaustion.
16561d06d6bSBaptiste Daroussin * man(1): No longer use names that only occur in the SYNOPSIS section.
16661d06d6bSBaptiste Daroussin   Gets rid of some surprising behaviour and bogus warnings.
16761d06d6bSBaptiste Daroussin    --- THANKS TO ---
16861d06d6bSBaptiste Daroussin   Leah Neukirchen (Void Linux), Markus Waldeck (Debian),
16961d06d6bSBaptiste Daroussin   Peter Bui (nd.edu), and Yuri Pankov (illumos) for bug reports.
17061d06d6bSBaptiste Daroussin
17161d06d6bSBaptiste DaroussinChanges in version 1.14.2, released on July 28, 2017
17261d06d6bSBaptiste Daroussin
17361d06d6bSBaptiste Daroussin    --- MAJOR NEW FEATURES ---
17461d06d6bSBaptiste Daroussin * New mdoc(7) -Tmarkdown output mode.
17561d06d6bSBaptiste Daroussin * For -Thtml, implement internal hyperlinks pointing to authoritative
17661d06d6bSBaptiste Daroussin   definitions of various syntax elements, similar to the ctags(1)-like
17761d06d6bSBaptiste Daroussin   less(1) :t internal searching in terminal mode.
17861d06d6bSBaptiste Daroussin * Provide a superset of the functionality of the former mdoclint(1)
17961d06d6bSBaptiste Daroussin   utility and a new -Wstyle message level with several new messages,
18061d06d6bSBaptiste Daroussin   including validity checking of .Xr cross references.
18161d06d6bSBaptiste Daroussin * tbl(7): Implement automatic line breaking inside individual table
18261d06d6bSBaptiste Daroussin   cells, and several other formatting improvements.
18361d06d6bSBaptiste Daroussin * eqn(7): Complete rewrite of the lexer, resulting in several bugfixes.
18461d06d6bSBaptiste Daroussin * Continue parser unification, in particular allowing generation
18561d06d6bSBaptiste Daroussin   of syntax tree nodes on the roff(7) level, allowing implementation
18661d06d6bSBaptiste Daroussin   of many additional roff requests.
18761d06d6bSBaptiste Daroussin    --- REMOVED FUNCTIONALITY ---
18861d06d6bSBaptiste Daroussin * Delete the manpage(1) utility.  It was never enabled in any release.
18961d06d6bSBaptiste Daroussin * Delete the -Txhtml command line option.  It has been an obsolete
19061d06d6bSBaptiste Daroussin   alias for the -Thtml output mode for more than two years.
19161d06d6bSBaptiste Daroussin    --- MINOR NEW FEATURES ---
19261d06d6bSBaptiste Daroussin * -Tlint now puts parser messages on stdout instead of stderr,
19361d06d6bSBaptiste Daroussin   making commands like "man -l -Tlint *.1" useful.
19461d06d6bSBaptiste Daroussin * mdoc(7): Various .Lk formatting improvements.
19561d06d6bSBaptiste Daroussin * mdoc(7) -Thtml: Better CSS for .Bl lists.
19661d06d6bSBaptiste Daroussin * man(7): Implement the .MT/.ME block macro (mailto hyperlink).
19761d06d6bSBaptiste Daroussin * man(7): Implement the .DT macro (restore default tab positions).
19861d06d6bSBaptiste Daroussin * man(7): Improved support for manuals generated with reStructuredText
19961d06d6bSBaptiste Daroussin   by partial support for the \n[an-margin] number register.
20061d06d6bSBaptiste Daroussin * man(7) -Thtml: Support deep linking to .SH and .SS headers.
20161d06d6bSBaptiste Daroussin * tbl(7): Implement the "allbox" table option.
20261d06d6bSBaptiste Daroussin * tbl(7): Implement the column spacing and the 'w' (minimum column
20361d06d6bSBaptiste Daroussin   width) layout modifiers.
20461d06d6bSBaptiste Daroussin * tbl(7): Significant improvements of the manual page.
20561d06d6bSBaptiste Daroussin * eqn(7): Much improved font selection, including recognition of
20661d06d6bSBaptiste Daroussin   well-known function names, and a few other formatting improvements.
20761d06d6bSBaptiste Daroussin * eqn(7) -Thtml: Use <mn> and <mo> in addition to <mi>.
20861d06d6bSBaptiste Daroussin * roff(7): Implement the .ce (centering), .mc (margin character),
20961d06d6bSBaptiste Daroussin   .rj (right justify), .ta (define tab stops), .ti (temporary indent),
21061d06d6bSBaptiste Daroussin   .als (macro alias), .ec and .eo (escape character control),
21161d06d6bSBaptiste Daroussin   .po (page offset), and .rn (macro rename) requests.
21261d06d6bSBaptiste Daroussin * roff(7) .am: Implement appending to mdoc(7) and man(7) macros.
21361d06d6bSBaptiste Daroussin * roff(7): implement the \h (horizontol motion), \l (horizontal
21461d06d6bSBaptiste Daroussin   line drawing), and \p (break output line) escape sequences,
21561d06d6bSBaptiste Daroussin   and also several additional character escape sequences.
21661d06d6bSBaptiste Daroussin * roff(7): Implement the 'd' conditional (macro or string defined).
21761d06d6bSBaptiste Daroussin * man.cgi(8) now uses pledge(2), too.
21861d06d6bSBaptiste Daroussin * regress.pl(1): simpler user interface, better summary output,
21961d06d6bSBaptiste Daroussin   simpler code, and no more recursion.
22061d06d6bSBaptiste Daroussin    --- THANKS TO ---
22161d06d6bSBaptiste Daroussin * Anthony Bentley (OpenBSD) for the implementation of .MT/.ME,
22261d06d6bSBaptiste Daroussin   reports of many bugs and missing features, and suggestions
22361d06d6bSBaptiste Daroussin   for a number of feature and documentation improvements.
22461d06d6bSBaptiste Daroussin * Sebastien Marie (OpenBSD) for two source code patches and
22561d06d6bSBaptiste Daroussin   for some useful discussions.
22661d06d6bSBaptiste Daroussin * Florian Obser (OpenBSD) for a bugfix patch and a bug report.
22761d06d6bSBaptiste Daroussin * Jonathan Gray (OpenBSD) for several bug reports from afl(1)
22861d06d6bSBaptiste Daroussin   and several more from static analysis tools.
22961d06d6bSBaptiste Daroussin * Theo Buehler (OpenBSD) for several bug reports, most from afl(1).
23061d06d6bSBaptiste Daroussin * Jason McIntyre (OpenBSD) for many useful discussions about a
23161d06d6bSBaptiste Daroussin   wide variety of topics, lots of continuous testing, a number of
23261d06d6bSBaptiste Daroussin   bug reports, and some suggestions for messages and documentation.
23361d06d6bSBaptiste Daroussin * Thomas Klausner (NetBSD) for lots of help while migrating
23461d06d6bSBaptiste Daroussin   mdoclint(1) functionality to mandoc -Tlint, for suggesting
23561d06d6bSBaptiste Daroussin   several useful new messages, and for release testing.
23661d06d6bSBaptiste Daroussin * Reyk Floeter (OpenBSD) and Vsevolod Stakhov (FreeBSD) for
23761d06d6bSBaptiste Daroussin   suggesting a markdown output mode.
23861d06d6bSBaptiste Daroussin * Thomas Guettler for suggesting -Thtml internal hyperlinks.
23961d06d6bSBaptiste Daroussin * Yuri Pankov (Illumos) for inspiring new warning messages and
24061d06d6bSBaptiste Daroussin   for extensive release testing.
24161d06d6bSBaptiste Daroussin * Anton Lindqvist and TJ Townsend (both OpenBSD) and Jan Stary
24261d06d6bSBaptiste Daroussin   for multiple bug reports.
24361d06d6bSBaptiste Daroussin * Leah Neukirchen (Void Linux) for bug reports and release testing.
24461d06d6bSBaptiste Daroussin * Michael Stapelberg (Debian) for suggesting feature improvements
24561d06d6bSBaptiste Daroussin   and for release testing.
24661d06d6bSBaptiste Daroussin * Martin Natano and Theo de Raadt (both OpenBSD), Andreas Voegele,
24761d06d6bSBaptiste Daroussin   Gabriel Guzman, Gonzalo Tornaria, Markus Waldeck, and Raf Czlonka
24861d06d6bSBaptiste Daroussin   for bug reports.
24961d06d6bSBaptiste Daroussin * Antoine Jacoutot (OpenBSD) and Steffen Nurpmeso for suggesting
25061d06d6bSBaptiste Daroussin   feature improvements.
25161d06d6bSBaptiste Daroussin * Dag-Erling Smoergrav (FreeBSD) for inspiring new warning messages.
25261d06d6bSBaptiste Daroussin * Ted Unangst and Marc Espie (OpenBSD) for providing useful ideas.
25361d06d6bSBaptiste Daroussin * Svyatoslav Mishyn (Crux Linux) for release testing.
25461d06d6bSBaptiste Daroussin * Carsten Kunze (Heirloom roff) for help keeping mandoc and groff
25561d06d6bSBaptiste Daroussin   compatible and for committing some of my patches to groff.
25661d06d6bSBaptiste Daroussin
25761d06d6bSBaptiste DaroussinChanges in version 1.14.1, released on February 21, 2017
25861d06d6bSBaptiste Daroussin
25961d06d6bSBaptiste Daroussin    --- MAJOR NEW FEATURES ---
26061d06d6bSBaptiste Daroussin * apropos(1): Reimplement complete semantic search functionality
26161d06d6bSBaptiste Daroussin   without the dependency on SQLite3, using only POSIX APIs.
26261d06d6bSBaptiste Daroussin   This comes with a completely new mandoc.db(5) file format.
26361d06d6bSBaptiste Daroussin * man(1): Support more than one tag entry for the same search term,
26461d06d6bSBaptiste Daroussin   plus some minor improvements to the less(1) :t support.
26561d06d6bSBaptiste Daroussin * -Thtml: Use real macro names for CSS classes.
26661d06d6bSBaptiste Daroussin   Systematic cleanup of and many improvements to mandoc.css.
26761d06d6bSBaptiste Daroussin * -Thtml: Produce human readable HTML code by using indentation
26861d06d6bSBaptiste Daroussin   and better line breaks.  Improve various HTML elements,
26961d06d6bSBaptiste Daroussin   and trim several useless ones.
27061d06d6bSBaptiste Daroussin * New catman(8) utility, still somewhat experimental.
27161d06d6bSBaptiste Daroussin * Now includes a portable version of the OpenBSD mandoc regression
27261d06d6bSBaptiste Daroussin   suite, see regress/regress.pl.1 for details.
27361d06d6bSBaptiste Daroussin    --- REMOVED FUNCTIONALITY ---
27461d06d6bSBaptiste Daroussin * Operating systems that don't provide mmap(3) are no longer supported.
27561d06d6bSBaptiste Daroussin * Drop support for manpath(1).  Even if your system has manpath(1),
27661d06d6bSBaptiste Daroussin   it is simpler to use MANPATH_DEFAULT in configure.local for
27761d06d6bSBaptiste Daroussin   operating system defaults, man.conf(5) for machine-specific
27861d06d6bSBaptiste Daroussin   modifications, and ${MANPATH}, -m, and -M for user preferences
27961d06d6bSBaptiste Daroussin   than to bother with the complexity of manpath(1).
28061d06d6bSBaptiste Daroussin * makewhatis(8) -p: No longer warn about missing MLINKS since these
28161d06d6bSBaptiste Daroussin   are no longer needed for anything.
28261d06d6bSBaptiste Daroussin    --- MINOR NEW FEATURES ---
28361d06d6bSBaptiste Daroussin * mdoc(7): Warn about invalid punctuation and content below NAME.
28461d06d6bSBaptiste Daroussin * mdoc(7): Warn about .Xr lacking the second argument (section).
28561d06d6bSBaptiste Daroussin * mdoc(7): Warn about violations of the rule "new sentence, new line".
28661d06d6bSBaptiste Daroussin * roff(7): Warn about trailing whitespace at the end of comments.
28761d06d6bSBaptiste Daroussin * mdoc(7): Improve rendering of double quotes.
28861d06d6bSBaptiste Daroussin * mdoc(7): Always do text production in the validator, never in the
28961d06d6bSBaptiste Daroussin   formatters.  Cleaner, simpler, shorter, helps NetBSD apropos(1)
29061d06d6bSBaptiste Daroussin   and also makes -Ttree output more useful.
29161d06d6bSBaptiste Daroussin * -Ttree: Show metadata and some additional node flags.
29261d06d6bSBaptiste Daroussin   New -Onoval output option to show the unvalidated tree.
29361d06d6bSBaptiste Daroussin    --- RELIABILITY BUGFIXES ---
29461d06d6bSBaptiste Daroussin * man(1): Make "man -l" work with standard input from a pipe or file,
29561d06d6bSBaptiste Daroussin   as long as standard output is a terminal.
29661d06d6bSBaptiste Daroussin * man(7): Fix out of bounds read access if a text node immediately
29761d06d6bSBaptiste Daroussin   preceded the first .SH header.
29861d06d6bSBaptiste Daroussin * mdoc(7): Fix out of bounds read access for .Bl without a type
29961d06d6bSBaptiste Daroussin   but with a width.
30061d06d6bSBaptiste Daroussin * mdoc(7): Fix out of bounds read access for .Bl -column starting
30161d06d6bSBaptiste Daroussin   with a tab character instead of a child .It macro.
30261d06d6bSBaptiste Daroussin * mdoc(7): Fix syntax tree corruption leading to segfaults caused
30361d06d6bSBaptiste Daroussin   by stray block end macros in nested blocks of mismatching type.
30461d06d6bSBaptiste Daroussin * man(1): Fix NULL dereference when the first of multiple pages
30561d06d6bSBaptiste Daroussin   shown was preformatted.
30661d06d6bSBaptiste Daroussin * mdoc(7): Fix syntax tree corruption leading to NULL dereference
30761d06d6bSBaptiste Daroussin   caused by partial implicit macros inside .Bl -column table cells.
30861d06d6bSBaptiste Daroussin * mdoc(7): Fix syntax tree corruption leading to NULL dereference
30961d06d6bSBaptiste Daroussin   for macro sequences like .Bl .Bl .It Bo .El .It.
31061d06d6bSBaptiste Daroussin * mdoc(7): Fix syntax tree corruption leading to NULL dereference
31161d06d6bSBaptiste Daroussin   caused by .Ta following a nested .Bl -column breaking another block.
31261d06d6bSBaptiste Daroussin * mdoc(7): Fix syntax tree corruption sometimes leading to NULL
31361d06d6bSBaptiste Daroussin   dereference caused by indirectly broken .Nd or .Nm blocks.
31461d06d6bSBaptiste Daroussin * mdoc(7) -Thtml: Fix a NULL dereference for .Bl -column with 0 columns.
31561d06d6bSBaptiste Daroussin * mdoc(7): Fix NULL dereference in some specific cases of a
31661d06d6bSBaptiste Daroussin   block-end macro calling another block-end macro.
31761d06d6bSBaptiste Daroussin * mdoc(7): Fix NULL dereference if the only child of the head
31861d06d6bSBaptiste Daroussin   of the first .Sh was an empty in-line macro.
31961d06d6bSBaptiste Daroussin * eqn(7): Fix NULL dereference in the terminal formatter
32061d06d6bSBaptiste Daroussin   for empty matrices and empty square roots.
32161d06d6bSBaptiste Daroussin * mdoc(7): Fix an assertion failure for a .Bd without a type that
32261d06d6bSBaptiste Daroussin   breaks another block.
32361d06d6bSBaptiste Daroussin * mdoc(7): Fix an assertion failure that happened for some .Bl -column
32461d06d6bSBaptiste Daroussin   lists containing a column width of "-4n", "-3n", or "-2n".
32561d06d6bSBaptiste Daroussin * mdoc(7): Fix an assertion failure caused by .Bl -column without .It
32661d06d6bSBaptiste Daroussin   but containing eqn(7) or tbl(7) code.
32761d06d6bSBaptiste Daroussin * roff(7): Fix an assertion failure caused by \z\[u00FF] with -Tps/-Tpdf.
32861d06d6bSBaptiste Daroussin * roff(7): Fix an assertion failures caused by whitespace inside \o''
32961d06d6bSBaptiste Daroussin   (overstrike) sequences.
33061d06d6bSBaptiste Daroussin * -Thtml: Fix an assertion failure caused by -Oman or -Oincludes of
33161d06d6bSBaptiste Daroussin   excessive length.
33261d06d6bSBaptiste Daroussin    --- PORTABILITY IMPROVEMENTS ---
33361d06d6bSBaptiste Daroussin * man(1): Do not mix stdio narrow and wide stream orientation
33461d06d6bSBaptiste Daroussin   on stdout, which could cause output corruption on glibc.
33561d06d6bSBaptiste Daroussin * mandoc(1): Autodetect a suitable locale for -Tutf8 mode.
33661d06d6bSBaptiste Daroussin * ./configure: Autodetect whether PATH_MAX and O_DIRECTORY are defined.
33761d06d6bSBaptiste Daroussin * ./configure: Autodetect if nanosleep(3) needs -lrt.
33861d06d6bSBaptiste Daroussin * ./configure: Provide an ${LN} configuration variable.
33961d06d6bSBaptiste Daroussin * ./configure: Put compiler arguments that may contain -l at the end.
34061d06d6bSBaptiste Daroussin    --- MINOR BUGFIXES ---
34161d06d6bSBaptiste Daroussin * mdoc(7): Fix SYNOPSIS output if the first child of .Nm is a macro.
34261d06d6bSBaptiste Daroussin * mdoc(7) -Thtml: Improve formatting of .Bl -tag with short tags.
34361d06d6bSBaptiste Daroussin * man(7) -Thtml: Preserve whitespace in .nf (nofill) mode.
34461d06d6bSBaptiste Daroussin * mandoc(1): Error out on invalid output options on the command line.
34561d06d6bSBaptiste Daroussin    --- STRUCTURAL CHANGES, no functional change ---
34661d06d6bSBaptiste Daroussin * Redesign part of the mandoc_html(3) interfaces, making them much
34761d06d6bSBaptiste Daroussin   easier to use and reducing the amount of code by a few hundred lines.
34861d06d6bSBaptiste Daroussin    --- THANKS TO ---
34961d06d6bSBaptiste Daroussin * Michael Stapelberg (Debian) for designing the new mandocd(8)
35061d06d6bSBaptiste Daroussin   and parts of the new catman(8), for release testing, and for a
35161d06d6bSBaptiste Daroussin   number of patches and bug reports.
35261d06d6bSBaptiste Daroussin * Baptiste Daroussin (FreeBSD) for profiling the new makewhatis(8)
35361d06d6bSBaptiste Daroussin   implementation and suggesting an algorithmic improvement which
35461d06d6bSBaptiste Daroussin   more than doubled performance, and for a few bug reports.
35561d06d6bSBaptiste Daroussin * Ed Maste (FreeBSD) for an important patch improving reproducibility
35661d06d6bSBaptiste Daroussin   of builds in makewhatis(8), and for a few bug reports.
35761d06d6bSBaptiste Daroussin * Theo Buehler (OpenBSD) for almost twenty important bug reports,
35861d06d6bSBaptiste Daroussin   most of them found by systematic afl(1) fuzzing.
35961d06d6bSBaptiste Daroussin * Benny Lofgren, David Dahlberg, and in particular Vadim Zhukov
36061d06d6bSBaptiste Daroussin   for crucial help in getting .Bl -tag CSS formatting fixed.
36161d06d6bSBaptiste Daroussin * Svyatoslav Mishyn (Crux Linux) for an initial version of the
36261d06d6bSBaptiste Daroussin   patch to autodetect a suitable locale for -Tutf8 mode
36361d06d6bSBaptiste Daroussin   and for release testing.
36461d06d6bSBaptiste Daroussin * Jason McIntyre (OpenBSD) for multiple useful discussions
36561d06d6bSBaptiste Daroussin   and a number of bug reports.
36661d06d6bSBaptiste Daroussin * Sevan Janiyan (NetBSD) for extensive release testing and multiple
36761d06d6bSBaptiste Daroussin   bug reports.
36861d06d6bSBaptiste Daroussin * Thomas Klausner and Christos Zoulas (NetBSD), Yuri Pankov (illumos),
36961d06d6bSBaptiste Daroussin   and Leah Neukirchen (Void Linux) for release testing and bug reports.
37061d06d6bSBaptiste Daroussin * Ulrich Spoerlein (FreeBSD) for release testing.
37161d06d6bSBaptiste Daroussin * Alexander Bluhm, Andrew Fresh, Antoine Jacoutot, Antony Bentley,
37261d06d6bSBaptiste Daroussin   Christian Weisgerber, Jonathan Gray, Marc Espie, Martijn van Duren,
37361d06d6bSBaptiste Daroussin   Stuart Henderson, Ted Unangst, Theo de Raadt (OpenBSD), Abhinav
37461d06d6bSBaptiste Daroussin   Upadhyay, Kamil Rytarowski (NetBSD), Aaron M. Ucko, Bdale Garbee,
37561d06d6bSBaptiste Daroussin   Reiner Herrmann, Shane Kerr (Debian), Daniel Sabogal (Alpine Linux),
37661d06d6bSBaptiste Daroussin   Carsten Kunze (Heirloom roff), Kristaps Dzonsons (bsd.lv),
37761d06d6bSBaptiste Daroussin   Anton Lindqvist, Jan Stary, Jeremy A. Mates, Mark Patruck,
37861d06d6bSBaptiste Daroussin   Pavan Maddamsetti, Sean Levy <attila@stalphonsos.com>, and
37961d06d6bSBaptiste Daroussin   Tiago Silva for bug reports.
38061d06d6bSBaptiste Daroussin * Brent Cook, Marc Espie, Philip Guenther, Todd Miller (OpenBSD)
38161d06d6bSBaptiste Daroussin   and Markus Waldeck for useful discussions.
38261d06d6bSBaptiste Daroussin * And as usual, OpenCSW for providing me with a Solaris 9/10/11
38361d06d6bSBaptiste Daroussin   testing environment.
38461d06d6bSBaptiste Daroussin
38561d06d6bSBaptiste DaroussinChanges in version 1.13.4, released on July 14, 2016
38661d06d6bSBaptiste Daroussin
38761d06d6bSBaptiste Daroussin    --- MAJOR NEW FEATURES ---
38861d06d6bSBaptiste Daroussin * man.conf(5): Design and implement a simpler configuration file format.
38961d06d6bSBaptiste Daroussin * man(1): Leverage less(1) -T and :t in a way resembling ctags(1)
39061d06d6bSBaptiste Daroussin   to jump to the definitions of various terms inside manual pages.
39161d06d6bSBaptiste Daroussin * soelim(1): New implementation by Baptiste Daroussin.
39261d06d6bSBaptiste Daroussin * privilege limitation: Use OpenBSD pledge(2) or OS X sandbox_init(3)
39361d06d6bSBaptiste Daroussin   when available.
39461d06d6bSBaptiste Daroussin * man.cgi(8): Support short URIs like http://man.openbsd.org/mdoc .
39561d06d6bSBaptiste Daroussin * mandoc.css: Use one unified stylesheet rather than three different ones.
39661d06d6bSBaptiste Daroussin    --- MAJOR FUNCTIONALLY RELEVANT BUGFIXES ---
39761d06d6bSBaptiste Daroussin * mdoc(7): Fix multiple aspects of SYNOPSIS .Nm formatting.
39861d06d6bSBaptiste Daroussin * man(1): Fix process group handling, avoiding unclean shutdowns.
39961d06d6bSBaptiste Daroussin    --- PORTABILITY IMPROVEMENTS ---
40061d06d6bSBaptiste Daroussin * Correctly use the ohash(3) compatibility implementation
40161d06d6bSBaptiste Daroussin   even when building without SQLite support.
40261d06d6bSBaptiste Daroussin * Add compat glue for building on Solaris 9 and 10.
40361d06d6bSBaptiste Daroussin * Let ./configure select a supported RE syntax for word boundaries.
40461d06d6bSBaptiste Daroussin * Support LDFLAGS, to be used for example for hardening options.
40561d06d6bSBaptiste Daroussin * Avoid mixing putchar(3) and putwchar(3) on the same file descriptor,
40661d06d6bSBaptiste Daroussin   it resulted in output corruption on some platforms.
40761d06d6bSBaptiste Daroussin * Avoid reusing va_lists, use va_copy(3) for better portability.
40861d06d6bSBaptiste Daroussin * Do not hardcode the path to the more(1) program.
40961d06d6bSBaptiste Daroussin    --- MINOR NEW FEATURES ---
41061d06d6bSBaptiste Daroussin * roff(7): Implement \n(.$ (number of macro arguments).
41161d06d6bSBaptiste Daroussin * roff(7): Fully implement \z (do not advance cursor).
41261d06d6bSBaptiste Daroussin * roff(7): Implement the `r'  conditional (register exists).
41361d06d6bSBaptiste Daroussin * roff(7): Implement \\$* (interpolate all arguments).
41461d06d6bSBaptiste Daroussin * roff(7): Parse and ignore \, and \/ (italic corrections).
41561d06d6bSBaptiste Daroussin * When there is no -m, no -M, no MANPATH and no /etc/man.conf,
41661d06d6bSBaptiste Daroussin   fall back to /usr/share/man:/usr/X11R6/man:/usr/local/man.
41761d06d6bSBaptiste Daroussin * man(1): Give manuals in purely numerical sections priority over
41861d06d6bSBaptiste Daroussin   manuals of the same name in sections with an alphabetical suffix.
41961d06d6bSBaptiste Daroussin * man.cgi(8): Support "header.html" and "footer.html".
42061d06d6bSBaptiste Daroussin * man.cgi(8): Set the "autofocus" attribute on the query text box.
42161d06d6bSBaptiste Daroussin * man.cgi(8): Simplify the search form, drop two useless buttons.
42261d06d6bSBaptiste Daroussin * man.cgi(8): Delete the pseudo-manpath "mandoc", assume that
42361d06d6bSBaptiste Daroussin   apropos(1) and man.cgi(8) are installed in the default manpath.
42461d06d6bSBaptiste Daroussin    --- RELIABILITY BUGFIXES ---
42561d06d6bSBaptiste Daroussin * mdoc(7): Avoid a use after free and an assertion failure when nodes
42661d06d6bSBaptiste Daroussin   are deleted during validation.
42761d06d6bSBaptiste Daroussin * mdoc(7): Avoid a NULL pointer access when .Bd has no arguments.
42861d06d6bSBaptiste Daroussin * mdoc(7): Avoid a NULL pointer access triggered by mismatching end macros.
42961d06d6bSBaptiste Daroussin * mdoc(7): Avoid an assertion when .Fo has no argument.
43061d06d6bSBaptiste Daroussin * mdoc(7): Avoid an assertion when .Ta<tab> occurs in .Bl -column.
43161d06d6bSBaptiste Daroussin * mdoc(7): Avoid an assertion when a body gets broken and has a tail.
43261d06d6bSBaptiste Daroussin * roff(7): Avoid an assertion caused by blanks inside \o.
43361d06d6bSBaptiste Daroussin * roff(7): Make .so links to gziped manuals work without mandoc.db(5).
43461d06d6bSBaptiste Daroussin * tbl(7): Avoid a use after free when the last line of a layout is empty.
43561d06d6bSBaptiste Daroussin * eqn(7): Avoid an infinite loop caused by recursive "define".
43661d06d6bSBaptiste Daroussin * makewhatis(8): Avoid a segfault caused by unusual directory structures.
43761d06d6bSBaptiste Daroussin * Fix handling of leading, trailing, and double colons in MANPATH and -m.
43861d06d6bSBaptiste Daroussin    --- MINOR BUGFIXES ---
43961d06d6bSBaptiste Daroussin * mdoc(7): Put arguments to end macros of broken partial explicit blocks
44061d06d6bSBaptiste Daroussin   inside the breaking block.
44161d06d6bSBaptiste Daroussin * mdoc(7): Let .Dv force normal font.
44261d06d6bSBaptiste Daroussin * mdoc(7): Make trailing whitespace significant in .Bl -tag widths.
44361d06d6bSBaptiste Daroussin * mdoc(7): Fix macro interpretation around tabs in .Bl -column.
44461d06d6bSBaptiste Daroussin * man(7): Use the default width for .RS without arguments.
44561d06d6bSBaptiste Daroussin * man(7): On a new RS nesting level, the saved width starts from
44661d06d6bSBaptiste Daroussin   the default width, not from the saved width of the previous level.
44761d06d6bSBaptiste Daroussin * man(7): Allow .PD in next-line scope.
44861d06d6bSBaptiste Daroussin * man(7): Improve handling of empty .HP.
44961d06d6bSBaptiste Daroussin * man(7): Improve formatting of .br and .sp inside .HP.
45061d06d6bSBaptiste Daroussin * man(7): Do not mistreat empty arguments to font alternating
45161d06d6bSBaptiste Daroussin   macros as vertical spacing requests.
45261d06d6bSBaptiste Daroussin * man(7): Allow fill mode changes in tagged paragraph next-line scope.
45361d06d6bSBaptiste Daroussin * man(7): Fix minor bugs in block rewinding and simplify the related code.
45461d06d6bSBaptiste Daroussin * man(7): Add missing line breaks before subsection headers.
45561d06d6bSBaptiste Daroussin * man(7): Give section and subsection headers hanging indentation.
45661d06d6bSBaptiste Daroussin * man(7): Make trailing whitespace significant in .TP widths.
45761d06d6bSBaptiste Daroussin * roff(7): Don't allow breaking the output line after hyphens
45861d06d6bSBaptiste Daroussin   that immediately follow escape sequences.
45961d06d6bSBaptiste Daroussin * roff(7): Ignore blank characters at the beginning of conditional blocks.
46061d06d6bSBaptiste Daroussin * roff(7): Escape breakable hyphens only after handling input line traps.
46161d06d6bSBaptiste Daroussin * roff(7): Reject \[uD800] to \[uDFFF] (surrogates) in the parser.
46261d06d6bSBaptiste Daroussin * tbl(7): Allow more than one data field after T} on the same input line.
46361d06d6bSBaptiste Daroussin * terminal output: Apply bold and italic to non-ASCII Unicode codepoints.
46461d06d6bSBaptiste Daroussin * terminal output: Improve rounding rules for horizontal scaling widths.
46561d06d6bSBaptiste Daroussin * HTML output: Render ASCII_NBRSP as "&nbsp;", not "-".
46661d06d6bSBaptiste Daroussin * man(1): Do not match the first part of a name if it continues with a dot.
46761d06d6bSBaptiste Daroussin * man(1): Keep working even if the current directory is unusable.
46861d06d6bSBaptiste Daroussin * man(1): Better error message when $PAGER is invalid.
46961d06d6bSBaptiste Daroussin * makewhatis(8): Improve handling of .Va and .Vt macros.
47061d06d6bSBaptiste Daroussin * apropos(1): Print "nothing appropriate" to stderr when appropriate.
47161d06d6bSBaptiste Daroussin * apropos(1): Abort with a useful error message when elementary
47261d06d6bSBaptiste Daroussin   database operations like preparing queries or binding variables fail.
47361d06d6bSBaptiste Daroussin    --- STRUCTURAL CHANGES, no functional change ---
47461d06d6bSBaptiste Daroussin * mdoc(7) and man(7): Unified data structures struct roff_node etc.
47561d06d6bSBaptiste Daroussin * mdoc(7) and man(7): Unified node handling library in roff.c.
47661d06d6bSBaptiste Daroussin * mdoc(7) and man(7): Seperate validation phase from parsing.
47761d06d6bSBaptiste Daroussin * roff(7): Major character table cleanup.
47861d06d6bSBaptiste Daroussin * Link with libz rather than forking gunzip(1).
47961d06d6bSBaptiste Daroussin    --- THANKS TO ---
48061d06d6bSBaptiste Daroussin * Baptiste Daroussin (FreeBSD) for the new soelim(1)
48161d06d6bSBaptiste Daroussin   and for release testing.
48261d06d6bSBaptiste Daroussin * Anthony Bentley (OpenBSD) for unifying mandoc.css, two nice
48361d06d6bSBaptiste Daroussin   patches for man.cgi(8), some documentation patches, some bug
48461d06d6bSBaptiste Daroussin   reports, and various useful discussions.
48561d06d6bSBaptiste Daroussin * Todd Miller (OpenBSD) for lots of help with process group and
48661d06d6bSBaptiste Daroussin   signal handling, a few patches, some bug reports and some useful
48761d06d6bSBaptiste Daroussin   discussions.
48861d06d6bSBaptiste Daroussin * Jonathan Gray (OpenBSD) for yet more testing with afl(1)
48961d06d6bSBaptiste Daroussin   again resulting in more than half a dozen important bug reports.
49061d06d6bSBaptiste Daroussin * Svyatoslav Mishyn (Crux Linux) for some patches, several bug
49161d06d6bSBaptiste Daroussin   reports, and extensive release testing.
49261d06d6bSBaptiste Daroussin * Leah Neukirchen (Void Linux) for a number of compatibility
49361d06d6bSBaptiste Daroussin   patches and suggestions and several bug reports.
49461d06d6bSBaptiste Daroussin * Christos Zoulas (NetBSD) for a bug fix patch and some useful
49561d06d6bSBaptiste Daroussin   suggestions for cleanup.
49661d06d6bSBaptiste Daroussin * Florian Obser (OpenBSD) for a bugfix patch and some bug reports.
49761d06d6bSBaptiste Daroussin * Sevan Janiyan for help with Solaris compatibility and release
49861d06d6bSBaptiste Daroussin   testing on many platforms.
49961d06d6bSBaptiste Daroussin * Jan Holzhueter and OpenCSW in general for help with Solaris
50061d06d6bSBaptiste Daroussin   compatibility, and for providing me with a Solaris 9/10/11 testing
50161d06d6bSBaptiste Daroussin   environment.
50261d06d6bSBaptiste Daroussin * Michael McConville (OpenBSD) for some simple cleanup patches.
50361d06d6bSBaptiste Daroussin * Thomas Klausner (NetBSD) for some bug reports and release testing.
50461d06d6bSBaptiste Daroussin * Christian Weisgerber, Dmitrij Czarkoff, Igor Sobrado,
50561d06d6bSBaptiste Daroussin   Ken Westerback, Marc Espie, Mike Belopuhov, Rafael Neves,
50661d06d6bSBaptiste Daroussin   Ted Unangst, Tim van der Molen, Theo Buehler, Theo de Raadt
50761d06d6bSBaptiste Daroussin   (OpenBSD), Kurt Jaeger, Dag Erling Smoergrav (FreeBSD),
50861d06d6bSBaptiste Daroussin   Joerg Sonnenberger (NetBSD), Carsten Kunze (Heirloom troff),
50961d06d6bSBaptiste Daroussin   Daniel Levai, Fabian Raetz, Jan Stary, Jean-Yves Migeon,
51061d06d6bSBaptiste Daroussin   Lorenzo Beretta, Markus Waldeck, Maxim Belooussov, Michael Reed,
51161d06d6bSBaptiste Daroussin   Peter Bray, and Serguey Parkhomovsky for bug reports and feature
51261d06d6bSBaptiste Daroussin   suggestions.
51361d06d6bSBaptiste Daroussin * Alexander Hall, Andrew Fresh, Antoine Jacoutot, Doug Hogan,
51461d06d6bSBaptiste Daroussin   Jason McIntyre, Jasper Lievisse Adriaanse, Kent Spillner,
51561d06d6bSBaptiste Daroussin   Nicholas Marriott, Peter Hessler, Sebastien Marie, Stefan Sperling,
51661d06d6bSBaptiste Daroussin   and Theo de Raadt (OpenBSD) for helpful discussions and feedback.
51761d06d6bSBaptiste Daroussin
51861d06d6bSBaptiste DaroussinChanges in version 1.13.3, released on March 13, 2015
51961d06d6bSBaptiste Daroussin
52061d06d6bSBaptiste Daroussin    --- MAJOR NEW FEATURES ---
52161d06d6bSBaptiste Daroussin * When a manual is missing from an outdated database, let man(1)
52261d06d6bSBaptiste Daroussin   show it anyway, using a KISS file system lookup as a fallback.
52361d06d6bSBaptiste Daroussin * Use this to always provide man(1), even without database support.
52461d06d6bSBaptiste Daroussin * Fatal errors no longer exist.  If a file can be opened, mandoc
52561d06d6bSBaptiste Daroussin   will produce some output; at worst, the output may be almost empty.
52661d06d6bSBaptiste Daroussin * New -Wunsupp message level.
52761d06d6bSBaptiste Daroussin    --- POTENTIONALLY SECURITY RELEVANT BUGFIXES ---
52861d06d6bSBaptiste Daroussin * Fix a potential write buffer overrun on incomplete string conditionals.
52961d06d6bSBaptiste Daroussin   http://mandoc.bsd.lv/cgi-bin/cvsweb/roff.c#rev1.241
53061d06d6bSBaptiste Daroussin * Fix a potential write buffer overrun on backslash at EOF in a conditional.
53161d06d6bSBaptiste Daroussin   http://mandoc.bsd.lv/cgi-bin/cvsweb/roff.c#rev1.247
53261d06d6bSBaptiste Daroussin * Fix a use after free sometimes hit when validation deletes a block.
53361d06d6bSBaptiste Daroussin   http://mandoc.bsd.lv/cgi-bin/cvsweb/mdoc_macro.c#rev1.180
53461d06d6bSBaptiste Daroussin    --- MAJOR FUNCTIONALLY RELEVANT BUGFIXES ---
53561d06d6bSBaptiste Daroussin * Let man(1) show manuals for the current architecture by default,
53661d06d6bSBaptiste Daroussin   and support the MACHINE environment variable.
53761d06d6bSBaptiste Daroussin * Fix the man(1) and apropos(1) -m option, it didn't work at all.
53861d06d6bSBaptiste Daroussin * Do not spawn a pager when there is no output.
53961d06d6bSBaptiste Daroussin * In makewhatis(8), fix detection of hardlinked manuals on platforms
54061d06d6bSBaptiste Daroussin   having padding in struct inodev (typically 64bit platforms).
54161d06d6bSBaptiste Daroussin    --- PORTABILITY IMPROVEMENTS ---
54261d06d6bSBaptiste Daroussin * Ignore O_CLOEXEC when the operating system doesn't provide it.
54361d06d6bSBaptiste Daroussin * Avoid forward reference to enum type which violates ISO C99.
54461d06d6bSBaptiste Daroussin * Support homebrew-style linking on Mac OS X.
54561d06d6bSBaptiste Daroussin    --- MINOR NEW FEATURES ---
54661d06d6bSBaptiste Daroussin * lookup: Accept digit+letter and "n" as section names in man(1),
54761d06d6bSBaptiste Daroussin   and consistently handle digit+letter in file name extensions.
54861d06d6bSBaptiste Daroussin * lookup: Speed up -s/-S by using the "mlinks" rather than the "keys" table.
54961d06d6bSBaptiste Daroussin * output: Insert horizontal lines between formatted manual pages.
55061d06d6bSBaptiste Daroussin * input: New stricter and more resilient UTF-8 parser.
55161d06d6bSBaptiste Daroussin * mdoc(7): Refactor block rewinding for simpler and more robust parsing.
55261d06d6bSBaptiste Daroussin * man(7): Use the -Ios option when .TH has less than four arguments.
55361d06d6bSBaptiste Daroussin * tbl(7): Implement the "center" option.
55461d06d6bSBaptiste Daroussin * tbl(7): New option and format parsers, improved in many respects.
55561d06d6bSBaptiste Daroussin * roff(7): Basic implementation of the \o escape sequence (overstrike),
55661d06d6bSBaptiste Daroussin   and improved rendering of overstrikes in PostScript and PDF output.
55761d06d6bSBaptiste Daroussin * Message improvements, in particular for, but not restricted to,
55861d06d6bSBaptiste Daroussin   eqn(7), tbl(7), and wrong numbers of arguments in mdoc(7) and man(7),
55961d06d6bSBaptiste Daroussin   in various cases also improving output generated by invalid input.
56061d06d6bSBaptiste Daroussin * Delete the -V option.  It serves no purpose but keeps confusing people.
56161d06d6bSBaptiste Daroussin * gmdiff: Minimal support for Heirloom roff.
56261d06d6bSBaptiste Daroussin    --- RELIABILITY BUGFIXES ---
56361d06d6bSBaptiste Daroussin * tbl(7): Fix a read buffer overrun on 'f' at EOL in a layout.
56461d06d6bSBaptiste Daroussin * roff(7): Fix a read buffer overrun on incomplete numerical conditions.
56561d06d6bSBaptiste Daroussin * mdoc(7): Fix a NULL pointer access on .Nd followed by an explicit block.
56661d06d6bSBaptiste Daroussin * mdoc(7): Fix a NULL pointer access on .It Xo without .Xc.
56761d06d6bSBaptiste Daroussin * mdoc(7): Fix a NULL pointer access on .Eo without a tail.
56861d06d6bSBaptiste Daroussin * mdoc(7): Fix a NULL pointer access in the validation of empty .St macros.
56961d06d6bSBaptiste Daroussin * man(7)/tbl(7): Fix a NULL pointer access on .TS right after .TP.
57061d06d6bSBaptiste Daroussin * tbl(7): Fix a NULL pointer access on layout lines without any cells.
57161d06d6bSBaptiste Daroussin * eqn(7): Fix NULL pointer accesses in the terminal formatter.
57261d06d6bSBaptiste Daroussin * roff(7): Fix a NULL pointer access on trailing \s-/\s+ without an argument.
57361d06d6bSBaptiste Daroussin * gz: Fix a potential NULL pointer access after waitpid() failure.
57461d06d6bSBaptiste Daroussin * roff(7): Don't let the modulo operator divide by zero.
57561d06d6bSBaptiste Daroussin * input: Fix an assertion failure on certain invalid UTF-8 input.
57661d06d6bSBaptiste Daroussin * terminal output: Allow arbitrary depth of the font stack (assertion fix).
57761d06d6bSBaptiste Daroussin * mdoc(7): Fix assertion failures and endless loops on invalid block closing.
57861d06d6bSBaptiste Daroussin * mdoc(7): Fix an assertion failure on .Bl .Sm not followed by .It.
57961d06d6bSBaptiste Daroussin * mdoc(7): Fix an assertion failure on .Bl -column ... .El .Ta.
58061d06d6bSBaptiste Daroussin * tbl(7): Fix assertion failures by macros inside table data,
58161d06d6bSBaptiste Daroussin   but do not throw away the macro arguments.
58261d06d6bSBaptiste Daroussin * Prevent certain kinds of unreasonable input from producing excessive
58361d06d6bSBaptiste Daroussin   output, in one case caused by unsigned integer underflow.
58461d06d6bSBaptiste Daroussin * Fix a potential memory leak in makewhatis(8) on very long filenames.
58561d06d6bSBaptiste Daroussin    --- MINOR BUGFIXES ---
58661d06d6bSBaptiste Daroussin * mdoc(7): Fix parsing of badly nested blocks with multiple identical blocks.
58761d06d6bSBaptiste Daroussin * mdoc(7): Support negative indentations for displays and lists.
58861d06d6bSBaptiste Daroussin * mdoc(7): Don't mistreat negative .sp arguments as large positive ones.
58961d06d6bSBaptiste Daroussin * mdoc(7): Some spacing fixes for .Eo/.Ec.
59061d06d6bSBaptiste Daroussin * man(7): Support negative horizontal widths.
59161d06d6bSBaptiste Daroussin * man(7): Do not print out invalid .IP arguments.
59261d06d6bSBaptiste Daroussin * man(7): Correctly handle scaling units after .PD.
59361d06d6bSBaptiste Daroussin * man(7): Support .RE with an argument.
59461d06d6bSBaptiste Daroussin * man(7): Fix restoring indentation after .RS with large negative arguments.
59561d06d6bSBaptiste Daroussin * tbl(7): Prevent tables from breaking the filling of preceding text.
59661d06d6bSBaptiste Daroussin * tbl(7): Fix vertical spacing at the beginning of tables.
59761d06d6bSBaptiste Daroussin * tbl(7): Parser and formatter fixes for line drawing and font modifiers.
59861d06d6bSBaptiste Daroussin * tbl(7): Correct handling of blank data lines.
59961d06d6bSBaptiste Daroussin * eqn(7): Add sometimes missing whitespace before equation output.
60061d06d6bSBaptiste Daroussin * roff(7): Fix vertical scaling, most of it was wrong.
60161d06d6bSBaptiste Daroussin * roff(7): Slightly improve \w width measurements.
60261d06d6bSBaptiste Daroussin * roff(7): Accept the historic aliases \s10 to \s39 for \s(10 to \s(39.
60361d06d6bSBaptiste Daroussin * roff(7): Correctly escape quotes when expanding macro arguments.
60461d06d6bSBaptiste Daroussin * roff(7): Correctly handle scaling units in numerical expressions,
60561d06d6bSBaptiste Daroussin   and some other improvements to the parsing of numerical expressions.
60661d06d6bSBaptiste Daroussin * roff(7): Three minor fixes with respect to evaluation of conditionals.
60761d06d6bSBaptiste Daroussin * roff(7): Let .it accept numerical expressions, not just constants.
60861d06d6bSBaptiste Daroussin * mandoc_char(7): Correct some character names and renderings.
60961d06d6bSBaptiste Daroussin * If earlier files set a non-zero exit status, never reset it to zero.
61061d06d6bSBaptiste Daroussin    --- THANKS TO ---
61161d06d6bSBaptiste Daroussin * Jonathan Gray (OpenBSD) for yet more testing with afl (the American
61261d06d6bSBaptiste Daroussin   Fuzzy Lop security fuzzer), again resulting in many bug reports.
61361d06d6bSBaptiste Daroussin * Theo de Raadt (OpenBSD) for suggesting the main new feature (man(1) file
61461d06d6bSBaptiste Daroussin   system lookup) and for reporting an important bug (pager without output).
61561d06d6bSBaptiste Daroussin * Theo Buehler for an important bug report (-s/-S slowness)
61661d06d6bSBaptiste Daroussin   and for proposing a nice new feature (lines between pages).
61761d06d6bSBaptiste Daroussin * Jason McIntyre for an important bug report (hardlink detection)
61861d06d6bSBaptiste Daroussin   and multiple documentation patches.
61961d06d6bSBaptiste Daroussin * Pascal Stumpf (OpenBSD) and Alessandro de Laurenzis for
62061d06d6bSBaptiste Daroussin   important bug reports (architecture and man -m, respectively).
62161d06d6bSBaptiste Daroussin * Thomas Klausner (NetBSD) for proposing a new feature (man(7) -Ios),
62261d06d6bSBaptiste Daroussin   a bug report, and release testing.
62361d06d6bSBaptiste Daroussin * Anthony Bentley, Daniel Dickman, Ted Unangst (OpenBSD) and
62461d06d6bSBaptiste Daroussin   Kristaps Dzonsons (bsd.lv) for source code patches and bug reports.
62561d06d6bSBaptiste Daroussin * Christian Weisgerber (OpenBSD) for more than half a dozen bug reports.
62661d06d6bSBaptiste Daroussin * Carsten Kunze (Heirloom troff) for bug reports and release testing.
62761d06d6bSBaptiste Daroussin * Antoine Jacoutot (OpenBSD) for release testing.
62861d06d6bSBaptiste Daroussin * Alexis Hildebrandt (Homebrew), Baptiste Daroussin (FreeBSD),
62961d06d6bSBaptiste Daroussin   Jonathan Perkin (SmartOS), Pedro Giffuni (FreeBSD), Svyatoslav
63061d06d6bSBaptiste Daroussin   Mishyn (Crux Linux), Ulrich Spoerlein (FreeBSD), Jan Stary, Patrick
63161d06d6bSBaptiste Daroussin   Keshishian, Sebastien Marie, and Steffen Nurpmeso for bug reports.
63261d06d6bSBaptiste Daroussin
63361d06d6bSBaptiste DaroussinChanges in version 1.13.2, released on December 13, 2014
63461d06d6bSBaptiste Daroussin
63561d06d6bSBaptiste Daroussin    --- MAJOR NEW FEATURES ---
63661d06d6bSBaptiste Daroussin * Include an implementation of man(1), the manual page viewer.
63761d06d6bSBaptiste Daroussin * Unified set of command line option, each one supported by all
63861d06d6bSBaptiste Daroussin   command names, including new options -a (format all), -c (no
63961d06d6bSBaptiste Daroussin   pager), -h (synopsis only), and -w (list filenames).
64061d06d6bSBaptiste Daroussin * Support the MANPAGER and PAGER environment variables.
64161d06d6bSBaptiste Daroussin * Support gzip'ed manuals by the whole toolset, even as .so targets.
64261d06d6bSBaptiste Daroussin * Support UTF-8 and Latin-1 input by the whole toolset, delete preconv(1).
64361d06d6bSBaptiste Daroussin * Switch the default output mode from -Tascii to -Tlocale.
64461d06d6bSBaptiste Daroussin * Improve -Tascii output for Unicode escape sequences.
64561d06d6bSBaptiste Daroussin * Let the -Thtml output mode produce polyglot HTML5.
64661d06d6bSBaptiste Daroussin * Many improvements for eqn(7), in particular in-line equations,
64761d06d6bSBaptiste Daroussin   MathML output in -Thtml mode, and much improved terminal formatting.
64861d06d6bSBaptiste Daroussin    --- PORTABILITY IMPROVEMENTS ---
64961d06d6bSBaptiste Daroussin * Change the build sequence to the usual ./configure; make; make install.
65061d06d6bSBaptiste Daroussin * Support ./configure.local for build customizations.
65161d06d6bSBaptiste Daroussin * Autodetect wchar, sqlite3, and manpath support.
65261d06d6bSBaptiste Daroussin * Provide a fallback version of fts(3) for systems lacking it.
65361d06d6bSBaptiste Daroussin * Support choosing alternative binary and manual names.
65461d06d6bSBaptiste Daroussin    --- MINOR NEW FEATURES ---
65561d06d6bSBaptiste Daroussin * Rudimentary implementation of the e, x, and z tbl(7) layout
65661d06d6bSBaptiste Daroussin   modifiers to equalize, maximize, and ignore the width of columns.
65761d06d6bSBaptiste Daroussin * Implement font modifiers in tbl(7) layouts.
65861d06d6bSBaptiste Daroussin * Allow comma-separated options in the tbl(7) options line.
65961d06d6bSBaptiste Daroussin * Parse and ignore the .pl (page length) roff(7) request.
66061d06d6bSBaptiste Daroussin * Implement .An -[no]split for the mdoc(7) -Thtml output mode.
66161d06d6bSBaptiste Daroussin * Support bold italic font in PostScript and PDF output.
66261d06d6bSBaptiste Daroussin * Warn about commas in function arguments and parentheses in function names.
66361d06d6bSBaptiste Daroussin * Warn about botched .Xr ordering and punctuation below SEE ALSO.
66461d06d6bSBaptiste Daroussin * Warn about AUTHORS sections without .An macros.
66561d06d6bSBaptiste Daroussin * Warn about attempts to call non-callable macros.
66661d06d6bSBaptiste Daroussin * New developer documentation manual page mandoc_headers(3).
66761d06d6bSBaptiste Daroussin    --- BUGFIXES ---
66861d06d6bSBaptiste Daroussin * Fix read buffer overrun sometimes triggered by trailing whitespace.
66961d06d6bSBaptiste Daroussin * Fix read buffer overrun triggered by certain invalid \H sequences.
67061d06d6bSBaptiste Daroussin * Fix NULL pointer access triggered by .Bl without any arguments.
67161d06d6bSBaptiste Daroussin * Fix NULL pointer access triggered by .It Nm Fo without .Fc.
67261d06d6bSBaptiste Daroussin * Fix NULL pointer access triggered by .Sh Xo .Sh without .Xc.
67361d06d6bSBaptiste Daroussin * Fix NULL pointer access triggered by missing .Nm.
67461d06d6bSBaptiste Daroussin * Fix an assertion triggered by .It right after .El.
67561d06d6bSBaptiste Daroussin * Fix an assertion triggered by .Ec without preceding .Eo.
67661d06d6bSBaptiste Daroussin * Fix an assertion triggered by .Sm or .Db with multiple arguments.
67761d06d6bSBaptiste Daroussin * Fix assertion failures triggered by very large width arguments.
67861d06d6bSBaptiste Daroussin * Fix a division by zero in the roff(7) parser.
67961d06d6bSBaptiste Daroussin * Prevent negative arguments to .ll from causing integer underflow.
68061d06d6bSBaptiste Daroussin * Correctly autodetect source format even when .Dd is preceded by .ll.
68161d06d6bSBaptiste Daroussin * Multiple fixes with respect to .Bd and .Bl -offset and -width.
68261d06d6bSBaptiste Daroussin * Many bugfixes with respect to scaling units.
68361d06d6bSBaptiste Daroussin * Multiple fixes with respect to delimiter handling by in-line macros.
68461d06d6bSBaptiste Daroussin * Multiple fixes with respect to .Pf.
68561d06d6bSBaptiste Daroussin * Make \c work properly in no-fill mode.
68661d06d6bSBaptiste Daroussin * Stricter syntax checking of Unicode character names.
68761d06d6bSBaptiste Daroussin    --- THANKS TO ---
68861d06d6bSBaptiste Daroussin * Kristaps Dzonsons for rewriting the eqn(7) parser, implementing
68961d06d6bSBaptiste Daroussin   HTML5 and MathML output, and various other code contributions.
69061d06d6bSBaptiste Daroussin * Jonathan Gray (OpenBSD) for extensive testing with afl (the
69161d06d6bSBaptiste Daroussin   American Fuzzy Lop security fuzzer) resulting in many bug reports.
69261d06d6bSBaptiste Daroussin * Anthony Bentley (OpenBSD), Baptiste Daroussin (FreeBSD), Daniel
69361d06d6bSBaptiste Daroussin   Dickman, Doug Hogan, Jason McIntyre, Theo de Raadt (OpenBSD),
69461d06d6bSBaptiste Daroussin   and Martin Natano for source code patches.
69561d06d6bSBaptiste Daroussin * Carsten Kunze (Heirloom troff), Daniel Levai (Slackware),
69661d06d6bSBaptiste Daroussin   Garrett D'Amore (illumos), Giovanni Becchis, Matthew Dempsky,
69761d06d6bSBaptiste Daroussin   Stuart Henderson, Ted Unangst, Todd Miller (OpenBSD), Thomas
69861d06d6bSBaptiste Daroussin   Klausner (NetBSD), Ulrich Spoerlein (FreeBSD), Justin Haynes,
69961d06d6bSBaptiste Daroussin   Marcus Merighi, Sebastien Marie, Steffen Nurpmeso and Theo Buehler
70061d06d6bSBaptiste Daroussin   for bug reports.
70161d06d6bSBaptiste Daroussin
70261d06d6bSBaptiste DaroussinChanges in version 1.13.1, released on August 10, 2014
70361d06d6bSBaptiste Daroussin
70461d06d6bSBaptiste Daroussin    --- MAJOR NEW FEATURES ---
70561d06d6bSBaptiste Daroussin * A complete apropos(1)/makewhatis(8)/man.cgi(8) suite
70661d06d6bSBaptiste Daroussin   based on SQLite3 is now included.
70761d06d6bSBaptiste Daroussin * The roff(7) parser now provides an almost complete implementation
70861d06d6bSBaptiste Daroussin   of numerical expressions.
70961d06d6bSBaptiste Daroussin * Warning and error messages have been improved in many ways.
71061d06d6bSBaptiste Daroussin   Almost all fatal errors were downgraded to normal errors and some
71161d06d6bSBaptiste Daroussin   even to warnings.  Almost all messages now mention the macro where
71261d06d6bSBaptiste Daroussin   the issue is detected and many indicate the workaround employed.
71361d06d6bSBaptiste Daroussin   The mandoc(1) manual now includes a list explaining all messages.
71461d06d6bSBaptiste Daroussin    --- MINOR NEW FEATURES ---
71561d06d6bSBaptiste Daroussin * The roff(7) parser now supports the .ami (append to macro with
71661d06d6bSBaptiste Daroussin   indirectly specified name), .as (append to user-defined
71761d06d6bSBaptiste Daroussin   string), .dei (define macro with indirectly specified name),
71861d06d6bSBaptiste Daroussin   .ll (line length), and .rr (remove register) requests.
71961d06d6bSBaptiste Daroussin * The roff(7) parser now supports string comparison and numerical
72061d06d6bSBaptiste Daroussin   conditionals in the .if and .ie requests.
72161d06d6bSBaptiste Daroussin * The roff parser now fully supports the \B (validate numerical
72261d06d6bSBaptiste Daroussin   expression) and partially supports the \w (measure text width)
72361d06d6bSBaptiste Daroussin   escape sequences.
72461d06d6bSBaptiste Daroussin * The terminal formatter now supports the \: (optional line break)
72561d06d6bSBaptiste Daroussin   escape sequence.
72661d06d6bSBaptiste Daroussin * The roff parser now supports expansion of user-defined strings
72761d06d6bSBaptiste Daroussin   involving indirect references.
72861d06d6bSBaptiste Daroussin * The roff(7) parser now handles some pre-defined read-only
72961d06d6bSBaptiste Daroussin   number registers that occur in the pod2man(1) preamble.
73061d06d6bSBaptiste Daroussin * For backward compatibility, the mdoc(7) parser and formatters
73161d06d6bSBaptiste Daroussin   now support the obsolete macros .En, .Es, .Fr, and .Ot.
73261d06d6bSBaptiste Daroussin * The mdoc(7) formatter non partially supports .Bd -centered.
73361d06d6bSBaptiste Daroussin * tbl(7) now handles leading and trailing vertical lines.
73461d06d6bSBaptiste Daroussin * The build system now provides fallback versions of strcasestr(3)
73561d06d6bSBaptiste Daroussin   and strsep(3) for systems lacking them.
73661d06d6bSBaptiste Daroussin * The mdoc(7) manual now explains how various standards
73761d06d6bSBaptiste Daroussin   supported by the .St macro are related to each other.
73861d06d6bSBaptiste Daroussin    --- BUGFIXES ---
73961d06d6bSBaptiste Daroussin * In the roff(7) parser, several bugs were fixed with respect
74061d06d6bSBaptiste Daroussin   to closing conditional blocks on macro lines.
74161d06d6bSBaptiste Daroussin * Parsing of roff(7) identifiers and escape sequences was improved
74261d06d6bSBaptiste Daroussin   in multiple respects.
74361d06d6bSBaptiste Daroussin * In the mdoc(7) parser, the handling of defective document
74461d06d6bSBaptiste Daroussin   prologues was improved in multiple ways.
74561d06d6bSBaptiste Daroussin * The mdoc(7) parser no longer skips content before the first section
74661d06d6bSBaptiste Daroussin   header, and it no longer deletes non-.% content from .Rs blocks.
74761d06d6bSBaptiste Daroussin * In the mdoc(7) parser, a crash was fixed related to weird .Sh headers.
74861d06d6bSBaptiste Daroussin * In the mdoc(7) parser, handling of .Sm with missing or invalid
74961d06d6bSBaptiste Daroussin   arguments was corrected.
75061d06d6bSBaptiste Daroussin * In the mdoc(7) parser, trailing punctuation at the end of partial
75161d06d6bSBaptiste Daroussin   implicit macros no longer triggers end-of-sentence spacing.
75261d06d6bSBaptiste Daroussin * In the terminal formatter, two crashes were fixed: one triggered by
75361d06d6bSBaptiste Daroussin   excessive indentation and another by excessively long .Nm arguments.
75461d06d6bSBaptiste Daroussin * In the terminal formatter, a floating point rounding bug was
75561d06d6bSBaptiste Daroussin   fixed that sometimes caused an off-by-one error in indentation.
75661d06d6bSBaptiste Daroussin * In the UTF-8 formatter, rendering of accents, breakable hyphens,
75761d06d6bSBaptiste Daroussin   and non-breakable spaces was corrected.
75861d06d6bSBaptiste Daroussin * In the HTML formatter, encoding of special characters was
75961d06d6bSBaptiste Daroussin   corrected in multiple respects.
76061d06d6bSBaptiste Daroussin * In the mdoc(7) formatter, rendering of .Ex and .Rv was
76161d06d6bSBaptiste Daroussin   improved for various edge cases.
76261d06d6bSBaptiste Daroussin * In the mdoc(7) formatter, handling of empty .Bl -inset item
76361d06d6bSBaptiste Daroussin   heads was improved.
76461d06d6bSBaptiste Daroussin * In the man(7) formatter, some bugs were fixed with respect
76561d06d6bSBaptiste Daroussin   to same-line detection in the context of .TP and .nf macros,
76661d06d6bSBaptiste Daroussin   and the indentation of .IP and .TP blocks was improved.
76761d06d6bSBaptiste Daroussin * The mandoc(3) library no longer prints to stderr.
76861d06d6bSBaptiste Daroussin    --- THANKS TO ---
76961d06d6bSBaptiste Daroussin   Abhinav Upadhyay (NetBSD), Andreas Voegele, Anthony Bentley (OpenBSD),
77061d06d6bSBaptiste Daroussin   Christian Weisgerber (OpenBSD), Havard Eidnes (NetBSD), Jan Stary,
77161d06d6bSBaptiste Daroussin   Jason McIntyre (OpenBSD), Jeremie Courreges-Anglas (OpenBSD),
77261d06d6bSBaptiste Daroussin   Joerg Sonnenberger (NetBSD), Juan Francisco Cantero Hurtado (OpenBSD),
77361d06d6bSBaptiste Daroussin   Marc Espie (OpenBSD), Matthias Scheler (NetBSD), Pascal Stumpf (OpenBSD),
77461d06d6bSBaptiste Daroussin   Paul Onyschuk (Alpine Linux), Sebastien Marie, Steffen Nurpmeso,
77561d06d6bSBaptiste Daroussin   Stuart Henderson (OpenBSD), Ted Unangst (OpenBSD), Theo de Raadt (OpenBSD),
77661d06d6bSBaptiste Daroussin   Thomas Klausner (NetBSD), and Ulrich Spoerlein (FreeBSD)
77761d06d6bSBaptiste Daroussin   for reporting bugs and missing features.
77861d06d6bSBaptiste Daroussin
77961d06d6bSBaptiste DaroussinChanges in version 1.12.3, released on December 31, 2013
78061d06d6bSBaptiste Daroussin
78161d06d6bSBaptiste Daroussin * In the mdoc(7) SYNOPSIS, line breaks and hanging indentation
78261d06d6bSBaptiste Daroussin   now work correctly for .Fo/.Fa/.Fc and .Fn blocks.
78361d06d6bSBaptiste Daroussin   Thanks to Franco Fichtner for doing part of the work.
78461d06d6bSBaptiste Daroussin * The mdoc(7) .Bk macro got some addititonal bugfixes.
78561d06d6bSBaptiste Daroussin * In mdoc(7) macro arguments, double quotes can now be quoted
78661d06d6bSBaptiste Daroussin   by doubling them, just like in man(7).
78761d06d6bSBaptiste Daroussin   Thanks to Tsugutomo ENAMI for the patch.
78861d06d6bSBaptiste Daroussin * At the end of man(7) macro lines, end-of-sentence spacing
78961d06d6bSBaptiste Daroussin   now works.  Thanks to Franco Fichtner for the patch.
79061d06d6bSBaptiste Daroussin * For backward compatibility, the man(7) parser now supports the
79161d06d6bSBaptiste Daroussin   man-ext .UR/.UE (uniform resource identifier) block macros.
79261d06d6bSBaptiste Daroussin * The man(7) parser now handles closing blocks that are not open
79361d06d6bSBaptiste Daroussin   more gracefully.
79461d06d6bSBaptiste Daroussin * The man(7) parser now ignores blank lines right after .SH and .SS.
79561d06d6bSBaptiste Daroussin * In the man(7) formatter, reset indentation when leaving a block,
79661d06d6bSBaptiste Daroussin   not just when entering the next one.
79761d06d6bSBaptiste Daroussin * The roff(7) .nr request now supports incrementing and decrementing
79861d06d6bSBaptiste Daroussin   number registers and stops parsing the number right before the
79961d06d6bSBaptiste Daroussin   first non-digit character.
80061d06d6bSBaptiste Daroussin * The roff(7) parser now supports the alternative escape sequence
80161d06d6bSBaptiste Daroussin   syntax \C'uXXXX' for Unicode characters.
80261d06d6bSBaptiste Daroussin * The roff(7) parser now parses and ignores the .fam (font family)
80361d06d6bSBaptiste Daroussin   and .hw (hyphenation points) requests and the \d and \u escape
80461d06d6bSBaptiste Daroussin   sequences.
80561d06d6bSBaptiste Daroussin * The roff(7) manual got a new ESCAPE SEQUENCE REFERENCE.
80661d06d6bSBaptiste Daroussin
80761d06d6bSBaptiste DaroussinChanges in version 1.12.2, released on Oktober 5, 2013
80861d06d6bSBaptiste Daroussin
80961d06d6bSBaptiste Daroussin * The mdoc(7) to man(7) converter, to be called as mandoc -Tman,
81061d06d6bSBaptiste Daroussin   is now fully functional.
81161d06d6bSBaptiste Daroussin * The mandoc(1) utility now supports the -Ios (default operating system)
81261d06d6bSBaptiste Daroussin   input option, and the -Tutf8 output mode now actually works.
81361d06d6bSBaptiste Daroussin * The mandocdb(8) utility no longer truncates existing databases when
81461d06d6bSBaptiste Daroussin   starting to build new ones, but only replaces them when the build
81561d06d6bSBaptiste Daroussin   actually succeeds.
81661d06d6bSBaptiste Daroussin * The man(7) parser now supports the PD macro (paragraph distance),
81761d06d6bSBaptiste Daroussin   and (for GNU man-ext compatibility only) EX (example block) and EE
81861d06d6bSBaptiste Daroussin   (example end).  Plus several bugfixes regarding indentation, line
81961d06d6bSBaptiste Daroussin   breaks, and vertical spacing, and regarding RS following TP.
82061d06d6bSBaptiste Daroussin * The roff(7) parser now supports the \f(BI (bold+italic) font escape,
82161d06d6bSBaptiste Daroussin   the \z (zero cursor advance) escape and the cc (change control
82261d06d6bSBaptiste Daroussin   character) and it (input line trap) requests. Plus bugfixes regarding
82361d06d6bSBaptiste Daroussin   the \t (tab) escape, nested escape sequences, and conditional requests.
82461d06d6bSBaptiste Daroussin * In mdoc(7), several bugs were fixed related to UTF-8 output of quoting
82561d06d6bSBaptiste Daroussin   enclosures, delimiter handling, list indentation and horizontal and
82661d06d6bSBaptiste Daroussin   vertical spacing, formatting of the Lk, %U, and %C macros, plus some
82761d06d6bSBaptiste Daroussin   bugfixes related to the handling of syntax errors like badly nested
82861d06d6bSBaptiste Daroussin   font blocks, stray Ta macros outside column lists, unterminated It Xo
82961d06d6bSBaptiste Daroussin   blocks, and non-text children of Nm blocks.
83061d06d6bSBaptiste Daroussin * In tbl(7), the width of horizontal spans and the vertical spacing
83161d06d6bSBaptiste Daroussin   around tables was corrected, and in man(7) files, a crash was fixed
83261d06d6bSBaptiste Daroussin   that was triggered by some particular unclosed T{ macros.
83361d06d6bSBaptiste Daroussin * For mandoc developers, we now provide a tbl(3) library manual and
83461d06d6bSBaptiste Daroussin   gmdiff, a very small, very simplistic groff-versus-mandoc output
83561d06d6bSBaptiste Daroussin   comparison tool.
83661d06d6bSBaptiste Daroussin * Provide this NEWS file.
83761d06d6bSBaptiste Daroussin
83861d06d6bSBaptiste DaroussinChanges in version 1.12.1, released on March 23, 2012
83961d06d6bSBaptiste Daroussin
84061d06d6bSBaptiste Daroussin * Significant work on apropos(1) and mandocdb(8). These tools are now
84161d06d6bSBaptiste Daroussin   much more robust.  A whatis(1) implementation is now handled as an
84261d06d6bSBaptiste Daroussin   apropos(1) mode.  These tools are also able to minimally handle
84361d06d6bSBaptiste Daroussin   pre-formatted pages, that is, those already formatted by another
84461d06d6bSBaptiste Daroussin   utility such as GNU troff.
84561d06d6bSBaptiste Daroussin * The man.cgi(7) script is also now available for wider testing.
84661d06d6bSBaptiste Daroussin   It interfaces with mandocdb(8) manuals cached by catman(8).
84761d06d6bSBaptiste Daroussin   HTML output is generated on-the-fly by libmandoc or internal
84861d06d6bSBaptiste Daroussin   methods to convert pre-formatted pages.
84961d06d6bSBaptiste Daroussin * The mailing list archive for the discuss and tech lists are being
85061d06d6bSBaptiste Daroussin   hosted by Gmane at gmane.comp.tools.mdocml.user and
85161d06d6bSBaptiste Daroussin   gmane.comp.tools.mdocml.devel, respectively.
85261d06d6bSBaptiste Daroussin
85361d06d6bSBaptiste DaroussinChanges in version 1.12.0, released on October 8, 2011
85461d06d6bSBaptiste Daroussin
85561d06d6bSBaptiste Daroussin * This version features a new, work-in-progress mandoc(1) output mode:
85661d06d6bSBaptiste Daroussin   -Tman.  This mode allows a system maintainer to distribute man(7)
85761d06d6bSBaptiste Daroussin   media for older systems that may not natively support mdoc(7), such
85861d06d6bSBaptiste Daroussin   as old Solaris systems.
85961d06d6bSBaptiste Daroussin * The -Ofragment option was added to mandoc(1)'s -Thtml and -Txhtml modes.
86061d06d6bSBaptiste Daroussin * While adding features, an apropos(1) utility has been merged from the
86161d06d6bSBaptiste Daroussin   mandoc-tools sandbox.  This interfaces with mandocdb(8) for semantic
86261d06d6bSBaptiste Daroussin   search of manual content.  apropos(1) is different from the traditional
86361d06d6bSBaptiste Daroussin   apropos primarily in allowing keyword search (such as for functions,
86461d06d6bSBaptiste Daroussin   utilities, etc.) and regular expressions.  Note that the calling
86561d06d6bSBaptiste Daroussin   syntax for apropos is likely to change as it settles down.
86661d06d6bSBaptiste Daroussin * In documentation news, the mdoc(7) and man(7) manuals have been
86761d06d6bSBaptiste Daroussin   made considerably more readable by adding MACRO OVERVIEW sections, by
86861d06d6bSBaptiste Daroussin   moving the gory details of the LANGUAGE SYNTAX to the roff(7) manual,
86961d06d6bSBaptiste Daroussin   and by moving the very technical MACRO SYNTAX sections down to the
87061d06d6bSBaptiste Daroussin   bottom of the page.
87161d06d6bSBaptiste Daroussin * Furthermore, for tbl(7), the -Tascii mode horizontal spacing of tables
87261d06d6bSBaptiste Daroussin   was rewritten completely.  It is now compatible with groff(1), both
87361d06d6bSBaptiste Daroussin   with and without frames and rulers.
87461d06d6bSBaptiste Daroussin * Nesting of indented blocks is now supported in man(7), and several
87561d06d6bSBaptiste Daroussin   bugs were fixed regarding indentation and alignment.
87661d06d6bSBaptiste Daroussin * The page headers in mdoc(7) are now nicer for very long titles.
87761d06d6bSBaptiste Daroussin
87861d06d6bSBaptiste DaroussinChanges in version 1.11.7, released on September 2, 2011
87961d06d6bSBaptiste Daroussin
88061d06d6bSBaptiste Daroussin * Added demandoc(1) utility for stripping away macros and escapes.
88161d06d6bSBaptiste Daroussin   This replaces the historical deroff(1) utility.
88261d06d6bSBaptiste Daroussin * Also improved the mdoc(7) and man(7) manuals.
88361d06d6bSBaptiste Daroussin
88461d06d6bSBaptiste DaroussinChanges in version 1.11.6, released on August 16, 2011
88561d06d6bSBaptiste Daroussin
88661d06d6bSBaptiste Daroussin * Handling of tr macro in roff(7) implemented.  This makes Perl
88761d06d6bSBaptiste Daroussin   documentation much more readable.  Hyphenation is also now enabled in
88861d06d6bSBaptiste Daroussin   man(7) format documents.  Many other general improvements have been
88961d06d6bSBaptiste Daroussin   implemented.
89061d06d6bSBaptiste Daroussin
89161d06d6bSBaptiste DaroussinChanges in version 1.11.5, released on July 24, 2011
89261d06d6bSBaptiste Daroussin
89361d06d6bSBaptiste Daroussin * Significant eqn(7) improvements.  mdocml can now parse arbitrary eqn
89461d06d6bSBaptiste Daroussin   input (although few GNU extensions are accepted, nor is mixing
89561d06d6bSBaptiste Daroussin   low-level roff with eqn).  See the eqn(7) manual for details.
89661d06d6bSBaptiste Daroussin   For the time being, equations are rendered as simple in-line text.
89761d06d6bSBaptiste Daroussin   The equation parser satisfies the language specified in the
89861d06d6bSBaptiste Daroussin   Second Edition User's Guide:
89961d06d6bSBaptiste Daroussin   http://www.kohala.com/start/troff/v7man/eqn/eqn2e.ps
90061d06d6bSBaptiste Daroussin
90161d06d6bSBaptiste DaroussinChanges in version 1.11.4, released on July 12, 2011
90261d06d6bSBaptiste Daroussin
90361d06d6bSBaptiste Daroussin * Bug-fixes and clean-ups across all systems, especially in mandocdb(8)
90461d06d6bSBaptiste Daroussin   and the man(7) parser.  This release was significantly assisted by
90561d06d6bSBaptiste Daroussin   participants in OpenBSD's c2k11.  Thanks!
90661d06d6bSBaptiste Daroussin
90761d06d6bSBaptiste DaroussinChanges in version 1.11.3, released on May 26, 2011
90861d06d6bSBaptiste Daroussin
90961d06d6bSBaptiste Daroussin * Introduce locale-encoding of output with the -Tlocale output option and
91061d06d6bSBaptiste Daroussin   Unicode escaped-character input.  See mandoc(1) and mandoc_char(7),
91161d06d6bSBaptiste Daroussin   respectively, for details.  This allows for non-ASCII characters (e.g.,
91261d06d6bSBaptiste Daroussin   \[u5000]) to be rendered in the locale's encoding, if said environment
91361d06d6bSBaptiste Daroussin   supports wide-character encoding (if it does not, -Tascii is used
91461d06d6bSBaptiste Daroussin   instead).  Locale support can be turned off at compile time by removing
91561d06d6bSBaptiste Daroussin   -DUSE_WCHAR in the Makefile, in which case -Tlocale is always a synonym
91661d06d6bSBaptiste Daroussin   for -Tascii.
91761d06d6bSBaptiste Daroussin * Furthermore, multibyte-encoded documents, such as those in UTF-8, may
91861d06d6bSBaptiste Daroussin   be on-the-fly recoded into mandoc(1) input by using the newly-added
91961d06d6bSBaptiste Daroussin   preconv(1) utility.  Note: in the future, this feature may be
92061d06d6bSBaptiste Daroussin   integrated into mandoc(1).
92161d06d6bSBaptiste Daroussin
92261d06d6bSBaptiste DaroussinChanges in version 1.11.2, released on May 12, 2011
92361d06d6bSBaptiste Daroussin
92461d06d6bSBaptiste Daroussin * Corrected some installation issues in version 1.11.1.
92561d06d6bSBaptiste Daroussin * Further migration to libmandoc.
92661d06d6bSBaptiste Daroussin * Initial public release (this utility is very much under development)
92761d06d6bSBaptiste Daroussin   of mandocdb(8).  This utility produces keyword databases of manual
92861d06d6bSBaptiste Daroussin   content, which features semantic querying of manual content.
92961d06d6bSBaptiste Daroussin
93061d06d6bSBaptiste DaroussinChanges in version 1.11.1, released on April 4, 2011
93161d06d6bSBaptiste Daroussin
93261d06d6bSBaptiste Daroussin * The earlier libroff, libmdoc, and libman soup have been merged into
93361d06d6bSBaptiste Daroussin   a single library, libmandoc, which manages all aspects of parsing
93461d06d6bSBaptiste Daroussin   real manuals, from line-handling to tbl(7) parsing.
93561d06d6bSBaptiste Daroussin * As usual, many general fixes and improvements have also occurred.
93661d06d6bSBaptiste Daroussin   In particular, a great deal of redundancy and superfluous code has
93761d06d6bSBaptiste Daroussin   been removed with the merging of the backend libraries.
93861d06d6bSBaptiste Daroussin * see also the changes in 1.10.10
93961d06d6bSBaptiste Daroussin
94061d06d6bSBaptiste DaroussinChanges in version 1.10.10, March 20, 2011, NOT released
94161d06d6bSBaptiste Daroussin
94261d06d6bSBaptiste Daroussin * Initial eqn(7) functionality is in place.  For the time being,
94361d06d6bSBaptiste Daroussin   this is limited to the recognition of equation blocks;
94461d06d6bSBaptiste Daroussin   future version of mdocml will expand upon this framework.
94561d06d6bSBaptiste Daroussin
94661d06d6bSBaptiste DaroussinChanges in version 1.10.9, released on January 7, 2011
94761d06d6bSBaptiste Daroussin
94861d06d6bSBaptiste Daroussin * Many back-end fixes have been implemented: argument handling (quoting),
94961d06d6bSBaptiste Daroussin   man(7) improvements, error/warning classes, and many more.
95061d06d6bSBaptiste Daroussin * Initial tbl(7) functionality (see the "TS", "TE", and "T&" macros in
95161d06d6bSBaptiste Daroussin   the roff(7) manual) has been merged from tbl.bsd.lv.  Output is still
95261d06d6bSBaptiste Daroussin   minimal, especially for -Thtml and -Txhtml, but manages to at least
95361d06d6bSBaptiste Daroussin   display data.  This means that mandoc(1) now has built-in support
95461d06d6bSBaptiste Daroussin   for two troff preprocessors via libroff: soelim(1) and tbl(1).
95561d06d6bSBaptiste Daroussin
95661d06d6bSBaptiste DaroussinChanges in version 1.10.8, released on December 24, 2010
95761d06d6bSBaptiste Daroussin
95861d06d6bSBaptiste Daroussin * Overhauled the -Thtml and -Txhtml output modes.  They now display
95961d06d6bSBaptiste Daroussin   readable output in arbitrary browsers, including text-based ones like
96061d06d6bSBaptiste Daroussin   lynx(1).  See HTML and XHTML manuals in the DOCUMENTATION section
96161d06d6bSBaptiste Daroussin   for examples.  Attention: available style-sheet classes have been
96261d06d6bSBaptiste Daroussin   considerably changed!  See the example.style.css file for details.
96361d06d6bSBaptiste Daroussin   Lastly, libmdoc and libman have been cleaned up and reduced in size
96461d06d6bSBaptiste Daroussin   and complexity.
96561d06d6bSBaptiste Daroussin * see also the changes in 1.10.7
96661d06d6bSBaptiste Daroussin
96761d06d6bSBaptiste DaroussinChanges in version 1.10.7, December 6, 2010, NOT released
96861d06d6bSBaptiste Daroussin
96961d06d6bSBaptiste Daroussin Significant improvements merged from OpenBSD downstream, including:
97061d06d6bSBaptiste Daroussin * many new roff(7) components,
97161d06d6bSBaptiste Daroussin * in-line implementation of troff's soelim(1),
97261d06d6bSBaptiste Daroussin * broken-block handling,
97361d06d6bSBaptiste Daroussin * overhauled error classifications, and
97461d06d6bSBaptiste Daroussin * cleaned up handling of error conditions.
97561d06d6bSBaptiste Daroussin
97661d06d6bSBaptiste DaroussinChanges in version 1.10.6, released on September 27, 2010
97761d06d6bSBaptiste Daroussin
97861d06d6bSBaptiste Daroussin * Calling conventions for mandoc(1) have changed: -W improved and -f
97961d06d6bSBaptiste Daroussin   deprecated.
98061d06d6bSBaptiste Daroussin * Non-ASCII characters are also now uniformly discarded.
98161d06d6bSBaptiste Daroussin * Lots of documentation improvements.
98261d06d6bSBaptiste Daroussin * Many incremental fixes accomodating for groff's more interesting
98361d06d6bSBaptiste Daroussin   productions.
98461d06d6bSBaptiste Daroussin * Lastly, pod2man(1) preambles are now fully accepted after some
98561d06d6bSBaptiste Daroussin   considerable roff(7) and special character support.
98661d06d6bSBaptiste Daroussin
98761d06d6bSBaptiste DaroussinChanges in version 1.10.5, released on July 27, 2010
98861d06d6bSBaptiste Daroussin
98961d06d6bSBaptiste Daroussin * Primarily a bug-fix and polish release, but including -Tpdf support
99061d06d6bSBaptiste Daroussin   in mandoc(1) by way of "Summer of Code".  Highlights:
99161d06d6bSBaptiste Daroussin * fix "Sm" and "Bd" handling
99261d06d6bSBaptiste Daroussin * fix end-of-sentence handling for embedded sentences
99361d06d6bSBaptiste Daroussin * polish man(7) documentation
99461d06d6bSBaptiste Daroussin * document all mdoc(7) macros
99561d06d6bSBaptiste Daroussin * polish mandoc(1) -Tps output
99661d06d6bSBaptiste Daroussin * lots of internal clean-ups in character escapes
99761d06d6bSBaptiste Daroussin * un-break literal contexts in man(7) documents
99861d06d6bSBaptiste Daroussin * improve -Thtml output for -man
99961d06d6bSBaptiste Daroussin * add mandoc(1) -Tpdf support
100061d06d6bSBaptiste Daroussin
100161d06d6bSBaptiste DaroussinChanges in version 1.10.4, released on July 12, 2010
100261d06d6bSBaptiste Daroussin
100361d06d6bSBaptiste Daroussin * Lots of features developed during both "Summer of Code" and the
100461d06d6bSBaptiste Daroussin   OpenBSD c2k10 hackathon:
100561d06d6bSBaptiste Daroussin * minimal "ds" roff(7) symbols are supported
100661d06d6bSBaptiste Daroussin * beautified SYNOPSIS section output
100761d06d6bSBaptiste Daroussin * acceptance of scope-block breakage in mdoc(7)
100861d06d6bSBaptiste Daroussin * clarify error message status
100961d06d6bSBaptiste Daroussin * many minor bug-fixes and formatting issues resolved
101061d06d6bSBaptiste Daroussin * see also changes in 1.10.3
101161d06d6bSBaptiste Daroussin
101261d06d6bSBaptiste DaroussinChanges in version 1.10.3, June 29, 2010, NOT released
101361d06d6bSBaptiste Daroussin
101461d06d6bSBaptiste Daroussin * variable font-width and paper-size support in mandoc(1) -Tps output
101561d06d6bSBaptiste Daroussin * "Bk" mdoc(7) support
101661d06d6bSBaptiste Daroussin
101761d06d6bSBaptiste DaroussinChanges in version 1.10.2, released on June 19, 2010
101861d06d6bSBaptiste Daroussin
101961d06d6bSBaptiste Daroussin * Small release featuring text-decoration in -Tps output,
102061d06d6bSBaptiste Daroussin   a few minor relaxations of errors, and some optimisations.
102161d06d6bSBaptiste Daroussin
102261d06d6bSBaptiste DaroussinChanges in version 1.10.1, released on June 7, 2010
102361d06d6bSBaptiste Daroussin
102461d06d6bSBaptiste Daroussin * This primarily focusses on the "Bl" and "It" macros described in
102561d06d6bSBaptiste Daroussin   mdoc(7).  Multi-line column support is now fully compatible with groff,
102661d06d6bSBaptiste Daroussin   as are implicit list entries for columns.
102761d06d6bSBaptiste Daroussin * Removed manuals(7) in favour of http://manpages.bsd.lv.
102861d06d6bSBaptiste Daroussin * The way we handle the SYNOPSIS section (see the SYNOPSIS documentation
102961d06d6bSBaptiste Daroussin   in MANUAL STRUCTURE) has also been considerably simplified compared
103061d06d6bSBaptiste Daroussin   to groff's method.
103161d06d6bSBaptiste Daroussin * Furthermore, the -Owidth=width output option has been added to -Tascii,
103261d06d6bSBaptiste Daroussin   see mandoc(1).
103361d06d6bSBaptiste Daroussin * Lastly, initial PostScript output has been added with the -Tps option
103461d06d6bSBaptiste Daroussin   to mandoc(1).  It's brutally simple at the moment: fixed-font, with no
103561d06d6bSBaptiste Daroussin   font decorations.
103661d06d6bSBaptiste Daroussin
103761d06d6bSBaptiste DaroussinChanges in version 1.10.0, released on May 29, 2010
103861d06d6bSBaptiste Daroussin
103961d06d6bSBaptiste Daroussin * Release consisting of the results from the m2k10 hackathon and up-merge
104061d06d6bSBaptiste Daroussin   from OpenBSD.  This requires a significant note of thanks to Ingo
104161d06d6bSBaptiste Daroussin   Schwarze (OpenBSD) and Joerg Sonnenberger (NetBSD) for their hard work,
104261d06d6bSBaptiste Daroussin   and again to Joerg for hosting m2k10.  Highlights (mostly cribbed from
104361d06d6bSBaptiste Daroussin   Ingo's m2k10 report) follow in no particular order:
104461d06d6bSBaptiste Daroussin * a libroff preprocessor in front of libmdoc and libman stripping out
104561d06d6bSBaptiste Daroussin   roff(7) instructions;
104661d06d6bSBaptiste Daroussin * end-of-sentence (EOS) detection in free-form and macro lines;
104761d06d6bSBaptiste Daroussin * correct handling of tab-separated columnar lists in mdoc(7);
104861d06d6bSBaptiste Daroussin * improved main calling routines to optionally use mmap(3) for better
104961d06d6bSBaptiste Daroussin   performance;
105061d06d6bSBaptiste Daroussin * cleaned up exiting when invoked as -Tlint or over multiple files
105161d06d6bSBaptiste Daroussin   with -fign-errors;
105261d06d6bSBaptiste Daroussin * error and warning message handling re-written to be unified for
105361d06d6bSBaptiste Daroussin   libroff, libmdoc, and libman;
105461d06d6bSBaptiste Daroussin * handling of badly-nested explicit-scoped macros;
105561d06d6bSBaptiste Daroussin * improved free-form text parsing in libman and libmdoc;
105661d06d6bSBaptiste Daroussin * significant GNU troff compatibility improvements in -Tascii,
105761d06d6bSBaptiste Daroussin   largely in terms of spacing;
105861d06d6bSBaptiste Daroussin * a regression framework for making sure the many fragilities of GNU
105961d06d6bSBaptiste Daroussin   troff aren't trampled in subsequent work;
106061d06d6bSBaptiste Daroussin * support for -Tascii breaking at hyphens encountered in free-form text;
106161d06d6bSBaptiste Daroussin * and many more minor fixes and improvements
106261d06d6bSBaptiste Daroussin
106361d06d6bSBaptiste DaroussinChanges in version 1.9.25, released on May 13, 2010
106461d06d6bSBaptiste Daroussin
106561d06d6bSBaptiste Daroussin * Fixed handling of "\*(Ba" escape.
106661d06d6bSBaptiste Daroussin * Backed out -fno-ign-chars (pointless complexity).
106761d06d6bSBaptiste Daroussin * Fixed erroneous breaking of literal lines.
106861d06d6bSBaptiste Daroussin * Fixed SYNOPSIS breaking lines before non-initial macros.
106961d06d6bSBaptiste Daroussin * Changed default section ordering.
107061d06d6bSBaptiste Daroussin * Most importantly, the framework for end-of-sentence double-spacing is
107161d06d6bSBaptiste Daroussin   in place, now implemented for the "end-of-sentence, end-of-line" rule.
107261d06d6bSBaptiste Daroussin * This is a stable roll-back point before the mandoc hackathon in Rostock!
107361d06d6bSBaptiste Daroussin
107461d06d6bSBaptiste DaroussinChanges in version 1.9.24, released on May 9, 2010
107561d06d6bSBaptiste Daroussin
107661d06d6bSBaptiste Daroussin * Rolled back break-at-hyphen.
107761d06d6bSBaptiste Daroussin * -DUGLY is now the default (no feature splits!).
107861d06d6bSBaptiste Daroussin * Free-form text is not de-chunked any more: lines are passed
107961d06d6bSBaptiste Daroussin   whole-sale into the front-end, including whitespace.
108061d06d6bSBaptiste Daroussin * Added mailing lists.
108161d06d6bSBaptiste Daroussin
108261d06d6bSBaptiste DaroussinChanges in version 1.9.23, released on April 7, 2010
108361d06d6bSBaptiste Daroussin
108461d06d6bSBaptiste Daroussin * mdocml has been linked to the OpenBSD build.
108561d06d6bSBaptiste Daroussin * This version incorporates many small changes, mostly from patches
108661d06d6bSBaptiste Daroussin   by OpenBSD, allowing crufty manuals to slip by with warnings instead
108761d06d6bSBaptiste Daroussin   of erroring-out.
108861d06d6bSBaptiste Daroussin * Some subtle semantic issues, such as punctuation scope, have also
108961d06d6bSBaptiste Daroussin   been fixed.
109061d06d6bSBaptiste Daroussin * Lastly, some issues with -Thtml have been fixed, which prompted an
109161d06d6bSBaptiste Daroussin   update to the online manual pages style layout.
109261d06d6bSBaptiste Daroussin
109361d06d6bSBaptiste DaroussinChanges in version 1.9.22, released on March 31, 2010
109461d06d6bSBaptiste Daroussin
109561d06d6bSBaptiste Daroussin * Adjusted merge of the significant work by Ingo Schwarze
109661d06d6bSBaptiste Daroussin   in getting "Xo" blocks (block full implicit, e.g., "It"
109761d06d6bSBaptiste Daroussin   for non-columnar lists) to work properly.  This isn't
109861d06d6bSBaptiste Daroussin   enabled by default: you must specify -DUGLY as a compiler
109961d06d6bSBaptiste Daroussin   flag (see the Makefile for details).
110061d06d6bSBaptiste Daroussin
110161d06d6bSBaptiste DaroussinChanges in version 1.9.20, released on March 30, 2010
110261d06d6bSBaptiste Daroussin
110361d06d6bSBaptiste Daroussin * More efforts to get roff instructions in man(7) documents under
110461d06d6bSBaptiste Daroussin   control.  Note that roff instructions embedded in line-scoped,
110561d06d6bSBaptiste Daroussin   next-line macros (e.g. "B") are not supported.
110661d06d6bSBaptiste Daroussin * Leading punctuation for mdoc(7) macros, such as "Fl ( ( a",
110761d06d6bSBaptiste Daroussin   are now correctly handled.
110861d06d6bSBaptiste Daroussin
110961d06d6bSBaptiste DaroussinChanges in version 1.9.18, released on March 27, 2010
111061d06d6bSBaptiste Daroussin
111161d06d6bSBaptiste Daroussin * Many fixes (largely pertaining to scope)
111261d06d6bSBaptiste Daroussin   and improvements (e.g., handling of apostrophe-control macros,
111361d06d6bSBaptiste Daroussin   which fixes the strange "BR" seen in some macro output)
111461d06d6bSBaptiste Daroussin   to handling roff instructions in man(7) documents.
111561d06d6bSBaptiste Daroussin
111661d06d6bSBaptiste DaroussinChanges in version 1.9.17, released on March 25, 2010
111761d06d6bSBaptiste Daroussin
111861d06d6bSBaptiste Daroussin * Accept perlpod(1) standard preamble.
111961d06d6bSBaptiste Daroussin * Also accept (and discard) "de", "dei", "am", "ami", and "ig"
112061d06d6bSBaptiste Daroussin   roff macro blocks.
112161d06d6bSBaptiste Daroussin
112261d06d6bSBaptiste DaroussinChanges in version 1.9.16, released on March 22, 2010
112361d06d6bSBaptiste Daroussin
112461d06d6bSBaptiste Daroussin * Inspired by patches and bug reports by Ingo Schwarze,
112561d06d6bSBaptiste Daroussin   allowed man(7) to accept non-printing elements to be nested
112661d06d6bSBaptiste Daroussin   within next-line scopes, such as "br" within "B" or "TH",
112761d06d6bSBaptiste Daroussin   which is valid roff.
112861d06d6bSBaptiste Daroussin * Longsoon architecture also noted and Makefile cleaned up.
112961d06d6bSBaptiste Daroussin
113061d06d6bSBaptiste DaroussinChanges in version 1.9.15, released on February 18, 2010
113161d06d6bSBaptiste Daroussin
113261d06d6bSBaptiste Daroussin * Moved to our new BSD.lv home.
113361d06d6bSBaptiste Daroussin * XHTML is now an acceptable output mode for mandoc(1);
113461d06d6bSBaptiste Daroussin * "Xr" made more compatible with groff;
113561d06d6bSBaptiste Daroussin * "Vt" fixed when invoked in SYNOPSIS;
113661d06d6bSBaptiste Daroussin * "\\" escape removed;
113761d06d6bSBaptiste Daroussin * end-of-line white-space detected for all lines;
113861d06d6bSBaptiste Daroussin * subtle bug fixed in list display for some modes;
113961d06d6bSBaptiste Daroussin * compatibility layer checked in for compilation in diverse
114061d06d6bSBaptiste Daroussin   UNIX systems;
114161d06d6bSBaptiste Daroussin * and column lengths handled correctly.
114261d06d6bSBaptiste Daroussin
114361d06d6bSBaptiste DaroussinFor older releases, see the ChangeLog files
114461d06d6bSBaptiste Daroussinin http://mandoc.bsd.lv/snapshots/ .
1145