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 " ", 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