Return to NEWS CVS log | Up to [cvsweb.bsd.lv] / mandoc |
version 1.9, 2015/03/13 12:35:32 | version 1.22, 2017/06/23 15:58:14 | ||
---|---|---|---|
|
|
||
$Id$ | $Id$ | ||
This file lists the most important changes in the mdocml.bsd.lv distribution. | This file lists the most important changes in the mandoc.bsd.lv distribution. | ||
Changes in version 1.14.1, released on February 21, 2017 | |||
--- MAJOR NEW FEATURES --- | |||
* apropos(1): Reimplement complete semantic search functionality | |||
without the dependency on SQLite3, using only POSIX APIs. | |||
This comes with a completely new mandoc.db(5) file format. | |||
* man(1): Support more than one tag entry for the same search term, | |||
plus some minor improvements to the less(1) :t support. | |||
* -Thtml: Use real macro names for CSS classes. | |||
Systematic cleanup of and many improvements to mandoc.css. | |||
* -Thtml: Produce human readable HTML code by using indentation | |||
and better line breaks. Improve various HTML elements, | |||
and trim several useless ones. | |||
* New catman(8) utility, still somewhat experimental. | |||
* Now includes a portable version of the OpenBSD mandoc regression | |||
suite, see regress/regress.pl.1 for details. | |||
--- REMOVED FUNCTIONALITY --- | |||
* Operating systems that don't provide mmap(3) are no longer supported. | |||
* Drop support for manpath(1). Even if your system has manpath(1), | |||
it is simpler to use MANPATH_DEFAULT in configure.local for | |||
operating system defaults, man.conf(5) for machine-specific | |||
modifications, and ${MANPATH}, -m, and -M for user preferences | |||
than to bother with the complexity of manpath(1). | |||
* makewhatis(8) -p: No longer warn about missing MLINKS since these | |||
are no longer needed for anything. | |||
--- MINOR NEW FEATURES --- | |||
* mdoc(7): Warn about invalid punctuation and content below NAME. | |||
* mdoc(7): Warn about .Xr lacking the second argument (section). | |||
* mdoc(7): Warn about violations of the rule "new sentence, new line". | |||
* roff(7): Warn about trailing whitespace at the end of comments. | |||
* mdoc(7): Improve rendering of double quotes. | |||
* mdoc(7): Always do text production in the validator, never in the | |||
formatters. Cleaner, simpler, shorter, helps NetBSD apropos(1) | |||
and also makes -Ttree output more useful. | |||
* -Ttree: Show metadata and some additional node flags. | |||
New -Onoval output option to show the unvalidated tree. | |||
--- RELIABILITY BUGFIXES --- | |||
* man(1): Make "man -l" work with standard input from a pipe or file, | |||
as long as standard output is a terminal. | |||
* man(7): Fix out of bounds read access if a text node immediately | |||
preceded the first .SH header. | |||
* mdoc(7): Fix out of bounds read access for .Bl without a type | |||
but with a width. | |||
* mdoc(7): Fix out of bounds read access for .Bl -column starting | |||
with a tab character instead of a child .It macro. | |||
* mdoc(7): Fix syntax tree corruption leading to segfaults caused | |||
by stray block end macros in nested blocks of mismatching type. | |||
* man(1): Fix NULL dereference when the first of multiple pages | |||
shown was preformatted. | |||
* mdoc(7): Fix syntax tree corruption leading to NULL dereference | |||
caused by partial implicit macros inside .Bl -column table cells. | |||
* mdoc(7): Fix syntax tree corruption leading to NULL dereference | |||
for macro sequences like .Bl .Bl .It Bo .El .It. | |||
* mdoc(7): Fix syntax tree corruption leading to NULL dereference | |||
caused by .Ta following a nested .Bl -column breaking another block. | |||
* mdoc(7): Fix syntax tree corruption sometimes leading to NULL | |||
dereference caused by indirectly broken .Nd or .Nm blocks. | |||
* mdoc(7) -Thtml: Fix a NULL dereference for .Bl -column with 0 columns. | |||
* mdoc(7): Fix NULL dereference in some specific cases of a | |||
block-end macro calling another block-end macro. | |||
* mdoc(7): Fix NULL dereference if the only child of the head | |||
of the first .Sh was an empty in-line macro. | |||
* eqn(7): Fix NULL dereference in the terminal formatter | |||
for empty matrices and empty square roots. | |||
* mdoc(7): Fix an assertion failure for a .Bd without a type that | |||
breaks another block. | |||
* mdoc(7): Fix an assertion failure that happened for some .Bl -column | |||
lists containing a column width of "-4n", "-3n", or "-2n". | |||
* mdoc(7): Fix an assertion failure caused by .Bl -column without .It | |||
but containing eqn(7) or tbl(7) code. | |||
* roff(7): Fix an assertion failure caused by \z\[u00FF] with -Tps/-Tpdf. | |||
* roff(7): Fix an assertion failures caused by whitespace inside \o'' | |||
(overstrike) sequences. | |||
* -Thtml: Fix an assertion failure caused by -Oman or -Oincludes of | |||
excessive length. | |||
--- PORTABILITY IMPROVEMENTS --- | |||
* man(1): Do not mix stdio narrow and wide stream orientation | |||
on stdout, which could cause output corruption on glibc. | |||
* mandoc(1): Autodetect a suitable locale for -Tutf8 mode. | |||
* ./configure: Autodetect whether PATH_MAX and O_DIRECTORY are defined. | |||
* ./configure: Autodetect if nanosleep(3) needs -lrt. | |||
* ./configure: Provide an ${LN} configuration variable. | |||
* ./configure: Put compiler arguments that may contain -l at the end. | |||
--- MINOR BUGFIXES --- | |||
* mdoc(7): Fix SYNOPSIS output if the first child of .Nm is a macro. | |||
* mdoc(7) -Thtml: Improve formatting of .Bl -tag with short tags. | |||
* man(7) -Thtml: Preserve whitespace in .nf (nofill) mode. | |||
* mandoc(1): Error out on invalid output options on the command line. | |||
--- STRUCTURAL CHANGES, no functional change --- | |||
* Redesign part of the mandoc_html(3) interfaces, making them much | |||
easier to use and reducing the amount of code by a few hundred lines. | |||
--- THANKS TO --- | |||
* Michael Stapelberg (Debian) for designing the new mandocd(8) | |||
and parts of the new catman(8), for release testing, and for a | |||
number of patches and bug reports. | |||
* Baptiste Daroussin (FreeBSD) for profiling the new makewhatis(8) | |||
implementation and suggesting an algorithmic improvement which | |||
more than doubled performance, and for a few bug reports. | |||
* Ed Maste (FreeBSD) for an important patch improving reproducibility | |||
of builds in makewhatis(8), and for a few bug reports. | |||
* Theo Buehler (OpenBSD) for almost twenty important bug reports, | |||
most of them found by systematic afl(1) fuzzing. | |||
* Benny Lofgren, David Dahlberg, and in particular Vadim Zhukov | |||
for crucial help in getting .Bl -tag CSS formatting fixed. | |||
* Svyatoslav Mishyn (Crux Linux) for an initial version of the | |||
patch to autodetect a suitable locale for -Tutf8 mode | |||
and for release testing. | |||
* Jason McIntyre (OpenBSD) for multiple useful discussions | |||
and a number of bug reports. | |||
* Sevan Janiyan (NetBSD) for extensive release testing and multiple | |||
bug reports. | |||
* Thomas Klausner and Christos Zoulas (NetBSD), Yuri Pankov (illumos), | |||
and Leah Neukirchen (Void Linux) for release testing and bug reports. | |||
* Ulrich Spoerlein (FreeBSD) for release testing. | |||
* Alexander Bluhm, Andrew Fresh, Antoine Jacoutot, Antony Bentley, | |||
Christian Weisgerber, Jonathan Gray, Marc Espie, Martijn van Duren, | |||
Stuart Henderson, Ted Unangst, Theo de Raadt (OpenBSD), Abhinav | |||
Upadhyay, Kamil Rytarowski (NetBSD), Aaron M. Ucko, Bdale Garbee, | |||
Reiner Herrmann, Shane Kerr (Debian), Daniel Sabogal (Alpine Linux), | |||
Carsten Kunze (Heirloom roff), Kristaps Dzonsons (bsd.lv), | |||
Anton Lindqvist, Jan Stary, Jeremy A. Mates, Mark Patruck, | |||
Pavan Maddamsetti, Sean Levy <attila@stalphonsos.com>, and | |||
Tiago Silva for bug reports. | |||
* Brent Cook, Marc Espie, Philip Guenther, Todd Miller (OpenBSD) | |||
and Markus Waldeck for useful discussions. | |||
* And as usual, OpenCSW for providing me with a Solaris 9/10/11 | |||
testing environment. | |||
Changes in version 1.13.4, released on July 14, 2016 | |||
--- MAJOR NEW FEATURES --- | |||
* man.conf(5): Design and implement a simpler configuration file format. | |||
* man(1): Leverage less(1) -T and :t in a way resembling ctags(1) | |||
to jump to the definitions of various terms inside manual pages. | |||
* soelim(1): New implementation by Baptiste Daroussin. | |||
* privilege limitation: Use OpenBSD pledge(2) or OS X sandbox_init(3) | |||
when available. | |||
* man.cgi(8): Support short URIs like http://man.openbsd.org/mdoc . | |||
* mandoc.css: Use one unified stylesheet rather than three different ones. | |||
--- MAJOR FUNCTIONALLY RELEVANT BUGFIXES --- | |||
* mdoc(7): Fix multiple aspects of SYNOPSIS .Nm formatting. | |||
* man(1): Fix process group handling, avoiding unclean shutdowns. | |||
--- PORTABILITY IMPROVEMENTS --- | |||
* Correctly use the ohash(3) compatibility implementation | |||
even when building without SQLite support. | |||
* Add compat glue for building on Solaris 9 and 10. | |||
* Let ./configure select a supported RE syntax for word boundaries. | |||
* Support LDFLAGS, to be used for example for hardening options. | |||
* Avoid mixing putchar(3) and putwchar(3) on the same file descriptor, | |||
it resulted in output corruption on some platforms. | |||
* Avoid reusing va_lists, use va_copy(3) for better portability. | |||
* Do not hardcode the path to the more(1) program. | |||
--- MINOR NEW FEATURES --- | |||
* roff(7): Implement \n(.$ (number of macro arguments). | |||
* roff(7): Fully implement \z (do not advance cursor). | |||
* roff(7): Implement the `r' conditional (register exists). | |||
* roff(7): Implement \\$* (interpolate all arguments). | |||
* roff(7): Parse and ignore \, and \/ (italic corrections). | |||
* When there is no -m, no -M, no MANPATH and no /etc/man.conf, | |||
fall back to /usr/share/man:/usr/X11R6/man:/usr/local/man. | |||
* man(1): Give manuals in purely numerical sections priority over | |||
manuals of the same name in sections with an alphabetical suffix. | |||
* man.cgi(8): Support "header.html" and "footer.html". | |||
* man.cgi(8): Set the "autofocus" attribute on the query text box. | |||
* man.cgi(8): Simplify the search form, drop two useless buttons. | |||
* man.cgi(8): Delete the pseudo-manpath "mandoc", assume that | |||
apropos(1) and man.cgi(8) are installed in the default manpath. | |||
--- RELIABILITY BUGFIXES --- | |||
* mdoc(7): Avoid a use after free and an assertion failure when nodes | |||
are deleted during validation. | |||
* mdoc(7): Avoid a NULL pointer access when .Bd has no arguments. | |||
* mdoc(7): Avoid a NULL pointer access triggered by mismatching end macros. | |||
* mdoc(7): Avoid an assertion when .Fo has no argument. | |||
* mdoc(7): Avoid an assertion when .Ta<tab> occurs in .Bl -column. | |||
* mdoc(7): Avoid an assertion when a body gets broken and has a tail. | |||
* roff(7): Avoid an assertion caused by blanks inside \o. | |||
* roff(7): Make .so links to gziped manuals work without mandoc.db(5). | |||
* tbl(7): Avoid a use after free when the last line of a layout is empty. | |||
* eqn(7): Avoid an infinite loop caused by recursive "define". | |||
* makewhatis(8): Avoid a segfault caused by unusual directory structures. | |||
* Fix handling of leading, trailing, and double colons in MANPATH and -m. | |||
--- MINOR BUGFIXES --- | |||
* mdoc(7): Put arguments to end macros of broken partial explicit blocks | |||
inside the breaking block. | |||
* mdoc(7): Let .Dv force normal font. | |||
* mdoc(7): Make trailing whitespace significant in .Bl -tag widths. | |||
* mdoc(7): Fix macro interpretation around tabs in .Bl -column. | |||
* man(7): Use the default width for .RS without arguments. | |||
* man(7): On a new RS nesting level, the saved width starts from | |||
the default width, not from the saved width of the previous level. | |||
* man(7): Allow .PD in next-line scope. | |||
* man(7): Improve handling of empty .HP. | |||
* man(7): Improve formatting of .br and .sp inside .HP. | |||
* man(7): Do not mistreat empty arguments to font alternating | |||
macros as vertical spacing requests. | |||
* man(7): Allow fill mode changes in tagged paragraph next-line scope. | |||
* man(7): Fix minor bugs in block rewinding and simplify the related code. | |||
* man(7): Add missing line breaks before subsection headers. | |||
* man(7): Give section and subsection headers hanging indentation. | |||
* man(7): Make trailing whitespace significant in .TP widths. | |||
* roff(7): Don't allow breaking the output line after hyphens | |||
that immediately follow escape sequences. | |||
* roff(7): Ignore blank characters at the beginning of conditional blocks. | |||
* roff(7): Escape breakable hyphens only after handling input line traps. | |||
* roff(7): Reject \[uD800] to \[uDFFF] (surrogates) in the parser. | |||
* tbl(7): Allow more than one data field after T} on the same input line. | |||
* terminal output: Apply bold and italic to non-ASCII Unicode codepoints. | |||
* terminal output: Improve rounding rules for horizontal scaling widths. | |||
* HTML output: Render ASCII_NBRSP as " ", not "-". | |||
* man(1): Do not match the first part of a name if it continues with a dot. | |||
* man(1): Keep working even if the current directory is unusable. | |||
* man(1): Better error message when $PAGER is invalid. | |||
* makewhatis(8): Improve handling of .Va and .Vt macros. | |||
* apropos(1): Print "nothing appropriate" to stderr when appropriate. | |||
* apropos(1): Abort with a useful error message when elementary | |||
database operations like preparing queries or binding variables fail. | |||
--- STRUCTURAL CHANGES, no functional change --- | |||
* mdoc(7) and man(7): Unified data structures struct roff_node etc. | |||
* mdoc(7) and man(7): Unified node handling library in roff.c. | |||
* mdoc(7) and man(7): Seperate validation phase from parsing. | |||
* roff(7): Major character table cleanup. | |||
* Link with libz rather than forking gunzip(1). | |||
--- THANKS TO --- | |||
* Baptiste Daroussin (FreeBSD) for the new soelim(1) | |||
and for release testing. | |||
* Anthony Bentley (OpenBSD) for unifying mandoc.css, two nice | |||
patches for man.cgi(8), some documentation patches, some bug | |||
reports, and various useful discussions. | |||
* Todd Miller (OpenBSD) for lots of help with process group and | |||
signal handling, a few patches, some bug reports and some useful | |||
discussions. | |||
* Jonathan Gray (OpenBSD) for yet more testing with afl(1) | |||
again resulting in more than half a dozen important bug reports. | |||
* Svyatoslav Mishyn (Crux Linux) for some patches, several bug | |||
reports, and extensive release testing. | |||
* Leah Neukirchen (Void Linux) for a number of compatibility | |||
patches and suggestions and several bug reports. | |||
* Christos Zoulas (NetBSD) for a bug fix patch and some useful | |||
suggestions for cleanup. | |||
* Florian Obser (OpenBSD) for a bugfix patch and some bug reports. | |||
* Sevan Janiyan for help with Solaris compatibility and release | |||
testing on many platforms. | |||
* Jan Holzhueter and OpenCSW in general for help with Solaris | |||
compatibility, and for providing me with a Solaris 9/10/11 testing | |||
environment. | |||
* Michael McConville (OpenBSD) for some simple cleanup patches. | |||
* Thomas Klausner (NetBSD) for some bug reports and release testing. | |||
* Christian Weisgerber, Dmitrij Czarkoff, Igor Sobrado, | |||
Ken Westerback, Marc Espie, Mike Belopuhov, Rafael Neves, | |||
Ted Unangst, Tim van der Molen, Theo Buehler, Theo de Raadt | |||
(OpenBSD), Kurt Jaeger, Dag Erling Smoergrav (FreeBSD), | |||
Joerg Sonnenberger (NetBSD), Carsten Kunze (Heirloom troff), | |||
Daniel Levai, Fabian Raetz, Jan Stary, Jean-Yves Migeon, | |||
Lorenzo Beretta, Markus Waldeck, Maxim Belooussov, Michael Reed, | |||
Peter Bray, and Serguey Parkhomovsky for bug reports and feature | |||
suggestions. | |||
* Alexander Hall, Andrew Fresh, Antoine Jacoutot, Doug Hogan, | |||
Jason McIntyre, Jasper Lievisse Adriaanse, Kent Spillner, | |||
Nicholas Marriott, Peter Hessler, Sebastien Marie, Stefan Sperling, | |||
and Theo de Raadt (OpenBSD) for helpful discussions and feedback. | |||
Changes in version 1.13.3, released on March 13, 2015 | Changes in version 1.13.3, released on March 13, 2015 | ||
--- MAJOR NEW FEATURES --- | --- MAJOR NEW FEATURES --- | ||
|
|
||
* New -Wunsupp message level. | * New -Wunsupp message level. | ||
--- POTENTIONALLY SECURITY RELEVANT BUGFIXES --- | --- POTENTIONALLY SECURITY RELEVANT BUGFIXES --- | ||
* Fix a potential write buffer overrun on incomplete string conditionals. | * Fix a potential write buffer overrun on incomplete string conditionals. | ||
http://mdocml.bsd.lv/cgi-bin/cvsweb/roff.c#rev1.241 | http://mandoc.bsd.lv/cgi-bin/cvsweb/roff.c#rev1.241 | ||
* Fix a potential write buffer overrun on backslash at EOF in a conditional. | * Fix a potential write buffer overrun on backslash at EOF in a conditional. | ||
http://mdocml.bsd.lv/cgi-bin/cvsweb/roff.c#rev1.247 | http://mandoc.bsd.lv/cgi-bin/cvsweb/roff.c#rev1.247 | ||
* Fix a use after free sometimes hit when validation deletes a block. | * Fix a use after free sometimes hit when validation deletes a block. | ||
http://mdocml.bsd.lv/cgi-bin/cvsweb/mdoc_macro.c#rev1.180 | http://mandoc.bsd.lv/cgi-bin/cvsweb/mdoc_macro.c#rev1.180 | ||
--- MAJOR FUNCTIONALLY RELEVANT BUGFIXES --- | --- MAJOR FUNCTIONALLY RELEVANT BUGFIXES --- | ||
* Let man(1) show manuals for the current architecture by default, | * Let man(1) show manuals for the current architecture by default, | ||
and support the MACHINE environment variable. | and support the MACHINE environment variable. | ||
|
|
||
* roff(7): Three minor fixes with respect to evaluation of conditionals. | * roff(7): Three minor fixes with respect to evaluation of conditionals. | ||
* roff(7): Let .it accept numerical expressions, not just constants. | * roff(7): Let .it accept numerical expressions, not just constants. | ||
* mandoc_char(7): Correct some character names and renderings. | * mandoc_char(7): Correct some character names and renderings. | ||
* If earlier files set a non-zero exit status, never reset it to zero. | * If earlier files set a non-zero exit status, never reset it to zero. | ||
--- THANKS TO --- | --- THANKS TO --- | ||
* Jonathan Gray (OpenBSD) for yet more testing with afl (the American | * Jonathan Gray (OpenBSD) for yet more testing with afl (the American | ||
Fuzzy Lop security fuzzer), again resulting in many bug reports. | Fuzzy Lop security fuzzer), again resulting in many bug reports. | ||
|
|
||
* and column lengths handled correctly. | * and column lengths handled correctly. | ||
For older releases, see the ChangeLog files | For older releases, see the ChangeLog files | ||
in http://mdocml.bsd.lv/snapshots/ . | in http://mandoc.bsd.lv/snapshots/ . |