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