=================================================================== RCS file: /cvs/mandoc/NEWS,v retrieving revision 1.22 retrieving revision 1.35 diff -u -p -r1.22 -r1.35 --- mandoc/NEWS 2017/06/23 15:58:14 1.22 +++ mandoc/NEWS 2019/10/13 14:45:17 1.35 @@ -1,6 +1,340 @@ -$Id: NEWS,v 1.22 2017/06/23 15:58:14 schwarze Exp $ +$Id: NEWS,v 1.35 2019/10/13 14:45:17 schwarze Exp $ This file lists the most important changes in the mandoc.bsd.lv distribution. + +Changes in version 1.14.6, released on XXX XXX, 2019 + + --- MAJOR NEW FEATURES --- + * man(1) -T ascii: slowly start implementing tagging support for man(7) + pages: tag alphabetic arguments of .IP, .TP, and .TQ macros + * -T html: wrap text and phrasing elements in paragraphs unless + already contained in flow containers; never put them directly + into sections. This helps to format paragraphs with the CSS + class selector .Pp. + --- MINOR NEW FEATURES --- + * roff(7): implement the .break request (break out of a .while loop) + * if messages are shown and output is printed without a pager, + display a heads-up on stderr at the end because otherwise, users + may easily miss the messages + * mandoc.css: support prefers-color-scheme: dark + --- RELIABILITY BUGFIXES --- + * man(1): do not segfault if /tmp/ is not writeable + * tbl(7): fix a crash when the last column is only reached by spans + * tbl(7) -T ascii: fix a NULL pointer access on empty data cells + * tbl(7) -T ascii: fix a NULL pointer access on a line next to a short row + * -T html: fix an assertion failure caused by .ft in rare situations + * roff(7): fix a rare case of writing one byte past the end of the input buffer + --- MINOR FUNCTIONAL IMPROVEMENTS --- + * man(1) -h: for pages lacking a SYNOPSIS, show the NAME section + * man(1): when the first argument starts with a digit, optionally + followed by a letter, and at least one more argument follows, + interpret the first argument as a section name even when additional + characters follow after the digit and letter + * man(1): with a specific section requested, try harder to find + the best match; use this order of preference: + 1. The section in both the directory name and the file name matches exactly. + 2. The section in the file name matches exactly. + 3. The section in the directory name matches exactly. + 4. Neither of them matches exactly. + * man(1): if no tags were generated at all, unlink(2) the empty + tags file as soon the condition can be detected and do not pass + it to less(1) + * makewhatis(8): handle both dangling symlinks and .so links + in manual page directories more gracefully + * man.cgi(8): for invalid queries and for valid queries returning + no result, return the appropriate 40x status code rather than 200 + * tbl(7) -T utf8: improved rendering of horizontal lines + * mdoc(7) -T html: format .Nd with rather than
+ * mdoc(7) -T lint: do not warn about $Mdocdate: October 13 2019 $ without an actual date + * mdoc(7) -T lint: do not complain about function types of the + form "ret_type (fname)(args)", but otherwise check names more strictly + --- MINOR BUGFIXES --- + * man(1): do the search for each name independently, and show the + results in the order of the command line argument + * man(1): when asking for a single manual page by name, prefer + file name matches over .Dt/.TH matches over first NAME matches + over later NAME matches, but do not change the ordering for + apropos(1) nor for man -a + * roff(7): when calling an empty macro, do not clobber existing arguments + * mdoc(7) .Bl -column: parse Macro in .It "wordword" Ta word Macro + * -T html: remove some spurious line breaks, in particular inside
+    --- STRUCTURAL IMPROVEMENTS ---
+ * move some code out of the giant main() into separate functions
+   doing one well-defined task each
+ * clearly separate parser state (struct curparse) and formatter state
+   (struct outstate), don't mix them in the same struct
+ * in the HTML formatter, assert(3) that no HTML nesting violation occurs
+ * let html_close_paragraph() close any phrasing context
+    --- THANKS TO ---
+ * Marc Espie (OpenBSD) for a patch and for suggesting a feature impovement
+ * Anton Lindqvist (OpenBSD) for a patch
+ * Armin Besirovic for a contribution to mandoc.css
+ * Lorenzo Beretta for three bug reports
+   and for suggesting two feature impovements
+ * Anthony Bentley (OpenBSD) for three bug reports
+   and for suggesting a feature impovement
+ * Michael Stapelberg (Debian) and Jan Stary for a bug report
+   and for suggesting a feature impovement
+ * Stephen Gregoratto for two bug reports
+ * Brian Callahan, Klemens Nanni (OpenBSD), Jason Thorpe (NetBSD),
+   Yuri Pankov (FreeBSD), and Edgar Pettijohn for bug reports
+ * Theo Buehler (OpenBSD), Leah Neukirchen (Void Linux), Colin Watson (Debian),
+   and John Gardner for suggesting feature impovements
+ * TJ Townsend (OpenBSD) for help with CSS
+ * Christos Zoulas (NetBSD) for a report regarding portability
+ * Michal Nowak for reporting four code style issues
+
+Changes in version 1.14.5, released on March 10, 2019
+
+    --- MAJOR NEW FEATURES ---
+ * apropos(1): improve POSIX compliance by accepting case-insensitive
+   extended regular expressions by default
+ * new -O tag[=term] output option (open a page at the definition of a term)
+ * tbl(7) -T html: spanning and horizontal and vertical alignment of cells
+ * tbl(7) -T html: draw lines on the edges of table cells
+ * tbl(7) -T utf8: render lines with the Unicode box drawing characters
+ * mandoc is now able to handle the manual pages of the groff package.
+    --- MINOR NEW FEATURES ---
+ * -T html: new option -O toc (table of contents)
+ * -T html: second argument to -O man to support local and remote links
+ * mdoc(7) .Bd -centered now fills the text contained in it
+ * man-ext .SY and .YS macros (synopsis block)
+ * man-ext .TQ macro (tagged paragraph without vertical space before it)
+ * tbl(7) \& explicit alignment indicator
+ * roff(7) .shift, .while, and .return requests
+ * roff(7) .char request (output glyph definition)
+ * roff(7) .nop request (no operation)
+ * roff(7) .ft request: handle the CB, CI, and CR fonts
+ * roff(7) .if c conditional (character available)
+ * roff(7) \\$@ escape sequence (insert all macro arguments, quoted)
+ * roff(7) \*(.T predefined string (interpolate output device name)
+ * roff(7) \[charNNN] escape sequence (for printable ASCII characters)
+ * roff(7) \# escape sequence (line continuation with comment)
+    --- HTML OUTPUT SYNTAX CORRECTIONS ---
+ * Render .br and \p as 
, not as an empty
. + * Render .Pp and .PP as

and automatically close it when needed. + * Stop writing empty list elements for non-compact .Bl -tag lists. + * Do not put

inside if .UR or .MT contain .PP. + * Implement tooltips purely in CSS rather than abusing title= attributes. + --- MINOR FUNCTIONAL IMPROVEMENTS --- + * many improvements to the handling of fill and no-fill mode + * tbl(7): better column widths in the presence of horizontal spans + * several minor improvements to escape sequence handling + * several minor improvements to manual font handling + * portability: autodetect need for _GNU_SOURCE or _OPENBSD_SOURCE + * portability: autodetect whether less(1) supports the -T option + * large numbers of bugfixes of diverse kinds + --- STRUCTURAL IMPROVEMENTS --- + * Disentangle eqn(7) and tbl(7) from other parser header files, + and clean up some parser data structures. + * Substantially simplify error and warning message infrastructure. + --- THANKS TO --- + * John Gardner for crucial help implementing tooltips in CSS. + * Alexander Bluhm, Raphael Graf, Ted Unangst (OpenBSD) + and Daniel Sabogal (Alpine Linux) for patches. + * Anthony Bentley and Jason McIntyre (OpenBSD) for documentation patches, + suggesting new features, bug reports, and useful discussions. + * Kyle Evans and Baptiste Daroussin (FreeBSD) for minor patches. + * Pali Rohar for suggesting multiple new features and for reporting + several bugs and missing features. + * Klemens Nanni (OpenBSD) for suggesting multiple new features. + * Kristaps Dzonsons (bsd.lv), Marc Espie (OpenBSD), Adam Kalisz, + and Laura Morales for suggesting new features. + * Wolfram Schneider and Yuri Pankov (FreeBSD) for reporting missing features. + * Edward Tomasz Napierala (FreeBSD) for suggesting a feature improvement. + * Thomas Klausner (NetBSD) and Sevan Janiyan (SmartOS) + for bug reports and release testing. + * Bryan Steele, Janne Johansson, Kurt Mosiejczuk, Mike Belopuhov, Theo + Buehler, Todd Miller (OpenBSD), Andreas Gustafsson, Christos Zoulas, + Robert Elz (NetBSD), Kurt Jaeger (FreeBSD), Fabio Scotoni, Kelvin + Sherlock, Mark Harris, Orestis Ioannou, Raf Czlonka, and Sean Farrell + for bug reports. + * Ulrich Spoerlein (FreeBSD), Leah Neukirchen (Void Linux), + Matej Cepl (openSUSE), and Jan Stary (MacOS X) for release testing. + * Brian Callahan and Stuart Henderson (OpenBSD) for help + with the OpenBSD groff port. + * Bertrand Garrigues, Branden Robinson, Ralph Corderoy, and Werner + Lemberg (GNU troff) for checking groff patches. + * Scott Cheloha, Theo de Raadt (OpenBSD) + and Natanael Copa (Alpine Linux) for useful discussions. + +Changes in version 1.14.4, released on August 8, 2018 + + --- MAJOR NEW FEATURES --- + * In ASCII output, render mathematical symbols and greek letters + as transliterations conveying the characters' meanings rather + than trying to imitate their shape. Consequently, such characters + can now be used in portable manual pages. All the same, please + limit their use to contexts where they really matter, for example + when showing complicated mathematical formulae. + * First steps towards better support for small screens in HTML + output (responsive design): avoid most style= attributes, in + particular all hard-coded indentations and column widths, and + provide a better mandoc.css style sheet with a @media query, + using em units throughout, and avoiding redundancy in selectors. + * Better HTML output with some more fitting HTML elements, eliminating + needless class= attributes, and avoiding various HTML syntax errors + (element nesting, URL-fragment syntax, duplicate id= attributes). + --- MINOR NEW FEATURES --- + * When a man(1) argument contains a slash, imply -l like in man-db. + * Use TIOCGWINSZ to reduce the default -Owidth and -Oindent during + interactive use on terminals narrower than 79 columns. + * Generated PostScript files are now more than 50% smaller. + * Terminal rendering of eqn(7) is improved in several respects. + * Simplified and nicer output from the mdoc(7) .Lk macro, formatting + all links in-line, even long ones. + * roff(7) \n+ and \n- numerical register auto-increment and -decrement + * roff(7) .nr optional third argument (auto-increment step size) + * Autodetect in ./configure whether the compiler can use -W and -static, + allowing to build on Solaris 10 and 11 without any configure.local. + --- RELIABILITY BUGFIXES --- + * Only activate UTF-8 output when the user really selected UTF-8, + not some other multibyte character encoding. + * Prevent excessive .ll arguments from generating infinite output. + * Fix out of bounds accesses to parse buffers that could happen when + using renamed or user defined macros after roff(7) conditionals. + * Avoid an assertion failure in certain .Bl -column lists. + * Avoid a NULL pointer access on deroff() failure after '.SS ""'. + * Fix a segfault that could be triggered by two invalid .Dt macros. + * Fix two syntax errors in generated PDF files. + * Properly state the page size in generated PostScript files. + * Close a memory leak caused by missing gzclose(3). + * Fix misformatting of man(7) documents lacking .SH macros + in PostScript and PDF output. + * And many minor bugfixes. + --- THANKS TO --- + * Marc Espie (OpenBSD) for implementing the size reduction of + PostScript files, one additional patch for code simplification, + and two bug reports. + * Theo Buehler (OpenBSD) for a bugfix patch, + and Theo de Raadt (OpenBSD) for checking it. + * John Gardner for more than a dozen suggestions regarding HTML output. + * Mike Williams for teaching me how to use %%DocumentMedia and + setpagedevice in PostScript files. + * Werner Lemberg (groff) for feedback on mdoc(7) language changes. + * Colin Watson (man-db) for feedback on man-db semantics. + * Jason McIntyre (OpenBSD) for lots of feedback and suggestions + on diagnostic messages and on the documentation. + * Thomas Klausner (NetBSD) for suggesting two new style messages + and one new feature, for two bug reports, and for release testing. + * Leah Neukirchen (Void Linux) for suggesting a new style message, + five bug reports, and release testing. + * Anthony Bentley (OpenBSD) for reporting multiple bugs and missing + features. + * Paul Irofti (OpenBSD) and Nate Bargmann for suggesting new features. + * Michael Stapelberg (Debian) for bug reports and release testing. + * Christian Weisgerber, Jonathan Gray, Stuart Henderson, + Ted Unangst (OpenBSD), Takeshi Nakayama (NetBSD), + Anton Lazarov, Jakub Klinkovsky, Jan Stary, Jesper Wallin, + Will Backmam, and Wolfgang Mueller for bug reports. + * Sevan Janiyan (NetBSD) for additions to lib.in. + * George Brown for suggesting code simplifications. + * David Coppa, Igor Sobrado (OpenBSD), and Alexander Kuleshov + for documentation improvements. + * Laura Morales and Raf Czlonka for questions resulting in better + documentation. + * Yuri Pankov (illumos) for release testing. + +Changes in version 1.14.3, released on August 5, 2017 + + --- BUG FIXES --- + * man(7): Do not crash with out-of-bounds read access to a constant + array if .sp or a blank line immediately precedes .SS or .SH. + * mdoc(7): Do not crash with out-of-bounds read access to a constant + array if .sp or a blank line precede the first .Sh macro. + * tbl(7): Ignore explicitly specified negative column widths rather than + wrapping around to huge numbers and risking memory exhaustion. + * man(1): No longer use names that only occur in the SYNOPSIS section. + Gets rid of some surprising behaviour and bogus warnings. + --- THANKS TO --- + Leah Neukirchen (Void Linux), Markus Waldeck (Debian), + Peter Bui (nd.edu), and Yuri Pankov (illumos) for bug reports. + +Changes in version 1.14.2, released on July 28, 2017 + + --- MAJOR NEW FEATURES --- + * New mdoc(7) -Tmarkdown output mode. + * For -Thtml, implement internal hyperlinks pointing to authoritative + definitions of various syntax elements, similar to the ctags(1)-like + less(1) :t internal searching in terminal mode. + * Provide a superset of the functionality of the former mdoclint(1) + utility and a new -Wstyle message level with several new messages, + including validity checking of .Xr cross references. + * tbl(7): Implement automatic line breaking inside individual table + cells, and several other formatting improvements. + * eqn(7): Complete rewrite of the lexer, resulting in several bugfixes. + * Continue parser unification, in particular allowing generation + of syntax tree nodes on the roff(7) level, allowing implementation + of many additional roff requests. + --- REMOVED FUNCTIONALITY --- + * Delete the manpage(1) utility. It was never enabled in any release. + * Delete the -Txhtml command line option. It has been an obsolete + alias for the -Thtml output mode for more than two years. + --- MINOR NEW FEATURES --- + * -Tlint now puts parser messages on stdout instead of stderr, + making commands like "man -l -Tlint *.1" useful. + * mdoc(7): Various .Lk formatting improvements. + * mdoc(7) -Thtml: Better CSS for .Bl lists. + * man(7): Implement the .MT/.ME block macro (mailto hyperlink). + * man(7): Implement the .DT macro (restore default tab positions). + * man(7): Improved support for manuals generated with reStructuredText + by partial support for the \n[an-margin] number register. + * man(7) -Thtml: Support deep linking to .SH and .SS headers. + * tbl(7): Implement the "allbox" table option. + * tbl(7): Implement the column spacing and the 'w' (minimum column + width) layout modifiers. + * tbl(7): Significant improvements of the manual page. + * eqn(7): Much improved font selection, including recognition of + well-known function names, and a few other formatting improvements. + * eqn(7) -Thtml: Use and in addition to . + * roff(7): Implement the .ce (centering), .mc (margin character), + .rj (right justify), .ta (define tab stops), .ti (temporary indent), + .als (macro alias), .ec and .eo (escape character control), + .po (page offset), and .rn (macro rename) requests. + * roff(7) .am: Implement appending to mdoc(7) and man(7) macros. + * roff(7): implement the \h (horizontol motion), \l (horizontal + line drawing), and \p (break output line) escape sequences, + and also several additional character escape sequences. + * roff(7): Implement the 'd' conditional (macro or string defined). + * man.cgi(8) now uses pledge(2), too. + * regress.pl(1): simpler user interface, better summary output, + simpler code, and no more recursion. + --- THANKS TO --- + * Anthony Bentley (OpenBSD) for the implementation of .MT/.ME, + reports of many bugs and missing features, and suggestions + for a number of feature and documentation improvements. + * Sebastien Marie (OpenBSD) for two source code patches and + for some useful discussions. + * Florian Obser (OpenBSD) for a bugfix patch and a bug report. + * Jonathan Gray (OpenBSD) for several bug reports from afl(1) + and several more from static analysis tools. + * Theo Buehler (OpenBSD) for several bug reports, most from afl(1). + * Jason McIntyre (OpenBSD) for many useful discussions about a + wide variety of topics, lots of continuous testing, a number of + bug reports, and some suggestions for messages and documentation. + * Thomas Klausner (NetBSD) for lots of help while migrating + mdoclint(1) functionality to mandoc -Tlint, for suggesting + several useful new messages, and for release testing. + * Reyk Floeter (OpenBSD) and Vsevolod Stakhov (FreeBSD) for + suggesting a markdown output mode. + * Thomas Guettler for suggesting -Thtml internal hyperlinks. + * Yuri Pankov (Illumos) for inspiring new warning messages and + for extensive release testing. + * Anton Lindqvist and TJ Townsend (both OpenBSD) and Jan Stary + for multiple bug reports. + * Leah Neukirchen (Void Linux) for bug reports and release testing. + * Michael Stapelberg (Debian) for suggesting feature improvements + and for release testing. + * Martin Natano and Theo de Raadt (both OpenBSD), Andreas Voegele, + Gabriel Guzman, Gonzalo Tornaria, Markus Waldeck, and Raf Czlonka + for bug reports. + * Antoine Jacoutot (OpenBSD) and Steffen Nurpmeso for suggesting + feature improvements. + * Dag-Erling Smoergrav (FreeBSD) for inspiring new warning messages. + * Ted Unangst and Marc Espie (OpenBSD) for providing useful ideas. + * Svyatoslav Mishyn (Crux Linux) for release testing. + * Carsten Kunze (Heirloom roff) for help keeping mandoc and groff + compatible and for committing some of my patches to groff. Changes in version 1.14.1, released on February 21, 2017