$ cvs2cl --utc --summary -T This ChangeLog contains all CVS commits up to the 1.14.6 release. $Id: ChangeLog,v 1.18 2021/09/23 18:11:15 schwarze Exp $ 2021-09-23 18:03 tag VERSION_1_14_6 2021-09-23 18:03 schwarze Changed: NEWS (1.40), "Exp", lines: +2 -2 release 1.14.6 2021-09-23 17:12 schwarze Changed: NEWS (1.39), "Exp", lines: +17 -10 credits for release testing 2021-09-21 17:58 schwarze Changed: TODO (1.319), "Exp", lines: +6 -1 handle man3c/fopen.3c in main.c/fs_*() 2021-09-21 11:04 schwarze Changed: Makefile (1.540), "Exp", lines: +3 -3 POSIX make(1) does not support prerequisites on suffix rules. For HTML generation, the "mandoc" prerequisite isn't needed anyway because ${WWW_MANS} already explicitly depends on mandoc. Issue reported by Sevan Janiyan and Leah Neukirchen. This is not critical for release because it is only used for a maintainer target. While here, i also fixed the associated shell command to use the freshly built mandoc binary rather than whatever may be in the $PATH. 2021-09-20 13:25 schwarze Changed: INSTALL (1.24), "Exp", lines: +11 -6 configure.local.example (1.43), "Exp", lines: +3 -1 more details about Mac OS X; information from Sevan Janiyan 2021-09-20 10:19 schwarze Changed: Makefile (1.539), "Exp", lines: +2 -2 configure (1.81), "Exp", lines: +3 -1 configure.local.example (1.42), "Exp", lines: +7 -2 make the path to ar(1) configurable, needed by NixOS; suggested by Lukas Epple 2021-09-20 10:14 schwarze Changed: Makefile (1.538), "Exp", lines: +3 -3 Create the link from ./man to ./mandoc in the "all" target rather than in the "regress" target. That makes manual "cd regress && ./regress.pl" a bit less fragile. The idea came up in a conversation with Thomas Klausner . 2021-09-19 18:14 schwarze Changed: soelim.c (1.6), "Exp", lines: +4 -4 isspace(3) requires an unsigned argument; bug reported by Thomas Klausner 2021-09-19 18:07 schwarze Changed: roff_term.c (1.24), "Exp", lines: +1 -1 clarify the meaning of a complicated mixed signed/unsigned expression; Thomas Klausner reported a compiler warning 2021-09-19 16:19 schwarze Changed: configure.local.example (1.41), "Exp", lines: +2 -2 do not ship with an old OpenBSD version number 2021-09-19 15:21 schwarze Changed: NEWS (1.38), "Exp", lines: +3 -2 some more portability improvements 2021-09-19 15:05 schwarze Added: compat_mkstemps.c (1.1) test-mkstemps.c (1.1) Changed: Makefile (1.537), "Exp", lines: +5 -2 Makefile.depend (1.51), "Exp", lines: +1 -0 configure (1.80), "Exp", lines: +9 -2 Test availability of mkstemps(3) and provide a fallback implementation in case it is missing; needed for SUN Solaris 10. 2021-09-19 15:02 schwarze Changed: compat_mkdtemp.c (1.4), "Exp", lines: +5 -7 Two minor improvements: 1. If mktemp(3) fails, do not overwrite the errno because all errors mktemp(3) might return are also valid for mkdtemp(3). 2. If mkdir(2) fails, always put back the Xes, even if the error is fatal and the function is about to return NULL. 2021-09-19 12:28 schwarze Changed: configure (1.79), "Exp", lines: +3 -3 do not use the echo(1) -n option, it is not portable; issue found on SUN Solaris 10 2021-09-19 12:15 schwarze Changed: regress/regress.pl (1.16), "Exp", lines: +7 -6 do not use the sed(1) -i option, it is not portable; issue found on Oracle Solaris 11 2021-09-19 11:03 schwarze Changed: Makefile (1.536), "Exp", lines: +2 -2 bump VERSION 2021-09-19 11:02 schwarze Changed: NEWS (1.37), "Exp", lines: +2 -2 tiny update 2021-09-19 11:02 schwarze Changed: LICENSE (1.22), "Exp", lines: +3 -3 update some Copyright years 2021-09-18 15:38 schwarze Changed: Makefile.depend (1.50), "Exp", lines: +1 -1 update Makefile.depend 2021-09-18 12:34 schwarze Changed: tbl.7 (1.37), "Exp", lines: +3 -3 correct whitespace in the title of the Lesk paper to match the original; patch from jsg@ 2021-09-18 12:23 schwarze Changed: roff.7 (1.116), "Exp", lines: +3 -3 replace "Ar arg Ar arg" with "Ar arg arg"; patch from jmc@ 2021-09-17 18:50 schwarze Changed: mandoc_malloc.3 (1.3), "Exp", lines: +30 -11 document mandoc_recallocarray(3); patch found in my tree, apparently forgotten years ago 2021-09-17 18:27 schwarze Changed: NEWS (1.36), "Exp", lines: +146 -37 update 2021-09-10 13:24 schwarze Changed: tbl_data.c (1.59), "Exp", lines: +12 -9 Quirk-compatibility with GNU tbl(1): With the "nospaces" option, skip space characters before and after "T{", in addition to skipping those at the beginning and end of data cells. Minor issue reported by . 2021-09-10 12:48 schwarze Changed: TODO (1.318), "Exp", lines: +13 -11 add two newly reported bugs, and remove two feature requests that were recently implemented 2021-09-10 12:07 schwarze Changed: tbl_data.c (1.58), "Exp", lines: +4 -1 In a tbl(7) having the "nospaces" option, skip space characters not only at the end of data cells, but also after "T}", aligning the behaviour of the parser with GNU tbl(1). Issue reported by . 2021-09-09 16:52 schwarze Changed: tbl_html.c (1.38), "Exp", lines: +25 -1 In HTML output, in cells with an "n" (number) layout, pad numbers on the right side with UTF-8 punctuation and figure spaces such that numbers in different tbl(7) rows align at the decimal point. The exact HTML output format was suggested by ; the implementation in C is mine. 2021-09-09 14:47 schwarze Changed: html.c (1.275), "Exp", lines: +2 -1 html.h (1.109), "Exp", lines: +2 -1 tbl_html.c (1.37), "Exp", lines: +7 -2 If the layout or data of an individual cell in a tbl(7) contains only "_", "-", or "=", requesting a horizontal line to be drawn across the middle of the cell, print
in that cell in HTML output. That is arguably slightly ugly because HTML 5 regards
as semantic markup, meaning "thematic break". If somebody knowns a better way to render a horizontal line across the middle of a table cell with pure HTML and CSS, and without implying a specific meaning, please tell me. Missing feature reported by . 2021-09-07 17:07 schwarze Changed: out.c (1.82), "Exp", lines: +10 -34 Fix an infinite loop that could occur during some cases of horizontally overlapping horizontal spans. One span would calculate a desired target width and start preparations for applying it to some columns, then the other span would overwrite the target width with a different value and also start preparations for applying that one to some columns, which could sometimes confuse the code doing the final distribution to the point of not doing anything at all before entering the next iteration. Fix this by making sure the distribution is done step by step, doing one step at a time rather than allowing multiple steps to conflict. Specifically, always do the smallest useful step first. This change also simplifies the code. For example, the local "colwidth" array is no longer needed. Note that the algorithm still differs from the one implemented in GNU tbl(1), which appears to not even try to harmonize column widths but seems to simply distribute the same amount to all constituent columns, no matter whether their intrinsic width is narrow or wide. Adopting a GNU-compatible algorithm might allow further simplifiction in addition to yielding even more similar output, but i do not want to implement any major changes of the algorithm at this time. The infinite loop was reported by . 2021-09-07 14:56 schwarze Changed: out.c (1.81), "Exp", lines: +5 -4 regress/tbl/layout/span.in (1.6), "Exp", lines: +11 -2 regress/tbl/layout/span.out_ascii (1.7), "Exp", lines: +9 -1 Correctly calculate required column widths for tables containing cells that horizontally span columns which contains "n" (number) formatted cells on other rows. This requires updating total column widths from "n" formatted cells before starting width distribution from the spanning cells to their constituent columns. 2021-09-07 11:48 schwarze Changed: tbl.7 (1.36), "Exp", lines: +3 -3 tbl_data.c (1.57), "Exp", lines: +18 -9 we already parse the GNU tbl(7) "nospaces" option, so let it have the intended effect, too 2021-09-07 10:59 schwarze Changed: tree.c (1.91), "Exp", lines: +3 -1 do not crash when a tbl(7) cell uses roman font 2021-09-06 14:32 schwarze Changed: TODO (1.317), "Exp", lines: +6 -1 TODO: let makewhatis(8) follow symbolic links to dirs 2021-09-04 22:38 schwarze Changed: main.c (1.358), "Exp", lines: +12 -7 during prioritization for man(1), correctly extract the section name from the file name extension of gzipped manual page files; bug found on Alpine Linux by Soeren Tempel , who also tested this patch 2021-09-04 20:26 schwarze Changed: att.c (1.19), "Exp", lines: +2 -2 mdoc(7): improve output of .At 32v The official designation by AT&T was "UNIX/32V", so use that in the output. That also makes sense because "system/architecture" is a widespread convention to refer to the port of an operating system to a specific architecture, in this case 32V (32bit DEC VAX). The former wording "Version 32V AT&T UNIX" was misleading because 32V is not a version number. Even though UNIX/32V was not officially designated as Version 7 by AT&T, prepend "Version 7" because it was in fact a straightforward port of Version 7 AT&T UNIX. That makes it easier to understand for 21st century readers of manual pages. Suggested by nabijaczleweli at nabijaczleweli dot xyz. Same change as in GNU troff commit 21d30728. OK G dot Branden dot Robinson at gmail dot com (gbranden@ in groff) 2021-09-04 12:52 schwarze Changed: main.c (1.357), "Exp", lines: +66 -22 In the fallback code to look for manual pages without using mandoc.db(5), accept files "man/." in addition to the already supported "man/name.[01-9]*". Needed for example on Alpine Linux which puts its Perl manuals into "man3/.3pm" and the POSIX manuals into "man3/.3p". While here, allow the glob(3) at the end of fs_lookup() to add multiple matches to the result set. This improves man -w output and may also help some cases of plain man(1), allowing main() to prioritize properly rather than fs_lookup() picking a random match. Issue reported and patch tested by Soeren Tempel . 2021-08-19 16:55 schwarze Changed: mandocdb.c (1.269), "Exp", lines: +3 -1 do not crash when a manpath directory contains a symbolic link that points to a directory rather than to a regular file; bug reported by Lukas Epple , and my patch also tested by him on NixOS 2021-08-19 15:23 schwarze Changed: cgi.c (1.175), "Exp", lines: +25 -9 fix the section number in the element for preformatted pages; minibug reported by Ian <Ropers at gmail dot com> on misc@ 2021-08-14 13:53 schwarze Changed: main.c (1.356), "Exp", lines: +4 -1 mandoc.1 (1.253), "Exp", lines: +9 -1 mandoc.h (1.274), "Exp", lines: +2 -1 mandoc_msg.c (1.16), "Exp", lines: +1 -0 print a BAGARG message if -T markdown is requested on man(7) input; suggested by Michael Stapelberg at debian dot org 2021-08-10 12:55 schwarze Added: regress/tbl/mod/font-eol.in (1.1) regress/tbl/mod/font-eol.out_ascii (1.1) regress/tbl/mod/font-eol.out_lint (1.1) Changed: html.c (1.274), "Exp", lines: +17 -5 man_validate.c (1.156), "Exp", lines: +4 -2 mandoc.c (1.119), "Exp", lines: +5 -5 mandoc.h (1.273), "Exp", lines: +4 -2 mandoc_headers.3 (1.34), "Exp", lines: +8 -4 mdoc_markdown.c (1.37), "Exp", lines: +4 -2 out.c (1.80), "Exp", lines: +3 -1 roff.c (1.378), "Exp", lines: +4 -2 roff_term.c (1.23), "Exp", lines: +3 -1 tbl.7 (1.35), "Exp", lines: +5 -4 tbl.h (1.2), "Exp", lines: +3 -4 tbl_data.c (1.56), "Exp", lines: +2 -1 tbl_html.c (1.36), "Exp", lines: +2 -5 tbl_layout.c (1.50), "Exp", lines: +27 -29 tbl_term.c (1.75), "Exp", lines: +20 -6 term.c (1.283), "Exp", lines: +4 -2 tree.c (1.90), "Exp", lines: +22 -4 regress/roff/esc/f.out_html (1.3), "Exp", lines: +1 -1 regress/roff/ft/badargs.out_html (1.5), "Exp", lines: +4 -3 regress/tbl/mod/Makefile (1.5), "Exp", lines: +6 -5 regress/tbl/mod/badfont.in (1.3), "Exp", lines: +7 -5 regress/tbl/mod/badfont.out_ascii (1.3), "Exp", lines: +7 -6 regress/tbl/mod/badfont.out_lint (1.5), "Exp", lines: +3 -2 regress/tbl/mod/font.out_lint (1.6), "Exp", lines: +0 -1 Support two-character font names (BI, CW, CR, CB, CI) in the tbl(7) layout font modifier. Get rid of the TBL_CELL_BOLD and TBL_CELL_ITALIC flags and use the usual ESCAPE_FONT* enum mandoc_esc members from mandoc.h instead, which simplifies and unifies some code. While here, also support CB and CI in roff(7) \f escape sequences and in roff(7) .ft requests for all output modes. Using those is certainly not recommended because portability is limited even with groff, but supporting them makes some existing third-party manual pages look better, in particular in HTML output mode. Bug-compatible with groff as far as i'm aware, except that i consider font names starting with the '\n' (ASCII 0x0a line feed) character so insane that i decided to not support them. Missing feature reported by nabijaczleweli dot xyz in https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=992002. I used none of the code from the initial patch submitted by nabijaczleweli, but some of their ideas. Final patch tested by them, too. 2021-08-07 13:02 schwarze Changed: configure (1.78), "Exp", lines: +4 -3 configure.local.example (1.40), "Exp", lines: +21 -7 mandocdb.c (1.268), "Exp", lines: +27 -5 Rename the compile-time configuration variable $HOMEBREWDIR to $READ_ALLOWED_PATH, allow it to contain more than one directory, and explain how to use it for NixOS and for GNU Guix Linux. Feature improvement based on observations, input, and earlier patches from Lukas Epple <sternenseemann at systemli dot org>, and final patch also tested by Lukas. 2021-08-05 14:31 schwarze Changed: man.7 (1.148), "Exp", lines: +4 -4 .OP is not a GNU extension but first appeared in the Documenter's Workbench, see https://github.com/n-t-roff/DWB3.3/blob/master/macros/man/an.sr#L33 from g dot branden dot robinson at gmail dot com via GNU troff commit e3459327 2 Aug 2021 10:49:46 -0400 2021-07-29 17:32 schwarze Changed: mdoc.7 (1.287), "Exp", lines: +73 -2 manually tag the macro names that have false positives 2021-07-29 16:25 schwarze Changed: mdoc.7 (1.286), "Exp", lines: +21 -15 Improve the description of .Fl in multiple respects and in paricular improve the .Fl examples in multiple respects, including better demonstrating long options. Prompted by a question from espie@. Feedback and OK jmc@. 2021-07-18 11:41 schwarze Changed: mdoc_validate.c (1.389), "Exp", lines: +2 -2 Support auto-tagging for ".It Va". This combination is somewhat rare because few libraries expose so many global variables that they need a list to enumerate them, but when the idiom does occur, tagging the variable names is generally useful. For example, this helps awk(1), dc(1), make(1), rc.subr(8), ... Missing feature reported and patch reviewed, tested, and OK'ed by kn@. 2021-07-04 16:33 schwarze Changed: mdoc.7 (1.285), "Exp", lines: +2 -2 s/The arguments are as follows:/The options are as follows:/ because that's what the example is talking about; patch from kn@ 2021-07-04 15:38 schwarze Changed: TODO (1.316), "Exp", lines: +6 -1 mandoc.1 (1.252), "Exp", lines: +21 -1 mandoc.h (1.272), "Exp", lines: +4 -2 mandoc_msg.c (1.15), "Exp", lines: +3 -1 mdoc_man.c (1.137), "Exp", lines: +23 -11 The mandoc(1) manual already mentions that -T man output mode neither supports tbl(7) nor eqn(7) input. If an input file contains such code anyway, tell the user rather than failing an assert(3)ion. Fixing a crash reported by Bjarni Ingi Gislason <bjarniig at rhi dot hi dot is> in https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=901636 which the Debian maintainer of mandoc, Michael at Stapelberg dot ch, forwarded to me. 2021-06-28 20:12 schwarze Changed: regress/char/N/basic.out_ascii (1.2), "Exp", lines: +0 -4 regress/char/accent/combine.out_utf8 (1.2), "Exp", lines: +0 -4 regress/char/accent/nocombine.out_ascii (1.3), "Exp", lines: +0 -4 regress/char/accent/nocombine.out_utf8 (1.3), "Exp", lines: +0 -4 regress/char/accent/utf8only.out_utf8 (1.2), "Exp", lines: +0 -4 regress/char/bar/man.out_ascii (1.2), "Exp", lines: +0 -4 regress/char/hyphen/man.out_ascii (1.2), "Exp", lines: +0 -4 regress/char/space/eos-man.out_ascii (1.2), "Exp", lines: +0 -4 regress/char/space/esct-man.out_ascii (1.4), "Exp", lines: +0 -4 regress/char/space/invalid.out_ascii (1.2), "Exp", lines: +0 -4 regress/char/space/leading-man.out_ascii (1.2), "Exp", lines: +0 -4 regress/char/space/tab-man.out_ascii (1.2), "Exp", lines: +0 -4 regress/char/space/zerowidth.out_ascii (1.2), "Exp", lines: +0 -4 regress/char/space/zerowidth.out_utf8 (1.2), "Exp", lines: +0 -4 regress/char/unicode/ascii.out_ascii (1.3), "Exp", lines: +0 -4 regress/char/unicode/ascii.out_utf8 (1.3), "Exp", lines: +0 -4 regress/char/unicode/input.out_ascii (1.5), "Exp", lines: +0 -4 regress/char/unicode/input.out_utf8 (1.6), "Exp", lines: +0 -4 regress/char/unicode/latin1.out_ascii (1.5), "Exp", lines: +0 -4 regress/char/unicode/latin1.out_utf8 (1.5), "Exp", lines: +0 -4 regress/char/unicode/latin1diff.out_ascii (1.4), "Exp", lines: +0 -4 regress/char/unicode/latin1diff.out_utf8 (1.4), "Exp", lines: +0 -4 regress/char/unicode/man.out_utf8 (1.2), "Exp", lines: +0 -4 regress/char/unicode/named.out_ascii (1.6), "Exp", lines: +0 -4 regress/char/unicode/named.out_utf8 (1.6), "Exp", lines: +0 -4 regress/char/unicode/namediff.out_ascii (1.7), "Exp", lines: +0 -4 regress/char/unicode/namediff.out_utf8 (1.6), "Exp", lines: +0 -4 regress/char/unicode/nogroff.out_ascii (1.3), "Exp", lines: +0 -4 regress/char/unicode/nogroff.out_utf8 (1.4), "Exp", lines: +0 -4 regress/man/B/args.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/B/blank.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/BI/emptyargs.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/BI/literal.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/EX/args.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/EX/nested.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/EX/spacing.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/HP/break.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/HP/literal.out_ascii (1.3), "Exp", lines: +0 -4 regress/man/HP/macrotag.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/HP/manyargs.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/HP/spacing.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/HP/vert.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/IP/bullet.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/IP/bullet.out_utf8 (1.2), "Exp", lines: +0 -4 regress/man/IP/empty.out_ascii (1.3), "Exp", lines: +0 -4 regress/man/IP/empty.out_tag (1.4), "Exp", lines: +5 -5 regress/man/IP/literal.out_ascii (1.4), "Exp", lines: +0 -4 regress/man/IP/longhead.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/IP/manyargs.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/IP/spacing.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/IP/tag.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/IP/tag.out_tag (1.4), "Exp", lines: +4 -4 regress/man/IP/vert.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/IP/width.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/MT/args.out_ascii (1.3), "Exp", lines: +0 -4 regress/man/MT/noME.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/OP/args.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/PD/args.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/PD/nextline.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/PD/spacing.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/PP/args.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/PP/empty.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/PP/vert.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/RS/REarg.out_ascii (1.3), "Exp", lines: +0 -4 regress/man/RS/an-margin.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/RS/breaking.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/RS/broken.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/RS/empty.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/RS/literal.out_ascii (1.3), "Exp", lines: +0 -4 regress/man/RS/lonelyRE.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/RS/nested.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/RS/noRE.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/RS/nowidth.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/RS/paragraph.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/RS/width.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/SH/broken.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/SH/broken_eline.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/SH/empty_before.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/SH/longarg.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/SH/noarg.out_ascii (1.3), "Exp", lines: +0 -4 regress/man/SH/paragraph.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/SH/paragraph.out_tag (1.3), "Exp", lines: +4 -4 regress/man/SH/vert.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/SS/broken.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/SS/broken_eline.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/SS/longarg.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/SS/noarg.out_ascii (1.3), "Exp", lines: +0 -4 regress/man/SS/paragraph.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/SS/paragraph.out_tag (1.3), "Exp", lines: +4 -4 regress/man/SS/vert.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/SY/literal.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/TH/baddate.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/TH/case.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/TH/emptydate.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/TH/isodate.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/TH/longdate.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/TH/longtit.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/TH/longvol.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/TH/mdocdate.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/TH/noarg.out_ascii (1.3), "Exp", lines: +0 -4 regress/man/TH/nobody.out_ascii (1.2), "Exp", lines: +0 -2 regress/man/TH/onearg.out_ascii (1.3), "Exp", lines: +0 -4 regress/man/TH/onlyyear.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/TH/sixargs.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/TH/twoargs.out_ascii (1.3), "Exp", lines: +0 -4 regress/man/TP/badarg.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/TP/broken.out_ascii (1.4), "Exp", lines: +0 -4 regress/man/TP/double.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/TP/eof.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/TP/fill.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/TP/indent.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/TP/literal.out_ascii (1.3), "Exp", lines: +0 -4 regress/man/TP/longhead.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/TP/macrotag.out_ascii (1.3), "Exp", lines: +0 -4 regress/man/TP/manyargs.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/TP/sameline.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/TP/spacing.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/TP/tag.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/TP/tag.out_tag (1.4), "Exp", lines: +5 -5 regress/man/TP/vert.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/TP/width.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/TS/break.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/TS/vspace.out_ascii (1.3), "Exp", lines: +0 -4 regress/man/UR/args.out_ascii (1.3), "Exp", lines: +0 -4 regress/man/UR/noUE.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/blank/afterSH.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/blank/afterSS.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/blank/line.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/nf/args.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/nf/dupe.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/nf/indent.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/nf/userdef.out_ascii (1.2), "Exp", lines: +0 -4 regress/man/nf/vert.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/args/man.out_ascii (1.3), "Exp", lines: +0 -4 regress/roff/args/roff.out_ascii (1.4), "Exp", lines: +0 -4 regress/roff/br/args.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/cc/basic.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/ce/basic.out_ascii (1.3), "Exp", lines: +0 -4 regress/roff/char/badarg.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/char/basic.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/cond/close.out_ascii (1.4), "Exp", lines: +0 -4 regress/roff/cond/de.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/cond/ie.out_ascii (1.3), "Exp", lines: +0 -4 regress/roff/cond/if.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/cond/numeric.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/cond/register.out_ascii (1.3), "Exp", lines: +0 -4 regress/roff/cond/strcmp.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/cond/string.out_ascii (1.4), "Exp", lines: +0 -4 regress/roff/de/TH.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/esc/O1.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/esc/bs_man.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/esc/c_man.out_ascii (1.4), "Exp", lines: +0 -4 regress/roff/esc/f.out_ascii (1.4), "Exp", lines: +0 -4 regress/roff/esc/ignore.out_ascii (1.4), "Exp", lines: +0 -4 regress/roff/esc/invalid.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/esc/one.out_ascii (1.4), "Exp", lines: +0 -4 regress/roff/esc/unsupp.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/ft/badargs.out_ascii (1.3), "Exp", lines: +0 -4 regress/roff/it/double.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/na/args.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/nr/divzero.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/nr/escname.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/nr/eval.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/nr/incr.out_ascii (1.3), "Exp", lines: +0 -4 regress/roff/nr/int.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/nr/predef.out_ascii (1.3), "Exp", lines: +0 -4 regress/roff/nr/rr.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/nr/scale.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/nr/tab.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/nr/undef.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/ps/ignore.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/scale/horiz.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/shift/bad.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/shift/basic.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/sp/badargs-man.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/sp/fill-man.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/sp/negative.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/sp/scaling-man.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/string/escape.out_ascii (1.3), "Exp", lines: +0 -4 regress/roff/string/infinite.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/string/std.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/string/undef.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/string/zerolength.out_ascii (1.3), "Exp", lines: +0 -4 regress/roff/ta/basic-man.out_ascii (1.3), "Exp", lines: +0 -4 regress/roff/ti/basic-man.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/ti/wide.out_ascii (1.2), "Exp", lines: +0 -4 regress/roff/tr/args.out_ascii (1.2), "Exp", lines: +0 -4 regress/tbl/data/blankline.out_ascii (1.2), "Exp", lines: +0 -4 regress/tbl/data/block_empty.out_ascii (1.2), "Exp", lines: +0 -4 regress/tbl/data/block_unclosed.out_ascii (1.2), "Exp", lines: +0 -4 regress/tbl/data/empty.out_ascii (1.2), "Exp", lines: +0 -4 regress/tbl/data/insert.out_ascii (1.2), "Exp", lines: +0 -4 regress/tbl/layout/badspan.out_ascii (1.2), "Exp", lines: +0 -4 regress/tbl/layout/center.out_ascii (1.5), "Exp", lines: +0 -4 regress/tbl/layout/complex.out_ascii (1.2), "Exp", lines: +0 -4 regress/tbl/layout/empty.out_ascii (1.2), "Exp", lines: +0 -4 regress/tbl/layout/emptycol.out_ascii (1.2), "Exp", lines: +0 -4 regress/tbl/layout/emptyline.out_ascii (1.2), "Exp", lines: +0 -4 regress/tbl/layout/font.out_ascii (1.2), "Exp", lines: +0 -4 regress/tbl/layout/numbers.out_ascii (1.3), "Exp", lines: +0 -4 regress/tbl/layout/shortlines.out_ascii (1.3), "Exp", lines: +0 -4 regress/tbl/layout/spacing-nogroff.out_ascii (1.2), "Exp", lines: +0 -4 regress/tbl/layout/spacing.out_ascii (1.3), "Exp", lines: +0 -4 regress/tbl/layout/span.out_ascii (1.6), "Exp", lines: +0 -4 regress/tbl/macro/man.out_ascii (1.3), "Exp", lines: +0 -4 regress/tbl/macro/nested.out_ascii (1.3), "Exp", lines: +0 -4 regress/tbl/mod/badfont.out_ascii (1.2), "Exp", lines: +0 -4 regress/tbl/mod/expand-toowide.out_ascii (1.2), "Exp", lines: +0 -4 regress/tbl/mod/expand.out_ascii (1.4), "Exp", lines: +0 -4 regress/tbl/mod/font.out_ascii (1.4), "Exp", lines: +0 -4 regress/tbl/mod/misalign.out_ascii (1.2), "Exp", lines: +0 -4 regress/tbl/mod/spacing.out_ascii (1.2), "Exp", lines: +0 -4 regress/tbl/mod/width.out_ascii (1.2), "Exp", lines: +0 -4 regress/tbl/opt/box.out_ascii (1.4), "Exp", lines: +0 -4 regress/tbl/opt/center.out_ascii (1.2), "Exp", lines: +0 -4 regress/tbl/opt/invalid.out_ascii (1.2), "Exp", lines: +0 -4 delete the two pairs of extra blank lines from expected man(7) terminal output that are no longer printed since man_term.c rev. 1.236 2021-06-28 19:50 schwarze Changed: man_term.c (1.236), "Exp", lines: +1 -9 mandoc.1 (1.251), "Exp", lines: +3 -3 In terminal output of man(7) documents, stop printing two extra blank lines before the NAME section and before the page footer. While these blank lines had a long tradition, they didn't really serve any purpose and merely wasted screen real estate. Besides, this makes output from man(7) more similar to output from mdoc(7). This commit keeps mandoc compatible with groff-current, where G. Branden Robinson committed the same change on June 16 (groff commit 2278d6ed). 2021-06-27 17:57 schwarze Changed: libmandoc.h (1.80), "Exp", lines: +2 -2 mandoc.1 (1.250), "Exp", lines: +4 -1 mandoc.h (1.271), "Exp", lines: +2 -1 mandoc_msg.c (1.14), "Exp", lines: +1 -0 read.c (1.220), "Exp", lines: +5 -2 roff.c (1.377), "Exp", lines: +10 -2 add a style message about overlong text lines, trying very hard to avoid false positives, not at all trying to catch as many cases as possible; feature originally suggested by tb@, OK tb@ kn@ jmc@ 2021-06-27 17:29 schwarze Changed: TODO (1.315), "Exp", lines: +6 -1 new TODO entry: HTML formatting of .nf 2021-06-26 11:09 schwarze Changed: TODO (1.314), "Exp", lines: +20 -1 three new TODO items 2021-06-02 18:28 schwarze Changed: main.c (1.355), "Exp", lines: +23 -20 mandoc.1 (1.249), "Exp", lines: +31 -10 mandoc.h (1.270), "Exp", lines: +2 -2 mandoc_msg.c (1.13), "Exp", lines: +1 -1 In -W style mode, check .Xr links along the full manpath because that is more useful for validating manuals of non-base software. Nothing changes in -W all mode: by default for -T lint, we still assume we want to check base system conventions, including usually not wanting to link to non-base manual pages. The use case, a partial idea how to handle it, and a preliminary patch was originally presented by kn@, then refined by me. Final patch tested and OK'ed by kn@. 2021-06-02 18:23 schwarze Changed: TODO (1.313), "Exp", lines: +7 -1 tbl(7) layout "n" specifier for HTML output 2021-06-02 17:51 schwarze Changed: html.c (1.273), "Exp", lines: +3 -1 In revision 1.157 of cgi.c, a meta viewport element was added to the HTML output. Let `mandoc -Thtml' behave the same, making the generated HTML a bit more pleasant to view on a mobile device. Patch from anton@. 2021-06-02 17:39 schwarze Changed: regress/char/unicode/input.in (1.4), "Exp", lines: +3 -1 regress/char/unicode/input.out_ascii (1.4), "Exp", lines: +2 -0 regress/char/unicode/input.out_lint (1.6), "Exp", lines: +34 -34 regress/char/unicode/input.out_utf8 (1.5), "Exp", lines: +2 -0 regress/char/unicode/nogroff.in (1.3), "Exp", lines: +10 -2 regress/char/unicode/nogroff.out_ascii (1.2), "Exp", lines: +9 -1 regress/char/unicode/nogroff.out_html (1.4), "Exp", lines: +8 -0 regress/char/unicode/nogroff.out_utf8 (1.3), "Exp", lines: +9 -1 test private use areas some more as they have proven fragile 2021-06-02 16:38 schwarze Changed: regress/char/unicode/input.in (1.3), "Exp", lines: +18 -16 regress/char/unicode/input.out_ascii (1.3), "Exp", lines: +17 -15 regress/char/unicode/input.out_lint (1.5), "Exp", lines: +23 -23 regress/char/unicode/input.out_utf8 (1.4), "Exp", lines: +17 -15 Cleanup: 1. Move invalid two-byte sequences after valid ones and make their descriptions easier to understand. 2. Replace the wrong and confusing expression "middle byte" with the correct term "start byte". 3. Add test lines for U+EFFFF and U+F0000. 4. Replace the unhelpful word "strange" with more descriptive terms. Arguably, nothing about this (or maybe everything?) is strange. 2021-06-02 15:29 schwarze Changed: regress/char/unicode/input.out_utf8 (1.3), "Exp", lines: +1 -1 regress/char/unicode/nogroff.out_utf8 (1.2), "Exp", lines: +3 -3 The wcwidth(3) of Plane 15 and Plane 16 Private Use Characters was changed from 0 to 1. Adjust the test results accordingly. Issue reported by bluhm@ 2021-05-18 13:22 schwarze Changed: tbl_data.c (1.55), "Exp", lines: +8 -4 When looking for column separators on tbl(7) data lines, properly skip escape sequences; do not misinterpret bytes from the middle of escape sequence names or arguments as column separators. Bug reported and patch tested by Oliver dot Corff at email dot de. 2021-05-16 23:18 schwarze Changed: tbl_html.c (1.35), "Exp", lines: +3 -1 Implement the layout specification "a" (left justify with 1em indentation) in HTML output mode; before this patch, the indentation was missing. Terminal output already supported the "a" specifier since 2010. Issue reported and patch tested by Oliver dot Corff at email dot de. 2021-05-16 22:28 schwarze Added: regress/tbl/layout/font.in (1.1) regress/tbl/layout/font.out_ascii (1.1) regress/tbl/layout/font.out_html (1.1) Changed: regress/tbl/layout/Makefile (1.7), "Exp", lines: +3 -2 test font modifiers in the layout; related to tbl_html.c rev. 1.34 2021-05-16 18:11 schwarze Changed: html.c (1.272), "Exp", lines: +2 -1 tbl_html.c (1.34), "Exp", lines: +11 -3 implement the tbl(7) layout modifiers "b" (bold) and "i" (italic) in HTML output mode, similar to tbl_term.c, function tbl_word(); issue reported by Oliver dot Corff at email dot de 2021-05-15 17:19 schwarze Changed: tbl_data.c (1.54), "Exp", lines: +6 -5 When looking for the last layout row used, we need to look at the layout row used for the previous data line containing data, not at the previous data line outright, which might be a horizontal ruler. If it is, do not restart from the first layout row but still proceed to the next data row, which may have been just read from T&. Bug originally reported by Oliver dot Corff at email dot de on groff at gnu dot org: https://lists.gnu.org/archive/html/groff/2021-03/msg00003.html and forwarded to me by bentley@. Patch OK'ed by bentley@ back in April. 2021-05-13 13:33 schwarze Changed: arch.c (1.17), "Exp", lines: +2 -2 cgi.c (1.174), "Exp", lines: +4 -3 Add OpenBSD riscv64 architecture; patch from jsg@. While here, retire sgi and socppc. 2021-05-12 17:13 schwarze Changed: mdoc.7 (1.284), "Exp", lines: +3 -3 remove stray byte from broken escape sequence; diff from jmc@ 2021-05-12 08:51 schwarze Changed: mdoc.7 (1.283), "Exp", lines: +3 -3 typo; diff from fcambus@ 2021-05-12 08:34 schwarze Changed: TODO (1.312), "Exp", lines: +5 -1 \s with arbitrary arg delimiters 2021-03-30 19:26 schwarze Changed: mandoc.css (1.48), "Exp", lines: +2 -1 mdoc_html.c (1.342), "Exp", lines: +6 -3 regress/mdoc/Bd/paragraph.out_html (1.7), "Exp", lines: +1 -1 In HTML output, correctly render .Bd -unfilled in proportionally-spaced font, rather than with the monospace font appropriate for .Bd -literal. This fixes a minibug reported by anton@. Implemented by no longer relying on the typical browser default of "pre { font-family: monospace }" but instead letting <pre> elements inherit the font family from their parent, then adding an explicit CSS .Li class only for those displays where the manual page author requested it by using the -literal option on the .Bd macro. 2021-03-30 17:16 schwarze Changed: main.c (1.354), "Exp", lines: +2 -1 term_tag.c (1.6), "Exp", lines: +6 -5 term_tag.h (1.4), "Exp", lines: +2 -2 Append .html suffix to temporary files enabling browsers to recognise it. Occasionally one might read a manual page in a webbrowser, e.g. "MANPAGER=firefox man -T html jq", however temporary files created for pagers lack file extensions and most web browsers are unable to detect a file's content without it. Special case mandoc(1)'s HTML output format by appending the ".html" suffix to file names such that browsers will actually render HTML as such instead of showing it as plain text. Idea and patch from kn@, with minor help from me. 2021-03-28 18:45 schwarze Changed: TODO (1.311), "Exp", lines: +5 -1 double .TH in man(7) 2021-03-28 15:33 schwarze Changed: TODO (1.310), "Exp", lines: +7 -2 more about .Bd -unfilled 2020-12-21 15:13 schwarze Deleted: regress/roff/esc/O.in (1.2) regress/roff/esc/O.out_ascii (1.2) regress/roff/esc/O.out_lint (1.2) Added: regress/roff/esc/O1.in (1.1) regress/roff/esc/O1.out_ascii (1.1) regress/roff/esc/O1.out_lint (1.1) Changed: regress/roff/esc/Makefile (1.7), "Exp", lines: +3 -3 Rename syntax test of the \O escape sequence (suppress output groff extension; mandoc only implements syntax checking but ignores the sequence) to please Bill Gates and didickman@: avoid path names that only differ by case, like o.in vs. O.in. 2020-11-13 11:24 schwarze Changed: TODO (1.309), "Exp", lines: +7 -1 MANWIDTH 2020-11-12 20:46 schwarze Changed: TODO (1.308), "Exp", lines: +5 -1 old groff_char(7) reported by kamil at NetBSD 2020-10-31 11:45 schwarze Changed: mandoc_char.7 (1.78), "Exp", lines: +2 -7 Delete a sentence pointing to "the Predefined Strings subsection of the roff(7) manual." Such a subsection does not exist, and i do not see why it should. Predefined strings are an obsolete feature of macro packages, not a feature of the roff language. 2020-10-30 21:34 schwarze Changed: mandoc.css (1.47), "Exp", lines: +3 -3 Finally get rid of the "overflow: auto" property of ".Bl-tag > dd" which has long been know to cause ugly and pointless scroll bars. Matthew Martin <phy1729 at gmail dot com> helpfully explained the following two points to me: 1. What we need to do here is establish a new block formatting context such that the first line of the <dd> content moves down rather than to the right if the preceding <dt> is wide. 2. A comprehensive list of methods to establish block formatting context is available in: https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context In that list, i found that "column-count: 1" does the job. It is part of CSS Multi-column Layout Level 1. While that is still in Working Draft status according to https://www.w3.org/Style/CSS/current-work , it is fully supported by all browsers according to https://developer.mozilla.org/en-US/docs/Web/CSS/column-count , probably because it was already part of the second draft of this standard almost 20 years ago: WD-css3-multicol-20010118. 2020-10-30 13:24 schwarze Changed: man_validate.c (1.155), "Exp", lines: +2 -2 mdoc_validate.c (1.388), "Exp", lines: +2 -2 Promote section headers that can can be used unmodified as fragment identifiers from TAG_WEAK to TAG_STRONG, such that for example ...#DESCRIPTION always works. Suggested by Aman Verma on the discuss@ list. 2020-10-28 21:07 schwarze Changed: roff.7 (1.115), "Exp", lines: +3 -3 Correct an embarrassing spelling mistake: The last name of the author of groff is "Clark". 2020-10-28 15:31 schwarze Changed: man.7 (1.147), "Exp", lines: +23 -12 Improve the HISTORY and AUTHORS sections, using information received from Douglas McIlroy in private mail: https://manpages.bsd.lv/history/mcilroy_26_10_2020.txt 2020-10-26 13:30 schwarze Changed: TODO (1.307), "Exp", lines: +5 -1 error message simplifications requested by deraadt@ 2020-10-25 18:28 schwarze Changed: tbl_term.c (1.74), "Exp", lines: +1 -12 regress/tbl/data/block_width.out_ascii (1.4), "Exp", lines: +1 -1 regress/tbl/layout/center.out_ascii (1.4), "Exp", lines: +1 -1 regress/tbl/layout/spacing.out_ascii (1.2), "Exp", lines: +1 -1 regress/tbl/layout/span.out_ascii (1.5), "Exp", lines: +1 -1 regress/tbl/mod/expand.out_ascii (1.3), "Exp", lines: +1 -1 regress/tbl/mod/font.out_ascii (1.3), "Exp", lines: +1 -1 The GNU tbl(1) program contained in the groff package internally uses roff(7) tabulator settings to implement tables, and it used to leak the changed tabulator settings from tables to the subsequent roff(7) code. In mandoc/tbl_term.c rev. 1.54 (June 17, 2017), code was added to be bug-compatible with groff. In commit d0e03cf6 (Oct 20, 2020), GNU tbl(1) changed behaviour to save the tabulator settings before starting a table and restore them afterwards. Adjust mandoc for compatibility. Since mandoc implements tables without using roff(7) tabulator settings, saving and restoring tabulator settings is not needed in mandoc. Simply deleting the code that changed tabulator settings by reverting tbl_term.c rev. 1.54 is sufficient in mandoc. Also adjust the desired output of the regression tests to match the new behaviour of both groff and mandoc. 2020-10-24 22:57 schwarze Changed: mandoc.c (1.118), "Exp", lines: +16 -9 regress/roff/nr/predef.in (1.3), "Exp", lines: +2 -2 regress/roff/nr/predef.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/string/dotT.in (1.3), "Exp", lines: +4 -2 regress/roff/string/dotT.out_ascii (1.3), "Exp", lines: +4 -3 regress/roff/string/dotT.out_html (1.5), "Exp", lines: +4 -2 regress/roff/string/dotT.out_markdown (1.3), "Exp", lines: +3 -1 regress/roff/string/dotT.out_utf8 (1.3), "Exp", lines: +3 -3 Treat \*[.T] in the same way as \*(.T rather than calling abort(3). Bug found because the groff-current manual pages started using the variant form of this predefined string. 2020-10-16 17:22 schwarze Changed: html.c (1.271), "Exp", lines: +2 -2 man_html.c (1.179), "Exp", lines: +7 -9 mdoc_html.c (1.341), "Exp", lines: +5 -6 regress/man/HP/literal.out_html (1.3), "Exp", lines: +6 -12 regress/man/IP/literal.out_html (1.7), "Exp", lines: +14 -28 regress/man/RS/literal.out_html (1.3), "Exp", lines: +6 -12 regress/man/SY/literal.out_html (1.4), "Exp", lines: +5 -11 regress/man/TP/literal.out_html (1.5), "Exp", lines: +6 -12 regress/mdoc/Bd/nf.out_html (1.3), "Exp", lines: +6 -12 regress/mdoc/Bd/paragraph.out_html (1.6), "Exp", lines: +2 -4 regress/mdoc/Rs/paragraph.out_html (1.5), "Exp", lines: +0 -1 regress/roff/sp/fill-man.out_html (1.3), "Exp", lines: +2 -4 regress/roff/string/dotT.out_html (1.4), "Exp", lines: +0 -1 In HTML output, avoid printing a newline right after <pre> and right before </pre> because that resulted in vertical whitespace not requested by the manual page author. Formatting bug reported by Aman Verma <amanraoverma plus vim at gmail dot com> on discuss@. 2020-10-14 14:22 schwarze Changed: man.7 (1.146), "Exp", lines: +9 -4 add missing mention of Werner Lemberg, noticed by Werner himself on <groff at gnu dot org>; while here, add missing .An macros 2020-10-01 22:50 schwarze Changed: apropos.1 (1.51), "Exp", lines: +6 -2 add example to apropos.1 to list all manuals in a given section; patch from ians@ 2020-09-09 17:01 schwarze Changed: man_macro.c (1.145), "Exp", lines: +7 -5 regress/man/TP/broken.in (1.4), "Exp", lines: +6 -3 regress/man/TP/broken.out_ascii (1.3), "Exp", lines: +2 -2 regress/man/TP/broken.out_lint (1.6), "Exp", lines: +3 -0 regress/man/TP/macrotag.in (1.3), "Exp", lines: +15 -3 regress/man/TP/macrotag.out_ascii (1.2), "Exp", lines: +8 -2 Element next-line scopes can nest. Consequently, even when closing one element next-line scope, the MAN_ELINE flag must not yet be cleared if the parent macro is another element macro having next-line scope, or an assertion failure is caused if all this is wrapped in another macro that has block next-line scope, for example .TP. Bug found in an afl run performed by Jan Schreiber <jes at posteo dot de>. 2020-09-09 13:45 schwarze Changed: term_ascii.c (1.66), "Exp", lines: +17 -3 Do not abuse assert(3) to react to absurd input; the purpose of assert(3) only is to catch internal inconsistencies in the program itself. Issue found in an afl run performed by Jan Schreiber <jes at posteo dot de>. Instead, just cut down unreasonably wide spacing requested by the document to a narrower width. 2020-09-07 14:18 schwarze Changed: TODO (1.306), "Exp", lines: +16 -1 assertion found in jes@'es afl run: .TS .if n .ce 2020-09-06 14:45 schwarze Changed: term_ascii.c (1.65), "Exp", lines: +10 -4 term_ps.c (1.92), "Exp", lines: +6 -3 After .ti, there are many reasons why the offset may change, so setting it back later requires a guard against underflow, or subsequent assertions may fail. Issue found in an afl run performed by Jan Schreiber <jes at posteo dot de>. 2020-09-03 20:43 schwarze Added: regress/roff/po/range.in (1.1) regress/roff/po/range.out_ascii (1.1) Changed: roff_term.c (1.22), "Exp", lines: +13 -5 regress/roff/po/Makefile (1.2), "Exp", lines: +10 -2 Fix two issues with .po (page offset) formatting: 1. Truncate excessive offsets to a width reasonable in the context of manual pages instead of printing excessively long lines and sometimes causing assertion failures; found in an afl run performed by Jan Schreiber <jes at posteo dot de>. 2. Remember both the requested and the applied page offset; otherwise, subtracting an excessive width, then adding it again, would end up with an incorrectly large offset. While here, simplify the code by reverting the previous offset up front, and also add some comments to make the general ideas easier to understand. 2020-09-03 17:42 schwarze Added: regress/roff/ti/wide.in (1.1) regress/roff/ti/wide.out_ascii (1.1) Changed: roff_term.c (1.21), "Exp", lines: +22 -12 regress/roff/ti/Makefile (1.2), "Exp", lines: +8 -2 If .ti had an excessive argument, using it was attempted, in some cases resulting in an assertion failure. Instead, truncate the temporary indent to a width reasonable in a manual page. I found the issue in an afl run that was performed by Jan Schreiber <jes at posteo dot de>. 2020-09-02 16:40 schwarze Changed: term.c (1.282), "Exp", lines: +9 -12 regress/roff/ce/basic.in (1.2), "Exp", lines: +12 -2 regress/roff/ce/basic.out_ascii (1.2), "Exp", lines: +8 -2 Do not indent by SIZE_MAX/2 when .ce occurs inside explicit no-fill mode. While here, drop two unused arguments from the function term_field(); the related work was already done by term_fill() before this commit. I found the bug in an afl run that was performed by Jan Schreiber <jes at posteo dot de>. 2020-09-01 18:25 schwarze Added: regress/tbl/layout/spacing-nogroff.in (1.1) regress/tbl/layout/spacing-nogroff.out_ascii (1.1) regress/tbl/layout/spacing-nogroff.out_lint (1.1) regress/tbl/layout/spacing.in (1.1) regress/tbl/layout/spacing.out_ascii (1.1) Changed: mandoc.1 (1.248), "Exp", lines: +4 -0 mandoc.h (1.269), "Exp", lines: +2 -1 mandoc_msg.c (1.12), "Exp", lines: +1 -0 tbl_layout.c (1.49), "Exp", lines: +7 -2 regress/tbl/layout/Makefile (1.6), "Exp", lines: +6 -4 Ignore unreasonably large spacing modifiers in tbl layouts. Jan Schreiber <jes at posteo dot de> ran afl on mandoc and it turned out mandoc tried to use spacing modifiers so large that they would trigger assertion failures in term_ascii.c, function locale_advance(). 2020-09-01 18:10 schwarze Changed: TODO (1.305), "Exp", lines: +2 -1 more info from John Gardner about ASCII control chars in roff(7) input 2020-08-27 15:55 schwarze Changed: mandoc.1 (1.247), "Exp", lines: +2 -5 Remove a lie reported by Jamie Landeg-Jones <jamie at catflap dot org>: The times when -T man may have expanded .so requests are long gone, nor would such a feature be useful. Use soelim(1) if you need that. 2020-08-27 14:59 schwarze Changed: manpath.c (1.43), "Exp", lines: +18 -10 Fix a regression caused by the insertion of two new tokens, which unintentionally made the -O tag= argument mandatory, breaking commands like "man -akO tag Ic=ulimit". Noticed while answering questions from Ian Ropers. 2020-08-27 14:28 schwarze Changed: mandoc.1 (1.246), "Exp", lines: +9 -2 Make it more explicit that the statement "-O tag does not work with less(1)" only applies to -T html output mode, and why. Of course, -O tag works just fine with less(1) in the -T ascii and -T utf8 output modes. Potential for confusion pointed out by Ian Ropers. 2020-08-27 12:59 schwarze Changed: roff.c (1.376), "Exp", lines: +4 -2 Avoid artifacts in the most common case of closing conditional blocks when no arguments follow the closing brace, \}. For example, the line "'br\}" contained in the pod2man(1) preamble would throw a bogus "escaped character not allowed in a name" error. This issue was originally reported by Chris Bennett on ports@, and afresh1@ noticed it came from the pod2man(1) preamble. 2020-08-07 20:56 schwarze Changed: main.c (1.353), "Exp", lines: +3 -1 add a forgotten "#if HAVE_PLEDGE"; patch sent in by <alexander dot gromnitsky at gmail dot com> who found the problem the hard way on Fedora 32 2020-08-03 11:02 schwarze Added: regress/roff/cond/de.in (1.1) regress/roff/cond/de.out_ascii (1.1) regress/roff/cond/de.out_lint (1.1) Changed: roff.c (1.375), "Exp", lines: +64 -59 regress/roff/cond/Makefile (1.3), "Exp", lines: +3 -3 regress/roff/cond/close.in (1.4), "Exp", lines: +38 -1 regress/roff/cond/close.out_ascii (1.3), "Exp", lines: +17 -0 regress/roff/cond/close.out_lint (1.8), "Exp", lines: +3 -2 Put the code handling \} into a new function roff_cond_checkend() and call that function not only from both places where copies existed - when processing text lines and when processing request/macro lines in conditional block scope - but also when closing a macro definition request, such that this construction works: .if n \{.de macroname macro content .. \} ignored arguments .macroname This fixes a bug reported by John Gardner <gardnerjohng at gmail dot com>. While here, avoid a confusing decrement of the line scope counter in roffnode_cleanscope() for conditional blocks that do not have line scope in the first place (no functional change for this part). Also improve validation of an internal invariant in roff_cblock() and polish some comments. 2020-07-30 21:42 schwarze Changed: regress/eqn/Makefile.inc (1.4), "Exp", lines: +4 -4 regress/roff/de/Makefile (1.6), "Exp", lines: +6 -6 trivial sync with OpenBSD in parts of these files that are not used by -portable; consequently, no functional change 2020-07-21 15:17 schwarze Changed: regress/man/IP/empty.out_tag (1.3), "Exp", lines: +5 -5 regress/man/IP/tag.out_tag (1.3), "Exp", lines: +4 -4 regress/man/SH/paragraph.out_tag (1.2), "Exp", lines: +4 -4 regress/man/SS/paragraph.out_tag (1.2), "Exp", lines: +4 -4 regress/man/TP/tag.out_tag (1.3), "Exp", lines: +5 -5 regress/mdoc/Bd/nested.out_tag (1.3), "Exp", lines: +6 -6 regress/mdoc/Bd/paragraph.out_tag (1.2), "Exp", lines: +7 -7 regress/mdoc/Bd/spacing.out_tag (1.2), "Exp", lines: +4 -4 regress/mdoc/Cm/tag.out_tag (1.4), "Exp", lines: +9 -9 regress/mdoc/D1/spacing.out_tag (1.2), "Exp", lines: +3 -3 regress/mdoc/Dl/spacing.out_tag (1.3), "Exp", lines: +3 -3 regress/mdoc/Dv/tag.out_tag (1.3), "Exp", lines: +6 -6 regress/mdoc/Em/tag.out_tag (1.4), "Exp", lines: +7 -7 regress/mdoc/Er/tag.out_tag (1.3), "Exp", lines: +5 -5 regress/mdoc/Ev/tag.out_tag (1.3), "Exp", lines: +6 -6 regress/mdoc/Fl/long.out_tag (1.2), "Exp", lines: +4 -4 regress/mdoc/Fl/tag.out_tag (1.3), "Exp", lines: +6 -6 regress/mdoc/Fo/tag.out_tag (1.3), "Exp", lines: +6 -6 regress/mdoc/Ic/tag.out_tag (1.3), "Exp", lines: +6 -6 regress/mdoc/Li/tag.out_tag (1.3), "Exp", lines: +6 -6 regress/mdoc/Ms/tag.out_tag (1.3), "Exp", lines: +6 -6 regress/mdoc/No/tag.out_tag (1.3), "Exp", lines: +6 -6 regress/mdoc/Pp/arg.out_tag (1.3), "Exp", lines: +4 -4 regress/mdoc/Sh/tag.out_tag (1.3), "Exp", lines: +8 -8 regress/mdoc/Sy/tag.out_tag (1.3), "Exp", lines: +7 -7 regress/mdoc/Tg/column.out_tag (1.2), "Exp", lines: +5 -5 regress/mdoc/Tg/list.out_tag (1.2), "Exp", lines: +6 -6 regress/mdoc/Tg/warn.out_tag (1.4), "Exp", lines: +7 -7 trivial adjustment of the desired test results after getting rid of the "copyless" crutch 2020-07-21 15:14 schwarze Deleted: regress/copyless (1.2) Changed: regress/regress.pl (1.15), "Exp", lines: +4 -3 adjust test framework to not require a tty 2020-07-21 15:10 schwarze Changed: main.c (1.352), "Exp", lines: +27 -11 manconf.h (1.9), "Exp", lines: +2 -0 manpath.c (1.42), "Exp", lines: +22 -7 term_tag.c (1.5), "Exp", lines: +42 -17 term_tag.h (1.3), "Exp", lines: +4 -4 undocumented options -O outfilename and -O tagfilename to support regression testing without a tty; no user visible change intended 2020-07-20 16:57 schwarze Changed: apropos.1 (1.50), "Exp", lines: +5 -6 configure (1.77), "Exp", lines: +25 -7 configure.local.example (1.39), "Exp", lines: +9 -1 main.c (1.351), "Exp", lines: +2 -2 man.1 (1.40), "Exp", lines: +5 -6 mandoc.1 (1.245), "Exp", lines: +5 -6 Switch the default pager from "more -s" to "less". POSIX explicitly allows using a different default pager if that is documented. Nowadays, the pager provided in most operating systems is less(1). Our man(1) implementation uses less(1) features that traditional more(1) did not provide, in particular tagging. Besides, as noted by deraadt@, the user interface of less(1) is slightly more refined and preferable over the user inferface of more(1). This switch was originally suggested by Ian Ropers. In ./configure, test whether less(1) is available. If not, fall back to more(1). In ./configure.local, support overriding the automatic test by setting BINM_PAGER. As explained by jmc@ and deraadt@, the -s flag was added a very long time ago when an antique version of groff(1) had an annoying bug in terminal output that would randomly display blank lines in the middle of pages. Clearly, -s has no longer been needed for many years, so drop it from the default pager invocation. OK deraadt@ jmc@ martijn@ job@ on the OpenBSD version of this patch. 2020-06-29 19:22 schwarze Changed: arch.c (1.16), "Exp", lines: +2 -2 cgi.c (1.173), "Exp", lines: +6 -5 Support the "powerpc64" architecture name. The first file using it in .Dt was just committed by kettenis@. 2020-06-25 20:45 schwarze Changed: mdoc.7 (1.282), "Exp", lines: +11 -5 Briefly mention groff_mdoc(7) below SEE ALSO. While both authoritative manual pages document the same content, comparing can occasionally help in cases of doubt, and some people may prefer one style, some the other. While here, modernize a few .Lks from http:// to https://. OK jmc@ 2020-06-24 12:09 schwarze Changed: TODO (1.304), "Exp", lines: +5 -1 more details about ASCII control characters 2020-06-22 20:00 schwarze Added: test-attribute.c (1.1) Changed: Makefile (1.535), "Exp", lines: +3 -2 configure (1.76), "Exp", lines: +4 -5 configure.local.example (1.38), "Exp", lines: +2 -1 Provide a real feature test for __attribute__(). Looking at version numbers like __GNUC__ is always a bad idea. Believe it or not, this even makes ./configure shorter by one line. 2020-06-22 19:20 schwarze Changed: Makefile.depend (1.49), "Exp", lines: +10 -10 dba_array.c (1.2), "Exp", lines: +3 -1 dba_read.c (1.5), "Exp", lines: +3 -1 mandoc_ohash.c (1.3), "Exp", lines: +3 -1 mandoc_xr.c (1.4), "Exp", lines: +3 -1 mdoc_markdown.c (1.36), "Exp", lines: +3 -1 mdoc_state.c (1.17), "Exp", lines: +3 -1 roff_html.c (1.21), "Exp", lines: +3 -1 roff_term.c (1.20), "Exp", lines: +3 -1 roff_validate.c (1.20), "Exp", lines: +3 -1 term_tab.c (1.6), "Exp", lines: +3 -1 Because mandoc_aux.h and mandoc.h use __attribute__, all files that include mandoc_aux.h or mandoc.h need to include config.h, too. It is suspected that for example IRIX needs this, or it is likely to throw errors in these files because the system compiler doesn't understand __attribute__. Issue reported by Kazuo Kuroi <kazuo at irixnet dot org>. 2020-06-22 18:00 schwarze Changed: TODO (1.303), "Exp", lines: +15 -1 John Gardner: handling of ASCII control characters during input 2020-06-17 19:42 schwarze Changed: man.1 (1.39), "Exp", lines: +2 -1 Manually tag the section option. Automatic tagging does not work because the [-s] flag is optional. Patch from Martin Vahlensieck. 2020-06-15 21:48 schwarze Changed: compat_stringlist.c (1.8), "Exp", lines: +50 -25 compat_stringlist.h (1.5), "Exp", lines: +23 -20 Sync stringlist implementation with NetBSD. Various improvements of security, functionality, and style. 2020-06-15 20:49 schwarze Changed: compat_strlcat.c (1.6), "Exp", lines: +26 -26 compat_strlcpy.c (1.6), "Exp", lines: +20 -21 sync with OpenBSD, no functional change intended 2020-06-15 20:19 schwarze Changed: compat_strndup.c (1.3), "Exp", lines: +4 -3 update millert@'s email address 2020-06-15 18:05 schwarze Changed: mandoc.1 (1.244), "Exp", lines: +18 -1 document -T html -O tag as implemented in main.c rev. 1.350 2020-06-15 17:25 schwarze Changed: main.c (1.350), "Exp", lines: +24 -17 Support -T html -O tag by passing a file:// URI to the pager. Feature suggested by and implementation based on a patch from Abel Romero Perez <romeroperezabel at gmail dot com>. 2020-06-15 16:58 schwarze Changed: Makefile (1.534), "Exp", lines: +2 -1 add missing compat_stringlist.o to ALL_COBJS, useful for make clean 2020-06-15 01:37 schwarze Changed: Makefile (1.533), "Exp", lines: +8 -15 compat_err.c (1.5), "Exp", lines: +2 -11 compat_fts.c (1.17), "Exp", lines: +2 -11 compat_getline.c (1.2), "Exp", lines: +2 -11 compat_getsubopt.c (1.6), "Exp", lines: +2 -11 compat_isblank.c (1.3), "Exp", lines: +2 -12 compat_mkdtemp.c (1.3), "Exp", lines: +2 -11 compat_ohash.c (1.7), "Exp", lines: +2 -11 compat_progname.c (1.2), "Exp", lines: +2 -13 compat_reallocarray.c (1.5), "Exp", lines: +3 -12 compat_recallocarray.c (1.2), "Exp", lines: +8 -17 compat_strcasestr.c (1.5), "Exp", lines: +2 -11 compat_stringlist.c (1.7), "Exp", lines: +2 -11 compat_strlcat.c (1.5), "Exp", lines: +2 -10 compat_strlcpy.c (1.5), "Exp", lines: +2 -10 compat_strndup.c (1.2), "Exp", lines: +2 -11 compat_strsep.c (1.5), "Exp", lines: +3 -12 compat_strtonum.c (1.2), "Exp", lines: +3 -12 compat_vasprintf.c (1.4), "Exp", lines: +2 -11 configure (1.75), "Exp", lines: +60 -29 Only compile compat_*.c implementations that are actually needed. That's cleaner and it is supposed to fix compiler warnings with gcc 10 reported by Wynn Wolf Arbor <wolf at oriole dot systems> on discuss@. 2020-06-14 23:40 schwarze Changed: catman.c (1.22), "Exp", lines: +2 -2 configure (1.74), "Exp", lines: +68 -94 mandocd.c (1.12), "Exp", lines: +2 -2 Make the ./configure script simpler, more robust, and 23 lines shorter: * three rather than four arguments for singletest() * let runtest() support testing two variants of compiler flags * always report a failed test, even when another test follows * run all tests before detecting fatal conditions * rename HAVE_CMSG_XPG42 to NEED_XPG4_2 for consistency * consistently use braces for shell variable interpolation * drop archaic "X${" syntax and unusual "==" in string comparisons 2020-06-14 23:08 schwarze Changed: compat_fts.c (1.16), "Exp", lines: +7 -6 merge rev. 1.58 from OpenBSD (deraadt@): recallocarray() the string buffer, to avoid leaving such contents around in the address space. Don't bother doing so for the buffer which contains aslr'd pointers... OK millert@ 2020-06-14 22:49 schwarze Changed: compat_fts.c (1.15), "Exp", lines: +5 -2 compat_fts.h (1.5), "Exp", lines: +2 -1 Give the fts_compar struct member a real prototype. This adds clarity and avoids compiler warnings. 2020-06-14 16:24 schwarze Changed: main.c (1.349), "Exp", lines: +2 -2 Fix a regression in rev. 1.319 (2019/03/03): Pass the right object to html_reset() or it will crash when rendering more than one manual page to HTML in a row. Bug reported by Abel Romero Perez <romeroperezabel at gmail dot com>. Patch from otto@. 2020-04-26 21:41 schwarze Added: regress/mdoc/Fl/long.in (1.1) regress/mdoc/Fl/long.out_ascii (1.1) regress/mdoc/Fl/long.out_html (1.1) regress/mdoc/Fl/long.out_markdown (1.1) regress/mdoc/Fl/long.out_tag (1.1) Changed: TODO (1.302), "Exp", lines: +4 -5 mdoc_validate.c (1.387), "Exp", lines: +26 -2 regress/mdoc/Fl/Makefile (1.8), "Exp", lines: +4 -4 While we do not recommend the idiom ".Fl Fl long" for long options because it is an abuse of semantic macros for device-specific presentational effects, this idiom is so widespread that it makes sense to convert it to the recommended ".Fl \-long" during the validation phase. For example, this improves HTML formatting in pages where authors have used the dubious .Fl Fl. Feature suggested by Steffen Nurpmeso <steffen at sdaoden dot eu> on freebsd-hackers. 2020-04-24 13:13 schwarze Changed: mandoc_html.3 (1.23), "Exp", lines: +19 -2 Resurrect the documentation of the print_otag() 's' attribute specifier, reverting a minor part of rev. 1.21. Contrary to what i thought, that attribute *is* still supported for a small number of unusual cases. 2020-04-24 12:02 schwarze Changed: man_validate.c (1.154), "Exp", lines: +8 -3 mandoc.1 (1.243), "Exp", lines: +17 -3 mandoc.h (1.268), "Exp", lines: +2 -1 mandoc_msg.c (1.11), "Exp", lines: +5 -2 mdoc_validate.c (1.386), "Exp", lines: +8 -2 read.c (1.219), "Exp", lines: +9 -3 roff_int.h (1.17), "Exp", lines: +3 -2 provide a STYLE message when mandoc knows the file name and the extension disagrees with the section number given in the .Dt or .TH macro; feature suggested and patch tested by jmc@ 2020-04-20 13:07 schwarze Changed: html.c (1.270), "Exp", lines: +4 -3 regress/man/IP/literal.out_html (1.6), "Exp", lines: +3 -3 regress/man/TP/literal.out_html (1.4), "Exp", lines: +1 -1 regress/man/TP/vert.out_html (1.3), "Exp", lines: +1 -1 regress/mdoc/Bd/nested.out_html (1.2), "Exp", lines: +2 -2 regress/mdoc/Sh/tag.out_html (1.4), "Exp", lines: +1 -1 In fragment identifiers, use ~%d for ordinal suffixes, and reserve the character '~' for that purpose. Bug found by validator.w3.org in openssl(1), which contains both a tag "tls1_2" and a second instance of a tag "tls1", which also resulted in "tls1_2", causing a clash. Now, the second instance of "tls1" is rendered as "tls1~2" instead, employing the newly reserved '~'. 2020-04-19 16:36 schwarze Added: regress/mdoc/Bd/nested.out_html (1.1) regress/mdoc/Bd/spacing.out_tag (1.1) regress/mdoc/Dl/spacing.out_html (1.1) Changed: tag.c (1.36), "Exp", lines: +41 -24 regress/mdoc/Bd/Makefile (1.7), "Exp", lines: +3 -3 regress/mdoc/Bd/nested.in (1.4), "Exp", lines: +9 -6 regress/mdoc/Bd/nested.out_ascii (1.4), "Exp", lines: +4 -1 regress/mdoc/Bd/nested.out_lint (1.7), "Exp", lines: +2 -2 regress/mdoc/Bd/nested.out_markdown (1.4), "Exp", lines: +9 -5 regress/mdoc/Bd/nested.out_tag (1.2), "Exp", lines: +4 -4 regress/mdoc/Bd/paragraph.in (1.3), "Exp", lines: +5 -5 regress/mdoc/Bd/paragraph.out_ascii (1.3), "Exp", lines: +3 -3 regress/mdoc/Bd/paragraph.out_html (1.5), "Exp", lines: +4 -3 regress/mdoc/Bd/paragraph.out_markdown (1.3), "Exp", lines: +3 -3 regress/mdoc/D1/spacing.out_html (1.4), "Exp", lines: +2 -2 regress/mdoc/Dl/Makefile (1.5), "Exp", lines: +2 -1 regress/mdoc/Dl/spacing.in (1.4), "Exp", lines: +8 -2 regress/mdoc/Dl/spacing.out_ascii (1.4), "Exp", lines: +5 -1 regress/mdoc/Dl/spacing.out_lint (1.7), "Exp", lines: +1 -1 regress/mdoc/Dl/spacing.out_markdown (1.4), "Exp", lines: +6 -2 regress/mdoc/Dl/spacing.out_tag (1.2), "Exp", lines: +1 -1 regress/mdoc/Pp/arg.out_markdown (1.5), "Exp", lines: +1 -2 regress/mdoc/blank/transp.out_markdown (1.3), "Exp", lines: +1 -2 When .Bd, .D1, or .Dl is tagged, attach the permalink to the first few letters, similar to what was earlier done for .Pp. 2020-04-19 15:16 schwarze Changed: html.c (1.269), "Exp", lines: +40 -34 mandoc_html.3 (1.22), "Exp", lines: +17 -16 mdoc_html.c (1.340), "Exp", lines: +9 -4 Correctly handle non-unique tags even when NODE_ID and NODE_HREF fall apart, NODE_ID occurring earlier than NODE_HREF. 2020-04-18 20:44 schwarze Changed: mandoc_html.3 (1.21), "Exp", lines: +137 -32 Major update: Complete includes, add several functions, no more <?xml?>, no more style attributes, NODE_HREF flag, mention roff_html.c. 2020-04-18 20:40 schwarze Added: regress/mdoc/Pp/arg.out_html (1.1) Changed: Makefile.depend (1.48), "Exp", lines: +5 -5 html.c (1.268), "Exp", lines: +21 -4 html.h (1.108), "Exp", lines: +3 -1 man_validate.c (1.153), "Exp", lines: +2 -2 mdoc_html.c (1.339), "Exp", lines: +7 -4 mdoc_validate.c (1.385), "Exp", lines: +2 -2 read.c (1.218), "Exp", lines: +4 -4 tag.c (1.35), "Exp", lines: +29 -4 tag.h (1.14), "Exp", lines: +2 -2 term_tag.c (1.4), "Exp", lines: +2 -1 regress/mdoc/Bd/paragraph.out_html (1.4), "Exp", lines: +5 -3 regress/mdoc/Pp/Makefile (1.5), "Exp", lines: +2 -1 regress/mdoc/Pp/arg.in (1.4), "Exp", lines: +6 -2 regress/mdoc/Pp/arg.out_ascii (1.4), "Exp", lines: +5 -1 regress/mdoc/Pp/arg.out_lint (1.9), "Exp", lines: +3 -3 regress/mdoc/Pp/arg.out_markdown (1.4), "Exp", lines: +7 -2 regress/mdoc/Pp/arg.out_tag (1.2), "Exp", lines: +2 -2 regress/mdoc/blank/transp.out_markdown (1.2), "Exp", lines: +2 -1 When a .Tg is attached to a paragraph, attach the permalink to the first word, or the first few words if they are short. 2020-04-08 11:56 schwarze Changed: html.c (1.267), "Exp", lines: +3 -3 mdoc_validate.c (1.384), "Exp", lines: +3 -3 roff.c (1.374), "Exp", lines: +2 -1 roff.h (1.74), "Exp", lines: +2 -1 tag.c (1.34), "Exp", lines: +17 -10 term_tag.c (1.3), "Exp", lines: +2 -4 tree.c (1.89), "Exp", lines: +39 -49 Use a separate node->tag attribute rather than abusing the node->string attribute for the purpose. No functional change intended. The purpose is to make it possible to later attach tags to text nodes. 2020-04-07 22:56 schwarze Changed: Makefile.depend (1.47), "Exp", lines: +2 -2 html.c (1.266), "Exp", lines: +11 -7 read.c (1.217), "Exp", lines: +2 -1 tag.c (1.33), "Exp", lines: +95 -1 tag.h (1.13), "Exp", lines: +2 -1 tree.c (1.88), "Exp", lines: +5 -2 regress/mdoc/Cm/tag.out_html (1.3), "Exp", lines: +5 -5 regress/mdoc/Dv/tag.out_html (1.2), "Exp", lines: +2 -2 regress/mdoc/Em/tag.out_html (1.3), "Exp", lines: +2 -2 regress/mdoc/Er/tag.out_html (1.2), "Exp", lines: +1 -1 regress/mdoc/Ev/tag.out_html (1.2), "Exp", lines: +2 -2 regress/mdoc/Fl/tag.out_html (1.2), "Exp", lines: +2 -2 regress/mdoc/Fo/tag.out_html (1.2), "Exp", lines: +6 -7 regress/mdoc/Ic/tag.out_html (1.2), "Exp", lines: +2 -2 regress/mdoc/Li/tag.out_html (1.2), "Exp", lines: +2 -2 regress/mdoc/Ms/tag.out_html (1.2), "Exp", lines: +2 -2 regress/mdoc/No/tag.out_html (1.2), "Exp", lines: +2 -2 regress/mdoc/Sy/tag.out_html (1.2), "Exp", lines: +2 -2 regress/mdoc/Tg/column.in (1.2), "Exp", lines: +4 -3 regress/mdoc/Tg/column.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Tg/column.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Tg/warn.out_html (1.3), "Exp", lines: +1 -1 Separate the place to put the <a href> permalink (now marked with NODE_HREF) from the target element of the link (still marked with NODE_ID). In many cases, use this to move the target to the beginning of the paragraph, such that readers don't get dropped into the middle of a sentence. 2020-04-06 10:16 schwarze Added: regress/mdoc/Bd/nested.out_tag (1.1) regress/mdoc/Bd/paragraph.out_tag (1.1) regress/mdoc/D1/spacing.out_tag (1.1) regress/mdoc/Dl/spacing.out_tag (1.1) regress/mdoc/Pp/arg.out_tag (1.1) regress/mdoc/Tg/column.in (1.1) regress/mdoc/Tg/column.out_ascii (1.1) regress/mdoc/Tg/column.out_html (1.1) regress/mdoc/Tg/column.out_markdown (1.1) regress/mdoc/Tg/column.out_tag (1.1) regress/mdoc/Tg/list.in (1.1) regress/mdoc/Tg/list.out_ascii (1.1) regress/mdoc/Tg/list.out_html (1.1) regress/mdoc/Tg/list.out_markdown (1.1) regress/mdoc/Tg/list.out_tag (1.1) Changed: html.c (1.265), "Exp", lines: +17 -6 mdoc.c (1.275), "Exp", lines: +8 -5 mdoc_html.c (1.338), "Exp", lines: +20 -15 mdoc_term.c (1.380), "Exp", lines: +16 -7 mdoc_validate.c (1.383), "Exp", lines: +41 -7 roff.c (1.373), "Exp", lines: +8 -2 roff.h (1.73), "Exp", lines: +3 -2 regress/mdoc/Bd/Makefile (1.6), "Exp", lines: +2 -1 regress/mdoc/Bd/nested.in (1.3), "Exp", lines: +6 -2 regress/mdoc/Bd/nested.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Bd/nested.out_lint (1.6), "Exp", lines: +2 -2 regress/mdoc/Bd/nested.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Bd/paragraph.in (1.2), "Exp", lines: +7 -2 regress/mdoc/Bd/paragraph.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bd/paragraph.out_html (1.3), "Exp", lines: +5 -5 regress/mdoc/Bd/paragraph.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/D1/Makefile (1.5), "Exp", lines: +2 -1 regress/mdoc/D1/spacing.in (1.4), "Exp", lines: +3 -2 regress/mdoc/D1/spacing.out_ascii (1.4), "Exp", lines: +1 -1 regress/mdoc/D1/spacing.out_html (1.3), "Exp", lines: +3 -1 regress/mdoc/D1/spacing.out_lint (1.7), "Exp", lines: +1 -1 regress/mdoc/D1/spacing.out_markdown (1.4), "Exp", lines: +1 -1 regress/mdoc/Dl/Makefile (1.4), "Exp", lines: +2 -1 regress/mdoc/Dl/spacing.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Dl/spacing.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Dl/spacing.out_lint (1.6), "Exp", lines: +1 -1 regress/mdoc/Dl/spacing.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Pp/Makefile (1.4), "Exp", lines: +2 -1 regress/mdoc/Pp/arg.in (1.3), "Exp", lines: +6 -2 regress/mdoc/Pp/arg.out_ascii (1.3), "Exp", lines: +3 -1 regress/mdoc/Pp/arg.out_lint (1.8), "Exp", lines: +3 -3 regress/mdoc/Pp/arg.out_markdown (1.3), "Exp", lines: +3 -1 regress/mdoc/Tg/Makefile (1.2), "Exp", lines: +6 -4 Support manual tagging of .Pp, .Bd, .D1, .Dl, .Bl, and .It. In HTML output, improve the logic for writing inside permalinks: skip them when there is no child content or when there is a risk that the children might contain flow content. 2020-04-04 20:33 schwarze Added: regress/man/SH/paragraph.out_tag (1.1) regress/man/SS/paragraph.out_tag (1.1) Changed: man_html.c (1.178), "Exp", lines: +1 -2 man_validate.c (1.152), "Exp", lines: +25 -2 regress/man/IP/empty.out_tag (1.2), "Exp", lines: +2 -0 regress/man/IP/tag.out_tag (1.2), "Exp", lines: +2 -0 regress/man/SH/Makefile (1.5), "Exp", lines: +2 -1 regress/man/SS/Makefile (1.5), "Exp", lines: +2 -1 regress/man/TP/tag.out_tag (1.2), "Exp", lines: +2 -0 automatically tag .SH and .SS in man(7) terminal output in the same way as it was done for .Sh and .Ss in mdoc(7) 2020-04-03 11:35 schwarze Changed: cgi.c (1.172), "Exp", lines: +6 -4 libmandoc.h (1.79), "Exp", lines: +6 -3 mandoc.h (1.267), "Exp", lines: +4 -3 mandocdb.c (1.267), "Exp", lines: +5 -3 mdoc_markdown.c (1.35), "Exp", lines: +7 -5 out.h (1.34), "Exp", lines: +4 -2 roff.c (1.372), "Exp", lines: +5 -3 Remove some stray argument names from function prototypes, for consistency with the dominant style used in mandoc. No functional change. Patch from Martin Vahlensieck <academicsolutions dot ch>. 2020-04-03 10:30 schwarze Changed: tag.c (1.32), "Exp", lines: +2 -1 #include <stdint.h> because that is needed before #include <ohash.h>; fixing a build failure of mandoc-portable on Arch Linux reported by Stephen Gregoratto <dev at sgregoratto dot me>. 2020-04-02 22:12 schwarze Changed: main.c (1.348), "Exp", lines: +30 -26 manconf.h (1.8), "Exp", lines: +6 -2 tag.c (1.31), "Exp", lines: +4 -12 tag.h (1.12), "Exp", lines: +2 -12 term_tag.c (1.2), "Exp", lines: +25 -29 term_tag.h (1.2), "Exp", lines: +3 -4 When the last file formatted yielded no tags, the tags file got deleted before starting the pager, even when earlier input files had written to it; thanks to weerd@ for reporting that bug. Since we now generate tags for section headers, we almost always generate at least some. Consequently, while fixing the above bug, simplify the code by never deleting the tags file before the pager exits, not even in the rare case that the file happens to be empty. Hence, this patch is -75 +63 LOC even though it fixes two bugs. While deleting the output files belongs after exit from the pager, closing them should be done before it is started. Collect the related code, which was scattered in various places, to where it belongs, in a dedicated function in the term_tag.c module. As a side benefit, never fclose(2) stdout, only dup2(2) to it. Similarly, when the -O tag argument wasn't found in the last file formatted, there was a complaint about "no such tag" even when the argument did occur in earlier files. Fix that by looking for a matching tag after every formatted file rather than just once at the very end. Given that command line arguments aren't properties of the file(s) being formatted, that check is a job for the main program, not for the formatters, so while fixing the check, move it from term_tag.c to main.c. 2020-04-02 15:04 schwarze Changed: mdoc_validate.c (1.382), "Exp", lines: +8 -4 regress/mdoc/Em/tag.in (1.2), "Exp", lines: +3 -3 regress/mdoc/Em/tag.out_ascii (1.2), "Exp", lines: +3 -2 regress/mdoc/Em/tag.out_html (1.2), "Exp", lines: +1 -1 regress/mdoc/Em/tag.out_markdown (1.2), "Exp", lines: +2 -2 regress/mdoc/Em/tag.out_tag (1.3), "Exp", lines: +3 -3 regress/mdoc/Sh/tag.in (1.3), "Exp", lines: +4 -2 regress/mdoc/Sh/tag.out_ascii (1.3), "Exp", lines: +4 -1 regress/mdoc/Sh/tag.out_html (1.3), "Exp", lines: +4 -0 regress/mdoc/Sh/tag.out_lint (1.2), "Exp", lines: +2 -2 regress/mdoc/Sh/tag.out_markdown (1.3), "Exp", lines: +5 -1 regress/mdoc/Sh/tag.out_tag (1.2), "Exp", lines: +2 -1 regress/mdoc/Tg/warn.in (1.2), "Exp", lines: +3 -3 regress/mdoc/Tg/warn.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Tg/warn.out_html (1.2), "Exp", lines: +1 -1 regress/mdoc/Tg/warn.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Tg/warn.out_tag (1.3), "Exp", lines: +1 -1 Copy tagged strings before marking hyphens as breakable. For example, this makes ":tCo-processes" work in ksh(1). 2020-04-01 20:21 schwarze Added: regress/mdoc/Sh/tag.out_lint (1.1) regress/mdoc/Sh/tag.out_tag (1.1) Changed: mdoc_html.c (1.337), "Exp", lines: +1 -3 mdoc_validate.c (1.381), "Exp", lines: +38 -24 regress/mdoc/Cm/tag.out_tag (1.3), "Exp", lines: +2 -0 regress/mdoc/Dv/tag.out_tag (1.2), "Exp", lines: +2 -0 regress/mdoc/Em/tag.out_tag (1.2), "Exp", lines: +2 -0 regress/mdoc/Er/tag.out_tag (1.2), "Exp", lines: +3 -0 regress/mdoc/Ev/tag.out_tag (1.2), "Exp", lines: +2 -0 regress/mdoc/Fl/tag.out_tag (1.2), "Exp", lines: +2 -0 regress/mdoc/Fo/tag.out_tag (1.2), "Exp", lines: +2 -0 regress/mdoc/Ic/tag.out_tag (1.2), "Exp", lines: +2 -0 regress/mdoc/Li/tag.out_tag (1.2), "Exp", lines: +2 -0 regress/mdoc/Ms/tag.out_tag (1.2), "Exp", lines: +2 -0 regress/mdoc/No/tag.out_tag (1.2), "Exp", lines: +2 -0 regress/mdoc/Sh/Makefile (1.8), "Exp", lines: +3 -2 regress/mdoc/Sh/tag.in (1.2), "Exp", lines: +8 -2 regress/mdoc/Sh/tag.out_ascii (1.2), "Exp", lines: +10 -1 regress/mdoc/Sh/tag.out_html (1.2), "Exp", lines: +14 -0 regress/mdoc/Sh/tag.out_markdown (1.2), "Exp", lines: +13 -1 regress/mdoc/Sy/tag.out_tag (1.2), "Exp", lines: +2 -0 regress/mdoc/Tg/warn.out_tag (1.2), "Exp", lines: +2 -0 Just like we are already doing it in HTML output, automatically tag section and subsection headers in terminal output, too. Even though admittedly, commands like "/SEE" and "/ Subsec" work, too, there is no downside, and besides, with the recent improvements in the tagging framework, implementation cost is negligible. 2020-03-28 16:18 schwarze Changed: main.c (1.347), "Exp", lines: +10 -13 Even though the HTML, man, markdown, PDF, PostScript, and tree formatters never write a ctags(1) file, using a pager still requires writing the main output file and passing the file name to the pager. Recent regression mentioned on IRC and reported by kn@. 2020-03-21 00:25 schwarze Changed: regress/mdoc/Cm/tag.in (1.2), "Exp", lines: +9 -3 regress/mdoc/Cm/tag.out_ascii (1.2), "Exp", lines: +10 -1 regress/mdoc/Cm/tag.out_html (1.2), "Exp", lines: +6 -0 regress/mdoc/Cm/tag.out_markdown (1.2), "Exp", lines: +13 -1 regress/mdoc/Cm/tag.out_tag (1.2), "Exp", lines: +4 -1 test skipping of initial hyphens and minus signs in automatic tags; related to tags.c rev. 1.30 2020-03-21 00:17 schwarze Changed: tag.c (1.30), "Exp", lines: +19 -3 When setting automatic tags, skip initial hyphens and minus signs, bringing the behaviour for mdoc(7) closer to what is already done for man(7). Triggered by the observation of kn@ that automatic tagging didn't work very well for find(1) primaries. OK kn@ 2020-03-19 12:21 schwarze Changed: main.c (1.346), "Exp", lines: +3 -2 The tag file always needs to be closed before starting the pager, even when no output formatter was allocated because all pages shown were preformatted. Regression in previous reported by <Andreas dot Kahari at abc dot se> on bugs@. 2020-03-13 17:31 schwarze Changed: Makefile (1.532), "Exp", lines: +7 -4 configure (1.73), "Exp", lines: +15 -4 Make the "make depend" maintainer target more convenient by having it run ./configure with native fts and ohash disabled. 2020-03-13 16:16 schwarze Changed: read.c (1.216), "Exp", lines: +3 -1 tag.c (1.29), "Exp", lines: +4 -1 Properly reset the validation part of the tagging module between files. This fixes a crash in makewhatis(8) encountered by naddy@. 2020-03-13 15:32 schwarze Added: term_tag.c (1.1) term_tag.h (1.1) regress/copyless (1.1) regress/man/IP/empty.out_html (1.1) regress/man/IP/empty.out_tag (1.1) regress/man/IP/tag.in (1.1) regress/man/IP/tag.out_ascii (1.1) regress/man/IP/tag.out_html (1.1) regress/man/IP/tag.out_tag (1.1) regress/man/TP/tag.in (1.1) regress/man/TP/tag.out_ascii (1.1) regress/man/TP/tag.out_html (1.1) regress/man/TP/tag.out_tag (1.1) regress/mdoc/Cm/tag.in (1.1) regress/mdoc/Cm/tag.out_ascii (1.1) regress/mdoc/Cm/tag.out_html (1.1) regress/mdoc/Cm/tag.out_markdown (1.1) regress/mdoc/Cm/tag.out_tag (1.1) regress/mdoc/Dv/tag.in (1.1) regress/mdoc/Dv/tag.out_ascii (1.1) regress/mdoc/Dv/tag.out_html (1.1) regress/mdoc/Dv/tag.out_markdown (1.1) regress/mdoc/Dv/tag.out_tag (1.1) regress/mdoc/Em/tag.in (1.1) regress/mdoc/Em/tag.out_ascii (1.1) regress/mdoc/Em/tag.out_html (1.1) regress/mdoc/Em/tag.out_markdown (1.1) regress/mdoc/Em/tag.out_tag (1.1) regress/mdoc/Er/tag.in (1.1) regress/mdoc/Er/tag.out_ascii (1.1) regress/mdoc/Er/tag.out_html (1.1) regress/mdoc/Er/tag.out_markdown (1.1) regress/mdoc/Er/tag.out_tag (1.1) regress/mdoc/Ev/tag.in (1.1) regress/mdoc/Ev/tag.out_ascii (1.1) regress/mdoc/Ev/tag.out_html (1.1) regress/mdoc/Ev/tag.out_markdown (1.1) regress/mdoc/Ev/tag.out_tag (1.1) regress/mdoc/Fl/tag.in (1.1) regress/mdoc/Fl/tag.out_ascii (1.1) regress/mdoc/Fl/tag.out_html (1.1) regress/mdoc/Fl/tag.out_markdown (1.1) regress/mdoc/Fl/tag.out_tag (1.1) regress/mdoc/Fo/tag.in (1.1) regress/mdoc/Fo/tag.out_ascii (1.1) regress/mdoc/Fo/tag.out_html (1.1) regress/mdoc/Fo/tag.out_markdown (1.1) regress/mdoc/Fo/tag.out_tag (1.1) regress/mdoc/Ic/tag.in (1.1) regress/mdoc/Ic/tag.out_ascii (1.1) regress/mdoc/Ic/tag.out_html (1.1) regress/mdoc/Ic/tag.out_markdown (1.1) regress/mdoc/Ic/tag.out_tag (1.1) regress/mdoc/Li/tag.in (1.1) regress/mdoc/Li/tag.out_ascii (1.1) regress/mdoc/Li/tag.out_html (1.1) regress/mdoc/Li/tag.out_markdown (1.1) regress/mdoc/Li/tag.out_tag (1.1) regress/mdoc/Ms/tag.in (1.1) regress/mdoc/Ms/tag.out_ascii (1.1) regress/mdoc/Ms/tag.out_html (1.1) regress/mdoc/Ms/tag.out_markdown (1.1) regress/mdoc/Ms/tag.out_tag (1.1) regress/mdoc/No/tag.in (1.1) regress/mdoc/No/tag.out_ascii (1.1) regress/mdoc/No/tag.out_html (1.1) regress/mdoc/No/tag.out_markdown (1.1) regress/mdoc/No/tag.out_tag (1.1) regress/mdoc/Sy/tag.in (1.1) regress/mdoc/Sy/tag.out_ascii (1.1) regress/mdoc/Sy/tag.out_html (1.1) regress/mdoc/Sy/tag.out_markdown (1.1) regress/mdoc/Sy/tag.out_tag (1.1) regress/mdoc/Tg/Makefile (1.1) regress/mdoc/Tg/warn.in (1.1) regress/mdoc/Tg/warn.out_ascii (1.1) regress/mdoc/Tg/warn.out_html (1.1) regress/mdoc/Tg/warn.out_lint (1.1) regress/mdoc/Tg/warn.out_markdown (1.1) regress/mdoc/Tg/warn.out_tag (1.1) Changed: Makefile (1.531), "Exp", lines: +13 -8 Makefile.depend (1.46), "Exp", lines: +8 -7 html.c (1.264), "Exp", lines: +68 -10 html.h (1.107), "Exp", lines: +7 -2 main.c (1.345), "Exp", lines: +19 -18 man_html.c (1.177), "Exp", lines: +7 -9 man_term.c (1.235), "Exp", lines: +10 -77 man_validate.c (1.151), "Exp", lines: +103 -5 mandoc_headers.3 (1.33), "Exp", lines: +57 -20 mandoc_html.3 (1.20), "Exp", lines: +119 -18 mdoc_html.c (1.336), "Exp", lines: +41 -159 mdoc_term.c (1.379), "Exp", lines: +82 -202 mdoc_validate.c (1.380), "Exp", lines: +126 -74 read.c (1.215), "Exp", lines: +11 -2 tag.c (1.28), "Exp", lines: +76 -204 tag.h (1.11), "Exp", lines: +15 -14 tree.c (1.87), "Exp", lines: +10 -2 regress/regress.pl (1.14), "Exp", lines: +61 -29 regress/regress.pl.1 (1.5), "Exp", lines: +5 -12 regress/man/IP/Makefile (1.4), "Exp", lines: +4 -3 regress/man/IP/empty.in (1.3), "Exp", lines: +3 -1 regress/man/IP/empty.out_ascii (1.2), "Exp", lines: +2 -2 regress/man/IP/empty.out_lint (1.5), "Exp", lines: +2 -2 regress/man/IP/literal.out_html (1.5), "Exp", lines: +4 -4 regress/man/TP/Makefile (1.6), "Exp", lines: +4 -3 regress/man/TP/literal.out_html (1.3), "Exp", lines: +2 -2 regress/man/TP/vert.out_html (1.2), "Exp", lines: +2 -2 regress/mdoc/Makefile (1.2), "Exp", lines: +2 -2 regress/mdoc/Cm/Makefile (1.5), "Exp", lines: +4 -2 regress/mdoc/Dv/Makefile (1.4), "Exp", lines: +4 -2 regress/mdoc/Em/Makefile (1.4), "Exp", lines: +4 -2 regress/mdoc/Er/Makefile (1.4), "Exp", lines: +4 -2 regress/mdoc/Ev/Makefile (1.4), "Exp", lines: +4 -2 regress/mdoc/Fl/Makefile (1.7), "Exp", lines: +5 -2 regress/mdoc/Fo/Makefile (1.6), "Exp", lines: +4 -2 regress/mdoc/Ic/Makefile (1.5), "Exp", lines: +4 -2 regress/mdoc/Li/Makefile (1.5), "Exp", lines: +4 -2 regress/mdoc/Ms/Makefile (1.4), "Exp", lines: +4 -2 regress/mdoc/No/Makefile (1.4), "Exp", lines: +4 -2 regress/mdoc/No/punct.out_lint (1.9), "Exp", lines: +1 -0 regress/mdoc/Sy/Makefile (1.4), "Exp", lines: +4 -2 Split tagging into a validation part including prioritization in tag.{h,c} and {mdoc,man}_validate.c and into a formatting part including command line argument checking in term_tag.{h,c}, html.c, and {mdoc|man}_{term|html}.c. Immediate functional benefits include: * Improved prioritization of automatic tags for .Em and .Sy. * Avoiding bogus automatic tags when .Em, .Fn, or .Sy are explicitly tagged. * Explicit tagging of .Er and .Fl now works in HTML output. * Automatic tagging of .IP and .TP now works in HTML output. But mainly, this patch provides clean earth to build further improvements on. Technical changes: * Main program: Write a tag file for ASCII and UTF-8 output only. * All formatters: There is no more need to delay writing the tags. * mdoc(7)+man(7) formatters: No more need for elaborate syntax tree inspection. * HTML formatter: If available, use the "string" attribute as the tag. * HTML formatter: New function to write permalinks, to reduce code duplication. Style cleanup in the vicinity while here: * mdoc(7) terminal formatter: To set up bold font for children, defer to termp_bold_pre() rather than calling term_fontpush() manually. * mdoc(7) terminal formatter: Garbage collect some duplicate functions. * mdoc(7) HTML formatter: Unify <code> handling, delete redundant functions. * Where possible, use switch statements rather than if cascades. * Get rid of some more Yoda notation. The necessity for such changes was first discussed with kn@, but i didn't bother him with a request to review the resulting -673/+782 line patch. 2020-02-27 22:28 schwarze Changed: html.c (1.263), "Exp", lines: +3 -3 mdoc_html.c (1.335), "Exp", lines: +2 -2 The HTML standard does not allow self-closing syntax for non-void elements. Consequently, write an explicit end tag for <mark> elements. 2020-02-27 21:43 schwarze Added: regress/mdoc/Sh/tag.in (1.1) regress/mdoc/Sh/tag.out_ascii (1.1) regress/mdoc/Sh/tag.out_html (1.1) regress/mdoc/Sh/tag.out_markdown (1.1) Changed: mdoc_term.c (1.378), "Exp", lines: +6 -10 mdoc_validate.c (1.379), "Exp", lines: +45 -6 roff.c (1.371), "Exp", lines: +2 -2 roff.h (1.72), "Exp", lines: +3 -1 tree.c (1.86), "Exp", lines: +8 -1 regress/mdoc/Sh/Makefile (1.7), "Exp", lines: +3 -3 Fully support explicit tagging of .Sh and .Ss. This fixes the offset of two lines in terminal output and this improves HTML output by putting the id= attribute and <a> element into the respective <h1> or <h2> element rather than writing an additional <mark> element. To that end, introduce node flags NODE_ID (to make the node a link target, for example by writing an HTML id= attribute or by calling tag_put()) and NODE_HREF (to make the node a link source, used only in HTML output, used only to write an <a class="permalink"> element). In particular: * In the validator, generalize the concept of the "next node" such that it also works before .Sh and .Ss. * If the first argument of .Tg is empty, don't forget to complain if there are additional arguments, which will be ignored. * In the terminal formatter, support writing of explicit tags for all kinds of nodes, not just for .Tg. * In deroff(), allow nodes to have an explicit string representation even when they aren't text nodes. Use this for explicitly tagged section headers. Suprisingly, this is sufficient to make HTML output work, without explicit code changes in the HTML formatter. * In syntax tree output, display NODE_ID and NODE_HREF. 2020-02-27 01:43 schwarze Added: regress/man/HP/vert.in (1.1) regress/man/HP/vert.out_ascii (1.1) regress/man/IP/bullet.in (1.1) regress/man/IP/bullet.out_ascii (1.1) regress/man/IP/bullet.out_html (1.1) regress/man/IP/bullet.out_utf8 (1.1) regress/man/IP/vert.in (1.1) regress/man/IP/vert.out_ascii (1.1) regress/man/PP/vert.in (1.1) regress/man/PP/vert.out_ascii (1.1) regress/man/SH/vert.in (1.1) regress/man/SH/vert.out_ascii (1.1) regress/man/SS/vert.in (1.1) regress/man/SS/vert.out_ascii (1.1) regress/man/TP/vert.in (1.1) regress/man/TP/vert.out_ascii (1.1) regress/man/TP/vert.out_html (1.1) regress/mdoc/Bl/vert.in (1.1) regress/mdoc/Bl/vert.out_ascii (1.1) regress/mdoc/Bl/vert.out_markdown (1.1) regress/mdoc/Fl/spacing.in (1.1) regress/mdoc/Fl/spacing.out_ascii (1.1) regress/mdoc/Fl/spacing.out_markdown (1.1) regress/mdoc/Fo/transp.in (1.1) regress/mdoc/Fo/transp.out_ascii (1.1) regress/mdoc/Fo/transp.out_markdown (1.1) regress/mdoc/Rs/transp.in (1.1) regress/mdoc/Rs/transp.out_ascii (1.1) regress/mdoc/Rs/transp.out_markdown (1.1) regress/mdoc/Sh/transp.in (1.1) regress/mdoc/Sh/transp.out_ascii (1.1) regress/mdoc/Sh/transp.out_markdown (1.1) regress/mdoc/blank/transp.in (1.1) regress/mdoc/blank/transp.out_ascii (1.1) regress/mdoc/blank/transp.out_lint (1.1) regress/mdoc/blank/transp.out_markdown (1.1) Changed: man_html.c (1.176), "Exp", lines: +8 -6 man_term.c (1.234), "Exp", lines: +17 -24 mdoc_html.c (1.334), "Exp", lines: +38 -32 mdoc_man.c (1.136), "Exp", lines: +49 -38 mdoc_markdown.c (1.34), "Exp", lines: +25 -13 mdoc_term.c (1.377), "Exp", lines: +61 -79 mdoc_validate.c (1.378), "Exp", lines: +70 -86 roff.c (1.370), "Exp", lines: +54 -1 roff.h (1.71), "Exp", lines: +7 -3 roff_validate.c (1.19), "Exp", lines: +4 -4 regress/man/HP/Makefile (1.3), "Exp", lines: +2 -2 regress/man/IP/Makefile (1.3), "Exp", lines: +4 -3 regress/man/PP/Makefile (1.2), "Exp", lines: +2 -2 regress/man/SH/Makefile (1.4), "Exp", lines: +2 -2 regress/man/SS/Makefile (1.4), "Exp", lines: +2 -2 regress/man/TP/Makefile (1.5), "Exp", lines: +3 -3 regress/mdoc/Bd/spacing.in (1.3), "Exp", lines: +8 -2 regress/mdoc/Bd/spacing.out_ascii (1.3), "Exp", lines: +5 -1 regress/mdoc/Bd/spacing.out_markdown (1.3), "Exp", lines: +7 -1 regress/mdoc/Bl/Makefile (1.11), "Exp", lines: +2 -2 regress/mdoc/Bl/noIt.out_lint (1.6), "Exp", lines: +1 -0 regress/mdoc/Fl/Makefile (1.6), "Exp", lines: +2 -2 regress/mdoc/Fo/Makefile (1.5), "Exp", lines: +2 -2 regress/mdoc/Rs/Makefile (1.6), "Exp", lines: +2 -2 regress/mdoc/Sh/Makefile (1.6), "Exp", lines: +3 -2 regress/mdoc/Sm/badarg.out_markdown (1.3), "Exp", lines: +1 -2 regress/mdoc/Sm/twoarg.out_markdown (1.3), "Exp", lines: +2 -4 regress/mdoc/blank/Makefile (1.4), "Exp", lines: +3 -3 Introduce the concept of nodes that are semantically transparent: they are skipped when looking for previous or following high-level macros. Examples include roff(7) .ft, .ll, and .ta, mdoc(7) .Sm and .Tg, and man(7) .DT and .PD. Use this concept for a variety of improved decisions in various validators and formatters. While here, * remove a few const qualifiers on struct arguments that caused trouble; * get rid of some more Yoda notation in the vicinity; * and apply some other stylistic improvements in the vicinity. I found this class of issues while considering .Tg patches from kn@. 2020-02-27 00:36 schwarze Changed: regress/char/unicode/input.out_utf8 (1.2), "Exp", lines: +1 -1 Fix this test after the recent Unicode update in OpenBSD base. The test uses U+07FF NKO TAMAN SIGN because it is the highest code point having a two-byte UTF-8 representation. This character is a new single-width punctuation character in Unicode 11, such that mandoc now does correct horizontal spacing. We already used the code point for the test before it was assigned, which resulted in weird spacing because wcwidth(3) returns -1 for unassigned code points. 2020-02-24 21:16 schwarze Changed: main.c (1.344), "Exp", lines: +26 -4 Marc Espie reported that "man p*ipc" displayed the perlipc(1) manual. The reason was that as a last resort when failing to find a page name in mandoc.db(5) or at a few well well-defined fully qualified file names, man(1) uses glob(3) to look for candidate files in relevant directories, because some operating systems have weird file name extensions, for example pcap.3pcap and BF_set_key.3ssl on Linux. But during that globbing, the metacharacters "*?[" need to be escaped in the name, section, and path supplied by the user, or you would get weird false positives and misleading warning messages and would be unable to use the fallback for path or file names that actually contain an opening bracket. Feedback and OK espie@. 2020-02-20 22:55 schwarze Changed: mdoc_man.c (1.135), "Exp", lines: +4 -4 bugfix: indented paragraph macros need a space character before the width argument 2020-02-20 00:29 schwarze Changed: mdoc_man.c (1.134), "Exp", lines: +2 -2 mdoc_markdown.c (1.33), "Exp", lines: +2 -2 bugfix: .Tg must be ignored completely in these output modes 2020-02-18 17:31 schwarze Changed: man.7 (1.145), "Exp", lines: +16 -5 Mention that .AT, .P, .SB, and .UC are extensions; it really matters because we only retain the language for backward compatibility in the first place. Part of the research done by <G dot Branden dot Robinson at gmail dot com>, see the list <groff at gnu dot org> for details. No change to the following conventions: Consider portable whatever made it into GNU troff no later than 4.4BSD. For portable extensions, mention their origin at the end of the description. For non-portable extensions, for example from man-ext, usually warn earlier, near the beginning of the description. 2020-02-15 15:28 schwarze Changed: mandoc.1 (1.242), "Exp", lines: +8 -3 mention that -T man does not support eqn(7) and tbl(7); triggered by a question from Stephen Gregoratto <dev at sgregoratto dot me> 2020-02-15 14:59 schwarze Changed: TODO (1.301), "Exp", lines: +9 -1 two new entries: "Fl Fl" to "Fl \-" in validation and eqn/tbl in -T man 2020-02-13 18:32 schwarze Changed: mdoc.7 (1.281), "Exp", lines: +4 -17 Mention that the .Dd "date" argument is the date of the last change. Triggered by a question from Jason A. Donenfeld. While here, delete three COMPATIBILITY entries that i fixed some time ago. 2020-02-13 16:18 schwarze Changed: chars.c (1.79), "Exp", lines: +4 -3 mandoc_char.7 (1.77), "Exp", lines: +8 -8 Digit-width and narrow spaces are non-breaking. Noticed because Branden Robinson worked on related documentation in groff. 2020-02-12 21:15 schwarze Changed: man_html.c (1.175), "Exp", lines: +3 -3 In roff, a space character at the beginning of an input line requires starting a new output line, and merely starting a new line of HTML code isn't sufficient to achieve that. Solve this in the same way as mdoc_html.c already does it, by printing a <br/> element. Fixing a bug reported by Jason A. Donenfeld <Jason at zx2c4 dot com> in the wg-quick(8) manual page on manpages.debian.org. 2020-02-10 14:42 schwarze Changed: man.conf.5 (1.8), "Exp", lines: +2 -8 manpath.c (1.41), "Exp", lines: +2 -9 Finally delete support for the "_whatdb" configuration directive, which has a misleading syntax. It was declared obsolete and superseded by the "manpath" directive five years ago. 2020-02-10 14:13 schwarze Changed: man.conf.5 (1.7), "Exp", lines: +5 -3 Reduce the diff to OpenBSD by making FILES a list, even though it has only one entry in the portable version. Do not add /etc/examples/man.conf for the portable version, though. 2020-02-10 14:04 schwarze Changed: man.1 (1.38), "Exp", lines: +3 -3 The man(1) command was already available in AT&T Version 2 UNIX. Jonathan Gray found it in the "Combined Table of Contents" in Doug McIlroy's "A Research UNIX Reader", which contains a table of which edition manuals appeared in, and in both the "Table of Contents" (page vi) and the body (page 89) of the printed UNIX Programmer's Manual (June 12, 1972) from bitsavers. 2020-02-10 13:49 schwarze Changed: main.c (1.343), "Exp", lines: +15 -3 man.1 (1.37), "Exp", lines: +6 -3 For compatibility with the man(1) implementations of the man-1.6 and man-db packages, print the manpath if the -w option is given without a following name argument. This quirk has been in man-1.6 since at least man-1.5e (1998) and in man-db since 2012. Using this feature in portable software is a dubious idea because the internal organization of manual page directories varies in about a dozen respects among operating systems, so even if you get the answer, there is no portable way to use it for looking up anything inside. However, Matej Cepl <mcepl at suse dot cz> made me aware that some software, for example the manual viewing functionality in the newest editors/neovim code, unwisely relies on this feature anyway. No objections were raised when this patch was shown on tech@. 2020-02-06 19:41 schwarze Changed: main.c (1.342), "Exp", lines: +14 -3 Make sure that -l always causes -w to be ignored, as documented in the man(1) manual page. This bugfix is needed to prevent the command "man -lw" from dereferencing a NULL pointer. 2020-02-05 15:12 schwarze Changed: configure (1.72), "Exp", lines: +2 -2 configure.local.example (1.37), "Exp", lines: +9 -16 No longer try to ask make(1) what the default compiler is, just use "cc". That line was a bad idea in the first place, it tried to be too clever, and it failed in different ways on different platforms. Even when it succeeded, what make(1) considered the default wasn't always useful. Having a simple and robust default and asking users to override it when needed is better. 2020-01-26 21:25 schwarze Changed: mandocdb.c (1.266), "Exp", lines: +86 -36 Repair more of the issues that i found in filescan() while investigating the report from <Andreas dot Kahari at abc dot se> on ports@: For a symlink, use the first of the following names that is available: 1. In -t mode, the symlink itself (unchanged). 2. When the (unresolved) symlink already resides inside the manpath, just strip the manpath and use the rest (unchanged). 3. When prefix(es) of the unresolved symlink point to the manpath, strip the longest such prefix and use the rest (new); this fixes situations where the manpath or one of its parent directories is a symlink and at the same time contains symlinks to manual pages. 4. Fall back to the fully resolved symlink, with the manpath stripped (new); this may for example happen when the command line passes symlinks from outside the manpath that point to manual pages inside the manpath, or if manual page trees contain symlinks to symlinks and not all of them are given on the command line. The fallback (4) isn't perfect. You can construct symlink spaghetti in such a way that this algorithm will not enter all manual page names into the database that a human would be able to deduce. But i do not expect such spaghetti to actually occur in practice (not even in ports), and a full fix would require re-implementing realpath(3) in terms of step-by-step readlink(2) calls, repeating the complicated algorithm (3) after each step. While here, also stop using PATH_MAX as the size of a static buffer in filescan(); on some systems, it can be unreasonably large. Instead, allocate path strings dynamically. 2020-01-26 11:16 schwarze Changed: mandocdb.c (1.265), "Exp", lines: +3 -3 Fix incorrect file type tests. This bug caused sockets and character special devices to be accepted as manual pages if they appeared inside manpaths, and it caused incorrect file names to be entered into the database when the manpath or one of its parent directories was a symbolic link. This fixes the issues reported by <Andreas dot Kahari at abc dot se> on ports@, but additional issues remain when symbolic links are contained in a manpath that involves another symbolic link. 2020-01-25 22:59 schwarze Changed: mandocdb.c (1.264), "Exp", lines: +60 -55 Minor cleanup, no functional change: Do not abuse strstr(3) to check whether one long string starts with another long string. Instead, use strncmp(3) with the proper length. In set_basedir(), also reset *basedir in the error brances for extra safety. While here, invert some more Yoda conditions in the neighbourhood. 2020-01-20 10:37 schwarze Changed: main.c (1.341), "Exp", lines: +2 -1 man_term.c (1.233), "Exp", lines: +4 -4 mandoc_headers.3 (1.32), "Exp", lines: +7 -3 mdoc_term.c (1.376), "Exp", lines: +10 -10 tag.c (1.27), "Exp", lines: +13 -12 tag.h (1.10), "Exp", lines: +13 -2 Make the code more readable by introducing symbolic constants for tagging priorities. This review also made me find a minor bug: do not upgrade TAG_FALLBACK to TAG_WEAK when there is trailing whitespace. 2020-01-19 18:02 schwarze Changed: html.c (1.262), "Exp", lines: +2 -1 html.h (1.106), "Exp", lines: +2 -1 mandoc.h (1.266), "Exp", lines: +2 -1 mandoc_msg.c (1.10), "Exp", lines: +2 -1 mdoc.7 (1.280), "Exp", lines: +48 -3 mdoc_html.c (1.333), "Exp", lines: +14 -2 mdoc_macro.c (1.234), "Exp", lines: +3 -2 mdoc_man.c (1.133), "Exp", lines: +2 -1 mdoc_markdown.c (1.32), "Exp", lines: +2 -1 mdoc_state.c (1.16), "Exp", lines: +2 -1 mdoc_term.c (1.375), "Exp", lines: +11 -2 mdoc_validate.c (1.377), "Exp", lines: +39 -2 roff.c (1.369), "Exp", lines: +3 -3 roff.h (1.70), "Exp", lines: +3 -2 tag.c (1.26), "Exp", lines: +6 -5 Introduce a new mdoc(7) macro .Tg ("tag") to explicitly mark a place as defining a term. Please only use it when automatic tagging does not work. Manual page authors will not be required to add the new macro; using it remains optional. HTML output is still rudimentary in this version and will be polished later. Thanks to kn@ for reminding me that i have been considering since BSDCan 2014 whether something like this might be useful. Given that possibilities of making automatic tagging better are running out and there are still several situations where automatic tagging cannot do the job, i think the time is now ripe. Feedback and no objection from millert@; OK espie@ inoguchi@ kn@. 2020-01-19 16:44 schwarze Added: regress/mdoc/Dd/noarg.out_ascii (1.1) regress/mdoc/Dd/noarg.out_markdown (1.1) Changed: libmandoc.h (1.78), "Exp", lines: +4 -3 man_validate.c (1.150), "Exp", lines: +6 -11 mandoc.1 (1.241), "Exp", lines: +3 -3 mandoc.c (1.117), "Exp", lines: +35 -21 mandoc.h (1.265), "Exp", lines: +3 -3 mandoc_msg.c (1.9), "Exp", lines: +3 -3 mdoc_macro.c (1.233), "Exp", lines: +2 -2 mdoc_validate.c (1.376), "Exp", lines: +7 -8 regress/man/TH/baddate.out_lint (1.3), "Exp", lines: +1 -1 regress/man/TH/emptydate.out_lint (1.3), "Exp", lines: +1 -1 regress/man/TH/longdate.out_lint (1.3), "Exp", lines: +1 -1 regress/man/TH/noTH.out_lint (1.2), "Exp", lines: +1 -1 regress/man/TH/noarg.out_lint (1.3), "Exp", lines: +1 -1 regress/man/TH/onearg.out_lint (1.3), "Exp", lines: +1 -1 regress/man/TH/twoargs.out_lint (1.3), "Exp", lines: +1 -1 regress/mdoc/Dd/Makefile (1.5), "Exp", lines: +4 -12 regress/mdoc/Dd/badarg.out_lint (1.6), "Exp", lines: +1 -1 regress/mdoc/Dd/dupe.out_lint (1.7), "Exp", lines: +1 -1 regress/mdoc/Dd/long.out_lint (1.6), "Exp", lines: +1 -1 regress/mdoc/Dd/manarg.out_lint (1.6), "Exp", lines: +1 -1 regress/mdoc/Dd/noarg.out_lint (1.5), "Exp", lines: +1 -1 regress/mdoc/Dd/order.out_lint (1.6), "Exp", lines: +1 -1 regress/mdoc/Os/dupe.in (1.3), "Exp", lines: +2 -2 regress/mdoc/Os/dupe.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Os/dupe.out_lint (1.6), "Exp", lines: +2 -2 regress/mdoc/Os/dupe.out_markdown (1.3), "Exp", lines: +1 -1 Align to the new, sane behaviour of the groff_mdoc(7) .Dd macro: without an argument, use the empty string, and always concatenate all arguments, no matter their number. This allows reducing the number of arguments of mandoc_normdate() and some other simplifications, at the same time polishing some error messages by adding the name of the macro in question. 2020-01-19 16:27 schwarze Changed: TODO (1.300), "Exp", lines: +1 -9 delete the entry for a crash that was already fixed 2020-01-11 21:02 schwarze Added: regress/tbl/layout/badspan.in (1.1) regress/tbl/layout/badspan.out_ascii (1.1) regress/tbl/layout/badspan.out_lint (1.1) Changed: regress/tbl/layout/Makefile (1.5), "Exp", lines: +3 -3 regress/tbl/layout/shortlines.in (1.2), "Exp", lines: +3 -5 regress/tbl/layout/shortlines.out_ascii (1.2), "Exp", lines: +1 -3 test tbl_term.c rev. 1.73 and tbl_data.c rev. 1.53: incomplete short layout lines followed by longer lines, and spans at the beginning of layout lines 2020-01-11 20:48 schwarze Changed: tbl_data.c (1.53), "Exp", lines: +3 -1 When autogenerating one layout cell from a data cell just beyond the last layout cell that was explicitly specified, properly initialize the spacing attribute to indicate that the default is to be used. Failing to do so and leaving the spacing at zero in this case caused misformatting when another row further down the table had even more explicitly specified cells. Bug found while trying to write regression tests for tbl_term.c rev. 1.73. 2020-01-11 16:26 schwarze Changed: tbl_term.c (1.73), "Exp", lines: +13 -14 Fix a logic error: When both the first and the third column are spans, do not use the number of columns of the span starting in column two for the span starting in column zero. With afl, Jan Schreiber <jes at posteo dot de> found cases where this caused NULL pointer accesses because too many layout cells were consumed. While here, make the code more similar at the three places that iterate over data cells. 2020-01-11 16:03 schwarze Changed: tree.c (1.85), "Exp", lines: +95 -12 Print more tbl(7) details to help debugging: column numbers, options, layout rows, cell types, cell modifiers. 2020-01-10 15:21 schwarze Changed: cgi.c (1.171), "Exp", lines: +3 -2 autocapitalize=none; also from Tim Baumgard 2020-01-10 12:54 schwarze Changed: cgi.c (1.170), "Exp", lines: +2 -2 Switch off the useless and annoying "autocomplete" feature; issue reported by Tim Baumgard <at bmgrd dot com>. landry@ and florian@ agree with the general direction. 2020-01-10 11:55 schwarze Changed: eqn.7 (1.39), "Exp", lines: +31 -24 Document the "delim" syntax and its usage. Closing a gap reported by bentley@, who also sent a patch, but i'm explaining it somewhat differently. While here, remove duplicate information from the text. OK bentley@ 2020-01-08 12:16 schwarze Added: regress/eqn/delim/basic.out_utf8 (1.1) Changed: eqn.c (1.84), "Exp", lines: +11 -3 regress/eqn/delim/Makefile (1.3), "Exp", lines: +2 -1 regress/eqn/delim/basic.in (1.4), "Exp", lines: +10 -1 regress/eqn/delim/basic.out_ascii (1.5), "Exp", lines: +1 -1 Skip whitespace before tokens, too. Bug found by bentley@ with input like "delim $$ delim off". 2020-01-08 11:01 schwarze Changed: regress/eqn/delim/basic.in (1.3), "Exp", lines: +6 -6 regress/eqn/delim/basic.out_ascii (1.4), "Exp", lines: +2 -2 Improve the test case by changing the eqn(7) delimiters such that it actually tests which parts of text lines are processed with eqn(7) and which are not. 2020-01-08 10:54 schwarze Changed: regress/eqn/delim/Makefile (1.2), "Exp", lines: +3 -1 Enable generation of the desired delim/basic output with groff(1). No functional change for the portable test suite. 2020-01-08 10:37 schwarze Changed: regress/regress.pl (1.13), "Exp", lines: +2 -3 regress/eqn/Makefile.inc (1.3), "Exp", lines: +1 -3 regress/man/TS/Makefile (1.2), "Exp", lines: +2 -11 regress/mdoc/Dd/Makefile (1.4), "Exp", lines: +2 -2 regress/tbl/Makefile.inc (1.3), "Exp", lines: +2 -11 Simplify maintainer targets in OpenBSD: EQN and TBL variables no longer exist and NROFF/NOPTS were replaced with GROFF/GOPTS. This doesn't change how things work in the protable version of the test suite. 2020-01-07 11:16 schwarze Changed: man.1 (1.36), "Exp", lines: +48 -35 Improve the description of -m/-M/MANPATH/man.conf in multiple respects after kn@ reported that the descriptions were incomplete and somewhat inaccurate. OK jmc@ kn@ 2019-12-31 22:58 schwarze Added: regress/tbl/layout/emptycol.in (1.1) regress/tbl/layout/emptycol.out_ascii (1.1) Changed: out.c (1.79), "Exp", lines: +18 -6 regress/tbl/layout/Makefile (1.4), "Exp", lines: +2 -2 When all cells in a tbl(1) column are empty, set the column width to 1n rather than to 0n, in the same way as groff does. This fixes misformatting reported by bentley@ in xkeyboard-config(7). 2019-12-26 19:51 schwarze Changed: roff.c (1.368), "Exp", lines: +14 -2 Do not fail an assertion when a high level macro occurs in the body of a conditional inside a .ce request block. Instead, abort the .ce block just like when there is no conditional in between. Bug found by espie@ working on the textproc/fstrcmp port. 2019-12-25 13:20 schwarze Changed: TODO (1.299), "Exp", lines: +6 -1 distinction between .Vt and .Va 2019-12-22 13:52 schwarze Changed: TODO (1.298), "Exp", lines: +9 -1 two new entries: make .Sh/.Ss parsed in mdoc(7) and delete release number verification from groff_mdoc(7) 2019-12-11 18:44 schwarze Changed: mdoc_html.c (1.332), "Exp", lines: +8 -4 In HTML, display straight quotes, not curly quotes, for Qq/Qo/Qc macros. This is the intended behavior and already the case in terminal output. Incorrect output noticed by Eldred Habert. Patch from bentley@. 2019-11-10 22:35 schwarze Changed: cgi.c (1.169), "Exp", lines: +3 -1 Add a Content-Security-Policy HTTP header that allows only CSS. This ensures that in a modern browser that understands the header, mandoc rendering bugs cannot possibly be interpreted as JavaScript. Patch from bentley@. 2019-11-10 17:38 schwarze Changed: TODO (1.297), "Exp", lines: +6 -1 want to get rid of the last style= attributes, suggested by bentley@ 2019-11-09 17:09 schwarze Changed: TODO (1.296), "Exp", lines: +14 -1 .ce .if .B crash reported by espie@, and one other bug 2019-11-09 14:39 schwarze Changed: mandoc_parse.h (1.5), "Exp", lines: +2 -1 roff.c (1.367), "Exp", lines: +8 -4 In the past, generating comment nodes stopped at the .TH or .Dd macro, which is usually close to the beginning of the file, right after the Copyright header comments. But espie@ found horrible input files in the textproc/fstrcmp port that generate lots of parse nodes before even getting to the header macro. In some formatters, comment nodes after some kinds of real content triggered assertions. So make sure generation of comment nodes stops once real content is encountered. 2019-10-13 14:45 schwarze Changed: NEWS (1.35), "Exp", lines: +83 -1 draft 1.14.6 release notes 2019-10-01 17:54 schwarze Changed: cgi.c (1.168), "Exp", lines: +11 -8 For invalid queries and for valid queries returning no result, return the appropriate 40x status code rather than 200. Improvement suggested and diff tested by John Gardner <gardnerjohng at gmail dot com>. 2019-09-15 00:08 schwarze Changed: mdoc_html.c (1.331), "Exp", lines: +27 -21 Fix line breaking in no-fill mode (.Bd -unfilled/<pre>), which apparently didn't work since the .Pp/<p> reorg. The new logic is more similar to what the terminal formatter does: 1. Before a node that starts a new mdoc(7) input line, start a new HTML output line. 2. An empty input line or a .Pp causes an empty output line. 3. Nothing needs to be done at the end of a node. Severe misformatting was reported in table(5) by Edgar Pettijohn <edgar at pettijohn dash web dot com> on misc@. 2019-09-13 19:26 schwarze Changed: mdoc_validate.c (1.375), "Exp", lines: +12 -6 regress/mdoc/Fo/warn.in (1.3), "Exp", lines: +16 -2 regress/mdoc/Fo/warn.out_ascii (1.3), "Exp", lines: +22 -1 regress/mdoc/Fo/warn.out_lint (1.6), "Exp", lines: +4 -0 regress/mdoc/Fo/warn.out_markdown (1.3), "Exp", lines: +22 -1 Improve validation of function names: 1. Relax checking to accept function types of the form "ret_type (fname)(args)" (suggested by Yuri Pankov <yuripv dot net>). 2. Tighten checking to require the closing parenthesis. 2019-09-05 13:40 schwarze Changed: regress/eqn/nullary/roman.out_html (1.4), "Exp", lines: +4 -14 regress/eqn/nullary/symbol.out_html (1.3), "Exp", lines: +2 -4 adapt to print_indent() HTML_NOSPACE fix, html.c rev. 1.261 2019-09-05 13:35 schwarze Changed: html.c (1.261), "Exp", lines: +5 -8 Do not clear HTML_NOSPACE in print_indent(). I don't think there ever was a reason for doing so. Besides, there is a discrepacy with respect to the point in the document affected. That flag controls whitespace at the current formatting point. But when HTML_BUFFER is in effect, the line break and indentation is typically inserted one word further to the left. Anything happening at that point to the left can't reasonably influence spacing at the different point further to the right. Among other effects, this change avoids some spurious line breaks in HTML code at points where they weren't supposed to happen, line breaks that in some cases caused undesirable, visible whitespace when the resulting HTML was rendered. 2019-09-03 18:19 schwarze Changed: regress/regress.pl (1.12), "Exp", lines: +6 -3 regress/char/space/zerowidth.out_html (1.2), "Exp", lines: +0 -2 regress/char/unicode/ascii.out_html (1.3), "Exp", lines: +0 -2 regress/char/unicode/invalid.out_html (1.4), "Exp", lines: +0 -2 regress/char/unicode/latin1.out_html (1.6), "Exp", lines: +0 -2 regress/char/unicode/latin1diff.out_html (1.5), "Exp", lines: +0 -2 regress/char/unicode/named.out_html (1.7), "Exp", lines: +0 -2 regress/char/unicode/namediff.out_html (1.7), "Exp", lines: +0 -2 regress/char/unicode/nogroff.out_html (1.3), "Exp", lines: +0 -2 regress/man/HP/literal.out_html (1.2), "Exp", lines: +0 -2 regress/man/IP/literal.out_html (1.4), "Exp", lines: +2 -4 regress/man/RS/literal.out_html (1.2), "Exp", lines: +4 -6 regress/man/RS/paragraph.out_html (1.2), "Exp", lines: +0 -2 regress/man/SH/paragraph.out_html (1.4), "Exp", lines: +1 -3 regress/man/SS/paragraph.out_html (1.4), "Exp", lines: +1 -3 regress/man/SY/literal.out_html (1.3), "Exp", lines: +4 -6 regress/man/TP/literal.out_html (1.2), "Exp", lines: +0 -2 regress/mdoc/Bd/nf.out_html (1.2), "Exp", lines: +1 -3 regress/mdoc/Bd/paragraph.out_html (1.2), "Exp", lines: +0 -2 regress/mdoc/Bf/paragraph.out_html (1.2), "Exp", lines: +0 -2 regress/mdoc/D1/spacing.out_html (1.2), "Exp", lines: +0 -2 regress/mdoc/Rs/paragraph.out_html (1.4), "Exp", lines: +4 -6 regress/mdoc/Sh/paragraph.out_html (1.4), "Exp", lines: +1 -3 regress/roff/esc/f.out_html (1.2), "Exp", lines: +0 -2 regress/roff/ft/badargs.out_html (1.4), "Exp", lines: +6 -8 regress/roff/sp/fill-man.out_html (1.2), "Exp", lines: +0 -2 regress/roff/string/dotT.out_html (1.3), "Exp", lines: +0 -2 adapt to new <p> output logic (html.c rev. 1.260) 2019-09-03 18:08 schwarze Changed: html.c (1.260), "Exp", lines: +25 -2 Wrap text and phrasing elements in paragraphs unless already contained in flow containers; never put them directly into sections. This helps to format paragraphs with the CSS class selector .Pp. Suggested by bentley@ and also by Colin Watson <cjwatson at debian> via Michael Stapelberg <stapelberg at debian>, see https://github.com/Debian/debiman/issues/116 2019-09-03 15:09 schwarze Changed: mdoc_html.c (1.330), "Exp", lines: +2 -4 Format .Nd with more logically with <span> rather than <div>; after all, it is supposed to be a one-line description. For the case where .Nd generates flow content (which is very bad style but syntactically valid), rely on the new feature of html_close_paragraph() to close out the <span> prematurely, effectively moving the flow content out of the .Nd for HTML presentation. For the final closing, also rely on the new html_close_paragraph() functionality, this time triggered by the subsequent block, which will typically be .Sh SYNOPSIS. 2019-09-03 12:31 schwarze Changed: html.c (1.259), "Exp", lines: +11 -14 Make html_close_paragraph() more versatile, more robust, less dependent on individual HTML elements, and simpler: don't just close <p>, <pre>, and <a>, but any element that establishes phrasing context. This doesn't change output for any OpenBSD manual page, but it will allow using this function more safely and at more places in the future. 2019-09-01 15:12 schwarze Changed: html.c (1.258), "Exp", lines: +1 -2 html.h (1.105), "Exp", lines: +1 -2 mdoc_html.c (1.329), "Exp", lines: +2 -2 delete the TAG_IDIV crutch, which is no longer used 2019-08-29 17:57 schwarze Changed: html.c (1.257), "Exp", lines: +40 -28 html.h (1.104), "Exp", lines: +12 -12 In the HTML formatter, assert(3) that no HTML nesting violation occurs. Tested on the complete manual page trees of Version 7 AT&T UNIX, 4.4BSD-Lite2, POSIX-2013, OpenBSD 2.2 to 6.5 and -current, FreeBSD 10.0 to 12.0, NetBSD 6.1.5 to 8.1, DragonFly 3.8.2 to 5.6.1, and Linux 4.05 to 5.02. 2019-08-02 17:06 schwarze Changed: html.c (1.256), "Exp", lines: +7 -12 minor sync of the inline stylesheet with mandoc.css: delete unimportant .Pp rule and shorten overly specific selectors 2019-07-28 19:41 schwarze Changed: main.c (1.340), "Exp", lines: +30 -37 Simplification, no functional change: Delete the "argc" argument from fs_search() which is now always 1, and move error reporting to the main() program where it is more logically placed and easier to see. 2019-07-28 18:36 schwarze Changed: main.c (1.339), "Exp", lines: +1 -17 There is no point in pledge(2)ing literally the same list twice, so delete the second copy. No functional change. 2019-07-28 18:23 schwarze Changed: main.c (1.338), "Exp", lines: +81 -83 In man(1) mode, do the search for each name independently, and show the results in the order of the command line arguments. Implemented by separating the code for man(1) and apropos(1) in the main() program. Surprisingly, the number of lines of code remains unchanged. Issue reported by deraadt@, additional input from millert@. 2019-07-28 13:13 schwarze Changed: main.c (1.337), "Exp", lines: +91 -81 Improve structure, no functional change: Unify code to process one single input file and move it into a dedicated new function. 2019-07-27 13:40 schwarze Changed: main.c (1.336), "Exp", lines: +22 -27 tag.c (1.25), "Exp", lines: +4 -2 tag.h (1.9), "Exp", lines: +3 -3 Move two more output state variables into the new struct outstate. Also, move setting of tag_files.tagname into tag_init(). No functional change. 2019-07-26 23:12 schwarze Changed: main.c (1.335), "Exp", lines: +62 -60 Cleanup, no functional change: For clarity, stop storing the same information (in this case, -O settings) in two structs. Give the local struct in main.c a more descriptive name (output state). 2019-07-26 21:03 schwarze Changed: main.c (1.334), "Exp", lines: +44 -38 Structural cleanup, no functional change: Mixing parser and formatter state in the same struct was a bad idea, so pull the parser state and configuration out of it. This makes sure output options are not passed into parser functions and parser options are not passed into output functions. While here, add comments to the important local variables in main(). 2019-07-26 18:01 schwarze Changed: main.c (1.333), "Exp", lines: +61 -55 Structural cleanup, no functional change: Move process group management out of main() into its own function because it has its own, self-contained logic and its own local variables. 2019-07-23 17:53 schwarze Changed: man_term.c (1.232), "Exp", lines: +13 -1 tagging support for .TP and .TQ; try e.g. man -O tag=commit cvs 2019-07-22 03:21 schwarze Changed: Makefile.depend (1.45), "Exp", lines: +1 -1 man_term.c (1.231), "Exp", lines: +65 -2 tag.c (1.24), "Exp", lines: +3 -3 Slowly start implementing tagging support for man(7) pages, even though it is obvious that this can never become as good as for mdoc(7) pages. As a first step, tag alphabetic arguments of .IP macros, which are often used for lists of options and keywords. Try "man -O tag=g as" to get the point. Thanks to Leah Neukirchen for recently reminding me that exploring how much can be done in this respect may be worthwhile: it is likely to slightly improve usability while adding only small amounts of relatively straightforward code. 2019-07-19 20:27 schwarze Changed: main.c (1.332), "Exp", lines: +2 -2 tag.c (1.23), "Exp", lines: +12 -3 If no tags were generated at all, unlink(2) the empty tags file as soon as the condition can be detected and do not pass it to less(1). This may happen for man(7) pages, for preformatted pages, and for very simple pages like true(1). The main benefit is that :t inside less(1) yields the clearer diagnostic message "No tags file" rather than the mildly confusing "No such tag in tags file": the latter might encourage further, futile attempts to jump to other tags. Improvement suggested by Leah Neukirchen <leah at vuxu dot org> from The Void. 2019-07-18 14:43 schwarze Added: regress/tbl/data/block_empty.in (1.1) regress/tbl/data/block_empty.out_ascii (1.1) Changed: regress/tbl/data/Makefile (1.5), "Exp", lines: +3 -2 new test for an empty text block; from rea@ via bapt@ (FreeBSD) 2019-07-15 21:41 schwarze Changed: main.c (1.331), "Exp", lines: +3 -2 don't print the final heads-up about messages when a search did not yield any manual pages to display; issue found with regress/usr.bin/mandoc/db/ 2019-07-15 19:20 schwarze Changed: mdoc.7 (1.279), "Exp", lines: +9 -2 roff.7 (1.114), "Exp", lines: +8 -2 explain escaping of end-of-sentence characters; missing info reported by Ian <ropers at gmail dot com> on misc@ 2019-07-14 18:16 schwarze Changed: main.c (1.330), "Exp", lines: +4 -2 mandoc.h (1.264), "Exp", lines: +2 -1 mandoc_msg.c (1.8), "Exp", lines: +10 -1 If messages are shown and output is printed without a pager, display a heads-up on stderr at the end because otherwise, users may easily miss the messages: because messages typically occur while parsing, they typically preceed the output. This is most useful with flag combinations like "-c -W all" but may also help in some unusual error scenarios. Inconvenient ordering of output originally pointed out by espie@ for the example situation that /tmp/ is not writeable. 2019-07-11 17:06 schwarze Changed: mdoc_argv.c (1.120), "Exp", lines: +3 -2 regress/mdoc/Bl/column.in (1.4), "Exp", lines: +4 -3 regress/mdoc/Bl/column.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Bl/column.out_lint (1.7), "Exp", lines: +1 -1 regress/mdoc/Bl/column.out_markdown (1.3), "Exp", lines: +1 -1 When parsing a tab character that is not preceded by a space character on an .It -column line, args() sets the MDOC_PHRASEQL flag to Quote the Last word of the Phrase. Even if it turns out this quoting is not needed because the word is already quoted for other reasons, clear the flag at the end of parsing the phrase, such that the flag does not leak to the next phrase. This patch fixes the bug that the trailing Macro on a line of the form .It "word<tab>word" Ta word Macro<eol> was incorrectly considered quoted and hence not parsed. Bug found by Havard Eidnes (he@) with the NetBSD gettytab(5) manual page: https://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=54361 Reported via Thomas Klausner (wiz@). 2019-07-10 19:39 schwarze Changed: Makefile.depend (1.44), "Exp", lines: +2 -2 main.c (1.329), "Exp", lines: +142 -157 mandoc.1 (1.240), "Exp", lines: +49 -6 mandoc.h (1.263), "Exp", lines: +31 -3 mandoc_msg.c (1.7), "Exp", lines: +36 -8 manpath.c (1.40), "Exp", lines: +48 -44 read.c (1.214), "Exp", lines: +17 -18 tag.c (1.22), "Exp", lines: +21 -11 Some time ago, i simplified mandoc_msg() such that it can be used everywhere and not only in the parsers. For more uniform messages, use it at more places instead of err(3), in particular in the main program. While here, integrate a few trivial functions called at exactly one place into the main option parser, and let a few more functions use the normal convention of returning 0 for success and -1 for error. 2019-07-10 12:49 schwarze Changed: cgi.c (1.167), "Exp", lines: +1 -2 in man.cgi(8), disable -O toc by default; requested by deraadt@ 2019-07-09 03:46 schwarze Changed: man.7 (1.144), "Exp", lines: +10 -6 The non-standard .EX/.EE macro pair was invented for Version 9 AT&T UNIX and only got adopted by GNU two decades later. Thanks to Doug McIlroy <doug at cs dot dartmouth dot edu> for pointing out the error. 2019-07-06 20:05 schwarze Changed: main.c (1.328), "Exp", lines: +5 -3 prevent mandoc from segfaulting if /tmp is not writable; patch from espie@ 2019-07-01 23:30 schwarze Changed: roff.7 (1.113), "Exp", lines: +3 -3 use the standard spelling of the word "idiosyncrasy"; suggested by Michal Nowak <mnowak at startmail dot com> 2019-07-01 22:56 schwarze Changed: configure (1.71), "Exp", lines: +2 -2 dbm.c (1.7), "Exp", lines: +3 -3 dbm_map.h (1.2), "Exp", lines: +2 -2 lib.in (1.22), "Exp", lines: +2 -2 man_term.c (1.230), "Exp", lines: +2 -2 mansearch.c (1.82), "Exp", lines: +2 -2 mdoc_markdown.c (1.31), "Exp", lines: +2 -2 roff.c (1.366), "Exp", lines: +3 -3 tbl_term.c (1.72), "Exp", lines: +2 -2 regress/regress.pl (1.11), "Exp", lines: +2 -2 delete trailing whitespace and space-tab sequences; no code change; patch from Michal Nowak <mnowak at startmail dot com> who found these with git pbchk in the illumos tree 2019-06-27 15:07 schwarze Changed: man_validate.c (1.149), "Exp", lines: +13 -15 mandoc.c (1.116), "Exp", lines: +9 -4 mdoc_validate.c (1.374), "Exp", lines: +4 -16 Fix mandoc_normdate() and the way it is used. In the past, it could return NULL but the calling code wasn't prepared to handle that. Make sure it always returns an allocated string. While here, simplify the code by handling the "quick" attribute inside mandoc_normdate() rather than at multiple callsites. Triggered by deraadt@ pointing out that snprintf(3) error handling was incomplete in time2a(). 2019-06-27 12:20 schwarze Changed: man_term.c (1.229), "Exp", lines: +17 -12 mdoc_term.c (1.374), "Exp", lines: +14 -10 Improve "man -h" output. 1. For pages lacking a SYNOPSIS, show the NAME section rather than nothing. 2. Do not print a stray blank before the beginning of a SYNOPSIS. Both issues reported by, and patch OK'ed by, tb@. 2019-06-11 16:04 schwarze Added: regress/tbl/layout/shortlines.in (1.1) regress/tbl/layout/shortlines.out_ascii (1.1) Changed: TODO (1.295), "Exp", lines: +4 -1 tbl_term.c (1.71), "Exp", lines: +11 -5 regress/tbl/layout/Makefile (1.3), "Exp", lines: +2 -2 Do not access a NULL pointer if a table contains a horizontal line next to a table line having fewer columns than the table as a whole. Bug found by Stephen Gregoratto <dev at sgregoratto dot me> with aerc-config(5). 2019-06-03 20:23 schwarze Changed: term.c (1.281), "Exp", lines: +3 -1 Explicitly state that the cases in the inner switch in term_fill() are exhaustive. While there is no bug, being explicit has no downside is is potentially safer for the future. Michal Nowak <mnowak at startmail dot com> reported that gcc 4.4.4 and 7.4.0 on illumos throw -Wuninitialized false positives. 2019-06-03 19:58 schwarze Changed: read.c (1.213), "Exp", lines: +2 -2 Initialize the local variable "lastln" in mparse_buf_r(). While there is no bug, it logically makes sense given the meaning of the variable that lastln is NULL as long as firstln is NULL. Michal Nowak <mnowak at startmail dot com> reported that gcc 4.4.4 and 7.4.0 on illumos throw -Wuninitialized false positives. 2019-06-03 19:50 schwarze Changed: mdoc_term.c (1.373), "Exp", lines: +2 -1 Initialize the local variable "act" in print_mdoc_node(). While there is no bug, it helps clarity, and it is also safer in this particular code because in case a bug gets introduced later, accessing a NULL pointer is less dangerous than accessing an uninitialized pointer. Michal Nowak <mnowak at startmail dot com> reported that gcc 4.4.4 and 7.4.0 on illumos throw -Wuninitialized false positives. 2019-06-02 16:57 schwarze Changed: mandoc.css (1.46), "Exp", lines: +21 -8 Support prefers-color-scheme: dark. The :visited rule was contributed by <Armin at Besirovic dot com>. Guidance and OK tj@. 2019-05-26 01:28 schwarze Changed: mandoc.1 (1.239), "Exp", lines: +4 -3 use proper crossreference; patch from naddy@ 2019-05-21 08:04 schwarze Changed: mandoc.c (1.115), "Exp", lines: +3 -3 Do not print the style message "missing date" when the date is given as "$Mdocdate: September 23 2021 $" without an actual date. That is the canonical way to write a new manual page and not bad style at all. Misleading message reported by kn@ on tech@. 2019-05-21 07:52 schwarze Changed: arch.c (1.15), "Exp", lines: +2 -2 socppc makes an extended visit to the bigbucket; patch from deraadt@; OK kettenis 2019-05-03 18:39 schwarze Changed: main.c (1.327), "Exp", lines: +3 -6 manpath.c (1.39), "Exp", lines: +2 -3 avoid duplicate "bad argument" error message, also shortening the code 2019-05-03 18:23 schwarze Changed: manpath.c (1.38), "Exp", lines: +4 -3 when processing unknown output options, prevent passing NULL to printf; patch from anton@ 2019-05-03 18:17 schwarze Changed: mandocdb.c (1.263), "Exp", lines: +12 -7 Enter dangling .so links into the database, to avoid harassing users of man(1) about running makewhatis(8), which won't help. Seeing the content of the broken .so request might even help users to figure out how to access the manual page they want. Fixing the last issue reported by Lorenzo Beretta <loreb at github> as part of https://github.com/void-linux/void-packages/issues/9868 . 2019-05-03 17:31 schwarze Changed: TODO (1.294), "Exp", lines: +1 -7 main.c (1.326), "Exp", lines: +12 -7 In fs_lookup(), use stat(2) rather than access(2) to check file existence. Some mildly broken real-world packages on some operating systems contain dangling symlinks in manual page directories: pestering the user to run makewhatis(8) makes no sense because that won't help. On the other hand, missing read permissions deserve ugly error messages and are unlikely to occur in practice anyway. Fixing an issue reported by Lorenzo Beretta <loreb at github> as part of https://github.com/void-linux/void-packages/issues/9868 . 2019-05-03 16:14 schwarze Changed: TODO (1.293), "Exp", lines: +1 -13 main.c (1.325), "Exp", lines: +17 -6 In man(1) mode with a specific section requested, try harder to find the best match. Use this order of preference: 1. The section in both the directory name and the file name matches exactly. 2. The section in the file name matches exactly. 3. The section in the directory name matches exactly. 4. Neither of them matches exactly. The latter can happen when mansearch() finds substring matches or when the second .Dt argument mismatches the dir and file names. Lorenzo Beretta <loreb at github> reported that this caused real problems on Void Linux, like "man 3 readline" showing readline(3m). See https://github.com/void-linux/void-packages/issues/9868 for details. 2019-05-03 09:39 schwarze Changed: main.c (1.324), "Exp", lines: +2 -2 In man(1) mode, when the first argument starts with a digit, optionally followed by a letter, and at least one more argument follows, interpret the first argument as a section name even when additional characters follow after the digit and letter. This is needed because many operating systems have section names consisting of a digit followed by more than one letter - for example Illumos, Solaris, Linux, even NetBSD. There is very little risk of regressions: in the whole corpus of manual pages on man.openbsd.org, there isn't a single manual page name starting with a digit. And even if programs like "0ad" or "4channels" had manual pages, "man 0ad" and "man -a cat 0ad" would still work, only "man -a 0ad cat" will fail with "man: No entry for cat in section 0ad of the manual." Fixing one of the issues reported by Lorenzo Beretta <loreb at github> as part of https://github.com/void-linux/void-packages/issues/9868 . 2019-04-30 18:51 schwarze Changed: TODO (1.292), "Exp", lines: +1 -7 main.c (1.323), "Exp", lines: +3 -1 mansearch.c (1.81), "Exp", lines: +7 -3 mansearch.h (1.30), "Exp", lines: +2 -1 In man(1) mode, i.e. when asking for a single manual page by name, prefer file name matches over .Dt/.TH matches over first NAME matches over later NAME matches, but do not change the ordering for apropos(1) nor for man -a. This reverts main.c rev. 1.310 and mansearch.h rev. 1.29 and includes a partial revert of mansearch.c rev. 1.79. Regression reported by Lorenzo Beretta <loreb at github> as part of https://github.com/void-linux/void-packages/issues/9868 . 2019-04-30 15:53 schwarze Changed: html.c (1.255), "Exp", lines: +26 -48 html.h (1.103), "Exp", lines: +4 -13 man_html.c (1.174), "Exp", lines: +3 -3 roff_html.c (1.20), "Exp", lines: +2 -2 regress/roff/ft/badargs.out_html (1.3), "Exp", lines: +4 -5 In HTML output, allow switching the desired font for subsequent text without printing an opening tag right away, and use that in the .ft request handler. While here, garbage collect redundant enum htmlfont and reduce code duplication in print_text(). Fixing an assertion failure reported by Michael <Stapelberg at Debian> in pmRegisterDerived(3) from libpcp3-dev. 2019-04-30 11:48 schwarze Changed: mandoc.1 (1.238), "Exp", lines: +6 -3 improve the description of the message "blank line in fill mode"; triggered by a misunderstanding by sashan@ 2019-04-24 13:15 schwarze Changed: mdoc.7 (1.278), "Exp", lines: +12 -10 clarify the difference between .Cm and .Ic; triggered by a question from Fabio Scotoni 2019-04-23 18:46 schwarze Changed: mdoc.7 (1.277), "Exp", lines: +10 -3 clarify how .%P is conventionally used; triggered by a question from Fabio Scotoni <fabio at esse dot ch> 2019-04-23 17:57 schwarze Changed: eqn.7 (1.38), "Exp", lines: +3 -3 add missing "pp." to .%P macro; reported by Fabio Scotoni <fabio at esse dot ch> 2019-04-23 11:43 schwarze Changed: TODO (1.291), "Exp", lines: +22 -1 issues found by Jan Stary in groffer(1) version 1.19 2019-04-21 23:51 schwarze Added: regress/roff/de/empty.in (1.1) regress/roff/de/empty.out_ascii (1.1) Changed: roff.c (1.365), "Exp", lines: +7 -2 regress/roff/de/Makefile (1.5), "Exp", lines: +3 -3 When calling an empty macro, do not clobber existing arguments. Fixing a bug found with the groffer(1) version 1.19 manual page following a report from Jan Stary. 2019-04-21 22:48 schwarze Added: regress/roff/while/break.in (1.1) regress/roff/while/break.out_ascii (1.1) Changed: roff.7 (1.112), "Exp", lines: +3 -4 roff.c (1.364), "Exp", lines: +46 -9 regress/roff/while/Makefile (1.2), "Exp", lines: +2 -2 Implement the roff .break request (break out of a .while loop). Jan Stary <hans at stare dot cz> found it in an ancient groffer(1) manual page (version 1.19) on MacOS X Mojave. Having .break not implemented wasn't a particularly bright idea because obviously, it tended to cause infinite loops. 2019-04-01 15:57 schwarze Changed: TODO (1.290), "Exp", lines: +25 -1 new man(1) issues from Lorenzo Beretta <loreb at github> 2019-03-31 19:17 schwarze Changed: mandoc_char.7 (1.76), "Exp", lines: +4 -4 While we do encourage simplicity in the sense of writing plain '-' for hyphen-minus, soften the language a bit: writing \- for it is not wrong, and people started sending us patches to replace \- with '-' in existing manual pages, which is not a worthwhile change unless the \- is used at a place where it doesn't belong. OK jmc@ 2019-03-29 21:27 schwarze Changed: out.c (1.78), "Exp", lines: +2 -2 Set the maximum column index in a tbl(7) to the maximum *right* edge of any cell span, not to the maximum *left* edge, which may be smaller if the last column of the table is only reached by horizontal spans, but not by any regular cell in any row of the table. Otherwise, the algorithm calculating column widths accessed memomy after the end of the colwidth[] array, while it was trying to handle the rightmost column(s). Crash reported by Jason Thorpe <thorpej at NetBSD> via https://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=54069 and via Thomas Klausner (wiz@). Christos@ Zoulas sent a (correct, but slightly confusing) patch. The patch i'm committing here is easier to understand. 2019-03-19 16:26 schwarze Changed: read.c (1.212), "Exp", lines: +3 -1 When the last line of the input is empty and the previous line reduced the line input buffer to a length of one byte, do not write one byte past the end of the line input buffer. Minimal code to show the bug: printf ".ds X\n.X\n\n" | MALLOC_OPTIONS=C mandoc Bug found by bentley@ in the sysutils/rancid par(1) manual page. 2019-03-18 08:00 schwarze Changed: tbl_term.c (1.70), "Exp", lines: +5 -3 fix a NULL pointer access on empty tbl(7) data cells that bentley@ found in syncthing-bep(7) 2019-03-17 18:21 schwarze Changed: Makefile.depend (1.43), "Exp", lines: +3 -3 eqn_html.c (1.19), "Exp", lines: +2 -1 mandoc_headers.3 (1.31), "Exp", lines: +60 -41 tbl_html.c (1.33), "Exp", lines: +2 -1 The header file "html.h" uses enum roff_tok, so "roff.h" must be included before it. Diff from bcallah@ tweaked by me; he found the bug by compiling with pcc. 2019-03-16 21:35 schwarze Changed: tbl_term.c (1.69), "Exp", lines: +18 -13 When drawing a horizontal line in tbl(7) UTF-8 output, it is not sufficient to look at two data rows, but up to three are needed: the one above to identify vertical lines branching off upward, the row itself (in case the line is in a data row rather than a layout line) to figure out the horizontal line style, and the row below to identify vertical lines branching off downward. As an example, bentley@ reported from the mpv(1) manual page that in a tbl(7) having a vertical line in the middle and a horizontal line in the bottom data row, the vertical line extended below the bottom horizontal line. 2019-03-13 18:29 schwarze Changed: man_validate.c (1.148), "Exp", lines: +3 -3 mdoc_validate.c (1.373), "Exp", lines: +3 -3 Contrary to what the NetBSD attribute(3) manual page suggests, using __dead instead of __attribute__((__noreturn__)) actually hinders portability rather than helping it. Given that mandoc already uses __attribute__ in several files and that in the portable version, ./configure already contains rudimentary support for ignoring it on platforms that do not support it, use __attribute__ directly. This is expected to fix build failures that Stephen Gregoratto <dev at sgregoratto dot me> reported from Arch and Debian Linux. 2019-03-11 13:21 schwarze Changed: man_validate.c (1.147), "Exp", lines: +3 -3 mdoc_validate.c (1.372), "Exp", lines: +3 -3 mark check_abort() and post_abort() as __dead; based on a patch by Christos@ Zoulas at NetBSD 2019-03-10 09:32 tag VERSION_1_14_5 2019-03-10 09:32 schwarze Changed: NEWS (1.34), "Exp", lines: +10 -5 release 1.14.5 2019-03-10 09:23 schwarze Changed: regress/regress.pl (1.10), "Exp", lines: +2 -1 Automatically detect whether diff(1) supports the -a option. Useful on illumos and on Oracle Solaris, where it doesn't. Patch written based on a report from Sevan Janiyan. 2019-03-09 15:55 schwarze Changed: man.1 (1.35), "Exp", lines: +14 -2 Mention mandoc.db(5), makewhatis(8), and weekly(8). Omission noticed by espie@ long ago, and wording tweaked by jmc@. 2019-03-06 16:08 schwarze Changed: Makefile (1.530), "Exp", lines: +5 -1 new dist-install maintainer target 2019-03-06 16:04 schwarze Changed: configure (1.70), "Exp", lines: +2 -2 while $() is more modern than ``, it does not work with the default /bin/sh on Solaris 10, so use the classical form 2019-03-06 15:58 schwarze Changed: INSTALL (1.23), "Exp", lines: +4 -3 regress/regress.pl.1 (1.4), "Exp", lines: +20 -2 mention Solaris BUGS in regress.pl(1) 2019-03-06 15:55 schwarze Changed: mandoc_msg.c (1.6), "Exp", lines: +3 -1 this file needs to #include "config.h" because it calls getprogname(); found while testing on Debian jessie 2019-03-06 12:32 schwarze Changed: cgi.c (1.166), "Exp", lines: +2 -2 drop redundant '0' flag from "%02.2X" format string; found by a compiler warning from gcc 4.9.2 on Linux 2019-03-06 11:19 schwarze Changed: Makefile (1.529), "Exp", lines: +10 -7 work towards 1.14.5, mostly updating WWW_INCS 2019-03-06 11:11 schwarze Changed: Makefile.depend (1.42), "Exp", lines: +1 -0 add arch.o 2019-03-06 10:22 schwarze Changed: NEWS (1.33), "Exp", lines: +70 -1 draft 1.14.5 NEWS entry 2019-03-06 10:18 schwarze Changed: configure (1.69), "Exp", lines: +17 -1 configure.local.example (1.36), "Exp", lines: +2 -1 main.c (1.322), "Exp", lines: +5 -1 autoconfiguration test whether less(1) supports the -T option; needed for Alpine Linux because it uses busybox less(1) by default; based on a patch from Daniel Sabogal explained to me by Natanael Copa 2019-03-04 18:15 schwarze Changed: main.c (1.321), "Exp", lines: +2 -2 For TIOCGWINSZ, #include <termios.h> rather than <sys/termios.h> like almost all other userland programs. This also improves portability: for example, it looks like <sys/termios.h> does not work on FreeBSD, or at least bapt@ did the same change over there. 2019-03-04 17:35 schwarze Changed: lib.in (1.21), "Exp", lines: +2 -1 add libbe; from kevans@ via FreeBSD rev. 337663 2019-03-04 13:01 schwarze Changed: Makefile (1.528), "Exp", lines: +5 -3 TODO (1.289), "Exp", lines: +1 -10 arch.c (1.14), "Exp", lines: +33 -16 configure (1.68), "Exp", lines: +24 -2 configure.local.example (1.35), "Exp", lines: +14 -3 main.c (1.320), "Exp", lines: +6 -2 mdoc_validate.c (1.371), "Exp", lines: +14 -40 roff.h (1.69), "Exp", lines: +3 -2 When the -S option is given to man(1) and the requested manual page name is not found and the requested architecture is unknown, complain about the architecture rather than about the manual page name: $ man -S vax cpu man: Unknown architecture "vax". $ man -S sparc64 foobar man: No entry for foobar in the manual. Friendlier error message suggested by jmc@, who also OK'ed the patch. 2019-03-04 11:40 schwarze Changed: TODO (1.288), "Exp", lines: +1 -5 mdoc_validate.c (1.370), "Exp", lines: +2 -2 Fix the last straggler where the struct roff_node "line" member was abused to detect an input line break; instead, use the NODE_LINE flag to improve robustness. 2019-03-04 11:37 schwarze Changed: TODO (1.287), "Exp", lines: +12 -4 additional comments on two TODO items 2019-03-03 13:02 schwarze Changed: html.c (1.254), "Exp", lines: +18 -7 main.c (1.319), "Exp", lines: +3 -1 main.h (1.30), "Exp", lines: +3 -2 mandocd.c (1.11), "Exp", lines: +4 -2 Reset HTML formatter state, in particular the id_unique hash, after processing each manual page, such that the next page starts from a clean state and doesn't continue suffix numbering. Issue found while looking at https://github.com/Debian/debiman/issues/48 which was brought up by Orestis Ioannou <oorestisime at github>. 2019-03-03 11:01 schwarze Changed: demandoc.c (1.33), "Exp", lines: +3 -2 mandocd.c (1.10), "Exp", lines: +3 -3 add forgotten mparse options to two rarely used programs 2019-03-02 22:04 schwarze Changed: man.7 (1.143), "Exp", lines: +165 -178 Do not open a subsection for each and every macro. Instead, use a tagged list and the canonical .Ic macro as it is natural for such purposes. While here, also delete heaps of needless escaping. 2019-03-02 21:03 schwarze Changed: tbl.7 (1.34), "Exp", lines: +4 -4 remove a few words to improve flow; from tedu@ 2019-03-02 16:30 schwarze Changed: TODO (1.286), "Exp", lines: +1 -6 man_html.c (1.173), "Exp", lines: +68 -16 Represent multiple subsequent .IP blocks having a consistent head argument of *, \-, or \(bu as <ul> rather than as <dl>, using a bit of heuristics. Basic idea suggested by Dagfinn Ilmari Mannsaker <ilmari at github> in https://github.com/Debian/debiman/issues/67 and independently by <Pali dot Rohar at gmail dot com> on <discuss at mandoc dot bsd dot lv>. 2019-03-01 10:57 schwarze Changed: TODO (1.285), "Exp", lines: +1 -8 html.c (1.253), "Exp", lines: +2 -1 html.h (1.102), "Exp", lines: +2 -1 man_html.c (1.172), "Exp", lines: +14 -7 mandoc.css (1.45), "Exp", lines: +11 -9 mdoc_html.c (1.328), "Exp", lines: +6 -2 regress/man/IP/literal.out_html (1.3), "Exp", lines: +3 -0 regress/man/SH/paragraph.out_html (1.3), "Exp", lines: +4 -0 regress/man/SS/paragraph.out_html (1.3), "Exp", lines: +3 -0 regress/mdoc/Rs/paragraph.out_html (1.3), "Exp", lines: +2 -0 regress/mdoc/Sh/paragraph.out_html (1.3), "Exp", lines: +4 -0 regress/roff/ft/badargs.out_html (1.2), "Exp", lines: +1 -1 Wrap .Sh/.SH sections and .Ss/.SS subsections in HTML <section> elements as recommended for accessibility by the HTML 5 standard. Triggered by a similar, but slightly different suggestion from Laura Morales <lauretas at mail dot com>. 2019-02-28 16:36 schwarze Changed: TODO (1.284), "Exp", lines: +1 -6 man_html.c (1.171), "Exp", lines: +29 -3 Format multiple subsequent .IP or multiple subsequent .TP/.TQ as a single <dl> list rather than opening a new list for each item; feature suggested by Pali dot Rohar at gmail dot com. 2019-02-23 18:53 schwarze Changed: mandoc.1 (1.237), "Exp", lines: +13 -2 Explain the ASCII rendering of single quotes because that repeatedly caused confusion in the past. People plainly do not expect that there are limits to the compatibility between Unicode and ASCII, but there are. The information belongs here and not into mandoc_char(7) because it explains how the specific output device (-T ascii) works and because it has nothing to do with the question of how characters are represented on the input side. 2019-02-09 21:02 schwarze Changed: tbl_term.c (1.68), "Exp", lines: +45 -48 The horizontal line in a data cell containing only "_" or "=" connects to the horizontally adjacent vertical line or cell; fixing a bug reported by bentley@. 2019-02-09 16:46 schwarze Changed: tbl.7 (1.33), "Exp", lines: +17 -3 add a BUGS section explaining the situation with box and line drawing in UTF-8 output; suggested by bentley@ 2019-02-09 16:00 schwarze Changed: tbl_data.c (1.52), "Exp", lines: +23 -10 ignore empty request lines in the table data reader; fixing a minibug reported by bentley@ 2019-02-08 22:51 schwarze Changed: tbl.7 (1.32), "Exp", lines: +3 -3 fix typo: "a data cells" -> "a data cell"; from bentley@ 2019-02-07 15:45 schwarze Changed: mdoc.7 (1.276), "Exp", lines: +4 -6 style improvement from jmc@, no output change; original commit message: .Pp .Bd ... -compact is better written as .Bd ... 2019-02-06 22:18 schwarze Changed: mdoc.7 (1.275), "Exp", lines: +3 -3 Remove the misleading statement ".No takes no arguments". In facts, i works very similarly to .Em and .Sy. Triggered by a question from Kurt Mosiejczuk <kurt at cranky dot work>. 2019-02-06 21:11 schwarze Added: regress/roff/de/tab.in (1.1) regress/roff/de/tab.out_ascii (1.1) regress/roff/ds/tab.in (1.1) regress/roff/ds/tab.out_ascii (1.1) regress/roff/nr/tab.in (1.1) regress/roff/nr/tab.out_ascii (1.1) regress/roff/rn/tab.in (1.1) regress/roff/rn/tab.out_ascii (1.1) regress/roff/rn/tab.out_lint (1.1) Changed: roff.c (1.363), "Exp", lines: +19 -8 regress/roff/cond/register.in (1.3), "Exp", lines: +10 -2 regress/roff/cond/register.out_ascii (1.2), "Exp", lines: +5 -1 regress/roff/cond/string.in (1.4), "Exp", lines: +10 -2 regress/roff/cond/string.out_ascii (1.3), "Exp", lines: +5 -1 regress/roff/de/Makefile (1.4), "Exp", lines: +4 -3 regress/roff/ds/Makefile (1.2), "Exp", lines: +2 -2 regress/roff/nr/Makefile (1.4), "Exp", lines: +2 -2 regress/roff/rn/Makefile (1.2), "Exp", lines: +3 -2 Let roff_getname() end the roff identifier at a tab character and audit all its callers whether termination is handled correctly. Resulting improvements: * An escape or tab ending the macro name in a macro invocation is discarded, and argument processing is started after it. * An escape or tab ending a name in ".if d" and ".if r" is preserved. * An escape ending a name in ".ds" causes the whole request to be ignored. * A tab ending a name in ".ds" becomes part of the string. * An escape or tab ending a name in ".rm" causes the rest of the line to be ignored. * An escape or tab ending the first name in ".als", ".rn", or ".nr" causes the whole request to be ignored. Kurt Jaeger <pi at FreeBSD> made me aware of https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=235456#c0 and in that bug report, comment 0 item (3) is a special case of this class of issues. Yes, the "mh" manual pages are no doubt among the worst on the planet. 2019-02-06 17:40 schwarze Changed: roff.c (1.362), "Exp", lines: +15 -12 adjust style and comments in roff_getname(); no functional change 2019-01-31 23:00 schwarze Changed: cgi.c (1.165), "Exp", lines: +2 -2 Relax overzealous PATH_INFO validation. URIs like https://man.openbsd.org/OpenBSD-2.2/cat1/cat.0 are still required to work because they result from apropos searches for old releases (up to 5.0) which used to install preformatted manual pages. Regression reported by jj@. 2019-01-31 16:31 schwarze Added: regress/tbl/opt/center-mdoc.in (1.1) regress/tbl/opt/center-mdoc.out_ascii (1.1) Changed: regress/tbl/opt/Makefile (1.2), "Exp", lines: +2 -2 Since resetting of offsets works quite differently in man(7) and mdoc(7), test table centering in an mdoc(7) document as well. Related to tbl_term.c rev. 1.67. 2019-01-31 16:06 schwarze Changed: tbl_term.c (1.67), "Exp", lines: +8 -4 Fix tbl(7) centering in mdoc(7) documents. Since resetting of offsets works quite differently in the mdoc(7) and man(7) formatters, the tbl(7) formatter needs to save the global offset on entry and restore it on exit. The additional indentation needed for table centering has to be added to its own offset variable and applied to each line of the table, rather than only to the first. Bug found by bentley@ in emulators/fceux(6). 2019-01-18 14:36 schwarze Changed: html.c (1.252), "Exp", lines: +50 -42 html.h (1.101), "Exp", lines: +3 -1 man_html.c (1.170), "Exp", lines: +10 -8 mdoc_html.c (1.327), "Exp", lines: +11 -8 The .UR and .MT blocks in man(7) are represented by <a> elements which establish phrasing context, but they can contain paragraph breaks (which is relevant for terminal formatting, so we can't just change the structure of the syntax tree), which are respresented by <p> elements and cannot occur inside <a>. Fix this by prematurely closing the <a> element in the HTML formatter. This menas that the clickable text in HTML output is shorter than what is represented as the link text in terminal output, but in HTML, it is frankly impossible to have the clickable area of a hyperlink extend across a paragraph break. The difference in presentation is not a major problem, and besides, paragraph breaks inside .UR are rather poor style in the first place. The implementation is quite tricky. Naively closing out the <a> prematurely would result in accessing a stale pointer when later reaching the physical end of the .UR block. So this commit separates visual and structural closing of "struct tag" stack items. Visual closing means that the HTML element is closed but the "struct tag" remains on the stack, to avoid later access to a stale pointer and to avoid closing the same HTML element a second time later. This also needs reference counting of pointers to "struct tag" stack items because often more than one child holds a pointer to the same parent item, and only the outermost child can safely do the physical closing. In the whole corpus of nearly half a million manual pages on man.openbsd.org, this problem occurs in exactly one page: the groff(1) version 1.20.1 manual contained in DragonFly-3.8.2, which contains a formatting error triggering the bug. 2019-01-17 08:14 schwarze Changed: TODO (1.283), "Exp", lines: +2 -29 Delete several entries that were already fixed. The two entries about dashes, hyphens, and minus signs are no longer relevant because we decided on a policy that is now documented. 2019-01-17 06:33 schwarze Added: regress/roff/esc/bs_man.in (1.1) regress/roff/esc/bs_man.out_ascii (1.1) regress/roff/esc/bs_mdoc.in (1.1) regress/roff/esc/bs_mdoc.out_ascii (1.1) Changed: regress/roff/esc/Makefile (1.6), "Exp", lines: +2 -2 Test handling of escaped backslashes because the code related to copy mode is complicated and prone to regressions. 2019-01-15 12:16 schwarze Changed: term.c (1.280), "Exp", lines: +4 -3 In PostScript and PDF output, one AFM unit is not nearly enough inter-word spacing, let's try again with 250 AFM units. Regression caused during my recent term_flushln() reorg in rev. 1.278, reported by brynet@ (sorry and many thanks for reporting). 2019-01-11 17:04 schwarze Changed: main.c (1.318), "Exp", lines: +2 -2 read.c (1.211), "Exp", lines: +5 -3 Improve error reporting when a file given on the command line cannot be opened: * Mention the filename. * Report the errno for the file itself, not the one with .gz appended. 2019-01-11 16:36 schwarze Changed: man_html.c (1.169), "Exp", lines: +2 -2 mdoc_html.c (1.326), "Exp", lines: +3 -3 do not access a NULL pointer when formatting a completely empty document 2019-01-11 12:56 schwarze Changed: html.c (1.251), "Exp", lines: +1 -7 man_html.c (1.168), "Exp", lines: +6 -6 mandoc.css (1.44), "Exp", lines: +76 -2 mandoc_html.3 (1.19), "Exp", lines: +2 -7 mdoc_html.c (1.325), "Exp", lines: +43 -43 regress/man/IP/literal.out_html (1.2), "Exp", lines: +2 -2 regress/man/SH/paragraph.out_html (1.2), "Exp", lines: +2 -2 regress/man/SS/paragraph.out_html (1.2), "Exp", lines: +2 -2 regress/man/SY/literal.out_html (1.2), "Exp", lines: +2 -2 regress/mdoc/Rs/paragraph.out_html (1.2), "Exp", lines: +8 -9 regress/mdoc/Sh/paragraph.out_html (1.2), "Exp", lines: +2 -2 Remove the HTML title= attributes which harmed accessibility and violated the principle of separation of content and presentation. Instead, implement the tooltips purely in CSS. Thanks to John Gardner <gardnerjohng at gmail dot com> for suggesting most of the styling in the new ::before rules. 2019-01-10 07:40 schwarze Changed: mandoc.css (1.43), "Exp", lines: +7 -2 mdoc_html.c (1.324), "Exp", lines: +1 -13 After years of gnashing of teeth, i finally found a way to avoid having to write empty list elements for non-compact .Bl -tag lists: 1. Add margin-bottom to the <dd>. Note that margin-top on the <dt> doesn't work because it would put a short <dt> lower than the <dd>; margin-bottom on the <dt> doesn't work because it would put vertical space before the <dd> for a long <dt>; and margin-top on the <dd> doesn't work because it would put a short <dt> higher than the <dd>. Only margin-bottom on the <dd> has none of these adverse effects. 2. Of course, margin-bottom on the <dd> fails to take care of the vertical spacing before the first list element, so implement that separately by margin-top on the <dl>. 3. For .Bl -tag -compact, reset both to zero. 2019-01-10 06:29 schwarze Changed: main.c (1.317), "Exp", lines: +3 -2 mandoc_msg.c (1.5), "Exp", lines: +2 -2 Initializers for file-scope static variables should be compile-time constants, and while stderr is a compile-time constant in OpenBSD, Kelvin Sherlock <ksherlock at gmail dot com> reports that it isn't on some other systems, for example on FreeBSD or Linux. So do the initialization by calling mandoc_msg_setoutfile() from main() instead. 2019-01-07 07:26 schwarze Added: regress/mdoc/Bd/nf.out_html (1.1) regress/mdoc/Bd/paragraph.in (1.1) regress/mdoc/Bd/paragraph.out_ascii (1.1) regress/mdoc/Bd/paragraph.out_html (1.1) regress/mdoc/Bd/paragraph.out_markdown (1.1) regress/mdoc/Bf/paragraph.in (1.1) regress/mdoc/Bf/paragraph.out_ascii (1.1) regress/mdoc/Bf/paragraph.out_html (1.1) regress/mdoc/D1/spacing.out_html (1.1) regress/mdoc/Rs/paragraph.in (1.1) regress/mdoc/Rs/paragraph.out_ascii (1.1) regress/mdoc/Rs/paragraph.out_html (1.1) regress/mdoc/Rs/paragraph.out_markdown (1.1) regress/mdoc/Sh/paragraph.in (1.1) regress/mdoc/Sh/paragraph.out_ascii (1.1) regress/mdoc/Sh/paragraph.out_html (1.1) regress/mdoc/Sh/paragraph.out_markdown (1.1) Changed: html.c (1.250), "Exp", lines: +11 -13 html.h (1.100), "Exp", lines: +1 -2 man_html.c (1.167), "Exp", lines: +12 -11 mdoc_html.c (1.323), "Exp", lines: +132 -94 mdoc_macro.c (1.232), "Exp", lines: +14 -3 roff_html.c (1.19), "Exp", lines: +4 -4 regress/char/unicode/invalid.out_html (1.3), "Exp", lines: +7 -7 regress/mdoc/Bd/Makefile (1.5), "Exp", lines: +3 -2 regress/mdoc/Bd/nf.in (1.2), "Exp", lines: +7 -2 regress/mdoc/Bd/nf.out_ascii (1.2), "Exp", lines: +4 -2 regress/mdoc/Bd/nf.out_markdown (1.2), "Exp", lines: +5 -2 regress/mdoc/Bf/Makefile (1.3), "Exp", lines: +4 -3 regress/mdoc/D1/Makefile (1.4), "Exp", lines: +2 -1 regress/mdoc/D1/spacing.in (1.3), "Exp", lines: +10 -3 regress/mdoc/D1/spacing.out_ascii (1.3), "Exp", lines: +6 -2 regress/mdoc/D1/spacing.out_lint (1.6), "Exp", lines: +1 -1 regress/mdoc/D1/spacing.out_markdown (1.3), "Exp", lines: +8 -3 regress/mdoc/Rs/Makefile (1.5), "Exp", lines: +3 -2 regress/mdoc/Sh/Makefile (1.5), "Exp", lines: +3 -2 regress/roff/string/dotT.in (1.2), "Exp", lines: +5 -7 regress/roff/string/dotT.out_ascii (1.2), "Exp", lines: +2 -6 regress/roff/string/dotT.out_html (1.2), "Exp", lines: +3 -5 regress/roff/string/dotT.out_markdown (1.2), "Exp", lines: +3 -7 regress/roff/string/dotT.out_utf8 (1.2), "Exp", lines: +2 -6 Represent mdoc(7) .Pp (and .sp, and some SYNOPSIS and .Rs features) by the <p> HTML element and use the html_fillmode() mechanism for .Bd -unfilled, just like it was done for man(7) earlier, finally getting rid both of the horrible <div class="Pp"></div> hack and of the worst HTML syntax violations caused by nested displays. Care is needed because in some situations, paragraphs have to remain open across several subsequent macros, whereas in other situations, they must get closed together with a block containing them. Some implementation details include: * Always close paragraphs before emitting HTML flow content. * Let html_close_paragraph() also close <pre> for extra safety. * Drop the old, now unused function print_paragraph(). * Minor adjustments in the top-level man(7) node formatter for symmetry. * Bugfix: .Ss heads suspend no-fill mode, even though .Ss doesn't end it. * Bugfix: give up on .Op semantic markup for now, see the comment. 2019-01-06 04:55 schwarze Added: regress/man/HP/literal.out_html (1.1) regress/man/IP/literal.out_html (1.1) regress/man/RS/paragraph.in (1.1) regress/man/RS/paragraph.out_ascii (1.1) regress/man/RS/paragraph.out_html (1.1) regress/man/SH/paragraph.in (1.1) regress/man/SH/paragraph.out_ascii (1.1) regress/man/SH/paragraph.out_html (1.1) regress/man/SS/paragraph.in (1.1) regress/man/SS/paragraph.out_ascii (1.1) regress/man/SS/paragraph.out_html (1.1) regress/man/TP/literal.out_html (1.1) regress/roff/sp/fill-man.in (1.1) regress/roff/sp/fill-man.out_ascii (1.1) regress/roff/sp/fill-man.out_html (1.1) Changed: html.c (1.249), "Exp", lines: +17 -2 html.h (1.99), "Exp", lines: +4 -2 man_html.c (1.166), "Exp", lines: +55 -70 roff_html.c (1.18), "Exp", lines: +8 -2 tbl_html.c (1.32), "Exp", lines: +2 -1 regress/man/HP/Makefile (1.2), "Exp", lines: +2 -1 regress/man/HP/literal.in (1.3), "Exp", lines: +13 -8 regress/man/HP/literal.out_ascii (1.2), "Exp", lines: +9 -6 regress/man/IP/Makefile (1.2), "Exp", lines: +2 -1 regress/man/IP/literal.in (1.4), "Exp", lines: +8 -4 regress/man/IP/literal.out_ascii (1.3), "Exp", lines: +4 -2 regress/man/RS/Makefile (1.4), "Exp", lines: +3 -3 regress/man/SH/Makefile (1.3), "Exp", lines: +3 -2 regress/man/SS/Makefile (1.3), "Exp", lines: +3 -2 regress/man/TP/Makefile (1.4), "Exp", lines: +2 -2 regress/man/TP/literal.in (1.3), "Exp", lines: +12 -6 regress/man/TP/literal.out_ascii (1.2), "Exp", lines: +8 -5 regress/roff/sp/Makefile (1.2), "Exp", lines: +5 -3 Finally, represent the man(7) .PP and .HP macros by the natural choice, which is the <p> HTML element. On top of the previous fill-mode improvements, the key to making this possible is to automatically close the <p> when required: before headers, subsequent paragraphs, lists, indented blocks, synopsis blocks, tbl(7) blocks, and before blocks using no-fill mode. In man(7) documents, represent the .sp request by a blank line in no-fill mode and in the same way as .PP in fill mode. 2019-01-05 21:55 schwarze Added: regress/man/SY/literal.out_html (1.1) Changed: man_html.c (1.165), "Exp", lines: +3 -3 regress/man/SY/Makefile (1.2), "Exp", lines: +2 -1 In no-fill mode, avoid bogus blank lines in two situations: 1. After the last child; the parent will take care of the line break. 2. At the .YS macro; the end of the preceding .SY already broke the line. 2019-01-05 21:18 schwarze Added: regress/man/SY/Makefile (1.1) regress/man/SY/literal.in (1.1) regress/man/SY/literal.out_ascii (1.1) Changed: man_term.c (1.228), "Exp", lines: +4 -2 regress/man/Makefile (1.3), "Exp", lines: +2 -2 In groff, when the .SY block macro occurs in no-fill mode, the output line gets broken after the head. Do the same. 2019-01-05 20:04 schwarze Added: regress/man/RS/literal.out_html (1.1) Changed: regress/man/RS/Makefile (1.3), "Exp", lines: +2 -1 regress/man/RS/literal.in (1.3), "Exp", lines: +13 -5 regress/man/RS/literal.out_ascii (1.2), "Exp", lines: +9 -6 Slowly start doing more HTML output tests, in this case for the interaction of .nf and .RS, related to man_macro.c rev. 1.106. HTML regression testing is tricky because it is extremely prone to over-testing, i.e. unintentional testing for volatile formatting details which are irrelevant for deciding whether the HTML output is good or bad. Minor changes to the formatter - which is still heavily under development - might result in the necessity to repeatedly adjust many test cases. Then again, HTML syntax rules are so complicated that without regression testing, the risk is simply too high that later changes will re-introduce issues that were already fixed earlier. Let's just try to design the tests very carefully in such a way that the *.out_html files contain nothing that is likely to change, and defer testing in cases where the HTML output is not yet clean enough to allow designing tests in such a way. 2019-01-05 18:59 schwarze Changed: man_macro.c (1.144), "Exp", lines: +5 -2 In HTML output, man(7) .RS blocks get formatted as <div class="Bd-indent">, and i can see no reasonable alternative: they do indeed represent indented displays. They certainly require flow context and make no sense in phrasing context. Consequently, they have to suspend no-fill mode during their head, in just the same way as other paragraph-type macros do it. This fixes HTML syntax errors that resulted from .nf followed by .RS. 2019-01-05 09:46 schwarze Changed: man_html.c (1.164), "Exp", lines: +16 -24 minor cleanup, no functional change: * delete one irrelevant FIXME; no more fixed lengths in HTML, please * simplify some conditions * avoid testing pointers as truth values, use "!= NULL" * sort some declarations * delete some pointless blank lines 2019-01-05 09:14 schwarze Changed: html.c (1.248), "Exp", lines: +34 -1 html.h (1.98), "Exp", lines: +2 -1 man_html.c (1.163), "Exp", lines: +18 -117 roff_html.c (1.17), "Exp", lines: +20 -4 Now that the NODE_NOFILL flag in the syntax tree is accurate, use it in the man(7) HTML formatter rather than keeping fill mode state locally, resulting in massive simplification (minus 40 LOC). Move the html_fillmode() state handler function to the html.c module such that both the man(7) and the roff(7) formatter (and in the future, also the mdoc(7) formatter) can use it. Give it a query mode, to be invoked with TOKEN_NONE. 2019-01-05 09:10 schwarze Changed: roff.c (1.361), "Exp", lines: +3 -1 no-fill mode has to be suspended during tbl(7) rendering, too 2019-01-05 01:29 schwarze Changed: man_term.c (1.227), "Exp", lines: +65 -82 minor cleanup, no functional change: * in node type switches, explicitly handle all types, sort them, and abort() on those that cannot occur * avoid testing pointers as truth values, use "!= NULL" * avoid testing "constant == variable", use "variable == constant" * prefer sizeof(var) over sizeof(type) * delete one duplicate function * sort some declarations * delete some useless blank lines 2019-01-05 00:36 schwarze Changed: man.c (1.187), "Exp", lines: +6 -6 man_macro.c (1.143), "Exp", lines: +4 -2 man_term.c (1.226), "Exp", lines: +6 -3 roff.c (1.360), "Exp", lines: +3 -3 roff_int.h (1.16), "Exp", lines: +3 -2 Some high-level block macros have an effect similar to temporarily suspending no-fill mode during their head. Model this with an additional roff parser state flag ROFF_NONOFILL. That is much simpler than it would be to save and restore the ROFF_NOFILL flag itself, in particular since the latter can be switched (with lasting effect) by the .nf and .fi requests even while its effect is temporarily suspended. This commit does not change formatting yet, but prepares for future formatting simplifications and improvements. 2019-01-04 04:04 schwarze Added: regress/mdoc/Bd/nf.in (1.1) regress/mdoc/Bd/nf.out_ascii (1.1) regress/mdoc/Bd/nf.out_markdown (1.1) Changed: regress/mdoc/Bd/Makefile (1.4), "Exp", lines: +2 -2 regress/mdoc/Bd/centered.in (1.3), "Exp", lines: +3 -5 regress/mdoc/Bd/centered.out_ascii (1.3), "Exp", lines: +3 -3 regress/mdoc/Bd/centered.out_markdown (1.3), "Exp", lines: +2 -3 Test interaction of low-level roff(7) filling requests with .Bd in general and filling in .Bd -centered in particular; related to mdoc_term.c rev. 1.372. 2019-01-04 03:39 schwarze Changed: TODO (1.282), "Exp", lines: +1 -8 mdoc_term.c (1.372), "Exp", lines: +44 -64 Two functional improvements to filling in terminal output. 1. Fully support no-fill mode in mdoc(7), even when invoked with low-level roff(7) .nf requests. As a side effect, this substantially simplifies the implementation of .Bd -unfilled and .Bd -literal. 2. Let .Bd -centered fill its text, using the new TERMP_CENTER flag. That finally fixes the long-standing bug that it used to operate in no-fill mode, which was known to be wrong for at least five years. This also simplifies the implementation of .Bd -centered considerably. 2019-01-04 03:24 schwarze Changed: roff_term.c (1.19), "Exp", lines: +4 -15 Simplify the roff(7) .ce and .rj terminal formatter by using the new TERMP_CENTER and TERMP_RIGHT flags. No functional change. 2019-01-04 03:21 schwarze Changed: term.c (1.279), "Exp", lines: +16 -2 term.h (1.131), "Exp", lines: +4 -2 Implement centering and adjustment to the right margin directly in the terminal filling routine, controlled by new flags TERMP_CENTER and TERMP_RIGHT. This became possible by the recent term_flushln() rewrite. No functional change yet, but to be used by upcoming commits. 2019-01-04 03:17 schwarze Changed: mdoc_man.c (1.132), "Exp", lines: +33 -10 Oops, i forgot to adjust this file to the changes in roff.h rev. 1.67. Provide a handler for the new .nf and .fi roff(7) request nodes, avoiding a potential crash, and correctly restore the former fill more at .Ed even when there was .nf or .fi inside the block. 2019-01-04 01:11 schwarze Added: regress/roff/ce/Makefile (1.1) regress/roff/ce/basic.in (1.1) regress/roff/ce/basic.out_ascii (1.1) Changed: regress/roff/Makefile (1.9), "Exp", lines: +2 -2 test the roff(7) .ce and .rj requests; they were already supported in the past 2019-01-03 19:59 schwarze Changed: term.c (1.278), "Exp", lines: +253 -179 Rewrite the line filling function for terminal output yet again. This function has always been among the most complicated parts of mandoc, and it repeatedly needed substantial functional enhancements. The present rewrite is required to prepare for the implementation of simultaneous filling and centering of output lines. The previous implementation looked at each word in turn and printed it to the output stream as soon as it was found to still fit on the current output line. Obviously, that approach neither allows centering nor adjustment to the right margin. The new implementation first decides which part of the paragraph to put onto the current output line, also measuring the display width of that part, even if that part consists of multiple words including intervening whitespace. This will allow moving the whole output line to the right as desired before printing it, for example to center it or to adjust it to the right margin. The function is split into three parts, each much shorter, solving a better defined task, much easier to understand and better commented: 1. the steering function term_flushln() looping over output lines; 2. the calculation function term_fill() looping over input characters; 3. and the output function term_field() looping over printed characters. No functional change yet. 2019-01-01 08:18 schwarze Changed: main.c (1.316), "Exp", lines: +17 -8 mandoc.1 (1.236), "Exp", lines: +12 -4 Support taking the -O tag value from apropos(1) key=value search terms; feature improvement suggested by kn@. While here, also make "-O value" work from standard input. OK kn@ 2019-01-01 07:42 schwarze Changed: mdoc_macro.c (1.231), "Exp", lines: +46 -4 mdoc_state.c (1.15), "Exp", lines: +3 -40 Correctly set the ROFF_NOFILL parser flag for .Bd .Ed .Sh, such that children and later siblings get correct NODE_NOFILL assignments. This doesn't change rendering yet but prepares for future rendering improvements. 2019-01-01 05:56 schwarze Changed: tree.c (1.84), "Exp", lines: +16 -12 display the NODE_NOFILL flag indicating no-fill mode 2019-01-01 03:45 schwarze Changed: man.7 (1.142), "Exp", lines: +11 -22 roff.7 (1.111), "Exp", lines: +35 -12 Now that .nf and .fi are implemented in the roff(7) parser and formatters rather than in the man(7) parser and formatters, document them in the roff(7) manual, where they belong, rather than in the man(7) manual. Mention that they imply an output line break, and mention which macros imply these requests. 2018-12-31 11:09 schwarze Changed: html.h (1.97), "Exp", lines: +1 -2 drop flag HTML_LITERAL which is no longer used 2018-12-31 11:01 schwarze Changed: man_term.c (1.225), "Exp", lines: +7 -48 Cleanup, minus 25 LOC, no functional change: Delete the complicated mechanism keeping fill mode state locally in the man(7) HTML formatter. Instead, use the state stored in the nodes. 2018-12-31 10:35 schwarze Changed: mdoc_html.c (1.322), "Exp", lines: +4 -13 Cleanup, no functional change: Stop trying to keep fill mode state locally in the mdoc HTML formatter, rely on the state stored in the nodes instead. Note that the .Bd -literal code is buggy. Nested literal displays result in nested <pre> elements, which violates HTML syntax. But i'm not yet fixing bugs in this commit, i'm merely deleting code which has no effect. 2018-12-31 10:04 schwarze Changed: libman.h (1.86), "Exp", lines: +1 -2 man.c (1.186), "Exp", lines: +1 -20 man_macro.c (1.142), "Exp", lines: +2 -2 man_validate.c (1.146), "Exp", lines: +2 -3 Cleanup, no functional change: Since the man(7) and roff(7) validators no longer use the parser state flag ROFF_NOFILL, we can finally get rid of the function man_state(), resulting in a better separation of parsing and validation. 2018-12-31 09:02 schwarze Changed: roff_validate.c (1.18), "Exp", lines: +2 -2 oops, one change ROFF_NOFILL -> NODE_NOFILL was forgotten in rev. 1.17 2018-12-31 08:45 schwarze Changed: regress/man/SH/noarg.out_lint (1.7), "Exp", lines: +1 -1 regress/man/SS/noarg.out_lint (1.7), "Exp", lines: +1 -1 catch up with the changed order of warnings; related to man_validate.c rev. 1.145 2018-12-31 08:38 schwarze Changed: man.c (1.185), "Exp", lines: +1 -6 man_validate.c (1.145), "Exp", lines: +20 -4 mdoc_validate.c (1.369), "Exp", lines: +3 -5 roff_validate.c (1.17), "Exp", lines: +2 -2 Use the new flag NODE_NOFILL in the validators, which is sometimes simpler and always more robust. In particular, move the nesting warnings for .EX and .EE from man_state(), where they were misplaced, to the man(7) validator. 2018-12-31 08:18 schwarze Changed: roff.c (1.359), "Exp", lines: +5 -1 roff.h (1.68), "Exp", lines: +9 -8 Store the fill mode with a new flag NODE_NOFILL in every node, like it is already done with NODE_SYNPRETTY, such that the fill mode becomes more directly available to the formatters. Not used yet, but will be used by upcoming commits. 2018-12-31 08:03 schwarze Changed: man_macro.c (1.141), "Exp", lines: +6 -1 For .EX and .EE, set the fill mode parser state directly in the macro parsing function, in the same way as the roff parser already does it for the .nf and .fi requests. This is a preparation for getting rid of the ugly function man_state() later on. 2018-12-31 07:46 schwarze Changed: mdoc.c (1.274), "Exp", lines: +4 -4 mdoc_state.c (1.14), "Exp", lines: +3 -3 mdoc_validate.c (1.368), "Exp", lines: +3 -3 roff_int.h (1.15), "Exp", lines: +1 -2 Cleanup, no functional change: Use the new parser flag ROFF_NOFILL in the mdoc(7) parser, too, instead of the old MDOC_LITERAL, which was an alias for the former MAN_LITERAL. 2018-12-31 07:08 schwarze Changed: man.c (1.184), "Exp", lines: +12 -12 man_html.c (1.162), "Exp", lines: +17 -19 man_macro.c (1.140), "Exp", lines: +4 -11 man_term.c (1.224), "Exp", lines: +7 -4 man_validate.c (1.144), "Exp", lines: +3 -4 roff.c (1.358), "Exp", lines: +29 -21 roff.h (1.67), "Exp", lines: +3 -5 roff_html.c (1.16), "Exp", lines: +3 -1 roff_int.h (1.14), "Exp", lines: +3 -3 roff_term.c (1.18), "Exp", lines: +5 -1 roff_validate.c (1.16), "Exp", lines: +19 -10 Move parsing of the .nf and .fi (fill mode) requests from the man(7) parser to the roff(7) parser. As a side effect, .nf and .fi are now also parsed in mdoc(7) input, though the mdoc(7) formatters still ignore most of their effect. 2018-12-31 04:55 schwarze Changed: libman.h (1.85), "Exp", lines: +1 -2 libmdoc.h (1.117), "Exp", lines: +1 -3 man.c (1.183), "Exp", lines: +1 -10 man_macro.c (1.139), "Exp", lines: +1 -3 man_validate.c (1.143), "Exp", lines: +3 -3 mdoc.c (1.273), "Exp", lines: +1 -10 mdoc_macro.c (1.230), "Exp", lines: +1 -2 mdoc_state.c (1.13), "Exp", lines: +1 -9 mdoc_validate.c (1.367), "Exp", lines: +3 -3 read.c (1.210), "Exp", lines: +2 -1 roff.c (1.357), "Exp", lines: +13 -6 roff_int.h (1.13), "Exp", lines: +2 -1 Cleanup, minus 15 LOC, no functional change: Simplify the way the man(7) and mdoc(7) validators are called. Reset the parser state with a common function before calling them. There is no need to again reset the parser state afterwards, the parsers are no longer used after validation. This allows getting rid of man_node_validate() and mdoc_node_validate() as separate functions. 2018-12-30 00:49 schwarze Changed: Makefile.depend (1.41), "Exp", lines: +2 -2 cgi.c (1.164), "Exp", lines: +9 -21 demandoc.c (1.32), "Exp", lines: +8 -13 libman.h (1.84), "Exp", lines: +4 -1 libmdoc.h (1.116), "Exp", lines: +5 -1 main.c (1.315), "Exp", lines: +17 -20 main.h (1.29), "Exp", lines: +10 -10 man.c (1.182), "Exp", lines: +2 -2 man_html.c (1.161), "Exp", lines: +6 -6 man_macro.c (1.138), "Exp", lines: +2 -2 man_term.c (1.223), "Exp", lines: +5 -6 mandoc.3 (1.44), "Exp", lines: +15 -52 mandoc.c (1.114), "Exp", lines: +3 -2 mandoc_headers.3 (1.30), "Exp", lines: +46 -27 mandoc_parse.h (1.4), "Exp", lines: +4 -4 mandocd.c (1.9), "Exp", lines: +9 -15 mandocdb.c (1.262), "Exp", lines: +21 -25 mdoc.c (1.272), "Exp", lines: +2 -2 mdoc.h (1.146), "Exp", lines: +4 -1 mdoc_html.c (1.321), "Exp", lines: +6 -6 mdoc_macro.c (1.229), "Exp", lines: +2 -2 mdoc_man.c (1.131), "Exp", lines: +5 -6 mdoc_markdown.c (1.30), "Exp", lines: +10 -10 mdoc_state.c (1.12), "Exp", lines: +2 -1 mdoc_term.c (1.371), "Exp", lines: +5 -7 mdoc_validate.c (1.366), "Exp", lines: +3 -3 read.c (1.209), "Exp", lines: +22 -26 roff.c (1.356), "Exp", lines: +14 -17 roff.h (1.66), "Exp", lines: +5 -40 roff_int.h (1.12), "Exp", lines: +47 -1 tree.c (1.83), "Exp", lines: +6 -6 Cleanup, no functional change: The struct roff_man used to be a bad mixture of internal parser state and public parsing results. Move the public results to the parsing result struct roff_meta, which is already public. Move the rest of struct roff_man to the parser-internal header roff_int.h. Since the validators need access to the parser state, call them from the top level parser during mparse_result() rather than from the main programs, also reducing code duplication. This keeps parser internal state out of thee main programs (five in mandoc portable) and out of eight formatters. 2018-12-28 00:15 schwarze Changed: mandoc.1 (1.235), "Exp", lines: +9 -2 add some notes about using col(1) and ul(1) to process the ascii markup since these may not be commonly known utilities; idea from and joint work with tedu@ CV: ---------------------------------------------------------------------- 2018-12-25 00:06 schwarze Changed: mdoc_html.c (1.320), "Exp", lines: +2 -2 bugfix: make the static class buffer long enough for .Bl -bullet -compact -offset indent 2018-12-24 23:37 schwarze Changed: mandoc.1 (1.234), "Exp", lines: +9 -9 mandoc.css lives in /usr/share/misc now; use full paths to indicate this. from tedu@ 2018-12-23 22:03 schwarze Changed: mdoc.7 (1.274), "Exp", lines: +683 -796 Finally, stop abusing .Ss and .Sx to mark up macros, use .Ic instead since these are clearly commands in a domain-specific language. As a nice side effect, the resulting list allows including the synopsis for each macro in the item head, reducing some repetitive verbiage. 2018-12-23 16:55 schwarze Changed: mdoc.7 (1.273), "Exp", lines: +22 -36 Simplify and clarify instructions for .Ql, and deprecate .Li. The macros .Ql, .Dl, and .Bd -literal leave no room for any valid use case for .Li whatsoever. General direction discussed with jmc@. 2018-12-23 15:32 schwarze Changed: mdoc.7 (1.272), "Exp", lines: +4 -4 Deprecate .Lp, use .Pp instead. Simplicity matters, and fewer macros is simpler. OK jmc@ 2018-12-22 19:49 schwarze Changed: mdoc_html.c (1.319), "Exp", lines: +3 -2 In the TOC, close <a> before opening <ul>. Simplified version of a bugfix patch from rapha@. 2018-12-21 17:47 schwarze Changed: regress/roff/nr/incr.in (1.2), "Exp", lines: +8 -1 regress/roff/nr/incr.out_ascii (1.2), "Exp", lines: +3 -0 merge a test update from OpenBSD that was forgotten in April 2018-12-21 17:15 schwarze Added: regress/mdoc/Bl/esc.in (1.1) regress/mdoc/Bl/esc.out_ascii (1.1) regress/mdoc/Bl/esc.out_markdown (1.1) regress/mdoc/Eo/arg.in (1.1) regress/mdoc/Eo/arg.out_ascii (1.1) regress/mdoc/Eo/arg.out_markdown (1.1) regress/mdoc/Eo/arg.out_utf8 (1.1) regress/mdoc/Fd/arg.in (1.1) regress/mdoc/Fd/arg.out_ascii (1.1) regress/mdoc/Fd/arg.out_markdown (1.1) regress/mdoc/Li/arg.in (1.1) regress/mdoc/Li/arg.out_ascii (1.1) regress/mdoc/Li/arg.out_markdown (1.1) regress/mdoc/Ns/arg.in (1.1) regress/mdoc/Ns/arg.out_ascii (1.1) regress/mdoc/Ns/arg.out_markdown (1.1) regress/mdoc/Op/arg.in (1.1) regress/mdoc/Op/arg.out_ascii (1.1) regress/mdoc/Op/arg.out_markdown (1.1) Changed: libmandoc.h (1.77), "Exp", lines: +2 -2 libmdoc.h (1.115), "Exp", lines: +2 -1 man_macro.c (1.137), "Exp", lines: +13 -7 mdoc_argv.c (1.119), "Exp", lines: +19 -13 mdoc_macro.c (1.228), "Exp", lines: +66 -23 roff.c (1.355), "Exp", lines: +54 -21 regress/man/RS/REarg.in (1.3), "Exp", lines: +6 -5 regress/man/RS/REarg.out_ascii (1.2), "Exp", lines: +1 -1 regress/man/RS/REarg.out_lint (1.5), "Exp", lines: +7 -7 regress/mdoc/Bl/Makefile (1.10), "Exp", lines: +2 -2 regress/mdoc/Eo/Makefile (1.5), "Exp", lines: +3 -2 regress/mdoc/Fd/Makefile (1.5), "Exp", lines: +2 -2 regress/mdoc/Li/Makefile (1.4), "Exp", lines: +2 -2 regress/mdoc/Ns/Makefile (1.4), "Exp", lines: +2 -2 regress/mdoc/Op/Makefile (1.5), "Exp", lines: +2 -2 regress/roff/args/mdoc.out_lint (1.7), "Exp", lines: +10 -6 Rename mandoc_getarg() to roff_getarg() and pass it the roff parser struct as an argument such that after copy-in, it can call roff_expand() once again, which used to be called roff_res() before this. This fixes a subtle low-level roff(7) parsing bug reported by Fabio Scotoni <fabio at esse dot ch> in the 4.4BSD-Lite2 mdoc.samples(7) manual page, because that page used an escaped escape sequence in a macro argument. To expand escaped escape sequences in quoted mdoc(7) arguments, too, stop bypassing the call to roff_getarg() in mdoc_argv.c, function args() for this case. This does not solve the case of escaped escape sequences in quoted .Bl -column phrases yet. Because roff_expand() can make the string longer, roff_getarg() can no longer operate in-place but needs to malloc(3) the returned string. In the high-level parsers, free(3) that string after processing it. 2018-12-20 21:30 schwarze Changed: main.c (1.314), "Exp", lines: +6 -4 read.c (1.208), "Exp", lines: +4 -4 Move the full responsibility for reporting open(2) errors from mparse_open() to the caller. That is better because only the caller knows its preferred reporting method and format and only the caller has access to all the data that should be included - like the column number in .so processing or the current manpath in makewhatis(8). Moving the mandoc_msg() call out is possible because the caller can call strerror(3) just as easily as mparse_open() can. Move mandoc_msg_setinfilename() closer to the parsing of the file contents, to avoid problems *with* the file (like non-existence, lack of permissions, etc.) getting misreported as problems *in* the file. Fix the column number reported for .so failure: let it point to the beginning of the filename. Taken together, this prevents makewhatis(8) from spewing confusing messages about .so failures to stderr, a bug reported by Raf Czlonka <rczlonka at gmail dot com> on ports@. It also prevents mandoc(1) from issuing *two* messages for every single .so failure. 2018-12-20 18:24 schwarze Changed: mandoc.1 (1.233), "Exp", lines: +21 -5 Explain what the fields in mandoc messages mean, rather than merely specifying the message syntax. Gap in documentation found while looking at a bug report from Raf Czlonka <rczlonka at gmail dot com>. 2018-12-20 03:41 schwarze Changed: roff.c (1.354), "Exp", lines: +2 -2 regress/char/space/esct-man.in (1.4), "Exp", lines: +4 -2 regress/char/space/esct-man.out_ascii (1.3), "Exp", lines: +2 -1 regress/char/space/esct-man.out_lint (1.6), "Exp", lines: +2 -0 Bugfix: When after a \\, \t, or \a, another \t or \a had to be resolved in copy mode within the same argument, the argument got corrupted. Found while working on a loosely related bug report from Fabio Scotoni <fabio at esse dot ch>. 2018-12-18 22:00 schwarze Changed: mandoc.c (1.113), "Exp", lines: +1 -97 roff.c (1.353), "Exp", lines: +98 -1 As a first step towards making roff_res() callable from mandoc_getarg(), move the function mandoc_getarg() from mandoc.c to roff.c. It was misplaced in mandoc.c in the first place; that file is intended for utilities needed both by parsers and by formatters, while reading macro arguments in copy mode is purely a task of the roff(7) parser. Needed as a preliminary for an upcoming bugfix. No code change. 2018-12-16 02:21 schwarze Changed: man.7 (1.141), "Exp", lines: +19 -11 The .HP macro was deprecated by groff, and that makes sense because it serves no real purpose and works poorly with HTML. While here, describe the section argument of .TH, clarify the syntax display of .TP, and polish some wordings. 2018-12-16 01:34 schwarze Changed: roff.7 (1.110), "Exp", lines: +30 -22 minor polishing, in parts related to functional improvements in the past, and also adding some cross references for important escape sequences 2018-12-16 00:21 schwarze Changed: man_validate.c (1.142), "Exp", lines: +1 -1 mandoc_msg.c (1.4), "Exp", lines: +1 -1 term_tab.c (1.5), "Exp", lines: +1 -1 s/OpenBSD/Id/ in CVS Ids 2018-12-16 00:17 schwarze Added: regress/roff/esc/f.out_html (1.1) regress/roff/ft/badargs.out_html (1.1) Changed: Makefile.depend (1.40), "Exp", lines: +4 -4 html.c (1.247), "Exp", lines: +3 -4 html.h (1.96), "Exp", lines: +2 -1 man_html.c (1.160), "Exp", lines: +2 -1 mandoc.c (1.112), "Exp", lines: +55 -42 mandoc.h (1.262), "Exp", lines: +2 -1 mandoc_headers.3 (1.29), "Exp", lines: +4 -1 mdoc_html.c (1.318), "Exp", lines: +2 -1 roff.7 (1.109), "Exp", lines: +79 -43 roff_html.c (1.15), "Exp", lines: +15 -3 roff_term.c (1.17), "Exp", lines: +12 -14 roff_validate.c (1.15), "Exp", lines: +3 -25 tbl_html.c (1.31), "Exp", lines: +2 -1 regress/regress.pl (1.9), "Exp", lines: +12 -10 regress/roff/esc/Makefile (1.5), "Exp", lines: +2 -1 regress/roff/esc/f.in (1.3), "Exp", lines: +11 -12 regress/roff/esc/f.out_ascii (1.3), "Exp", lines: +12 -5 regress/roff/ft/Makefile (1.3), "Exp", lines: +2 -1 regress/roff/ft/badargs.in (1.3), "Exp", lines: +19 -2 regress/roff/ft/badargs.out_ascii (1.2), "Exp", lines: +5 -2 regress/roff/ft/badargs.out_lint (1.5), "Exp", lines: +2 -2 Yet another round of improvements to manual font selection. Unify handling of \f and .ft. Support \f4 (bold+italic). Support ".ft BI" and ".ft CW" for terminal output. Support the .ft request in HTML output. Reject the bogus fonts \f(C1, \f(C2, \f(C3, and \f(CP. In regress.pl, only strip leading whitespace in math mode. 2018-12-15 19:30 schwarze Added: regress/char/accent/nocombine.out_lint (1.1) regress/char/space/invalid.in (1.1) regress/char/space/invalid.out_ascii (1.1) regress/char/space/invalid.out_lint (1.1) regress/roff/esc/O.in (1.1) regress/roff/esc/O.out_ascii (1.1) regress/roff/esc/O.out_lint (1.1) regress/roff/esc/invalid.in (1.1) regress/roff/esc/invalid.out_ascii (1.1) regress/roff/esc/invalid.out_lint (1.1) regress/roff/esc/unsupp.in (1.1) regress/roff/esc/unsupp.out_ascii (1.1) regress/roff/esc/unsupp.out_lint (1.1) Changed: TODO (1.281), "Exp", lines: +1 -11 chars.c (1.78), "Exp", lines: +6 -16 html.c (1.246), "Exp", lines: +6 -4 mandoc.1 (1.232), "Exp", lines: +17 -3 mandoc.c (1.111), "Exp", lines: +79 -17 mandoc.h (1.261), "Exp", lines: +5 -1 mandoc_char.7 (1.75), "Exp", lines: +7 -5 mandoc_msg.c (1.3), "Exp", lines: +2 -0 mdoc_man.c (1.130), "Exp", lines: +2 -1 mdoc_markdown.c (1.29), "Exp", lines: +4 -1 roff.7 (1.108), "Exp", lines: +44 -1 roff.c (1.352), "Exp", lines: +34 -15 term.c (1.277), "Exp", lines: +11 -9 regress/char/accent/Makefile (1.2), "Exp", lines: +1 -0 regress/char/accent/nocombine.in (1.3), "Exp", lines: +6 -6 regress/char/accent/nocombine.out_ascii (1.2), "Exp", lines: +3 -3 regress/char/accent/nocombine.out_utf8 (1.2), "Exp", lines: +3 -3 regress/char/space/Makefile (1.2), "Exp", lines: +2 -1 regress/char/space/esct-man.in (1.3), "Exp", lines: +13 -1 regress/char/space/esct-man.out_ascii (1.2), "Exp", lines: +5 -1 regress/char/space/esct-man.out_lint (1.5), "Exp", lines: +5 -5 regress/roff/esc/Makefile (1.4), "Exp", lines: +3 -2 regress/roff/esc/ignore.in (1.3), "Exp", lines: +8 -10 regress/roff/esc/ignore.out_ascii (1.3), "Exp", lines: +13 -6 regress/roff/esc/ignore.out_lint (1.6), "Exp", lines: +4 -1 regress/roff/esc/one.in (1.3), "Exp", lines: +6 -12 regress/roff/esc/one.out_ascii (1.3), "Exp", lines: +11 -7 Several improvements to escape sequence handling. * Add the missing special character \_ (underscore). * Partial implementations of \a (leader character) and \E (uninterpreted escape character). * Parse and ignore \r (reverse line feed). * Add a WARNING message about undefined escape sequences. * Add an UNSUPP message about unsupported escape sequences. * Mark \! and \? (transparent throughput) and \O (suppress output) as unsupported. * Treat the various variants of zero-width spaces as one-byte escape sequences rather than as special characters, to avoid defining bogus forms with square brackets. * For special characters with one-byte names, do not define bogus forms with square brackets, except for \[-], which is valid. * In the form with square brackets, undefined special characters do not fall back to printing the name verbatim, not even for one-byte names. * Starting a special character name with a blank is an error. * Undefined escape sequences never abort formatting of the input string, not even in HTML output mode. * Document the newly handled escapes, and a few that were missing. * Regression tests for most of the above. 2018-12-14 20:40 schwarze Changed: tbl.7 (1.31), "Exp", lines: +3 -3 zap trailing whitespace; from jmc@ 2018-12-14 06:33 schwarze Changed: eqn.c (1.83), "Exp", lines: +2 -3 eqn_parse.h (1.3), "Exp", lines: +2 -4 libmandoc.h (1.76), "Exp", lines: +4 -6 man_macro.c (1.136), "Exp", lines: +2 -2 mandoc.c (1.110), "Exp", lines: +2 -2 mandoc_headers.3 (1.28), "Exp", lines: +3 -27 mdoc_argv.c (1.118), "Exp", lines: +2 -2 read.c (1.207), "Exp", lines: +3 -3 roff.c (1.351), "Exp", lines: +6 -10 roff.h (1.65), "Exp", lines: +1 -2 tbl.3 (1.6), "Exp", lines: +2 -9 tbl.c (1.46), "Exp", lines: +2 -3 tbl_int.h (1.2), "Exp", lines: +1 -2 tbl_parse.h (1.2), "Exp", lines: +2 -3 Cleanup, no functional change: Now that message handling is properly encapsulated, remove struct mparse pointers from four structs (roff, roff_man, tbl_node, eqn_node) and from the argument lists of five functions (roff_alloc, roff_man_alloc, mandoc_getarg, tbl_alloc, eqn_alloc). Except for being passed to the main program as an opaque object, it now only occurs in read.c, as it should, and not across 15 files like in the past. 2018-12-14 05:18 schwarze Changed: eqn.c (1.82), "Exp", lines: +30 -30 main.c (1.313), "Exp", lines: +5 -6 man.c (1.181), "Exp", lines: +11 -19 man_macro.c (1.135), "Exp", lines: +15 -17 man_validate.c (1.141), "Exp", lines: +26 -34 mandoc.c (1.109), "Exp", lines: +9 -12 mandoc.h (1.260), "Exp", lines: +3 -5 mandoc_msg.c (1.2), "Exp", lines: +1 -11 mdoc.c (1.271), "Exp", lines: +6 -11 mdoc_argv.c (1.117), "Exp", lines: +5 -7 mdoc_macro.c (1.227), "Exp", lines: +33 -42 mdoc_validate.c (1.365), "Exp", lines: +160 -225 read.c (1.206), "Exp", lines: +20 -22 roff.c (1.350), "Exp", lines: +77 -92 roff_validate.c (1.14), "Exp", lines: +8 -9 tbl.c (1.45), "Exp", lines: +5 -9 tbl_data.c (1.51), "Exp", lines: +6 -6 tbl_layout.c (1.48), "Exp", lines: +12 -16 tbl_opts.c (1.24), "Exp", lines: +9 -10 Almost mechanical diff to remove the "struct mparse *" argument from mandoc_msg(), where it is no longer used. While here, rename mandoc_vmsg() to mandoc_msg() and retire the old version: There is really no point in having another function merely to save "%s" in a few places. Minus 140 lines of code. 2018-12-14 02:16 schwarze Changed: read.c (1.205), "Exp", lines: +41 -40 Fold mparse_parse_buffer() into mparse_readfd(), making the code considerably more readable. This is possible now that i finally deleted mparse_readmem() from mandoc portable - an unused function that never existed in OpenBSD. This cleanup already made me find a minor bug: after a recursive parse, restoring the line number of the parent file was forgotten. This is fixed now. 2018-12-14 01:24 schwarze Changed: mandoc_parse.h (1.3), "Exp", lines: +1 -3 read.c (1.204), "Exp", lines: +1 -14 Delete the function mparse_readmem() that has been unused for almost a decade but regularly makes maintenance harder. Mandoc is not a general-purpose library, and being as pluggable as possible is not among the goals of the project. 2018-12-14 01:18 schwarze Added: mandoc_msg.c (1.1) Changed: Makefile (1.527), "Exp", lines: +3 -1 Makefile.depend (1.39), "Exp", lines: +1 -0 cgi.c (1.163), "Exp", lines: +2 -2 chars.c (1.77), "Exp", lines: +2 -1 demandoc.c (1.31), "Exp", lines: +2 -3 libmandoc.h (1.75), "Exp", lines: +1 -6 main.c (1.312), "Exp", lines: +38 -74 man_macro.c (1.134), "Exp", lines: +2 -1 man_validate.c (1.140), "Exp", lines: +1 -0 mandoc.3 (1.43), "Exp", lines: +5 -81 mandoc.h (1.259), "Exp", lines: +12 -4 mandoc_headers.3 (1.27), "Exp", lines: +10 -5 mandoc_parse.h (1.2), "Exp", lines: +3 -7 mandocd.c (1.8), "Exp", lines: +2 -2 mandocdb.c (1.261), "Exp", lines: +2 -3 mdoc_state.c (1.11), "Exp", lines: +2 -1 msec.c (1.16), "Exp", lines: +2 -1 read.c (1.203), "Exp", lines: +11 -299 roff_term.c (1.16), "Exp", lines: +2 -2 roff_validate.c (1.13), "Exp", lines: +2 -2 st.c (1.16), "Exp", lines: +3 -1 tbl_data.c (1.50), "Exp", lines: +2 -1 tbl_layout.c (1.47), "Exp", lines: +2 -1 Major cleanup; may imply minor changes in edge cases of error reporting. Finally, drop support for the run-time configurable mandocmsg() callback. It was over-engineered from the start, never used for anything in a decade, and repeatedly caused maintenance headaches. Consolidate reporting infrastructure into two files, mandoc.h and mandoc_msg.c, mopping up the bits and pieces that were scattered around main.c, read.c, mandoc_parse.h, libmandoc.h, the prototypes of four parsing-related functions, and both parser structs. 2018-12-13 11:55 schwarze Added: mandoc_parse.h (1.1) Changed: Makefile (1.526), "Exp", lines: +6 -3 Makefile.depend (1.38), "Exp", lines: +17 -17 att.c (1.18), "Exp", lines: +1 -2 cgi.c (1.162), "Exp", lines: +2 -1 demandoc.c (1.30), "Exp", lines: +2 -1 lib.c (1.15), "Exp", lines: +1 -4 main.c (1.311), "Exp", lines: +2 -1 man_html.c (1.159), "Exp", lines: +1 -2 man_term.c (1.222), "Exp", lines: +1 -2 mandoc.h (1.258), "Exp", lines: +4 -35 mandoc_headers.3 (1.26), "Exp", lines: +58 -52 mandocd.c (1.7), "Exp", lines: +2 -1 mandocdb.c (1.260), "Exp", lines: +2 -1 mansearch.c (1.80), "Exp", lines: +1 -2 mdoc_html.c (1.317), "Exp", lines: +1 -2 mdoc_term.c (1.370), "Exp", lines: +1 -2 out.c (1.77), "Exp", lines: +1 -2 preconv.c (1.17), "Exp", lines: +4 -1 read.c (1.202), "Exp", lines: +2 -1 roff.c (1.349), "Exp", lines: +2 -1 roff.h (1.64), "Exp", lines: +7 -1 roff_html.c (1.14), "Exp", lines: +1 -2 Cleanup, no functional change: Split the top level parser interface out of the utility header mandoc.h, into a new header mandoc_parse.h, for use in the main program and in the main parser only. Move enum mandoc_os into roff.h because struct roff_man is the place where it is stored. This allows removal of mandoc.h from seven files in low-level parsers and in formatters. 2018-12-13 07:30 schwarze Changed: att.c (1.17), "Exp", lines: +1 -2 mandoc_headers.3 (1.25), "Exp", lines: +9 -13 libmdoc.h no longer needs mdoc.h 2018-12-13 07:28 schwarze Deleted: st.in (1.31) Changed: Makefile (1.525), "Exp", lines: +1 -2 Makefile.depend (1.37), "Exp", lines: +3 -3 st.c (1.15), "Exp", lines: +48 -6 Cleanup, no functional change: Finally merge the pointless file st.in into st.c. Nobody should do operating systems dependent changes to standards: By definition, standards are the same for every operating system. While here, libmdoc.h no longer requires mdoc.h. 2018-12-13 06:18 schwarze Changed: mandoc_headers.3 (1.24), "Exp", lines: +16 -6 read.c (1.201), "Exp", lines: +2 -1 roff.h (1.63), "Exp", lines: +3 -4 roff_int.h (1.11), "Exp", lines: +8 -2 Cleanup, no functional change: Move the roffhash_*() functions from roff.h to roff_int.h because they are only intended for use by parsers, neither by main programs nor by formatters. 2018-12-13 05:23 schwarze Added: eqn.h (1.1) Changed: Makefile (1.524), "Exp", lines: +6 -3 Makefile.depend (1.36), "Exp", lines: +4 -4 eqn.c (1.81), "Exp", lines: +14 -4 eqn_html.c (1.18), "Exp", lines: +2 -1 eqn_parse.h (1.2), "Exp", lines: +3 -2 eqn_term.c (1.19), "Exp", lines: +2 -2 mandoc.h (1.257), "Exp", lines: +1 -69 mandoc_headers.3 (1.23), "Exp", lines: +17 -5 roff.c (1.348), "Exp", lines: +2 -3 tree.c (1.82), "Exp", lines: +2 -1 Cleanup, no functional change: No need to expose the eqn(7) syntax tree data structures everywhere. Move them to their own include file, "eqn.h". While here, delete the unused enum eqn_pilet. 2018-12-13 03:40 schwarze Deleted: libroff.h (1.44) Added: eqn_parse.h (1.1) Changed: Makefile (1.523), "Exp", lines: +2 -2 Makefile.depend (1.35), "Exp", lines: +10 -10 eqn.c (1.80), "Exp", lines: +14 -3 mandoc_headers.3 (1.22), "Exp", lines: +42 -33 roff.c (1.347), "Exp", lines: +4 -6 Cleanup, no functional change: In libroff.h, nothing was left except the eqn(7) parser interface, which isn't really part of the roff(7) parser, so rename it to eqn_parse.h. While here, move struct eqn_def to eqn.c because that's the only file using it, and let eqn_box_free() and eqn_free() handle NULL. 2018-12-13 02:06 schwarze Added: tbl_int.h (1.1) tbl_parse.h (1.1) Changed: Makefile (1.522), "Exp", lines: +3 -1 libroff.h (1.43), "Exp", lines: +3 -35 mandoc_headers.3 (1.21), "Exp", lines: +62 -9 roff.c (1.346), "Exp", lines: +14 -22 roff.h (1.62), "Exp", lines: +2 -2 tbl.3 (1.5), "Exp", lines: +12 -11 tbl.c (1.44), "Exp", lines: +36 -28 tbl_data.c (1.49), "Exp", lines: +2 -2 tbl_layout.c (1.46), "Exp", lines: +2 -2 tbl_opts.c (1.23), "Exp", lines: +2 -2 Cleanup, no functional change: Move tbl(7)-specific parser internals out of libroff.h. Move some tbl(7)-internal processing from roff.c to tbl.c. 2018-12-12 21:54 schwarze Added: tbl.h (1.1) Changed: Makefile (1.521), "Exp", lines: +6 -3 eqn.c (1.79), "Exp", lines: +2 -1 mandoc.h (1.256), "Exp", lines: +2 -107 mandoc_headers.3 (1.20), "Exp", lines: +37 -13 out.c (1.76), "Exp", lines: +2 -1 roff.c (1.345), "Exp", lines: +3 -2 tbl.3 (1.4), "Exp", lines: +3 -2 tbl.c (1.43), "Exp", lines: +3 -2 tbl_data.c (1.48), "Exp", lines: +3 -2 tbl_html.c (1.30), "Exp", lines: +2 -2 tbl_layout.c (1.45), "Exp", lines: +3 -2 tbl_opts.c (1.22), "Exp", lines: +2 -1 tbl_term.c (1.66), "Exp", lines: +2 -1 tree.c (1.81), "Exp", lines: +2 -1 Cleanup, no functional change: No need to expose the tbl(7) syntax tree data structures everywhere. Move them to their own include file, "tbl.h", and improve comments. 2018-12-04 18:29 schwarze Changed: html.c (1.245), "Exp", lines: +2 -5 HTML syntax audit: render \p as <br/>, not as <div>. It can occur anywhere, in particular in phrasing context. 2018-12-04 06:11 schwarze Changed: mandoc.css (1.42), "Exp", lines: +3 -3 Restrict "vertical-align: middle;" to <td> descendants of class="tbl" elements, we don't want that for other tables. 2018-12-04 05:21 schwarze Changed: mandoc.css (1.41), "Exp", lines: +7 -2 Make sure all borders in a table are drawn in the same color. Required because browsers tend to have inconsistent defaults: For example, Firefox 62.0.2 sets border-color for tbody, but not for table, and Pali Rohar reports that Chrome set it for td, but not for tr or tbody. The td part is from Pali Rohar, the tbody and tr parts from me. 2018-12-04 03:28 schwarze Changed: roff_validate.c (1.12), "Exp", lines: +9 -1 During validation, drop .br before a text line starting with a blank, rather than teaching each formatter individually to ignore the .br in such situations. That's simpler and also results in better diagnostics. Mark Harris <mark dot hsj at gmail dot com> reported that -T html got confused in particular. 2018-12-04 02:53 schwarze Changed: libmdoc.h (1.114), "Exp", lines: +1 -2 man_validate.c (1.139), "Exp", lines: +48 -39 mdoc.c (1.270), "Exp", lines: +1 -10 mdoc_macro.c (1.226), "Exp", lines: +2 -2 mdoc_validate.c (1.364), "Exp", lines: +14 -41 roff.c (1.344), "Exp", lines: +9 -1 roff_int.h (1.10), "Exp", lines: +3 -2 roff_validate.c (1.11), "Exp", lines: +59 -3 regress/man/PP/empty.out_lint (1.5), "Exp", lines: +1 -0 regress/man/blank/afterSH.out_lint (1.5), "Exp", lines: +2 -0 regress/man/blank/afterSS.out_lint (1.5), "Exp", lines: +2 -0 regress/man/blank/line.out_lint (1.6), "Exp", lines: +7 -2 regress/mdoc/Sh/parborder.out_lint (1.6), "Exp", lines: +1 -1 regress/mdoc/blank/line.out_lint (1.6), "Exp", lines: +3 -1 regress/roff/args/roff.out_lint (1.6), "Exp", lines: +1 -0 regress/roff/cond/if.out_lint (1.6), "Exp", lines: +2 -0 Clean up the validation of .Pp, .PP, .sp, and .br. Make sure all combinations are handled, and are handled in a systematic manner. This resolves some erratic duplicate handling, handles a number of missing cases, and improves diagnostics in various respects. Move validation of .br and .sp to the roff validation module rather than doing that twice in the mdoc and man validation modules. Move the node relinking function to the roff library where it belongs. In validation functions, only look at the node itself, at previous nodes, and at descendants, not at following nodes or ancestors, such that only nodes are inspected which are already validated. 2018-12-03 21:00 schwarze Changed: man_html.c (1.158), "Exp", lines: +12 -7 man_term.c (1.221), "Exp", lines: +10 -3 man_validate.c (1.138), "Exp", lines: +31 -4 mdoc_html.c (1.316), "Exp", lines: +10 -4 mdoc_man.c (1.129), "Exp", lines: +10 -3 mdoc_markdown.c (1.28), "Exp", lines: +11 -3 mdoc_term.c (1.369), "Exp", lines: +10 -4 mdoc_validate.c (1.363), "Exp", lines: +43 -15 regress/man/PP/args.out_lint (1.5), "Exp", lines: +2 -2 In the validators, translate obsolete macro aliases (Lp, Ot, LP, P) to the standard forms (Pp, Ft, PP) up front, such that later code does not need to look for the obsolete versions. This reduces the risk of incomplete handling. 2018-12-03 16:18 schwarze Changed: roff_html.c (1.13), "Exp", lines: +2 -6 Render .br as <br/>, not as an empty <div>. The element <br/> was already employed for many other purposes, so there is nothing wrong with using it. Also, it is safer because <br/> is permitted in phrasing content, whereas <div> is only allowed in flow content. This is the first part of the HTML syntax audit which i wanted to do for a long time. Reminded by a loosely related bug report from Mark Harris <mark dot hsj at gmail dot com>. Examples of where this caused HTML nesting syntax errors: * in man(7) code between .nf and .fi * in mdoc(7) code between .Bd -unfilled and .Ed * in mdoc(7) code between .Ql Xo and .Xc * in mdoc(7) code between .Rs and .Re 2018-11-29 23:08 schwarze Changed: tbl_term.c (1.65), "Exp", lines: +19 -5 Do not draw horizontal lines through vertical spans which are requested in the data section rather than in the layout. Mini-feature found in misc/pfm(1). 2018-11-29 21:40 schwarze Changed: tbl_term.c (1.64), "Exp", lines: +106 -72 Now that it is better understood how borders work, rewrite tbl_hrule() in a simpler way. Fix several bugs in the process. No more special flags, just use the existing TBL_OPT_* from mandoc.h. Reduce the number of tracked rows from three to two, which is more logical: one above the line and one below is sufficient to figure out crossings. No more magic quirks, all conditions are readily comprehensible now. Add comments. 2018-11-29 01:55 schwarze Changed: TODO (1.280), "Exp", lines: +1 -6 out.c (1.75), "Exp", lines: +206 -43 Better handle automatic column width assignments in the presence of horizontal spans, by implementing a moderately difficult iterative algoritm. The benefit is that spans containing long text no longer cause an excessive width of their starting column. The result is likely not optimal, in particular in the presence of many spans overlapping in complicated ways nor when spans interact with equalizing or maximizing colums. But i doubt the practical usefulness of making this more complicated. Issue originally reported in synaptics(4), which now looks better, by tedu@ three years ago, and reminded by Pali Rohar this summer. 2018-11-28 14:23 schwarze Changed: term_ascii.c (1.64), "Exp", lines: +4 -4 Bugfix: never set termp->enc to the ambiguous value TERMENC_LOCALE, but instead set it to TERMENC_UTF8 or TERMENC_ASCII. Makes tbl(7) box drawing work under -T locale (that is, by default when LC_CTYPE is defined appropriately). 2018-11-28 13:43 schwarze Changed: tbl_term.c (1.63), "Exp", lines: +8 -5 additional check needed after the previous (box drawing) patch 2018-11-28 04:47 schwarze Changed: TODO (1.279), "Exp", lines: +1 -10 tbl_term.c (1.62), "Exp", lines: +318 -151 In -T utf8 output mode, render tbl(7) borders with the Unicode box drawing characters, U+2500 to U+257F. Originally suggested by bentley@ four years ago, reminded this summer by Pali Rohar. Binary and decimal arithmetics are boring, so let's use some ternary arithmetics for a change. That said, some other aspects are too complicated for my liking, so this could use some polishing in the future. 2018-11-26 21:06 schwarze Changed: mandoc.css (1.40), "Exp", lines: +6 -3 tbl_html.c (1.29), "Exp", lines: +123 -67 Implement tbl(7) lines in -T html output, as far as they are on the edges of table cells rather than going through the middle of cells: * the box, doublebox, and allbox options; * the | and || layout modifiers; * and the _ and = data lines; - but not yet _ and = in individual layout and data cells. Missing feature reported by Pali dot Rohar at gmail dot com. 2018-11-26 17:44 schwarze Changed: roff.c (1.343), "Exp", lines: +29 -7 regress/roff/cond/close.in (1.3), "Exp", lines: +17 -1 regress/roff/cond/close.out_ascii (1.2), "Exp", lines: +11 -1 regress/roff/cond/close.out_lint (1.7), "Exp", lines: +2 -2 When a conditional block is closed by putting "\}" on a text line by itself (which is somewhat unusual but not invalid; most authors use the empty macro line ".\}" instead), agree more closely with groff and do not produce a double space in the output. Quirk reported by millert@. While here, tweak the rest of the function body of roff_cond_text() to more closely match roff_cond_sub(). The subtly different handling could make people (including myself) wonder whether there is any point in being different. Testing shows there is not. 2018-11-26 17:11 schwarze Changed: LICENSE (1.21), "Exp", lines: +5 -5 Mark Harris pointed out that people might have doubts whether all files contained in the mandoc toolkit are "code and documentation", and whether this is of any consequence for licensing, so clarify. 2018-11-26 15:02 schwarze Changed: mandoc.css (1.39), "Exp", lines: +6 -1 Place mandoc.css into the public domain. The reason for doing this rather than using the ISC license is that i guess that in some contexts, a requirement to preserve a Copyright and license header might be inconvenient, and i really don't care at all how people use it. What matters is that they do use it, or something similar - attempts to use mandoc without any CSS are a constant source of grief and bogus bug reports because HTML without CSS doesn't look very good: the more structural and semantic and the less presentational and old-fashioned the HTML, the more so. Thanks to Mark Harris <mark dot hsj at gmail dot com> for pointing out that the permissions on this particular file were unclear. 2018-11-26 01:51 schwarze Changed: tbl_html.c (1.28), "Exp", lines: +5 -17 Simplify writing of tbl(7) cells by using the new feature of passing a NULL pointer for the value of a style attribute, in which case the attribute is omitted from the HTML element. Minus 12 lines of ugly and repetitive code, no functional change. 2018-11-26 01:38 schwarze Changed: html.c (1.244), "Exp", lines: +25 -16 mandoc_html.3 (1.18), "Exp", lines: +9 -1 Support more than one style attribute one the same HTML element. In fact, this is already required when a table uses non-default horizontal and vertical alignment in the same cell. 2018-11-25 21:17 schwarze Changed: TODO (1.278), "Exp", lines: +1 -5 tbl.7 (1.30), "Exp", lines: +14 -8 tbl_data.c (1.47), "Exp", lines: +17 -10 tbl_html.c (1.27), "Exp", lines: +12 -7 Let cells containing nothing but \^ extend the cell above. Missing feature reported by Pali dot Rohar at gmail dot com. 2018-11-25 19:24 schwarze Changed: TODO (1.277), "Exp", lines: +5 -5 mandoc.h (1.255), "Exp", lines: +3 -2 out.c (1.74), "Exp", lines: +6 -6 tbl_data.c (1.46), "Exp", lines: +43 -6 tbl_html.c (1.26), "Exp", lines: +40 -17 tbl_term.c (1.61), "Exp", lines: +18 -18 tree.c (1.80), "Exp", lines: +32 -26 In tbl(7) -T html output, span cells horizontally and vertically as requested by the layout. Does not handle spans requested in the data section yet. To be able to do this, record the number of rows spanned in the first data cell (struct tbl_dat) of a vertical span. Missing feature reported by Pali dot Rohar at gmail dot com. 2018-11-25 18:04 schwarze Changed: TODO (1.276), "Exp", lines: +7 -1 HTML formatting of .IP 2018-11-24 23:03 schwarze Changed: TODO (1.275), "Exp", lines: +1 -5 mandoc.css (1.38), "Exp", lines: +2 -2 tbl_html.c (1.25), "Exp", lines: +36 -6 Implement horizontal and vertical alignment of tbl(7) cell content in -T html output. This does not handle spanned cells yet. Missing feature reported by Pali dot Rohar at gmail dot com. 2018-11-23 19:17 schwarze Changed: html.c (1.243), "Exp", lines: +5 -2 When a font escape appears in the middle of a string, make sure it doesn't cause output of bogus whitespace. Fixing a bug reported by Pali dot Rohar at gmail dot com. 2018-11-22 12:33 schwarze Changed: apropos.1 (1.49), "Exp", lines: +4 -20 Correct and shorten the description of the sort order of apropos(1) results. As a matter of fact, which manpath the page comes from does not matter in that context. That only matters for the priority of pages in man(1) mode (without -a, -f, and -k). Noticed while working on a patch from Yuri Pankov <yuripv at FreeBSD>. 2018-11-22 12:01 schwarze Changed: main.c (1.310), "Exp", lines: +1 -3 mansearch.c (1.79), "Exp", lines: +3 -7 mansearch.h (1.29), "Exp", lines: +1 -2 In apropos(1) output, stop sorting .Nm search results by name priorities (bits). The obscure feature wasn't documented and merely confused people - for example Edward Tomasz Napierala <trasz at FreeBSD>, see https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=227408. Smaller patch provided by Yuri Pankov <yuripv at FreeBSD>, but i'm also retiring the now unused "bits" member from struct manpage. Simplification is good. 2018-11-22 11:30 schwarze Changed: main.c (1.309), "Exp", lines: +17 -5 man.1 (1.34), "Exp", lines: +10 -3 manconf.h (1.7), "Exp", lines: +3 -2 mandoc.1 (1.231), "Exp", lines: +13 -1 manpath.c (1.37), "Exp", lines: +14 -7 tag.c (1.21), "Exp", lines: +9 -1 tag.h (1.8), "Exp", lines: +2 -1 In -T locale (the default), -T ascii, and -T utf8 mode, provide a new output option -O tag[=term] to move right to the definition of "term" when opening the manual page in a pager, effectively porting the -T html fragment name feature - https://man.openbsd.org/ksh#ulimit - to the terminal. Try: $ man -O tag uvm_sysctl $ man -O tag=ulimit ksh $ man -O tag 3 compress Feature development triggered by a question from kn@. Klemens also tested, provided feedback that resulted in improvements, and provided an OK. 2018-11-19 19:27 schwarze Changed: apropos.1 (1.48), "Exp", lines: +29 -12 mansearch.c (1.78), "Exp", lines: +5 -4 Improve POSIX compliance by making case-insensitive extended regular expressions the default in man(1) -k searches, also matching what the man-db package used by many Linux distributions does. Originally requested by Wolfram Schneider <wosch at FreeBSD> via Yuri Pankov <yuripv at FreeBSD>. Feedback and OK cheloha@, and no objections when shown on tech@. Thanks to cheloha@ for pointing out that POSIX requires this behaviour and for the suggestion to explicitly say that *extended* regular expressions are used here. While here, unify spelling of case-[in]sensitive, fix a typo, update the EXAMPLES, and add a STANDARDS section. 2018-11-19 19:22 schwarze Changed: dbm.c (1.6), "Exp", lines: +4 -4 Correctly construct empty lists in dbm_page_get(). Original commit message by the author of this bugfix patch, bluhm@: lstmatch() expects a list of strings separated by \0 and terminated with \0\0. In the NULL case dbm_page_get() returned only simple strings so correct processing was depending on data layout. Use an additional \0 to terminate the single string lists. Found by mandoc regress since llvm linker on amd64 arranges strings differently. 2018-10-25 21:23 schwarze Changed: TODO (1.274), "Exp", lines: +7 -1 in -man -Thtml, vertical spacing is required before .IP 2018-10-25 01:32 schwarze Changed: html.c (1.242), "Exp", lines: +11 -1 html.h (1.95), "Exp", lines: +2 -1 mandoc.c (1.108), "Exp", lines: +7 -2 mandoc.h (1.254), "Exp", lines: +2 -1 mdoc_markdown.c (1.27), "Exp", lines: +2 -1 roff.c (1.342), "Exp", lines: +2 -1 term.c (1.276), "Exp", lines: +2 -1 Implement the \f(CW and \f(CR (constant width font) escape sequences for HTML output. Somewhat relevant because pod2man(1) relies on this. Missing feature reported by Pali dot Rohar at gmail dot com. Note that constant width font was already correctly selected before this when required by semantic markup. Only attempting physical markup with the low-level escape sequence was ineffective. 2018-10-23 20:42 schwarze Changed: tag.c (1.20), "Exp", lines: +27 -10 The ctags(1) file format uses whitespace as a field delimiter, and there is no escaping mechanism, so tags cannot contain whitespace. Consequently, we used to simply not tag macro arguments containing space characters. Instead, let's tag the first word, unless there is a proper match for that word somewhere else. For example, this makes ":tquery" work in ntpd.conf(5). Feature suggested by kn@, who also thinks the implementation looks reasonable and works in his testing. 2018-10-23 17:18 schwarze Changed: man_html.c (1.157), "Exp", lines: +6 -3 Input lines that are not blank but generate no output, for example lines containing nothing but "\&", are significant in no-fill mode and can be represented by blank lines inside <pre>. Fixing a bug that Pali dot Rohar at gmail dot com found in pod2man(1) output, for example Email::Address::XS(3p). While here, inside no-fill mode, there is no need to encode totally blank input lines by emulating .PP - just let them through as we are inside <pre> anyway. 2018-10-19 21:10 schwarze Changed: cgi.c (1.161), "Exp", lines: +41 -47 Rewrite parse_path_info() to be four lines shorter, simplify ownership of allocated strings, do not write to the input string, and improve diagnostic output. The confusing error message "invalid arch" as a reaction to mistyping the release name was noticed by tb@, who likes the new code and message. 2018-10-04 15:32 schwarze Changed: roff.7 (1.107), "Exp", lines: +19 -20 update DESCRIPTION and COMPATIBILITY, mostly correcting statements from the past that are no longer true 2018-10-04 15:16 schwarze Changed: roff.7 (1.106), "Exp", lines: +103 -97 Stop abusing subsections to represent the list of escape sequences; instead, use .Bl -tag like everywhere else. The same was already done for requests quite some time ago. Also, consistently mark up escape sequences with .Ic, just like requests. 2018-10-04 13:23 schwarze Changed: mdoc_html.c (1.315), "Exp", lines: +4 -2 When a subsection header contains no letters but only special characters, skip the TOC entry. Issue reported by kristaps@. 2018-10-02 19:44 schwarze Changed: mdoc_html.c (1.314), "Exp", lines: +23 -7 add DESCRIPTION and .Ss to the toc; suggested by espie@ 2018-10-02 19:41 schwarze Changed: cgi.c (1.160), "Exp", lines: +3 -2 enable the equivalent of -O toc in man.cgi(8) 2018-10-02 14:56 schwarze Changed: TODO (1.273), "Exp", lines: +1 -6 html.c (1.241), "Exp", lines: +3 -1 html.h (1.94), "Exp", lines: +3 -1 man.conf.5 (1.6), "Exp", lines: +4 -3 manconf.h (1.6), "Exp", lines: +3 -2 mandoc.1 (1.230), "Exp", lines: +5 -2 manpath.c (1.36), "Exp", lines: +6 -3 mdoc_html.c (1.313), "Exp", lines: +32 -2 Add an option -T html -O toc to add a brief table of contents near the top of HTML pages containing at least two non-standard sections. Suggested by Adam Kalisz and discussed with kristaps@ during EuroBSDCon 2018. 2018-10-02 12:33 schwarze Changed: TODO (1.272), "Exp", lines: +1 -7 html.c (1.240), "Exp", lines: +19 -3 html.h (1.93), "Exp", lines: +3 -2 mandoc.1 (1.229), "Exp", lines: +7 -3 mdoc_html.c (1.312), "Exp", lines: +2 -2 Support a second argument to -O man, selecting the format according to local existence of the file. Suggested by kristaps@ during EuroBSDCon 2018. Written on the train Frankfurt-Karlsruhe returning from EuroBSDCon. 2018-10-02 12:18 schwarze Changed: TODO (1.271), "Exp", lines: +2 -5 eqn_term.c (1.18), "Exp", lines: +2 -2 regress/eqn/over/precedence.out_ascii (1.7), "Exp", lines: +2 -2 regress/eqn/unary/sqrt.out_ascii (1.6), "Exp", lines: +2 -2 Render the eqn(7) "sqrt" function as U+221A in UTF-8 output. This also agrees with what groff does. Suggested by an attendee of EuroBSDCon 2018 in Bucuresti. Written on the plane Bucuresti-Frankfurt returning from EuroBSDCon. 2018-10-01 08:06 schwarze Changed: cgi.c (1.159), "Exp", lines: +33 -5 Add missing URI encoding when writing HTTP redirects, fixing a bug reported by <jungleboogie0 at gmail dot com> on bugs@. While here, fully validate the arch name such that we do not have to URI encode that one. 2018-09-23 05:34 schwarze Changed: TODO (1.270), "Exp", lines: +15 -1 feature suggestions from EuroBSDCon 2018 2018-08-27 23:13 schwarze Changed: mandoc.css (1.37), "Exp", lines: +2 -2 Reduce excessive right padding in tagged list heads. The 1.2em was an approximate equivalent of the 2n traditionally used for terminal display, but it is much too wide for HTML rendering. Issue reported by mikeb@. 2018-08-26 16:21 schwarze Changed: libman.h (1.83), "Exp", lines: +7 -5 man.c (1.180), "Exp", lines: +18 -20 man_macro.c (1.133), "Exp", lines: +37 -32 man_term.c (1.220), "Exp", lines: +3 -3 Support nesting of elements with next-line scope. For example, ksh93(1) needs this for .B\n.SM. 2018-08-25 16:53 schwarze Added: regress/roff/char/Makefile (1.1) regress/roff/char/badarg.in (1.1) regress/roff/char/badarg.out_ascii (1.1) regress/roff/char/badarg.out_lint (1.1) regress/roff/char/basic.in (1.1) regress/roff/char/basic.out_ascii (1.1) Changed: mandoc.1 (1.228), "Exp", lines: +15 -2 mandoc.h (1.253), "Exp", lines: +3 -1 read.c (1.200), "Exp", lines: +3 -1 roff.7 (1.105), "Exp", lines: +12 -5 roff.c (1.341), "Exp", lines: +73 -2 regress/roff/Makefile (1.8), "Exp", lines: +2 -2 Rudimentary implementation of the roff(7) .char (output glyph definition) request, used for example by groff_hdtbl(7). This simplistic implementation may interact incorrectly with the .tr (input character translation) request. But come on, you are not only using .char *and* .tr, but you do so with respect to the same character in the same manual page? 2018-08-25 12:33 schwarze Changed: man.c (1.179), "Exp", lines: +31 -18 regress/roff/esc/c_man.in (1.4), "Exp", lines: +17 -2 regress/roff/esc/c_man.out_ascii (1.3), "Exp", lines: +12 -1 If man(7) next-line scope is open and the line ends with \c, the scope remains open. Needed for example for groff_man(7). 2018-08-24 23:12 schwarze Added: regress/roff/while/Makefile (1.1) regress/roff/while/badargs.in (1.1) regress/roff/while/badargs.out_ascii (1.1) regress/roff/while/badargs.out_lint (1.1) regress/roff/while/basic.in (1.1) regress/roff/while/basic.out_ascii (1.1) regress/roff/while/into.in (1.1) regress/roff/while/into.out_ascii (1.1) regress/roff/while/into.out_lint (1.1) regress/roff/while/nesting.in (1.1) regress/roff/while/nesting.out_ascii (1.1) regress/roff/while/nesting.out_lint (1.1) regress/roff/while/outof.in (1.1) regress/roff/while/outof.out_ascii (1.1) regress/roff/while/outof.out_lint (1.1) Changed: TODO (1.269), "Exp", lines: +1 -5 libmandoc.h (1.74), "Exp", lines: +23 -12 mandoc.h (1.252), "Exp", lines: +5 -1 mandoc_headers.3 (1.19), "Exp", lines: +0 -1 read.c (1.199), "Exp", lines: +119 -55 roff.7 (1.104), "Exp", lines: +9 -9 roff.c (1.340), "Exp", lines: +146 -125 tbl.3 (1.3), "Exp", lines: +3 -3 regress/roff/Makefile (1.7), "Exp", lines: +3 -2 Rudimentary implementation of the roff(7) .while request. Needed for example by groff_hdtbl(7). There are two limitations: It does not support nested .while requests yet, and each .while loop must start and end in the same scope. The roff_parseln() return codes are now more flexible and allow OR'ing options. 2018-08-23 19:33 schwarze Changed: libmandoc.h (1.73), "Exp", lines: +4 -3 main.c (1.308), "Exp", lines: +2 -8 main.h (1.28), "Exp", lines: +1 -2 man.c (1.178), "Exp", lines: +1 -9 man.h (1.79), "Exp", lines: +1 -2 mandoc.3 (1.42), "Exp", lines: +8 -34 mandoc.h (1.251), "Exp", lines: +2 -3 mdoc_man.c (1.128), "Exp", lines: +1 -14 read.c (1.198), "Exp", lines: +68 -71 The upcoming .while request will have to re-execute roff(7) lines parsed earlier, so they will have to be saved for reuse - but the read.c preparser does not know yet whether a line contains a .while request before passing it to the roff parser. To cope with that, save all parsed lines for now. Even shortens the code by 20 lines. 2018-08-23 14:29 schwarze Added: regress/roff/return/Makefile (1.1) regress/roff/return/basic.in (1.1) regress/roff/return/basic.out_ascii (1.1) regress/roff/return/basic.out_lint (1.1) regress/roff/shift/Makefile (1.1) regress/roff/shift/bad.in (1.1) regress/roff/shift/bad.out_ascii (1.1) regress/roff/shift/bad.out_lint (1.1) regress/roff/shift/basic.in (1.1) regress/roff/shift/basic.out_ascii (1.1) Changed: TODO (1.268), "Exp", lines: +2 -2 libmandoc.h (1.72), "Exp", lines: +5 -2 mandoc.1 (1.227), "Exp", lines: +24 -2 mandoc.h (1.250), "Exp", lines: +5 -1 read.c (1.197), "Exp", lines: +32 -12 roff.7 (1.103), "Exp", lines: +9 -6 roff.c (1.339), "Exp", lines: +205 -179 regress/roff/Makefile (1.6), "Exp", lines: +2 -2 regress/roff/de/infinite.in (1.4), "Exp", lines: +4 -4 regress/roff/de/infinite.out_ascii (1.4), "Exp", lines: +2 -2 regress/roff/de/infinite.out_lint (1.7), "Exp", lines: +2 -1 Implement the roff(7) .shift and .return requests, for example used by groff_hdtbl(7) and groff_mom(7). Also correctly interpolate arguments during nested macro execution even after .shift and .return, implemented using a stack of argument arrays. Note that only read.c, but not roff.c can detect the end of a macro execution, and the existence of .shift implies that arguments cannot be interpolated up front, so unfortunately, this includes a partial revert of roff.c rev. 1.337, moving argument interpolation back into the function roff_res(). 2018-08-21 18:15 schwarze Changed: roff.7 (1.102), "Exp", lines: +7 -2 roff.c (1.338), "Exp", lines: +19 -5 Implement the \\$@ escape sequence (insert all macro arguments, quoted) in addition to the already supported \\$* (similar, but unquoted). Then use \\$@ to improve the implementation of the .als request (macro alias). Needed by groff_hdtbl(7). Gosh, it feels like the manual pages of the groff package are exercising every bloody roff(7) feature under the sun. In the manual page source code itself, not merely in the implementation of the used macro packages, that is. 2018-08-21 16:06 schwarze Changed: chars.c (1.76), "Exp", lines: +6 -6 term_ascii.c (1.63), "Exp", lines: +2 -2 regress/char/unicode/latin1.in (1.5), "Exp", lines: +10 -4 regress/char/unicode/latin1.out_ascii (1.4), "Exp", lines: +9 -3 regress/char/unicode/latin1.out_html (1.5), "Exp", lines: +8 -2 regress/char/unicode/latin1.out_utf8 (1.4), "Exp", lines: +9 -3 regress/char/unicode/latin1diff.in (1.4), "Exp", lines: +2 -8 regress/char/unicode/latin1diff.out_ascii (1.3), "Exp", lines: +1 -7 regress/char/unicode/latin1diff.out_html (1.4), "Exp", lines: +0 -6 regress/char/unicode/latin1diff.out_utf8 (1.3), "Exp", lines: +1 -7 regress/char/unicode/named.in (1.6), "Exp", lines: +12 -1 regress/char/unicode/named.out_ascii (1.5), "Exp", lines: +11 -0 regress/char/unicode/named.out_html (1.6), "Exp", lines: +11 -0 regress/char/unicode/named.out_utf8 (1.5), "Exp", lines: +11 -0 regress/char/unicode/namediff.in (1.6), "Exp", lines: +1 -13 regress/char/unicode/namediff.out_ascii (1.6), "Exp", lines: +0 -12 regress/char/unicode/namediff.out_html (1.6), "Exp", lines: +0 -12 regress/char/unicode/namediff.out_utf8 (1.5), "Exp", lines: +0 -12 Improve the ASCII rendering of \(Po (Pound Sterling) and of the playing card suits to match groff, using feedback from Ralph Corderoy <ralph at inputplus dot co dot uk>. 2018-08-21 01:59 schwarze Changed: chars.c (1.75), "Exp", lines: +5 -2 mandoc_char.7 (1.74), "Exp", lines: +4 -2 regress/char/unicode/named.in (1.5), "Exp", lines: +3 -2 regress/char/unicode/named.out_ascii (1.4), "Exp", lines: +2 -1 regress/char/unicode/named.out_html (1.5), "Exp", lines: +1 -0 regress/char/unicode/named.out_utf8 (1.4), "Exp", lines: +2 -1 regress/char/unicode/namediff.in (1.5), "Exp", lines: +2 -3 regress/char/unicode/namediff.out_ascii (1.5), "Exp", lines: +1 -2 regress/char/unicode/namediff.out_html (1.5), "Exp", lines: +0 -1 regress/char/unicode/namediff.out_utf8 (1.4), "Exp", lines: +1 -2 Fix some issues found looking at groff_char(7): * Add two missing characters, \('Y and \('y. * The Weierstrass p is not capital, see http://unicode.org/notes/tn27/. * Add a groff-compatible ASCII transliteration for U+02DC: "~". 2018-08-20 18:06 schwarze Changed: mandoc.c (1.107), "Exp", lines: +8 -5 \f[] means \fP, not \fR 2018-08-20 17:25 schwarze Changed: roff.c (1.337), "Exp", lines: +35 -8 Expand \n(.$ (the number of macro arguments) right in roff_userdef(), before even reparsing the expanded macro. That is the least dirty way to fix the bug that \(.$ remained set after execution of the user-defined macro ended. Any other way to fix it would probably require changes to read.c, which really shouldn't be bothered with such roff(7) internals. 2018-08-19 23:58 schwarze Changed: regress/roff/args/roff.in (1.4), "Exp", lines: +3 -3 regress/roff/args/roff.out_ascii (1.3), "Exp", lines: +0 -1 Disable one test for now that is broken after the addition of \). It is not broken because of \), which is correctly implemented, but the addition merely reveals a hidden bug elsewhere, almost certainly in \\ handling. Given that \\ is among the most mysterious escape sequences and using it is very strongly discouraged in manual pages, fixing that is not urgent - and may be hard. 2018-08-19 23:48 schwarze Changed: chars.c (1.74), "Exp", lines: +2 -1 Add the \) special character, a variant of \& so arcane that i intentionally leave it undocumented. Abused for example in the groff(7) manual page. 2018-08-19 23:10 schwarze Changed: out.c (1.73), "Exp", lines: +52 -34 tbl_term.c (1.60), "Exp", lines: +52 -27 Do alignment of non-numeric strings in numeric cells the same way as groff, and also honour the explicit alignment indicator "\&". This required an almost complete rewrite of both the measurement function and the formatter function for numeric cells. 2018-08-19 19:32 schwarze Changed: tbl_term.c (1.59), "Exp", lines: +21 -7 do not print horizontal lines inside vertical spans 2018-08-19 17:46 schwarze Changed: TODO (1.267), "Exp", lines: +1 -7 roff.7 (1.101), "Exp", lines: +19 -6 roff.c (1.336), "Exp", lines: +44 -5 Mostly complete implementation of the 'c' (character available) roff conditional, except that the .char request still isn't supported and that behaviour differs from groff in many edge cases. But at least valid character names and numbers are now distinguished from invalid ones. This also fixes the bug that parsing of the 'c' conditional was incomplete, which resulted in leaking the tested character to the input parser at the beginning of the body when the condition was inverted. 2018-08-18 22:05 schwarze Changed: roff.c (1.335), "Exp", lines: +3 -2 Bugfix: When a line ends with '\ \"', don't strip the trailing space because that turned it into a bogus line continuation. 2018-08-18 21:37 schwarze Changed: roff.7 (1.100), "Exp", lines: +8 -2 roff.c (1.334), "Exp", lines: +9 -2 support the highly surprising escape sequence \# (line continuation with comment); used for example by gropdf(1) 2018-08-18 20:41 schwarze Changed: man_macro.c (1.132), "Exp", lines: +3 -2 paragraphs can contain .MT and .UR blocks 2018-08-18 20:18 schwarze Changed: out.c (1.72), "Exp", lines: +9 -4 out.h (1.33), "Exp", lines: +3 -2 If a tbl(7) column contains both text cells and numeric cells, horizontally align the numbers in the same way as groff does. 2018-08-18 17:32 schwarze Changed: man_macro.c (1.131), "Exp", lines: +7 -1 .RE causes a line break even if .RS is not open 2018-08-18 17:07 schwarze Changed: man_term.c (1.219), "Exp", lines: +2 -2 .SY causes a one-column indentation even without any argument 2018-08-18 16:44 schwarze Changed: out.c (1.71), "Exp", lines: +5 -7 tbl_term.c (1.58), "Exp", lines: +5 -7 Do not allocate a column for decimal points if all numbers are integers. 2018-08-18 15:17 schwarze Changed: term_ascii.c (1.62), "Exp", lines: +2 -3 Unsurprisingly, zero-width non-breaking spaces have... width 0. 2018-08-18 15:13 schwarze Changed: man_macro.c (1.130), "Exp", lines: +3 -1 end of sentence detection after .ME and .UE, useful for some GNU manuals 2018-08-18 14:26 schwarze Changed: man_term.c (1.218), "Exp", lines: +3 -3 The .nf/.fi (fill mode) requests never have text children and in particular do not reset font mode. 2018-08-18 14:02 schwarze Changed: man_macro.c (1.129), "Exp", lines: +9 -2 man_term.c (1.217), "Exp", lines: +3 -2 Two consecutive .SY blocks only get a blank line in between if the first one is explicitly closed with .YS. 2018-08-18 13:05 schwarze Changed: man_term.c (1.216), "Exp", lines: +3 -2 prevent line breaks in the middle of .OP 2018-08-18 04:32 schwarze Changed: man.7 (1.140), "Exp", lines: +74 -371 Massively reduce the amount of text, cutting it down to what is needed to understand existing man(7) code and deleting parts that would only be useful for writing new documents, which we strongly discourage: * Delete the MANUAL STRUCTURE section which merely duplicates mdoc(7). * Delete internal cross references only useful for writing new code. * Delete many instances of "included only for compatibility" as the whole language is only provided for compatibility. * Fix a few minor errors and omissions. 2018-08-18 02:08 schwarze Changed: LICENSE (1.20), "Exp", lines: +2 -1 TODO (1.266), "Exp", lines: +1 -4 man.7 (1.139), "Exp", lines: +20 -3 man_html.c (1.156), "Exp", lines: +25 -1 man_macro.c (1.128), "Exp", lines: +6 -1 man_term.c (1.215), "Exp", lines: +61 -1 man_validate.c (1.137), "Exp", lines: +2 -0 roff.c (1.333), "Exp", lines: +3 -2 roff.h (1.61), "Exp", lines: +4 -2 implement the GNU man-ext .SY/.YS (synopsis block) macro in man(7), used in most manual pages of the groff package 2018-08-17 20:33 schwarze Changed: libman.h (1.82), "Exp", lines: +3 -4 libmdoc.h (1.113), "Exp", lines: +3 -5 man.c (1.177), "Exp", lines: +10 -10 man_html.c (1.155), "Exp", lines: +6 -6 man_macro.c (1.127), "Exp", lines: +16 -10 man_term.c (1.214), "Exp", lines: +22 -14 mandocdb.c (1.259), "Exp", lines: +13 -11 mdoc.c (1.269), "Exp", lines: +7 -13 mdoc_argv.c (1.116), "Exp", lines: +6 -7 mdoc_html.c (1.311), "Exp", lines: +8 -8 mdoc_macro.c (1.225), "Exp", lines: +30 -22 mdoc_man.c (1.127), "Exp", lines: +21 -15 mdoc_markdown.c (1.26), "Exp", lines: +16 -9 mdoc_state.c (1.10), "Exp", lines: +4 -5 mdoc_term.c (1.368), "Exp", lines: +10 -10 mdoc_validate.c (1.362), "Exp", lines: +2 -2 Remove more pointer arithmetic passing via regions outside the array that is undefined according to the C standard. Robert Elz <kre at munnari dot oz dot au> pointed out i wasn't quite done yet. 2018-08-16 23:43 schwarze Changed: TODO (1.265), "Exp", lines: +1 -4 man.7 (1.138), "Exp", lines: +8 -2 man_html.c (1.154), "Exp", lines: +14 -13 man_macro.c (1.126), "Exp", lines: +3 -2 man_term.c (1.213), "Exp", lines: +4 -2 man_validate.c (1.136), "Exp", lines: +1 -0 roff.c (1.332), "Exp", lines: +2 -1 roff.h (1.60), "Exp", lines: +2 -1 implement the GNU man-ext .TQ macro in man(7), used for example by groff_diff(7) 2018-08-16 15:05 schwarze Changed: man_validate.c (1.135), "Exp", lines: +2 -3 mdoc_validate.c (1.361), "Exp", lines: +3 -4 Do not calculate a pointer to a memory location before the beginning of a static array. Christos Zoulas, Robert Elz, and Andreas Gustafsson point out that is undefined behaviour by the C standard even if we never access the pointer. 2018-08-16 14:07 schwarze Changed: roff.7 (1.99), "Exp", lines: +23 -40 Document \*(.T. While here, delete the section about predefined strings. For manual pages, the concept is not important enough to be discussed in such a prominent place, and some aspects of the text were also misleading. Add a shorter version of the relevant parts to the description of the \* escape sequence instead. 2018-08-16 13:54 schwarze Added: regress/roff/string/dotT.in (1.1) regress/roff/string/dotT.out_ascii (1.1) regress/roff/string/dotT.out_html (1.1) regress/roff/string/dotT.out_markdown (1.1) regress/roff/string/dotT.out_utf8 (1.1) Changed: TODO (1.264), "Exp", lines: +1 -8 html.c (1.239), "Exp", lines: +4 -1 mandoc.c (1.106), "Exp", lines: +8 -1 mandoc.h (1.249), "Exp", lines: +2 -1 mdoc_markdown.c (1.25), "Exp", lines: +5 -2 roff.c (1.331), "Exp", lines: +14 -1 term.c (1.275), "Exp", lines: +27 -2 regress/roff/string/Makefile (1.4), "Exp", lines: +4 -1 Implement the \*(.T predefined string (interpolate device name) by allowing the preprocessor to pass it through to the formatters. Used for example by the groff_char(7) manual page. 2018-08-16 12:25 schwarze Changed: gmdiff (1.11), "Exp", lines: +2 -2 process UTF-8 input even in ASCII output mode, and provide a way to specify additional diff(1) options 2018-08-15 15:37 schwarze Changed: man_macro.c (1.125), "Exp", lines: +2 -2 fix incomplete variable renaming in previous; found by Thomas Klausner <wiz at NetBSD> via a compiler warning 2018-08-15 14:37 schwarze Changed: test-getsubopt.c (1.6), "Exp", lines: +2 -2 Change comment: NetBSD just fixed their headers; but leave the workaround in place for now for the benefit of older systems, and other systems might contain similar problems. 2018-08-15 02:48 schwarze Changed: test-stringlist.c (1.3), "Exp", lines: +2 -1 NULL requires <stddef.h> 2018-08-15 02:15 schwarze Changed: configure (1.67), "Exp", lines: +60 -42 test-getsubopt.c (1.5), "Exp", lines: +8 -5 test-strcasestr.c (1.4), "Exp", lines: +0 -4 test-strptime.c (1.4), "Exp", lines: +0 -4 test-vasprintf.c (1.5), "Exp", lines: +1 -5 test-wchar.c (1.5), "Exp", lines: +1 -5 Autodetect whether _GNU_SOURCE or _OPENBSD_SOURCE are needed; the latter is a NetBSD idiosyncrasy reported by wiz@. Also take into account that NetBSD declares getsubopt(3) in the wrong header. 2018-08-14 01:27 schwarze Changed: TODO (1.263), "Exp", lines: +1 -4 man_macro.c (1.124), "Exp", lines: +27 -20 man_term.c (1.212), "Exp", lines: +3 -1 tree.c (1.79), "Exp", lines: +3 -1 regress/man/MT/args.in (1.3), "Exp", lines: +7 -1 regress/man/MT/args.out_ascii (1.2), "Exp", lines: +4 -2 regress/man/MT/args.out_lint (1.3), "Exp", lines: +5 -5 regress/man/UR/args.in (1.3), "Exp", lines: +7 -1 regress/man/UR/args.out_ascii (1.2), "Exp", lines: +5 -2 regress/man/UR/args.out_lint (1.5), "Exp", lines: +5 -5 support tail arguments on the .ME and .UE macros, used for example in the ditroff(7) manual of the groff package 2018-08-10 22:43 schwarze Changed: TODO (1.262), "Exp", lines: +10 -1 error message for invalid -S argument 2018-08-10 22:12 schwarze Changed: TODO (1.261), "Exp", lines: +5 -4 mandoc.c (1.105), "Exp", lines: +22 -4 mandoc_char.7 (1.73), "Exp", lines: +7 -5 handle the non-portable GNU-style \[charNN], \[charNNN] character escape sequences, used for example in the groff_char(7) manual page 2018-08-10 20:40 schwarze Changed: TODO (1.260), "Exp", lines: +1 -4 roff.7 (1.98), "Exp", lines: +5 -5 roff_term.c (1.15), "Exp", lines: +8 -3 roff_validate.c (1.10), "Exp", lines: +6 -4 The groff man-ext macros define fonts CB, CI, and CR, and some groff manual pages actually use them in .ft requests. It's easy enough to handle these .ft requests in mandoc, too. 2018-08-10 04:41 schwarze Changed: TODO (1.259), "Exp", lines: +1 -4 roff.7 (1.97), "Exp", lines: +9 -6 roff.c (1.330), "Exp", lines: +12 -2 Implement the roff(7) .nop (no operation) request. Examples of manual pages (ab)using it include groff(7), chem(1), groff_mom(7), and groff_hdtbl(7). 2018-08-09 17:30 schwarze Changed: main.c (1.307), "Exp", lines: +9 -3 If somebody asks "man 3 chmod", don't respond with the lie: "No entry for chmod in the manual." Instead, say "No entry for chmod in section 3 of the manual." Came up after a question from kn@; OK kn@. 2018-08-09 17:28 schwarze Changed: Makefile (1.520), "Exp", lines: +14 -9 some fixes for the "www" and "www-install" maintainer targets 2018-08-08 14:47 tag VERSION_1_14_4 2018-08-08 14:47 schwarze Changed: NEWS (1.32), "Exp", lines: +8 -6 release 1.14.4 2018-08-08 14:30 schwarze Changed: mandoc_char.7 (1.72), "Exp", lines: +2 -2 Even though we strongly discourage escaping hyphens in manual pages in general, when introducing the *typographic* term "hyphen", actually display a real hyphen in output modes supporting it. 2018-08-08 14:16 schwarze Changed: mandoc_char.7 (1.71), "Exp", lines: +25 -25 Reorder the text in the "Dashes and Hyphens" subsection to keep the simplest and most important instructions together and at the beginning. No text change. Suggested by jmc@. 2018-08-08 14:03 schwarze Changed: mandoc_char.7 (1.70), "Exp", lines: +19 -18 Clarify the confusing "(text)" annotation in the character lists. In some cases, it meant "render as an ASCII character in output modes that have a notion of codepoints" (e.g. UTF-8, HTML); in other cases, "render in the text font in output modes that also provide a special font for mathematical symbols" (e.g. PostScript, PDF). Also explicitly annotate the escape sequences that use a special font if available. OK bentley@ 2018-08-08 13:54 schwarze Changed: mandoc_char.7 (1.69), "Exp", lines: +21 -16 After years of deliberation, finally provide a clear recommendation for hyphens and minus signs in manual pages. Since there is consensus that a typographically perfect solution is impossible, let's KISS - just write "-", don't bother with "\-", all currently relevant manual page formatters can handle "-" reasonably. OK jmc@ bentley@ 2018-08-06 14:16 schwarze Changed: TODO (1.258), "Exp", lines: +29 -1 scanned to groff manual pages for todo items; the sheer number of issues is amazing, but they all look feasible 2018-08-01 16:00 schwarze Changed: mdoc_validate.c (1.360), "Exp", lines: +2 -3 Fix an off-by-one string read access that could happen if an empty string argument preceded a string argument beginning with "--". Found by Leah Neukirchen <leah at vuxu dot org> with -Wpointer-compare. 2018-08-01 15:40 schwarze Changed: NEWS (1.31), "Exp", lines: +4 -2 roff.c (1.329), "Exp", lines: +4 -1 After rewriting the parse buffer from scratch, we also have to reset the parse point to the beginning of the new buffer or we risk out of bounds accesses. Bug found by Leah Neukirchen <leah at vuxu dot org> with valgrind on Void Linux. 2018-08-01 13:46 schwarze Changed: NEWS (1.30), "Exp", lines: +3 -3 mdoc_validate.c (1.359), "Exp", lines: +2 -2 Avoid a read access one byte beyond the end of an allocated string which occurred in situations like ".Fl a Cm --"; found by Leah Neukirchen <leah at vuxu dot org> with valgrind on Void Linux. 2018-07-31 15:34 schwarze Added: test-noop.c (1.1) Changed: INSTALL (1.22), "Exp", lines: +1 -3 Makefile (1.519), "Exp", lines: +8 -7 NEWS (1.29), "Exp", lines: +3 -1 configure (1.66), "Exp", lines: +72 -36 configure.local.example (1.34), "Exp", lines: +24 -20 more 1.14.4 release preparations: autodetect whether the compiler can use -W and -static, clearer output from ./configure, and adjust some configuration instructions 2018-07-31 15:25 schwarze Changed: TODO (1.257), "Exp", lines: +5 -1 makewhatis -p complains about language subdirectories 2018-07-31 10:25 schwarze Changed: Makefile.depend (1.34), "Exp", lines: +2 -1 html.c now uses ohash, and new file compat_strndup.c 2018-07-31 10:18 schwarze Changed: INSTALL (1.21), "Exp", lines: +10 -8 LICENSE (1.19), "Exp", lines: +2 -2 NEWS (1.28), "Exp", lines: +72 -1 first steps toward the 1.14.4 release 2018-07-28 18:34 schwarze Changed: mandoc.1 (1.226), "Exp", lines: +12 -2 mandoc.c (1.104), "Exp", lines: +5 -2 mandoc.h (1.248), "Exp", lines: +3 -2 mdoc.7 (1.271), "Exp", lines: +6 -6 read.c (1.196), "Exp", lines: +3 -2 Issue a STYLE message when normalizing the date format in .Dd/.TH. Leah Neukirchen pointed out that mdoclint(1) used to warn about a leading zero before the day number, so we know that both NetBSD and Void Linux want the message. It does no harm on OpenBSD because Mdocdate always does the right thing anyway. jmc@ agrees that it makes sense in contexts not using Mdocdate. 2018-07-28 18:32 schwarze Changed: TODO (1.256), "Exp", lines: +3 -11 remove two entries that were done 2018-07-27 17:49 schwarze Changed: man_html.c (1.153), "Exp", lines: +1 -3 mdoc_html.c (1.310), "Exp", lines: +1 -3 garbage collect the unused "#define INDENT" 2018-07-23 22:51 schwarze Changed: mandoc.css (1.36), "Exp", lines: +37 -37 Remove more redundant element selectors where the class selector is already sufficient. John Gardner tells me that "CSS selectors should only contain what's necessary to target their subjects". 2018-07-23 22:33 schwarze Changed: mandoc.css (1.35), "Exp", lines: +6 -6 replace the last instances of ex units by em; recommended by John Gardner <gardnerjohng at gmail dot com> 2018-07-16 15:22 schwarze Changed: TODO (1.255), "Exp", lines: +19 -1 new todos, mostly from Pali Rohar, mostly tbl(7) 2018-06-25 16:54 schwarze Changed: html.c (1.238), "Exp", lines: +18 -139 html.h (1.92), "Exp", lines: +1 -2 mandoc_html.3 (1.17), "Exp", lines: +4 -29 mdoc_html.c (1.309), "Exp", lines: +3 -4 out.h (1.32), "Exp", lines: +1 -6 Delete substantial amounts of code now that we no longer use variable style= attributes. 2018-06-25 14:53 schwarze Changed: roff_html.c (1.12), "Exp", lines: +3 -13 Get rid of the last explicit length in HTML style= attributes. Even though style=height is not particularly harmful for responsive design except for very large arguments which don't really occur in practice, it is not useful either: nobody should use .sp in manual pages, in particular not with an argument. Even if somebody does, ignoring the argument will likely make the output look better rather than worse. Consequently, simplify by dropping a useless feature. 2018-06-25 14:13 schwarze Changed: html.c (1.237), "Exp", lines: +3 -11 mandoc_html.3 (1.16), "Exp", lines: +1 -10 Delete support for style=margin-left attributes, which are no longer used. 2018-06-25 14:06 schwarze Changed: mdoc_html.c (1.308), "Exp", lines: +2 -2 Drop explicit, constant style=margin-left attribute on .Bf blocks. Since <div> uses HTML_NLAROUND, it is no longer needed. 2018-06-25 14:00 schwarze Changed: html.c (1.236), "Exp", lines: +1 -41 mandoc_html.3 (1.15), "Exp", lines: +2 -26 Delete support for style=width attributes, which are no longer used. 2018-06-25 13:45 schwarze Changed: html.c (1.235), "Exp", lines: +1 -3 html.h (1.91), "Exp", lines: +1 -3 mdoc_html.c (1.307), "Exp", lines: +2 -22 tbl_html.c (1.24), "Exp", lines: +1 -10 Do not write <colgroup> elements. Their only purpose is to enforce author-specified column widths, which can harm responsive design and provide no real benefit: HTML rendering engines usually do just fine automatically selecting appropriate column widths. 2018-06-25 13:33 schwarze Changed: man_html.c (1.152), "Exp", lines: +3 -21 Ignore author-specified indentation for .RS; it harms responsive design. Use the existing @media-dependent indent instead. This removes the last style= attribute from man(7) output. 2018-06-25 13:26 schwarze Changed: html.c (1.234), "Exp", lines: +1 -4 mandoc_html.3 (1.14), "Exp", lines: +2 -6 Delete support for the style=text-indent attribute, which is no longer used. 2018-06-25 13:01 schwarze Changed: man_html.c (1.151), "Exp", lines: +5 -16 mandoc.css (1.34), "Exp", lines: +6 -1 For -man -Thtml, ignore author-specified .HP widths because they harm responsive design; use @media-dependent defaults instead. 2018-06-18 01:49 schwarze Changed: html.c (1.233), "Exp", lines: +4 -1 Revert previous: style=height is still used by roff_html.c, and it doesn't actually harm responsive design, so keep it for now. Bug reported in de.comp.os.unix.bsd via naddy@, thanks. 2018-06-10 16:47 schwarze Changed: html.c (1.232), "Exp", lines: +1 -4 mandoc_html.3 (1.13), "Exp", lines: +2 -6 delete support for the HTML style=height property, which is no longer used 2018-06-10 16:15 schwarze Changed: mandoc.css (1.33), "Exp", lines: +3 -3 mdoc_html.c (1.306), "Exp", lines: +10 -17 In HTML output, for lists that have an -indent argument, just use a uniform indentation in CSS adapted to the viewport width and ignore the value of the argument taken from mdoc(7). While author-specified widths somewhat work as a micro-optimization in terminal and typeset output, they are nothing but harmful in HTML style= attributes because they break responsive design, whereas using a reasonable default indent almost never results in ugly output. Admittedly, the author-specified width might occasionally look even better, but only slightly so, and only for some viewport sizes. Based on guidance provided by John Gardner. 2018-06-10 15:12 schwarze Changed: man_term.c (1.211), "Exp", lines: +13 -1 When formatting man(7) documents that do not contain .SH macros with -Tps or -Tpdf, do not squeeze the whole text beyond the right margin. Bug reported by Will Backman during BSDCan. 2018-05-29 20:32 schwarze Changed: cgi.c (1.158), "Exp", lines: +6 -8 Remove redundant value= attributes from option elements, and use type=search rather than type=text for the input element because it tends to better support autocompletion. Both suggested by John Gardner <gardnerjohng at gmail dot com>. 2018-05-29 02:10 schwarze Changed: html.c (1.231), "Exp", lines: +1 -12 mandoc_html.3 (1.12), "Exp", lines: +4 -12 Delete support for the print_otag(sw) * and - modifiers, which are no longer used because we write fewer style= attributes. 2018-05-29 01:55 schwarze Changed: mdoc_html.c (1.305), "Exp", lines: +6 -7 Ignore author-specified -width arguments for -tag and -hang lists in HTML output. For terminal and typeset output, such arguments kind of work to achieve presentational micro-optimization. But for HTML, they only do harm. Large increases usually look ugly. Large reductions are impossible since the default is not large in the first place. Small tweaks in either direction are not important; at least not important enough to justify making responsive design impossible. Triggered by John Gardner's suggestion to further reduce style= attributes in the HTML code, in particular those containing hard-coded lengths. 2018-05-28 15:39 schwarze Changed: mandoc.css (1.32), "Exp", lines: +55 -52 John Gardner tells me that among frontend developers, gratuitous use of double selectors like "element.class" is considered poor style. When doing selection mainly by elements is not appropriate because most elements require several different styles, exclusively selecting by class is less cumbersome, more concise, and more flexible. So drop the elements from the selectors, except where they are required for disambiguation and except where they add clarity due to the presence of child selectors. 2018-05-28 14:13 schwarze Changed: html.c (1.230), "Exp", lines: +9 -3 URL-fragment strings can only contain certain characters. Fixing HTML syntax violations e.g. in pf.conf(5) and ifconfig(8) reported by Anton Lazarov <lists at wrant dot com>. 2018-05-26 20:04 schwarze Changed: mandoc.css (1.31), "Exp", lines: +15 -1 Start with baby steps towards responsive design: Use a @media width query to select a set of default indentations. Suggested by John Gardner <gardnerjohng at gmail dot com>. 2018-05-26 17:38 schwarze Changed: mandoc.css (1.30), "Exp", lines: +20 -20 Use em units rather than ex units for horizontal lengths. John Gardner and others tell me it produces more predictable results and is generally considered better style. Also use 0em instead of 0ex, in general. 2018-05-25 20:23 schwarze Changed: TODO (1.254), "Exp", lines: +4 -7 html.c (1.229), "Exp", lines: +45 -5 html.h (1.90), "Exp", lines: +2 -2 man_html.c (1.150), "Exp", lines: +3 -5 mdoc_html.c (1.304), "Exp", lines: +6 -17 Do not write duplicate id= attributes, they violate HTML syntax. Append suffixes for disambiguation. Issue first reported by Jakub Klinkovsky <j dot l dot k at gmx dot com> (Arch Linux). 2018-05-21 01:11 schwarze Changed: html.c (1.228), "Exp", lines: +3 -1 mandoc.css (1.29), "Exp", lines: +3 -2 mdoc_html.c (1.303), "Exp", lines: +2 -2 Use <span> for .Ms rather than <b>; discussed with John Gardner. 2018-05-21 00:30 schwarze Changed: html.c (1.227), "Exp", lines: +2 -2 mandoc.css (1.28), "Exp", lines: +3 -2 mdoc_html.c (1.302), "Exp", lines: +2 -2 Use <span> for .Ad rather than <i>; also suggested by John Gardner. 2018-05-21 00:00 schwarze Changed: html.c (1.226), "Exp", lines: +3 -1 mandoc.css (1.27), "Exp", lines: +3 -2 mdoc_html.c (1.301), "Exp", lines: +2 -2 Use <span> rather than abusing <i> for .Pa; suggested by John Gardner <gardnerjohng at gmail dot com>. 2018-05-20 21:48 schwarze Changed: man.cgi.8 (1.23), "Exp", lines: +9 -4 various minor improvements 2018-05-20 21:37 schwarze Changed: term_ascii.c (1.61), "Exp", lines: +7 -1 Protect against malicious manual pages containing .ll requests with excessive arguments: apply the same cutoff as for the -O width= command line argument. While here, also place some assertions at strategical places to prevent excessive indentations from being printed in case of bugs. In the past, we had more than one bug that caused mandoc to print effectively infinite output, filling up people's /tmp/ file system, which is not funny. We cannot prevent bugs from crashing the program, but we can at least make filling up the disk less likely. Triggered by a remark from sthen@ on source-changes@. 2018-05-18 14:23 schwarze Changed: cgi.c (1.157), "Exp", lines: +3 -1 In a nutshell, all mobile browsers are broken. By default, no matter the physical screen size, they use a fixed viewport width of about 1000px, then scale down the rendered page to make that huge viewport fit on the physical screen. That results in poor rendering for bad websites which assume a large fixed-size viewport (typically requiring zooming in to be able to actually read any text), but in atrocious rendering for good websites that make no assumption about the screen size (unreadably small text in the top left corner, most of the screen empty). A standard way to disable that insane behaviour and just render normally on the actual physical screen size does not exist. The closest thing is the CSS3 Device Adaptation Module Level 1 https://drafts.csswg.org/css-device-adapt/ but https://caniuse.com/#feat=css-deviceadaptation tells me that basically no browser implements it, not even on mobile. The next closest thing is the HTML meta viewport element - even though the problem has nothing to do with HTML and is purely a CSS issue. Standardization is not even planned for that one: * HTML 5.2 mentions it in passing without specifying it: https://www.w3.org/TR/html/document-metadata.html#the-meta-element * The Web Hypertext Application Technology Working Group provides very incomplete information: https://wiki.whatwg.org/wiki/MetaExtensions * CSS3 Device Adaptation Module Level 1 already wants to deprecate it, explaining mostly how to migrate *away* from it to some castle in the sky that no browser implements: https://drafts.csswg.org/css-device-adapt/#viewport-meta While i strongly believe in sticking to well-established standards, in the absence of standards and with atrocious behaviour being universal, there appears to be no alternative to using whatever works. The meta viewport element appears to be the only way to make real-world mobile browsers decently render any HTML page that does not have a fixed-width layout of 1000px. So use it, grudgingly. Originally suggested by xcv at dr dot com. Direction supported by espie@. 2018-05-14 14:10 schwarze Changed: main.c (1.306), "Exp", lines: +3 -2 Some broken terminal emulators (e.g. sakura) do the equivalent of "stty cols 0". Ignore that insanity rather than setting conf.output.width to an invalid value and embarking on infinite loops. Issue reported by Jesper Wallin <jesper at ifconfig dot se>, thanks! 2018-05-09 00:46 schwarze Changed: html.c (1.225), "Exp", lines: +4 -1 html.h (1.89), "Exp", lines: +2 -1 mandoc.css (1.26), "Exp", lines: +4 -3 mdoc_html.c (1.300), "Exp", lines: +11 -15 Fix a long-standing issue: Some macros (Nd, Oo) can contain blocks but rendered as elements that can only contain phrasing content, resulting in invalid HTML nesting. Switch them to <div>. Also move the related "display: inline" style from the HTML to the CSS. Reminded during a conversation with John Gardner. 2018-05-08 21:42 schwarze Changed: TODO (1.253), "Exp", lines: +1 -7 html.c (1.224), "Exp", lines: +5 -1 man_html.c (1.149), "Exp", lines: +3 -3 mandoc.css (1.25), "Exp", lines: +26 -18 mdoc_html.c (1.299), "Exp", lines: +13 -54 Eliminate the class=It-* attributes. Cleaner HTML, more idiomatic CSS, and minus 30 lines of C code. Suggested by John Gardner <gardnerjohng at gmail dot com>. 2018-05-08 17:52 schwarze Changed: html.c (1.223), "Exp", lines: +7 -1 mandoc.css (1.24), "Exp", lines: +25 -9 mdoc_html.c (1.298), "Exp", lines: +11 -11 Switch the emitted HTML element from <b> to <code> for the fixed syntax element macros .Nm, .Fl, .Cm, .Ic, .In, .Fd, .Fn, and .Cd. Adjust both the internal and external style sheets such that rendering remains unchanged in typical browsers. Based on feedback from John Gardner <gardnerjohng at gmail dot com>. 2018-05-03 14:21 schwarze Changed: mandoc.1 (1.225), "Exp", lines: +3 -3 Minor correction: we render HTML character references hexadecimal, not decimal; bentley@ changed that in html.c on July 14, 2017. 2018-05-01 23:36 schwarze Changed: html.c (1.222), "Exp", lines: +7 -6 skip printing the embedded style sheet if an external style is referenced 2018-04-29 14:29 schwarze Changed: mandoc.1 (1.224), "Exp", lines: +87 -101 Simpler description of output formats, shortening the manual page by 15 lines. Avoid the double redirection from -Tutf8 via -Tlocale to -Tascii. Add LC_CTYPE to the ENVIRONMENT section. While here, also correct a few inaccuracies and tweak some wordings. Triggered by a question from Laura Morales <lauretas at mail dot com>. 2018-04-24 13:58 schwarze Changed: gmdiff (1.10), "Exp", lines: +10 -7 Better mandoc(1) -I and -T options for Heirloom comparisons. Filter through col(1) -b for Heirloom because it produces double encoding. Switch on mandoc(1) -Wall in groff comparisons. Update usage. 2018-04-24 13:30 schwarze Changed: TODO (1.252), "Exp", lines: +42 -1 multiple new entries from various sources 2018-04-24 00:36 schwarze Changed: mandoc.css (1.23), "Exp", lines: +2 -2 mdoc_html.c (1.297), "Exp", lines: +12 -12 man_html.c (1.148), "Exp", lines: +3 -3 replace my vague and idiosyncratic term "selflink" with the clearer and more usual "permalink"; suggested by John Gardner <gardnerjohng at gmail dot com> 2018-04-20 14:02 schwarze Changed: TODO (1.251), "Exp", lines: +7 -2 dedup issues 2018-04-19 23:41 schwarze Changed: man.1 (1.33), "Exp", lines: +5 -4 Tweak the description of -l: Avoid the misunderstanding that the essential purpose of -l is similar to the purpose of the -a option in mandoc(1), which is not the point: the fact that -l implies -a is merely a minor detail. The point of -l is to make man(1) behave like mandoc(1). Move the mention of -a to the end to de-emphasize it. Nate Bargmann reported that this seriously confused him, and i can see why. 2018-04-19 16:25 schwarze Changed: main.c (1.305), "Exp", lines: +57 -13 Compatibility with man-db: In page name mode (= man(1) default mode), also try to interpret names containing slashes as absolute or relative file names. Missing feature reported by Nate Bargmann on <groff at gnu dot org>, and the man-db maintainer Colin Watson <cjwatson at debian dot org> kindly explained to me how this is supposed to work. 2018-04-13 19:55 schwarze Changed: main.c (1.304), "Exp", lines: +14 -2 mandoc.1 (1.223), "Exp", lines: +10 -6 Use TIOCGWINSZ to reduce the default -Owidth during interactive use on terminals narrower than 79 columns and the default -Oindent on terminals narrower than 66 columns. Requested by and feedback from pirofti@; mpi@ and juanfra@ also like the general direction. 2018-04-13 18:31 schwarze Changed: term_ascii.c (1.60), "Exp", lines: +15 -3 Make sure that mandoc only goes into UTF-8 mode if the user really selected UTF-8, not some other multibyte locale. This obviously makes no difference on OpenBSD but improves portability. Issue reported by <Nakayama at NetBSD> via wiz@. 2018-04-13 16:28 schwarze Changed: html.c (1.221), "Exp", lines: +28 -2 html.h (1.88), "Exp", lines: +3 -2 man_html.c (1.147), "Exp", lines: +21 -14 mandoc_html.3 (1.11), "Exp", lines: +17 -3 mdoc_html.c (1.296), "Exp", lines: +20 -13 preserve comments before .Dd and .TH (typically Copyright and license) in full HTML output, but not with -Ofragment, e.g. in man.cgi(8); suggested by Thomas Klausner <wiz at NetBSD> 2018-04-11 17:11 schwarze Changed: man_html.c (1.146), "Exp", lines: +3 -1 man_term.c (1.210), "Exp", lines: +8 -5 man_validate.c (1.134), "Exp", lines: +3 -3 mdoc_html.c (1.295), "Exp", lines: +2 -2 mdoc_man.c (1.126), "Exp", lines: +11 -3 mdoc_markdown.c (1.24), "Exp", lines: +2 -2 mdoc_term.c (1.367), "Exp", lines: +11 -6 mdoc_validate.c (1.358), "Exp", lines: +6 -3 roff.c (1.328), "Exp", lines: +30 -7 roff.h (1.59), "Exp", lines: +2 -1 tree.c (1.78), "Exp", lines: +10 -2 preserve comments before .Dd when converting mdoc(7) to man(7) with mandoc -Tman; suggested by Thomas Klausner <wiz at NetBSD> 2018-04-10 00:52 schwarze Added: regress/roff/nr/incr.in (1.1) regress/roff/nr/incr.out_ascii (1.1) Changed: TODO (1.250), "Exp", lines: +1 -9 roff.7 (1.96), "Exp", lines: +19 -5 roff.c (1.327), "Exp", lines: +44 -15 regress/roff/nr/Makefile (1.3), "Exp", lines: +1 -1 Two new low-level roff(7) features: * .nr optional third argument (auto-increment step size) * \n+ and \n- numerical register auto-increment and -decrement bentley@ reported on Dec 9, 2013 that lang/sbcl(1) uses these. 2018-04-09 22:27 schwarze Added: regress/roff/nr/undef.in (1.1) regress/roff/nr/undef.out_ascii (1.1) Changed: libmandoc.h (1.71), "Exp", lines: +2 -2 roff.c (1.326), "Exp", lines: +20 -24 regress/roff/nr/Makefile (1.2), "Exp", lines: +1 -1 When accessing an undefined number register, define it to be zero, like the previous commit for strings and macros, only technically simpler. Desired behaviour also mentioned by Werner Lemberg in 2011. This diff adds functionality but is -21 +19 LOC. :-) 2018-04-09 02:31 schwarze Added: regress/roff/string/undef.in (1.1) regress/roff/string/undef.out_ascii (1.1) regress/roff/string/undef.out_lint (1.1) Changed: TODO (1.249), "Exp", lines: +1 -5 roff.c (1.325), "Exp", lines: +82 -43 regress/roff/string/Makefile (1.3), "Exp", lines: +2 -2 Using an undefined string or macro will cause it to be defined as empty. Observed by Werner Lemberg on Nov 14, 2011 and rotting on my TODO list ever since. 2018-04-05 22:12 schwarze Changed: man.7 (1.137), "Exp", lines: +4 -17 Stop documenting the non-portable .R man(7) macro. Neither groff nor the heirloom-doctools support it. Adding it was a mistake in the first place. 2018-04-05 22:05 schwarze Changed: mdoc_man.c (1.125), "Exp", lines: +2 -2 Do not use a non-portable .R man(7) macro. Neither groff nor the heirloom-doctools support it. Work around the gap by using .BR with an empty first argument. This was noticed more than once in the past, but i always forgot to fix it. 2018-04-05 09:17 schwarze Changed: mdoc_term.c (1.366), "Exp", lines: +3 -3 mdoc_validate.c (1.357), "Exp", lines: +3 -3 st.in (1.30), "Exp", lines: +44 -44 use the portable \(lq and \(rq internally rather than \(Lq and \(Rq 2018-04-05 08:47 schwarze Changed: mdoc_man.c (1.124), "Exp", lines: +3 -3 For .Do/.Dq, use the documented and portable \(lq and \(rq character escape sequences rather than the undocumented and non-portable \(Lq and \(Rq. Bug reported by Tim L <darkxst at github> via Thomas Klausner <wiz at NetBSD>; see https://github.com/nih-at/libzip/pull/42 2018-03-16 20:41 schwarze Changed: mdoc_validate.c (1.356), "Exp", lines: +3 -2 Ouch, fix previous: In the edge case of a single-character string containing nothing but a single hyphen, the pointer got incremented twice at one point, causing a read overrun found by naddy@. 2018-03-16 15:05 schwarze Changed: mandoc.1 (1.222), "Exp", lines: +9 -3 mandoc.h (1.247), "Exp", lines: +2 -1 mdoc_validate.c (1.355), "Exp", lines: +66 -9 read.c (1.195), "Exp", lines: +2 -1 Style message about bad input encoding of em-dashes as -- instead of \(em. Suggested by Thomas Klausner <wiz at NetBSD>; discussed with jmc@. 2018-03-15 18:10 schwarze Changed: mandoc_char.7 (1.68), "Exp", lines: +22 -8 Soften the language discouraging special character escape sequences. After i improved their ASCII renderings in groff and mandoc some time ago, mathematical symbols can now be used in specialised mathematical manual pages like libm and some X libraries. Tweaks and OK jmc@. 2018-02-27 11:16 schwarze Added: compat_strndup.c (1.1) test-strndup.c (1.1) Changed: Makefile (1.518), "Exp", lines: +4 -1 configure (1.65), "Exp", lines: +9 -2 Add strndup(3) compat implementation. Jan Stary reports that MacOS X Snow Leopard and older lacks it. 2018-02-23 21:35 schwarze Changed: read.c (1.194), "Exp", lines: +32 -7 After opening a file with gzdopen(3), we have to call gzclose(3) or we leak memory internally used by zlib to keep compression state. Bug reported by Wolfgang Mueller <vehk at vehk dot de> who also provided an incomplete patch, part of which i'm using in this commit. 2018-02-23 18:54 schwarze Changed: apropos.1 (1.47), "Exp", lines: +25 -2 clarify documentation of macro keys 2018-02-23 18:25 schwarze Changed: mandocdb.c (1.258), "Exp", lines: +27 -6 Logically, the following are are type names - just like .Vt, some of them with an optional variable name following: - .Ft - .Fa in the SYNOPSIS - .Fn second and later arguments in the SYNOPSIS So add these to the .Vt macro table in the mandoc.db(5) database. During my LibreSSL work, i'm getting really tired of typing $ man -k Vt,Ft,Fa=some_type_name over and over again; now, this becomes just: $ man -k Vt=some_type_name 2018-02-23 16:47 schwarze Changed: main.c (1.303), "Exp", lines: +2 -2 tag.c (1.19), "Exp", lines: +4 -1 Invalidate the tag_files.tfd after fclose(3)ing the stram associated with it. In main() assert that the tfd was actually invalidated. This avoids closing an invalid fd. From tb@; OK deraadt@ on an earlier version. 2018-02-07 20:31 schwarze Changed: mandocdb.c (1.257), "Exp", lines: +13 -3 In man(7) and cat pages, cut off excessive one line descriptions. An extreme example of how rogue files could mess up apropos(1) output was reported by bentley@: qwtlicense(3) in the x11/qwt port. 2018-02-07 20:04 schwarze Changed: mandoc_aux.c (1.11), "Exp", lines: +4 -4 Fix the mandoc_strndup() utility function. All existing callers seem safe so far, but implementing it with an unchecked memcpy(3) is just wrong and quite dangerous. 2018-02-07 19:58 schwarze Changed: regress/mdoc/Oo/punct.out_ascii (1.6), "Exp", lines: +1 -1 regress/mdoc/Oo/punct.out_markdown (1.6), "Exp", lines: +1 -1 fix wrong date 2018-02-06 16:29 schwarze Deleted: regress/mdoc/Oo/punct.out_lint (1.6) Changed: mdoc_validate.c (1.354), "Exp", lines: +9 -10 regress/mdoc/Aq/empty.out_lint (1.6), "Exp", lines: +0 -1 regress/mdoc/Brq/empty.out_lint (1.6), "Exp", lines: +0 -1 regress/mdoc/Oo/Makefile (1.5), "Exp", lines: +0 -1 regress/mdoc/Oo/punct.in (1.5), "Exp", lines: +0 -4 regress/mdoc/Oo/punct.out_ascii (1.5), "Exp", lines: +0 -2 regress/mdoc/Oo/punct.out_markdown (1.5), "Exp", lines: +0 -3 regress/mdoc/Qq/empty.out_lint (1.6), "Exp", lines: +0 -1 regress/mdoc/Sq/empty.out_lint (1.6), "Exp", lines: +0 -1 Delete the "no blank before trailing delimiter" check from the partial explicit macros. Leah Neukirchen <leah at vuxu dot org> rightfully points out that the check makes no sense for these macros. 2018-01-13 05:23 schwarze Changed: mdoc_man.c (1.123), "Exp", lines: +1 -10 mdoc_term.c (1.365), "Exp", lines: +1 -9 regress/mdoc/Lk/noarg.out_ascii (1.5), "Exp", lines: +2 -3 Remove the implicit display feature of .Lk because it was inconsistent across output devices, counter-intuitive, and resulted in ugly output for many real-world manual pages. Always format even long links in-line. I already committed a similar change to groff. OK jmc@, bentley@, and the original author of the feature, Werner Lemberg <wl@gnu.org>. 2017-12-15 23:39 schwarze Changed: roff.7 (1.95), "Exp", lines: +3 -3 typo; from Alexander Kuleshov <kuleshovmail at gmail dot com> 2017-11-29 20:05 schwarze Changed: mdoc_state.c (1.9), "Exp", lines: +15 -10 Recognize .Bl -column at parse time, and not only at validation time, even if other arguments precede -column. This is required because the .It parser needs to know whether or not we are a -column list. Fixes tree corruption leading to an assertion failure. Bug reported by bentley@. 2017-11-28 20:26 schwarze Changed: mandoc.1 (1.221), "Exp", lines: +3 -3 duplicate word, found by igor(1) 2017-11-10 23:42 schwarze Changed: term_ps.c (1.91), "Exp", lines: +6 -15 streamline termp allocation: this will allow the init function to do things differently in the ps vs pdf case; from espie@ 2017-11-10 23:32 schwarze Changed: mandoc.1 (1.220), "Exp", lines: +3 -3 mandoc.h (1.246), "Exp", lines: +2 -2 read.c (1.193), "Exp", lines: +2 -2 be less assertive when warning about a possible typo; from jca@, ok jmc@ 2017-11-02 14:53 schwarze Changed: LICENSE (1.18), "Exp", lines: +2 -2 term_ps.c (1.90), "Exp", lines: +37 -15 Shrink -Tps output by more than 50% by using PostScript as a programming language. * Define and use one PostScript procedure to select each font. * Define and use procedures combining "use" and "show". * In one of these, reuse the current row if it did not change. Most ideas and most coding by espie@, tweaked by me. 2017-10-29 19:25 schwarze Changed: term_ps.c (1.89), "Exp", lines: +28 -11 Print a human-readable media name in the %%DocumentMedia DSC comment and use the setpagedevice PostScript operator to help printers automatically select the paper of the best matching PageSize. Many thanks to Mike Williams <obsd1 at eandem dot co dot uk> for teaching me about the relevant features of PostScript and DSC and for suggesting what to put into the first %%DocumentMedia argument. 2017-10-28 16:20 schwarze Changed: TODO (1.248), "Exp", lines: +5 -1 duplicate anchors 2017-10-26 18:11 schwarze Changed: term_ps.c (1.88), "Exp", lines: +3 -3 more readable conversion of paper size from millimeters to PostScript basic units, also slightly more precise 2017-10-25 20:48 schwarze Changed: term_ps.c (1.87), "Exp", lines: +1 -3 The page footer line (psmarg) is created in ps_begin(), and the last call writing to it is always ps_endline(), which ends with ps_pclose(), which prints "ET" (end text). Consequently, do not print another instance of "ET" in ps_closepage() after the footer line and before the "endstream" for the page. Fixing a PDF syntax error found while investigating the bug report from Jan Stary that also resulted in the previous commit. 2017-10-25 18:52 schwarze Changed: term_ps.c (1.86), "Exp", lines: +4 -4 Properly close out the top-level Font object, the end-of-page Resource objects, and the Catalog object, fixing three PDF syntax errors that were present in every PDF file generated with mandoc since the initial checkin of the formatter in July 2010. Bug reported by Jan Stary <hans at stare dot cz> on misc@. 2017-10-23 13:54 schwarze Changed: mdoc.7 (1.270), "Exp", lines: +41 -17 Modernize documentation of .Ao and .Aq. I looked through our whole tree and failed to find a single use that is really convincing, except those with .Mt. Putting it around character and key names is somewhat widespread and maybe acceptable, even if hardly useful. So for now, delete the bogus examples and explain what these macros are really used for. Discourage the most common abuses. Triggered by a question from Raf Czlonka <rczlonka at gmail dot com>. 2017-10-17 23:19 schwarze Changed: tbl.7 (1.29), "Exp", lines: +5 -3 HISTORY: mention first appearance in OpenBSD 2017-09-12 18:21 schwarze Changed: mdoc_validate.c (1.353), "Exp", lines: +5 -2 Do not segfault when there are two .Dt macros, the first without an architecture argument and the second with an invalid one. Bug found by jsg@ with afl(1). 2017-09-07 14:55 schwarze Changed: mandoc.1 (1.219), "Exp", lines: +3 -3 typo: convertion -> convention; from dcoppa@ 2017-09-06 16:24 schwarze Changed: html.c (1.220), "Exp", lines: +3 -1 fix a NULL pointer access on deroff() failure; could be triggered with '.SS ""'; reported by Michael <Stapelberg at debian> 2017-09-04 10:35 schwarze Changed: eqn.7 (1.37), "Exp", lines: +3 -3 fix grammar; while here, improve spacing; from sobrado@ 2017-09-02 11:55 schwarze Changed: TODO (1.247), "Exp", lines: +5 -1 format ".IP *" etc. as <ul> rather than <dl> 2017-08-26 20:38 schwarze Changed: mandocdb.c (1.256), "Exp", lines: +6 -6 Fix previous: mmap(2) returns MAP_FAILED on failure, not NULL. Bug pointed out by tedu@. 2017-08-26 15:55 schwarze Changed: mandocdb.c (1.255), "Exp", lines: +54 -42 Do not fork and exec cmp(1); instead, simply fstat(2), mmap(2), and compare the files directly, allowing a much stricter pledge(2), at very little cost: merely 15 additional lines of very simple code. Suggested by George Brown <321 dot george at gmail dot com> on misc@. 2017-08-26 12:59 schwarze Changed: mandocdb.c (1.254), "Exp", lines: +4 -21 No need to fork and exec rm(1) -rf, we know that we have exactly one file and exactly one directory to remove. While here, increase the size of the buffer such that the file name actually fits. Minus 17 lines of code, no functional change. Opportunity for simplification reported by George Brown <321 dot george at gmail dot com> on misc@. 2017-08-23 21:56 schwarze Changed: eqn_term.c (1.17), "Exp", lines: +5 -3 remove spacing after another representation of unary minus 2017-08-23 20:49 schwarze Changed: eqn_term.c (1.16), "Exp", lines: +5 -3 remove spacing after unary minus 2017-08-23 20:29 schwarze Changed: eqn_term.c (1.15), "Exp", lines: +8 -2 regress/eqn/fromto/precedence.out_ascii (1.3), "Exp", lines: +1 -1 regress/eqn/over/precedence.out_ascii (1.6), "Exp", lines: +2 -2 regress/eqn/subsup/precedence.out_ascii (1.4), "Exp", lines: +1 -1 eliminate white space after opening and before closing punctuation 2017-08-23 20:03 schwarze Changed: eqn_term.c (1.14), "Exp", lines: +13 -3 regress/eqn/matrix/basic.out_ascii (1.4), "Exp", lines: +1 -1 Suppress spacing before certain kinds of lists. One benefit is a reduced probablity that a blank appears between a function name and the opening parenthesis introducing the arguments. The heuristics isn't perfect and may occasionally suppress a blank that wouldn't do harm. 2017-08-23 20:03 schwarze Changed: gmdiff (1.9), "Exp", lines: +1 -1 use the tty-char macro file for ASCII comparisons 2017-08-23 13:01 schwarze Changed: chars.c (1.73), "Exp", lines: +8 -8 regress/char/unicode/namediff.out_ascii (1.4), "Exp", lines: +5 -5 regress/eqn/fromto/basic.out_ascii (1.6), "Exp", lines: +1 -1 Improve ASCII rendering of a few rare character escape sequences that can be changed unilaterally because groff fails to render them at all. 2017-08-23 10:59 schwarze Changed: regress/char/unicode/latin1.in (1.4), "Exp", lines: +4 -0 regress/char/unicode/latin1.out_ascii (1.3), "Exp", lines: +10 -6 regress/char/unicode/latin1.out_html (1.4), "Exp", lines: +4 -0 regress/char/unicode/latin1.out_utf8 (1.3), "Exp", lines: +4 -0 regress/char/unicode/latin1diff.in (1.3), "Exp", lines: +0 -4 regress/char/unicode/latin1diff.out_ascii (1.2), "Exp", lines: +0 -4 regress/char/unicode/latin1diff.out_html (1.3), "Exp", lines: +0 -4 regress/char/unicode/latin1diff.out_utf8 (1.2), "Exp", lines: +0 -4 regress/char/unicode/named.in (1.4), "Exp", lines: +4 -0 regress/char/unicode/named.out_ascii (1.3), "Exp", lines: +65 -61 regress/char/unicode/named.out_html (1.4), "Exp", lines: +4 -0 regress/char/unicode/named.out_utf8 (1.3), "Exp", lines: +4 -0 regress/char/unicode/namediff.in (1.4), "Exp", lines: +0 -4 regress/char/unicode/namediff.out_ascii (1.3), "Exp", lines: +0 -4 regress/char/unicode/namediff.out_html (1.4), "Exp", lines: +0 -4 regress/char/unicode/namediff.out_utf8 (1.3), "Exp", lines: +0 -4 regress/eqn/delim/basic.out_ascii (1.3), "Exp", lines: +2 -1 regress/eqn/fromto/basic.out_ascii (1.5), "Exp", lines: +1 -1 regress/eqn/nullary/symbol.out_ascii (1.3), "Exp", lines: +2 -2 regress/roff/esc/multi.out_ascii (1.3), "Exp", lines: +2 -2 regress/roff/esc/two.out_ascii (1.3), "Exp", lines: +12 -8 catch up with ASCII renderings in chars.c rev. 1.72 2017-08-23 10:50 schwarze Changed: chars.c (1.72), "Exp", lines: +78 -78 term_ascii.c (1.59), "Exp", lines: +6 -6 Switch ASCII rendering of the same mathematical symbols and greek letters as in groff commit babca15f from trying to imitate the characters' graphical shapes, which resulted in unintelligible renderings in many cases, to transliterations conveying the characters' meanings. One benefit is making these characters usable for portable manual pages. Solving a problem pointed out by bentley@. 2017-08-22 18:17 schwarze Changed: man.conf.5 (1.5), "Exp", lines: +8 -4 Correct the mandoc.db(5) requirements of man(1) after the deprecation of MLINKS. Inaccuracy pointed out by espie@. 2017-08-22 17:50 schwarze Changed: mansearch.c (1.77), "Exp", lines: +11 -1 When finding a bogus database entry, print a meaningful warning and skip the entry. Issue reported by espie@. 2017-08-21 15:42 schwarze Changed: main.c (1.302), "Exp", lines: +12 -1 When the stdout stream gets broken, there is no point in reading any more input files, and it would be misleading to start a parser, because that would show randomly truncated text. Instead, print an error message and exit the program. Issue found by Leah Neukirchen <leah at vuxu dot org>, who was surprised to see half a manpage when her /tmp/ overflew. 2017-08-20 02:30 schwarze Changed: lib.in (1.20), "Exp", lines: +17 -7 sync with FreeBSD; suggested by Sevan Janiyan <venture37 at geeklan dot co dot uk> 2017-08-19 22:05 schwarze Changed: man.1 (1.32), "Exp", lines: +2 -7 Delete the lie that $PAGER would only be used with -a or -l; the text was probably copied from mandoc(1) or apropos(1), where it is true. 2017-08-19 22:00 schwarze Changed: mandoc.1 (1.218), "Exp", lines: +16 -2 document -O mdoc; triggered by a question from jmc@ and OK jmc@ 2017-08-11 16:56 schwarze Changed: mdoc.c (1.268), "Exp", lines: +3 -3 Make the "new sentence, new line" check stricter, allowing digits in the last two letters of the last word of the sentence. No false positives in base or Xenocara. Suggested by and OK jmc@. 2017-08-11 15:10 schwarze Changed: man.1 (1.31), "Exp", lines: +12 -2 Add two EXAMPLES; triggered by a question from jmc@. Feedback and OK jmc@. 2017-08-09 12:49 schwarze Changed: man.1 (1.30), "Exp", lines: +18 -12 Explain how to transform markup for the terminal when not using a pager, and how to remove markup. Add related cross references. While here, as suggested by jmc@, replace the excessive cross references to the intro pages by a more relevant one to mandoc(1). Triggered by a question from, using feedback from, and OK jmc@. 2017-08-05 13:34 tag VERSION_1_14_3 2017-08-05 13:34 schwarze Changed: Makefile (1.517), "Exp", lines: +2 -2 NEWS (1.27), "Exp", lines: +16 -1 release 1.14.3 2017-08-02 13:29 schwarze Changed: mansearch.c (1.76), "Exp", lines: +49 -18 mdoc_validate.c (1.352), "Exp", lines: +3 -6 No longer use names that only occur in the SYNOPSIS section as names for man(1) lookup. For OpenBSD base and Xenocara, that functionality was never intended to be required, and i just fixed the last handful of offenders using it - not counting the horribly ill-designed interfaces engine(3) and lh_new(3) which are impossible to properly document in the first place. Of course, apropos(1) and whatis(1) continue to use SYNOPSIS .Nm, .Fn, and .Fo macros, so "man -k ENGINE_get_load_privkey_function" still works. This change also gets rid of a few bogus warnings "cross reference to self" which actually are *not* to self, like in yp(8). This former functionality was intended to help third-party software in the ports tree and on non-OpenBSD systems containing manual pages with incomplete or corrupt NAME sections. But it turned out it did more harm than good, and caused more confusion than relief, specifically for third party manuals and for maintainers of mandoc-portable on other operating systems. So kill it. Problems reported, among others, by Yuri Pankov (illumos). OK jmc@ 2017-07-31 16:14 schwarze Changed: tbl_html.c (1.23), "Exp", lines: +4 -1 tbl_term.c (1.57), "Exp", lines: +5 -2 Ignore explicitly specified negative column widths rather than wrapping around to huge numbers and risking memory exhaustion; fixes Debian ps(1). Bug reported by Dr. Markus Waldeck. 2017-07-31 15:19 schwarze Changed: man_term.c (1.209), "Exp", lines: +3 -3 mdoc_validate.c (1.351), "Exp", lines: +2 -2 Fix an out of bounds read access to a constant array that caused segfaults on certain hardened versions of glibc. Triggered by .sp or blank lines right before .SS or .SH, or before the first .Sh. Found the hard way by Dr. Markus Waldner on Debian and by Leah Neukirchen on Void Linux. 2017-07-28 14:57 tag VERSION_1_14_2 2017-07-28 14:57 schwarze Changed: INSTALL (1.20), "Exp", lines: +4 -4 NEWS (1.26), "Exp", lines: +17 -11 final tweaks for the 1.14.2 release 2017-07-28 14:48 schwarze Changed: mandocdb.c (1.253), "Exp", lines: +2 -2 When the mparse_alloc() prototype changed in read.c 1.179, updating the enum constant was forgotten in this call. No functional change since the mmsg argument is NULL anyway. Found by florian@ with clang. 2017-07-28 14:25 schwarze Changed: term.c (1.274), "Exp", lines: +2 -2 fix typo in TERMP_MULTICOL flag test; patch from florian@, found with clang 2017-07-28 13:02 schwarze Changed: regress/mdoc/Xr/Makefile (1.4), "Exp", lines: +3 -0 disable .Xr -Tlint test for now, it causes too much trouble on non-OpenBSD systems 2017-07-28 12:48 schwarze Changed: regress/mdoc/Sh/before.in (1.4), "Exp", lines: +5 -7 regress/mdoc/Sh/before.out_ascii (1.4), "Exp", lines: +2 -2 regress/mdoc/Sh/before.out_markdown (1.4), "Exp", lines: +4 -6 regress/mdoc/Sh/subbefore.in (1.4), "Exp", lines: +5 -7 regress/mdoc/Sh/subbefore.out_ascii (1.4), "Exp", lines: +2 -2 regress/mdoc/Sh/subbefore.out_markdown (1.4), "Exp", lines: +4 -6 Do not test .Xr here. It is not what this directory should focus on, and it is causing too much trouble in -portable. 2017-07-26 10:33 schwarze Changed: man_validate.c (1.133), "Exp", lines: +1 -2 Fix a typo that caused a non-constant string to be passed as a format string; no functional change; reported by Michael <Stapelberg at debian>. 2017-07-26 10:21 schwarze Changed: main.c (1.301), "Exp", lines: +2 -2 Cast the return value of chdir(2) to void. We already have a comment above explaining to human auditors why no error checking is needed here, so it's only fair to tell the compiler, too. Worried compiler reported by Michael <Stapelberg at debian>. 2017-07-24 11:15 schwarze Changed: TODO (1.246), "Exp", lines: +11 -2 two more entries from the mdoclint TODO, clerified by wiz@ 2017-07-22 20:43 schwarze Changed: TODO (1.245), "Exp", lines: +14 -1 migrate the mdoclint(1) TODO list here, from pkgsrc 2017-07-20 16:35 schwarze Changed: regress/mdoc/Sh/before.in (1.3), "Exp", lines: +3 -3 regress/mdoc/Sh/before.out_ascii (1.3), "Exp", lines: +2 -2 regress/mdoc/Sh/before.out_markdown (1.3), "Exp", lines: +2 -2 regress/mdoc/Sh/subbefore.in (1.3), "Exp", lines: +3 -3 regress/mdoc/Sh/subbefore.out_ascii (1.3), "Exp", lines: +2 -2 regress/mdoc/Sh/subbefore.out_markdown (1.3), "Exp", lines: +2 -2 Avoid cross reference to mandoc(1) because it may cause a message on other operating systems where mandoc is not installed, causing the test to fail in the portable test suite. 2017-07-20 16:24 schwarze Changed: Makefile (1.516), "Exp", lines: +12 -12 configure.local.example (1.33), "Exp", lines: +2 -2 mdoc.7 (1.269), "Exp", lines: +3 -3 more renaming from mdocml to mandoc 2017-07-20 16:23 schwarze Changed: NEWS (1.25), "Exp", lines: +3 -1 mention -Tlint to stdout 2017-07-20 15:41 schwarze Changed: TODO (1.244), "Exp", lines: +1 -6 MAP_PRIVATE is pointless without PROT_WRITE 2017-07-20 15:26 schwarze Changed: TODO (1.243), "Exp", lines: +1 -10 main.c (1.300), "Exp", lines: +10 -7 mandoc.1 (1.217), "Exp", lines: +5 -3 For -Tlint, put parser messages on stdout instead of stderr. Originally, naddy@ requested this in 2011 (or maybe even earlier). It was discussed with joerg@, kristaps@, naddy@, and espie@ in 2011, and everybody agreed in principle, but it was postponed because kristaps@ wanted to do some cleanup of the message system first. Meanwhile, message infrastructure was improved about a dozen times... This makes long, tedious commands like "mandoc -Tlint *.1 2>&1 | less" unnecessary and allows simple ones like "man -l -Tlint *.1". 2017-07-20 14:36 schwarze Changed: read.c (1.192), "Exp", lines: +16 -10 Do not call err(3) from the parser. Call mandoc_vmsg() and return failure such that we can continue with the next file. 2017-07-20 12:54 schwarze Changed: TODO (1.242), "Exp", lines: +1 -6 mdoc_validate.c (1.350), "Exp", lines: +16 -1 correctly handle letters in .Nx arguments; improves for example getpgid(2), ac(8), ldconfig(8), mount_ffs(8), sa(8), ttyflags(8), ... 2017-07-20 11:58 schwarze Changed: TODO (1.241), "Exp", lines: +9 -1 three ideas found in a different TODO file 2017-07-20 11:41 schwarze Changed: Makefile (1.515), "Exp", lines: +6 -14 * clean catman.o which was missing * delete WWW_OBJS which i don't use * do not complain about *.out_markdown * bump VERSION to 1.14.2 (not released yet) 2017-07-20 11:24 schwarze Changed: Makefile.depend (1.33), "Exp", lines: +2 -2 sync 2017-07-20 11:07 schwarze Changed: eqn.7 (1.36), "Exp", lines: +3 -3 Fix incorrectly swapped labels of left/right arrows; from bentley@. 2017-07-19 21:48 schwarze Changed: TODO (1.240), "Exp", lines: +1 -48 delete some entries that have been taken care of 2017-07-19 21:01 schwarze Changed: NEWS (1.24), "Exp", lines: +10 -6 more bits for 1.14.2 2017-07-19 14:05 schwarze Changed: mansearch.c (1.75), "Exp", lines: +19 -3 Prefer arch-dependent over arch-independent pages if the name priority, the section number, and all names match. Changes little on installed systems except the ordering of apropos(1) results, because we install base and Xenocara manuals in different trees, but fixes lookup of pages like apm(4) vs. apm(4/amd64) in man.cgi(8). Issue discovered by martian67 on freenode and reported via tj@. 2017-07-18 18:47 schwarze Changed: regress/regress.pl (1.8), "Exp", lines: +230 -180 regress/regress.pl.1 (1.3), "Exp", lines: +11 -57 Run the regression tests iteratively rather than recursively. Simpler user interface, better summary output, simpler code, and slightly faster. Inspired by espie@'s request to avoid needless recursive make(1) in the OpenBSD regression testing tree. 2017-07-16 18:45 schwarze Changed: mandoc.css (1.22), "Exp", lines: +4 -3 The only elements using floats are dt.It-tag, so the only elements allowed to the right of them are dd.It-tag. Fixes overlapping rendering after long tag lists without bodies, for example in the Xenocara apm(4) manual. Issue reported by tj@. 2017-07-16 17:59 schwarze Added: regress/mdoc/Bl/diag.out_lint (1.1) regress/mdoc/Bl/inset.out_lint (1.1) Changed: regress/mdoc/Bl/Makefile (1.9), "Exp", lines: +1 -1 regress/mdoc/Bl/diag.in (1.3), "Exp", lines: +5 -4 regress/mdoc/Bl/diag.out_ascii (1.3), "Exp", lines: +3 -2 regress/mdoc/Bl/diag.out_markdown (1.3), "Exp", lines: +3 -2 regress/mdoc/Bl/inset.in (1.3), "Exp", lines: +3 -3 regress/mdoc/Bl/inset.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Bl/inset.out_markdown (1.3), "Exp", lines: +1 -1 test -diag -width and -inset -width 2017-07-15 17:57 schwarze Changed: html.c (1.219), "Exp", lines: +18 -14 mandoc_html.3 (1.10), "Exp", lines: +8 -5 mdoc_html.c (1.294), "Exp", lines: +5 -5 In .Bl -tag and -hang, do not print a margin-left style attribute for each individual item if the -width argument matches the default of 6n. Suggested by Steffen Nurpmeso <steffen at sdaoden dot eu> on <groff at GNU dot org> in April 2017. 2017-07-15 17:29 schwarze Changed: mandoc.css (1.21), "Exp", lines: +2 -2 mdoc_html.c (1.293), "Exp", lines: +2 -2 use the same width increase logic for .Bl -hang as for .Bl -tag 2017-07-15 16:40 schwarze Changed: mdoc_validate.c (1.349), "Exp", lines: +6 -5 If -column, -diag, -inset, -item, or -ohang lists have a -width, don't just talk about ignoring it, actually do ignore it. No change for terminal output, improves HTML output. 2017-07-15 16:35 schwarze Changed: mandoc.css (1.20), "Exp", lines: +6 -6 correct left margins for different classes of definition lists 2017-07-15 16:26 schwarze Changed: eqn.c (1.78), "Exp", lines: +2 -2 regress/eqn/subsup/precedence.out_ascii (1.3), "Exp", lines: +1 -1 regress/eqn/subsup/precedence.out_html (1.3), "Exp", lines: +1 -1 regress/eqn/unary/diacrit.out_ascii (1.5), "Exp", lines: +1 -1 regress/eqn/unary/diacrit.out_html (1.5), "Exp", lines: +1 -1 print the right character for mathematical overbar; from bentley@ 2017-07-15 13:17 schwarze Changed: mandocdb.c (1.252), "Exp", lines: +2 -2 Improve rev. 1.250 further: If a database is empty, we already don't write a database file and delete an existing one. If none exists, that only means the database was empty and remains so, which is not an error. So don't nag about it, in particular because that would be a weekly(8) annoyance. Issue reported by jmc@. 2017-07-15 01:11 schwarze Changed: NEWS (1.23), "Exp", lines: +75 -1 first draft of the 1.14.2 release notes 2017-07-14 18:18 schwarze Changed: eqn.c (1.77), "Exp", lines: +2 -2 always give commas their own <mo> element, suggested by bentley@, improves e.g. glMultMatrix(3) 2017-07-14 17:16 schwarze Changed: roff.c (1.324), "Exp", lines: +3 -2 The .Dd and .TH macros must interrupt .ce, too; fixing tree corruption and assertion failure found by jsg@ with afl(1) 2017-07-14 16:49 schwarze Changed: roff.c (1.323), "Exp", lines: +7 -6 Explicitly initialize a variable where the compiler is (understandably) unable to figure out that it is never used uninitialized. While here, tweak the content of the variable to make its usage easier to understand. No functional change. 2017-07-14 16:28 schwarze Changed: html.c (1.218), "Exp", lines: +7 -2 Fix an assertion failure triggered by print_otag("sw+-l", NULL). Even though we skip the style when the argument is NULL, we must still consume the options. Not found with afl(1), but during manual testing of the previous patch... 2017-07-14 16:06 schwarze Changed: html.c (1.217), "Exp", lines: +1 -12 mandoc.css (1.19), "Exp", lines: +9 -1 mandoc_html.3 (1.9), "Exp", lines: +2 -15 mdoc_html.c (1.292), "Exp", lines: +19 -26 Handle .Bl -compact via CSS rather than writing individual style attributes into .It blocks; suggested by Steffen Nurpmeso <steffen at sdaoden dot eu> on <groff at GNU dot org> in April 2017. Delete margin-bottom and margin-top style names and the 'v' argument letter from print_otag() because they are no longer used. 2017-07-14 15:56 schwarze Changed: html.c (1.216), "Exp", lines: +4 -4 regress/char/unicode/invalid.out_html (1.2), "Exp", lines: +1 -1 regress/char/unicode/latin1.out_html (1.3), "Exp", lines: +84 -84 regress/char/unicode/latin1diff.out_html (1.2), "Exp", lines: +11 -11 regress/char/unicode/named.out_html (1.3), "Exp", lines: +152 -152 regress/char/unicode/namediff.out_html (1.3), "Exp", lines: +40 -40 regress/char/unicode/nogroff.out_html (1.2), "Exp", lines: +34 -34 regress/eqn/fromto/basic.out_html (1.3), "Exp", lines: +1 -1 regress/eqn/nullary/roman.out_html (1.3), "Exp", lines: +3 -3 regress/eqn/nullary/symbol.out_html (1.2), "Exp", lines: +3 -3 regress/eqn/subsup/precedence.out_html (1.2), "Exp", lines: +1 -1 regress/eqn/unary/diacrit.out_html (1.4), "Exp", lines: +1 -1 print HTML character references as 4+ digits hexadecimal, like Unicode; from bentley@, tweaked by me 2017-07-14 13:32 schwarze Changed: eqn_html.c (1.17), "Exp", lines: +4 -1 do not print <math class="eqn"><mrow></mrow></math> for empty .EQ; issue reported by bentley@ 2017-07-14 12:48 schwarze Changed: TODO (1.239), "Exp", lines: +10 -1 eqn(7) nits from bentley@ 2017-07-13 15:13 schwarze Changed: roff.c (1.322), "Exp", lines: +3 -1 eqn(7) .EQ has to break man(7) next-line scope, or tree corruption and use after free many ensue; again found by jsg@ with afl(1) 2017-07-08 17:52 schwarze Changed: libmandoc.h (1.70), "Exp", lines: +2 -6 libroff.h (1.42), "Exp", lines: +5 -5 mandoc_headers.3 (1.18), "Exp", lines: +7 -17 read.c (1.191), "Exp", lines: +2 -15 roff.c (1.321), "Exp", lines: +37 -37 roff_int.h (1.9), "Exp", lines: +1 -2 tbl.c (1.42), "Exp", lines: +8 -13 tbl_data.c (1.45), "Exp", lines: +4 -6 Simplify by creating struct roff_node syntax tree nodes for tbl(7) right from roff_parseln() rather than delegating to read.c, similar to what i just did for eqn(7). The interface function roff_span() becomes obsolete and is deleted, the former interface function roff_addtbl() becomes static, the interface functions tbl_read() and tbl_cdata() become void, and minus twelve linus of code. No functional change. 2017-07-08 15:28 schwarze Changed: roff.c (1.320), "Exp", lines: +3 -2 fix an assertion failure triggered by .ce in next-line scope; found by jsg@ with afl(1) 2017-07-08 14:51 schwarze Changed: eqn.c (1.76), "Exp", lines: +55 -103 eqn_html.c (1.16), "Exp", lines: +3 -3 eqn_term.c (1.13), "Exp", lines: +3 -3 html.h (1.87), "Exp", lines: +3 -3 libmandoc.h (1.69), "Exp", lines: +1 -4 libroff.h (1.41), "Exp", lines: +7 -7 mandoc.h (1.245), "Exp", lines: +1 -12 mandoc_headers.3 (1.17), "Exp", lines: +4 -9 read.c (1.190), "Exp", lines: +1 -4 roff.c (1.319), "Exp", lines: +38 -48 roff.h (1.58), "Exp", lines: +2 -2 roff_int.h (1.8), "Exp", lines: +1 -2 term.h (1.130), "Exp", lines: +3 -3 tree.c (1.77), "Exp", lines: +3 -3 1. Eliminate struct eqn, instead use the existing members of struct roff_node which is allocated for each equation anyway. 2. Do not keep a list of equation parsers, one parser is enough. Minus fifty lines of code, no functional change. 2017-07-08 13:43 schwarze Changed: tbl_term.c (1.56), "Exp", lines: +10 -9 Correctly handle horizontal spans at the beginning of rows, fixing an assertion failure found by jsg@ with afl(1). While here, also drop printing of whitespace in tbl_data() which makes no difference because column positioning code in term_tbl() already takes care of that. 2017-07-07 19:39 schwarze Changed: mandoc.h (1.244), "Exp", lines: +1 -2 tree.c (1.76), "Exp", lines: +1 -4 garbage collect unused enum member EQN_ROOT 2017-07-07 19:06 schwarze Changed: eqn_term.c (1.12), "Exp", lines: +28 -6 regress/eqn/fromto/basic.out_ascii (1.4), "Exp", lines: +1 -1 regress/eqn/fromto/noarg.out_ascii (1.4), "Exp", lines: +1 -1 regress/eqn/fromto/precedence.out_ascii (1.2), "Exp", lines: +1 -1 regress/eqn/over/noarg.out_ascii (1.3), "Exp", lines: +1 -1 regress/eqn/over/precedence.out_ascii (1.5), "Exp", lines: +2 -2 regress/eqn/subsup/combine.out_ascii (1.4), "Exp", lines: +1 -1 regress/eqn/subsup/noarg.out_ascii (1.4), "Exp", lines: +1 -1 regress/eqn/subsup/precedence.out_ascii (1.2), "Exp", lines: +1 -1 regress/eqn/subsup/sub_group.out_ascii (1.4), "Exp", lines: +1 -1 add parentheses to the output where required for disambiguation 2017-07-07 17:16 schwarze Changed: eqn.c (1.75), "Exp", lines: +11 -13 simplify the eqn_box_makebinary() function by removing the trivial pos parameter; also minus two lines of code; no functional change 2017-07-07 16:20 schwarze Changed: mandoc.1 (1.216), "Exp", lines: +8 -27 Radically simplify the definitions what the message levels ERROR and WARNING mean: minus 20 lines of mdoc source. OK jmc@. 2017-07-06 22:59 schwarze Changed: mandoc.1 (1.215), "Exp", lines: +58 -58 mandoc.h (1.243), "Exp", lines: +9 -9 read.c (1.189), "Exp", lines: +9 -9 regress/char/space/trailing-mdoc.out_lint (1.6), "Exp", lines: +3 -3 regress/man/SH/noarg.out_lint (1.6), "Exp", lines: +1 -1 regress/man/SS/noarg.out_lint (1.6), "Exp", lines: +1 -1 regress/man/TH/case.out_lint (1.5), "Exp", lines: +1 -1 regress/man/nf/dupe.out_lint (1.5), "Exp", lines: +2 -2 regress/mdoc/Bd/blank.out_lint (1.6), "Exp", lines: +7 -7 regress/mdoc/Dd/dupe.out_lint (1.6), "Exp", lines: +2 -2 regress/mdoc/Dt/case.out_lint (1.6), "Exp", lines: +1 -1 regress/mdoc/Dt/dupe.out_lint (1.6), "Exp", lines: +2 -2 regress/mdoc/Dt/late.out_lint (1.6), "Exp", lines: +1 -1 regress/mdoc/Os/dupe.out_lint (1.5), "Exp", lines: +2 -2 regress/mdoc/blank/comment.out_lint (1.6), "Exp", lines: +1 -1 regress/roff/args/man.out_lint (1.5), "Exp", lines: +8 -8 regress/roff/args/mdoc.out_lint (1.6), "Exp", lines: +12 -12 regress/roff/args/roff.out_lint (1.5), "Exp", lines: +16 -16 regress/roff/nr/escname.out_lint (1.5), "Exp", lines: +1 -1 regress/roff/string/name.out_lint (1.6), "Exp", lines: +7 -7 Now that we have the -Wstyle message level, downgrade six warnings that are not syntax mistakes and that do not cause wrong formatting or content to style suggestions. Also upgrade two warnings that may cause information loss to errors. 2017-07-06 00:19 schwarze Added: regress/eqn/fromto/precedence.in (1.1) regress/eqn/fromto/precedence.out_ascii (1.1) regress/eqn/fromto/precedence.out_html (1.1) regress/eqn/subsup/precedence.in (1.1) regress/eqn/subsup/precedence.out_ascii (1.1) regress/eqn/subsup/precedence.out_html (1.1) Changed: eqn.c (1.74), "Exp", lines: +20 -11 eqn_term.c (1.11), "Exp", lines: +9 -10 regress/eqn/fromto/Makefile (1.2), "Exp", lines: +3 -3 regress/eqn/over/precedence.in (1.3), "Exp", lines: +4 -3 regress/eqn/over/precedence.out_ascii (1.4), "Exp", lines: +3 -2 regress/eqn/over/precedence.out_html (1.3), "Exp", lines: +1 -1 regress/eqn/subsup/Makefile (1.2), "Exp", lines: +3 -3 regress/eqn/unary/bold.in (1.3), "Exp", lines: +3 -3 regress/eqn/unary/bold.out_ascii (1.3), "Exp", lines: +2 -2 regress/eqn/unary/bold.out_html (1.2), "Exp", lines: +1 -1 regress/eqn/unary/diacrit.in (1.3), "Exp", lines: +3 -2 regress/eqn/unary/diacrit.out_ascii (1.4), "Exp", lines: +2 -2 regress/eqn/unary/diacrit.out_html (1.3), "Exp", lines: +1 -1 regress/eqn/unary/sqrt.in (1.5), "Exp", lines: +3 -3 regress/eqn/unary/sqrt.out_ascii (1.5), "Exp", lines: +3 -2 regress/eqn/unary/sqrt.out_html (1.4), "Exp", lines: +1 -1 Fix operator precedence according to Brian W. Kernighan and Lorinda L. Cherry, "Typesetting Mathematics - User's Guide (Second Edition)", August 15, 1978, paragraph 23; swarm of bugs pointed out by bentley@. 2017-07-05 15:03 schwarze Changed: eqn.c (1.73), "Exp", lines: +11 -8 eqn_html.c (1.15), "Exp", lines: +7 -4 eqn_term.c (1.10), "Exp", lines: +7 -4 mandoc.h (1.242), "Exp", lines: +1 -2 tree.c (1.75), "Exp", lines: +1 -2 The EQN_LISTONE box type is pointless. Simplify by just using EQN_LIST with expectargs = 1. Noticed while investigating a bug report from bentley@. No functional change. 2017-07-05 12:25 schwarze Changed: mdoc.7 (1.268), "Exp", lines: +5 -5 roff.7 (1.94), "Exp", lines: +15 -15 nits about trailing punctuation found with mandoc -Tlint 2017-07-04 23:40 schwarze Changed: apropos.1 (1.46), "Exp", lines: +2 -2 man.options.1 (1.7), "Exp", lines: +10 -4 mandoc.3 (1.41), "Exp", lines: +3 -3 mandoc_escape.3 (1.4), "Exp", lines: +3 -3 mandoc_headers.3 (1.16), "Exp", lines: +1 -1 soelim.1 (1.5), "Exp", lines: +5 -5 various nits found with mandoc -Tlint 2017-07-04 22:52 schwarze Changed: roff.c (1.318), "Exp", lines: +22 -16 regress/roff/cond/ie.in (1.3), "Exp", lines: +10 -2 regress/roff/cond/ie.out_ascii (1.2), "Exp", lines: +2 -1 Fix handling of \} on roff request lines. Cures bogus error messages in pages generated with pod2man(1). 2017-07-04 21:08 schwarze Added: regress/tbl/data/insert.in (1.1) regress/tbl/data/insert.out_ascii (1.1) regress/tbl/data/insert.out_lint (1.1) Changed: tbl_data.c (1.44), "Exp", lines: +24 -52 regress/tbl/data/Makefile (1.4), "Exp", lines: +3 -3 It turns out association of tbl spans with layout rows is simpler than i thought. Fixing a bug in curs_addch(3) and minus 25 lines of code. 2017-07-04 21:01 schwarze Changed: gmdiff (1.8), "Exp", lines: +1 -1 adjust to today's change of the OpenBSD groff port 2017-07-04 15:24 schwarze Changed: regress/regress.pl (1.7), "Exp", lines: +7 -7 regress/char/N/basic.in (1.2), "Exp", lines: +2 -1 regress/char/accent/combine.in (1.2), "Exp", lines: +2 -1 regress/char/accent/nocombine.in (1.2), "Exp", lines: +2 -1 regress/char/accent/utf8only.in (1.2), "Exp", lines: +2 -1 regress/char/bar/man.in (1.2), "Exp", lines: +2 -1 regress/char/bar/mdoc.in (1.2), "Exp", lines: +3 -2 regress/char/bar/mdoc.out_ascii (1.2), "Exp", lines: +1 -1 regress/char/hyphen/man.in (1.2), "Exp", lines: +2 -1 regress/char/hyphen/mdoc.in (1.2), "Exp", lines: +3 -2 regress/char/hyphen/mdoc.out_ascii (1.2), "Exp", lines: +1 -1 regress/char/space/break.in (1.2), "Exp", lines: +3 -2 regress/char/space/break.out_ascii (1.2), "Exp", lines: +1 -1 regress/char/space/eos-man.in (1.2), "Exp", lines: +2 -1 regress/char/space/eos.in (1.2), "Exp", lines: +3 -2 regress/char/space/eos.out_ascii (1.2), "Exp", lines: +1 -1 regress/char/space/esct-man.in (1.2), "Exp", lines: +2 -1 regress/char/space/esct-man.out_lint (1.4), "Exp", lines: +6 -7 regress/char/space/esct-mdoc.in (1.3), "Exp", lines: +3 -2 regress/char/space/esct-mdoc.out_ascii (1.2), "Exp", lines: +1 -1 regress/char/space/esct-mdoc.out_lint (1.5), "Exp", lines: +3 -6 regress/char/space/leading-man.in (1.2), "Exp", lines: +2 -1 regress/char/space/leading-mdoc.in (1.2), "Exp", lines: +3 -2 regress/char/space/leading-mdoc.out_ascii (1.2), "Exp", lines: +1 -1 regress/char/space/multiple.in (1.2), "Exp", lines: +3 -2 regress/char/space/multiple.out_ascii (1.2), "Exp", lines: +1 -1 regress/char/space/nobreak.in (1.2), "Exp", lines: +3 -2 regress/char/space/nobreak.out_ascii (1.2), "Exp", lines: +1 -1 regress/char/space/tab-man.in (1.2), "Exp", lines: +2 -1 regress/char/space/tab-man.out_lint (1.4), "Exp", lines: +21 -22 regress/char/space/tab.in (1.2), "Exp", lines: +3 -2 regress/char/space/tab.out_ascii (1.2), "Exp", lines: +1 -1 regress/char/space/tab.out_lint (1.5), "Exp", lines: +41 -44 regress/char/space/trailing-mdoc.in (1.2), "Exp", lines: +3 -2 regress/char/space/trailing-mdoc.out_ascii (1.2), "Exp", lines: +1 -1 regress/char/space/trailing-mdoc.out_lint (1.5), "Exp", lines: +3 -6 regress/char/space/zerowidth.in (1.2), "Exp", lines: +2 -1 regress/char/unicode/ascii.in (1.3), "Exp", lines: +2 -1 regress/char/unicode/input.in (1.2), "Exp", lines: +2 -1 regress/char/unicode/input.out_lint (1.4), "Exp", lines: +68 -69 regress/char/unicode/invalid.in (1.2), "Exp", lines: +3 -2 regress/char/unicode/invalid.out_ascii (1.2), "Exp", lines: +1 -1 regress/char/unicode/invalid.out_lint (1.5), "Exp", lines: +9 -12 regress/char/unicode/invalid.out_utf8 (1.2), "Exp", lines: +1 -1 regress/char/unicode/latin1.in (1.3), "Exp", lines: +2 -1 regress/char/unicode/latin1diff.in (1.2), "Exp", lines: +2 -1 regress/char/unicode/man.in (1.2), "Exp", lines: +2 -1 regress/char/unicode/mdoc.in (1.2), "Exp", lines: +3 -2 regress/char/unicode/mdoc.out_utf8 (1.2), "Exp", lines: +1 -1 regress/char/unicode/named.in (1.3), "Exp", lines: +2 -1 regress/char/unicode/namediff.in (1.3), "Exp", lines: +2 -1 regress/char/unicode/nogroff.in (1.2), "Exp", lines: +2 -1 regress/eqn/define/font.in (1.2), "Exp", lines: +3 -2 regress/eqn/define/font.out_ascii (1.2), "Exp", lines: +1 -1 regress/eqn/define/infinite.in (1.2), "Exp", lines: +3 -2 regress/eqn/define/infinite.out_ascii (1.2), "Exp", lines: +1 -1 regress/eqn/define/infinite.out_lint (1.6), "Exp", lines: +4 -7 regress/eqn/define/invalid.in (1.2), "Exp", lines: +3 -2 regress/eqn/define/invalid.out_ascii (1.3), "Exp", lines: +1 -1 regress/eqn/define/invalid.out_lint (1.6), "Exp", lines: +5 -8 regress/eqn/define/quoted.in (1.2), "Exp", lines: +3 -2 regress/eqn/define/quoted.out_ascii (1.2), "Exp", lines: +1 -1 regress/eqn/delim/basic.in (1.2), "Exp", lines: +3 -2 regress/eqn/delim/basic.out_ascii (1.2), "Exp", lines: +1 -1 regress/eqn/fromto/basic.in (1.2), "Exp", lines: +3 -2 regress/eqn/fromto/basic.out_ascii (1.3), "Exp", lines: +1 -1 regress/eqn/fromto/noarg.in (1.2), "Exp", lines: +3 -2 regress/eqn/fromto/noarg.out_ascii (1.3), "Exp", lines: +1 -1 regress/eqn/matrix/basic.in (1.3), "Exp", lines: +3 -2 regress/eqn/matrix/basic.out_ascii (1.3), "Exp", lines: +1 -1 regress/eqn/matrix/empty.in (1.2), "Exp", lines: +3 -2 regress/eqn/matrix/empty.out_ascii (1.2), "Exp", lines: +1 -1 regress/eqn/nullary/roman.in (1.3), "Exp", lines: +3 -2 regress/eqn/nullary/roman.out_ascii (1.3), "Exp", lines: +1 -1 regress/eqn/nullary/symbol.in (1.2), "Exp", lines: +3 -2 regress/eqn/nullary/symbol.out_ascii (1.2), "Exp", lines: +1 -1 regress/eqn/nullary/symbol.out_utf8 (1.2), "Exp", lines: +1 -1 regress/eqn/over/noarg.in (1.2), "Exp", lines: +3 -2 regress/eqn/over/noarg.out_ascii (1.2), "Exp", lines: +1 -1 regress/eqn/over/noarg.out_lint (1.6), "Exp", lines: +1 -4 regress/eqn/over/precedence.in (1.2), "Exp", lines: +3 -2 regress/eqn/over/precedence.out_ascii (1.3), "Exp", lines: +1 -1 regress/eqn/size/basic.in (1.2), "Exp", lines: +3 -2 regress/eqn/size/basic.out_ascii (1.3), "Exp", lines: +1 -1 regress/eqn/subsup/combine.in (1.2), "Exp", lines: +3 -2 regress/eqn/subsup/combine.out_ascii (1.3), "Exp", lines: +1 -1 regress/eqn/subsup/noarg.in (1.2), "Exp", lines: +3 -2 regress/eqn/subsup/noarg.out_ascii (1.3), "Exp", lines: +1 -1 regress/eqn/subsup/sub_group.in (1.2), "Exp", lines: +3 -2 regress/eqn/subsup/sub_group.out_ascii (1.3), "Exp", lines: +1 -1 regress/eqn/unary/bold.in (1.2), "Exp", lines: +3 -2 regress/eqn/unary/bold.out_ascii (1.2), "Exp", lines: +1 -1 regress/eqn/unary/diacrit.in (1.2), "Exp", lines: +3 -2 regress/eqn/unary/diacrit.out_ascii (1.3), "Exp", lines: +1 -1 regress/eqn/unary/sqrt.in (1.4), "Exp", lines: +3 -2 regress/eqn/unary/sqrt.out_ascii (1.4), "Exp", lines: +1 -1 regress/man/B/args.in (1.2), "Exp", lines: +2 -1 regress/man/B/args.out_lint (1.4), "Exp", lines: +1 -2 regress/man/B/blank.in (1.2), "Exp", lines: +2 -1 regress/man/B/blank.out_lint (1.4), "Exp", lines: +1 -2 regress/man/BI/emptyargs.in (1.2), "Exp", lines: +2 -1 regress/man/BI/literal.in (1.2), "Exp", lines: +1 -0 regress/man/EX/args.in (1.2), "Exp", lines: +2 -1 regress/man/EX/nested.in (1.2), "Exp", lines: +2 -1 regress/man/EX/spacing.in (1.2), "Exp", lines: +2 -1 regress/man/HP/break.in (1.2), "Exp", lines: +2 -1 regress/man/HP/literal.in (1.2), "Exp", lines: +2 -1 regress/man/HP/macrotag.in (1.2), "Exp", lines: +2 -1 regress/man/HP/manyargs.in (1.2), "Exp", lines: +2 -1 regress/man/HP/spacing.in (1.3), "Exp", lines: +2 -1 regress/man/IP/empty.in (1.2), "Exp", lines: +2 -1 regress/man/IP/empty.out_lint (1.4), "Exp", lines: +2 -3 regress/man/IP/literal.in (1.3), "Exp", lines: +2 -1 regress/man/IP/longhead.in (1.2), "Exp", lines: +2 -1 regress/man/IP/manyargs.in (1.2), "Exp", lines: +2 -1 regress/man/IP/spacing.in (1.2), "Exp", lines: +2 -1 regress/man/IP/width.in (1.3), "Exp", lines: +2 -1 regress/man/MT/args.in (1.2), "Exp", lines: +2 -1 regress/man/MT/args.out_lint (1.2), "Exp", lines: +5 -6 regress/man/MT/noME.in (1.2), "Exp", lines: +2 -1 regress/man/MT/noME.out_lint (1.2), "Exp", lines: +2 -3 regress/man/OP/args.in (1.2), "Exp", lines: +2 -1 regress/man/OP/args.out_lint (1.4), "Exp", lines: +2 -3 regress/man/PD/args.in (1.2), "Exp", lines: +2 -1 regress/man/PD/args.out_lint (1.4), "Exp", lines: +1 -2 regress/man/PD/nextline.in (1.2), "Exp", lines: +2 -1 regress/man/PD/spacing.in (1.2), "Exp", lines: +2 -1 regress/man/PP/args.in (1.2), "Exp", lines: +2 -1 regress/man/PP/args.out_lint (1.4), "Exp", lines: +3 -4 regress/man/PP/empty.in (1.2), "Exp", lines: +2 -1 regress/man/PP/empty.out_lint (1.4), "Exp", lines: +3 -4 regress/man/RS/REarg.in (1.2), "Exp", lines: +2 -1 regress/man/RS/REarg.out_lint (1.4), "Exp", lines: +7 -8 regress/man/RS/an-margin.in (1.2), "Exp", lines: +2 -1 regress/man/RS/breaking.in (1.2), "Exp", lines: +2 -1 regress/man/RS/broken.in (1.2), "Exp", lines: +2 -1 regress/man/RS/empty.in (1.2), "Exp", lines: +2 -1 regress/man/RS/empty.out_lint (1.4), "Exp", lines: +1 -2 regress/man/RS/literal.in (1.2), "Exp", lines: +2 -1 regress/man/RS/lonelyRE.in (1.2), "Exp", lines: +2 -1 regress/man/RS/lonelyRE.out_lint (1.4), "Exp", lines: +3 -4 regress/man/RS/nested.in (1.2), "Exp", lines: +2 -1 regress/man/RS/noRE.in (1.2), "Exp", lines: +2 -1 regress/man/RS/noRE.out_lint (1.4), "Exp", lines: +1 -2 regress/man/RS/nowidth.in (1.2), "Exp", lines: +2 -1 regress/man/RS/width.in (1.3), "Exp", lines: +2 -1 regress/man/SH/broken.in (1.2), "Exp", lines: +2 -1 regress/man/SH/broken.out_lint (1.4), "Exp", lines: +1 -2 regress/man/SH/broken_eline.in (1.2), "Exp", lines: +2 -1 regress/man/SH/broken_eline.out_lint (1.4), "Exp", lines: +2 -3 regress/man/SH/empty_before.in (1.2), "Exp", lines: +2 -1 regress/man/SH/empty_before.out_lint (1.4), "Exp", lines: +1 -2 regress/man/SH/longarg.in (1.2), "Exp", lines: +2 -1 regress/man/SH/noarg.in (1.3), "Exp", lines: +2 -1 regress/man/SH/noarg.out_lint (1.5), "Exp", lines: +14 -15 regress/man/SS/broken.in (1.2), "Exp", lines: +2 -1 regress/man/SS/broken.out_lint (1.4), "Exp", lines: +1 -2 regress/man/SS/broken_eline.in (1.2), "Exp", lines: +2 -1 regress/man/SS/broken_eline.out_lint (1.4), "Exp", lines: +2 -3 regress/man/SS/longarg.in (1.2), "Exp", lines: +2 -1 regress/man/SS/noarg.in (1.3), "Exp", lines: +2 -1 regress/man/SS/noarg.out_lint (1.5), "Exp", lines: +14 -15 regress/man/TH/baddate.in (1.2), "Exp", lines: +1 -0 regress/man/TH/baddate.out_lint (1.2), "Exp", lines: +1 -1 regress/man/TH/case.in (1.2), "Exp", lines: +2 -1 regress/man/TH/case.out_lint (1.4), "Exp", lines: +1 -2 regress/man/TH/emptydate.in (1.2), "Exp", lines: +1 -0 regress/man/TH/emptydate.out_lint (1.2), "Exp", lines: +1 -1 regress/man/TH/isodate.in (1.2), "Exp", lines: +1 -0 regress/man/TH/longdate.in (1.2), "Exp", lines: +1 -0 regress/man/TH/longdate.out_lint (1.2), "Exp", lines: +1 -1 regress/man/TH/longtit.in (1.2), "Exp", lines: +1 -0 regress/man/TH/longvol.in (1.2), "Exp", lines: +1 -0 regress/man/TH/mdocdate.in (1.2), "Exp", lines: +1 -0 regress/man/TH/noTH.in (1.2), "Exp", lines: +1 -0 regress/man/TH/noarg.in (1.2), "Exp", lines: +1 -0 regress/man/TH/noarg.out_ascii (1.2), "Exp", lines: +1 -1 regress/man/TH/noarg.out_lint (1.2), "Exp", lines: +3 -3 regress/man/TH/nobody.in (1.2), "Exp", lines: +2 -1 regress/man/TH/nobody.out_lint (1.4), "Exp", lines: +0 -1 regress/man/TH/onearg.in (1.2), "Exp", lines: +1 -0 regress/man/TH/onearg.out_ascii (1.2), "Exp", lines: +1 -1 regress/man/TH/onearg.out_lint (1.2), "Exp", lines: +2 -2 regress/man/TH/onlyyear.in (1.2), "Exp", lines: +1 -0 regress/man/TH/sixargs.in (1.2), "Exp", lines: +1 -0 regress/man/TH/sixargs.out_lint (1.4), "Exp", lines: +1 -2 regress/man/TH/twoargs.in (1.2), "Exp", lines: +1 -0 regress/man/TH/twoargs.out_ascii (1.2), "Exp", lines: +1 -1 regress/man/TH/twoargs.out_lint (1.2), "Exp", lines: +2 -2 regress/man/TP/badarg.in (1.2), "Exp", lines: +2 -1 regress/man/TP/broken.in (1.3), "Exp", lines: +2 -1 regress/man/TP/broken.out_lint (1.5), "Exp", lines: +2 -3 regress/man/TP/double.in (1.2), "Exp", lines: +2 -1 regress/man/TP/double.out_lint (1.4), "Exp", lines: +5 -6 regress/man/TP/eof.in (1.2), "Exp", lines: +2 -1 regress/man/TP/eof.out_lint (1.4), "Exp", lines: +1 -2 regress/man/TP/fill.in (1.2), "Exp", lines: +2 -1 regress/man/TP/indent.in (1.2), "Exp", lines: +2 -1 regress/man/TP/literal.in (1.2), "Exp", lines: +2 -1 regress/man/TP/longhead.in (1.2), "Exp", lines: +2 -1 regress/man/TP/macrotag.in (1.2), "Exp", lines: +2 -1 regress/man/TP/manyargs.in (1.2), "Exp", lines: +2 -1 regress/man/TP/sameline.in (1.2), "Exp", lines: +2 -1 regress/man/TP/spacing.in (1.2), "Exp", lines: +2 -1 regress/man/TP/width.in (1.3), "Exp", lines: +2 -1 regress/man/TS/break.in (1.2), "Exp", lines: +2 -1 regress/man/TS/break.out_lint (1.4), "Exp", lines: +4 -5 regress/man/TS/vspace.in (1.3), "Exp", lines: +2 -1 regress/man/UR/args.in (1.2), "Exp", lines: +2 -1 regress/man/UR/args.out_lint (1.4), "Exp", lines: +5 -6 regress/man/UR/noUE.in (1.2), "Exp", lines: +2 -1 regress/man/UR/noUE.out_lint (1.4), "Exp", lines: +2 -3 regress/man/blank/afterSH.in (1.2), "Exp", lines: +2 -1 regress/man/blank/afterSH.out_lint (1.4), "Exp", lines: +4 -5 regress/man/blank/afterSS.in (1.2), "Exp", lines: +2 -1 regress/man/blank/afterSS.out_lint (1.4), "Exp", lines: +4 -5 regress/man/blank/line.in (1.2), "Exp", lines: +2 -1 regress/man/blank/line.out_lint (1.5), "Exp", lines: +8 -9 regress/man/nf/args.in (1.2), "Exp", lines: +2 -1 regress/man/nf/args.out_lint (1.4), "Exp", lines: +2 -3 regress/man/nf/dupe.in (1.2), "Exp", lines: +2 -1 regress/man/nf/dupe.out_lint (1.4), "Exp", lines: +2 -3 regress/man/nf/indent.in (1.2), "Exp", lines: +2 -1 regress/man/nf/userdef.in (1.2), "Exp", lines: +2 -1 regress/man/nf/vert.in (1.2), "Exp", lines: +2 -1 regress/mdoc/Ad/font.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Ad/font.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Ad/font.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Ad/noarg.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Ad/noarg.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Ad/noarg.out_lint (1.6), "Exp", lines: +2 -5 regress/mdoc/Ad/noarg.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/An/break.in (1.4), "Exp", lines: +3 -2 regress/mdoc/An/break.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/An/break.out_lint (1.6), "Exp", lines: +13 -16 regress/mdoc/An/break.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Ap/eos.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Ap/eos.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Ap/eos.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Ap/middle.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Ap/middle.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Ap/middle.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Aq/author.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Aq/author.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Aq/author.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Aq/author.out_utf8 (1.2), "Exp", lines: +1 -1 regress/mdoc/Aq/empty.in (1.4), "Exp", lines: +3 -2 regress/mdoc/Aq/empty.out_ascii (1.4), "Exp", lines: +1 -1 regress/mdoc/Aq/empty.out_lint (1.5), "Exp", lines: +2 -5 regress/mdoc/Aq/empty.out_markdown (1.4), "Exp", lines: +1 -1 regress/mdoc/Aq/empty.out_utf8 (1.4), "Exp", lines: +1 -1 regress/mdoc/Ar/font.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Ar/font.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Ar/font.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Ar/punct.in (1.4), "Exp", lines: +3 -2 regress/mdoc/Ar/punct.out_ascii (1.4), "Exp", lines: +1 -1 regress/mdoc/Ar/punct.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Ar/punct.out_markdown (1.4), "Exp", lines: +1 -1 regress/mdoc/At/invalid.in (1.3), "Exp", lines: +3 -2 regress/mdoc/At/invalid.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/At/invalid.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/At/invalid.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Bd/badargs.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bd/badargs.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bd/badargs.out_lint (1.5), "Exp", lines: +12 -15 regress/mdoc/Bd/badargs.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bd/beforeNAME.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bd/beforeNAME.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bd/beforeNAME.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Bd/beforeNAME.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bd/blank.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bd/blank.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bd/blank.out_lint (1.5), "Exp", lines: +8 -11 regress/mdoc/Bd/blank.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bd/break.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bd/break.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bd/break.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Bd/break.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bd/broken.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bd/broken.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bd/broken.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Bd/broken.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bd/centered.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bd/centered.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bd/centered.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bd/empty.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bd/empty.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bd/empty.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bd/nested.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bd/nested.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bd/nested.out_lint (1.5), "Exp", lines: +2 -5 regress/mdoc/Bd/nested.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bd/offset-empty.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bd/offset-empty.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bd/offset-empty.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bd/offset-neg.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Bd/offset-neg.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bd/offset-neg.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bd/spacing.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bd/spacing.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bd/spacing.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bd/unclosed.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bd/unclosed.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bd/unclosed.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Bd/unclosed.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bf/badargs.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bf/badargs.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bf/badargs.out_lint (1.5), "Exp", lines: +3 -6 regress/mdoc/Bf/break.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bf/break.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bf/break.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Bf/broken.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bf/broken.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bf/broken.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Bf/multiargs.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bf/multiargs.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bf/multiargs.out_lint (1.5), "Exp", lines: +5 -8 regress/mdoc/Bf/nest.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bf/nest.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bk/badarg.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bk/badarg.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bk/badarg.out_lint (1.5), "Exp", lines: +6 -9 regress/mdoc/Bk/break.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Bk/break.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bk/broken.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bk/broken.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bk/broken.out_lint (1.5), "Exp", lines: +2 -5 regress/mdoc/Bk/inputlines.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bk/inputlines.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bk/lines.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bk/lines.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bk/synopsis.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Bk/synopsis.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/badargs.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bl/badargs.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/badargs.out_lint (1.5), "Exp", lines: +18 -21 regress/mdoc/Bl/badargs.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/bareIt.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bl/bareIt.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/bareIt.out_lint (1.5), "Exp", lines: +3 -6 regress/mdoc/Bl/bareIt.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/bareTa.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bl/bareTa.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/bareTa.out_lint (1.5), "Exp", lines: +5 -8 regress/mdoc/Bl/bareTa.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/break.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bl/break.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/break.out_lint (1.5), "Exp", lines: +18 -21 regress/mdoc/Bl/breakingIt.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Bl/breakingIt.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Bl/breakingIt.out_lint (1.5), "Exp", lines: +16 -19 regress/mdoc/Bl/breakingIt.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Bl/breakingTa.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Bl/breakingTa.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/breakingTa.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/broken.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bl/broken.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/broken.out_lint (1.5), "Exp", lines: +3 -6 regress/mdoc/Bl/broken.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/bullet.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bl/bullet.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/bullet.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/colNoIt.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bl/colNoIt.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/colNoIt.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/column.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Bl/column.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/column.out_lint (1.6), "Exp", lines: +7 -10 regress/mdoc/Bl/column.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/column_nogroff.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bl/column_nogroff.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/column_nogroff.out_lint (1.2), "Exp", lines: +2 -5 regress/mdoc/Bl/column_nogroff.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/dash.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bl/dash.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/dash.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/dash.out_utf8 (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/diag.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bl/diag.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/diag.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/empty.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bl/empty.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/empty.out_lint (1.5), "Exp", lines: +11 -14 regress/mdoc/Bl/empty.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/emptyhead.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bl/emptyhead.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/emptyhead.out_lint (1.5), "Exp", lines: +4 -7 regress/mdoc/Bl/emptyhead.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/emptyitem.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bl/emptyitem.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/emptyitem.out_lint (1.5), "Exp", lines: +8 -11 regress/mdoc/Bl/emptyitem.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/emptytag.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bl/emptytag.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/emptytag.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Bl/emptytag.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/enum.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bl/enum.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/enum.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/extend.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bl/extend.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/extend.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/hang.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bl/hang.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/hang.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/inset.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bl/inset.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/inset.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/item.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bl/item.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/item.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/multitag.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bl/multitag.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/multitag.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/multitype.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bl/multitype.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/multitype.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/nested.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bl/nested.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/nested.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/noIt.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Bl/noIt.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Bl/noIt.out_lint (1.5), "Exp", lines: +8 -11 regress/mdoc/Bl/noIt.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Bl/notype.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bl/notype.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/notype.out_lint (1.5), "Exp", lines: +5 -8 regress/mdoc/Bl/notype.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/offset.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Bl/offset.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Bl/offset.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Bl/ohang.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bl/ohang.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/ohang.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/secstart.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bl/secstart.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/secstart.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/tag.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Bl/tag.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/tag.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Bl/tag.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/unclosed.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Bl/unclosed.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Bl/unclosed.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Brq/empty.in (1.4), "Exp", lines: +3 -2 regress/mdoc/Brq/empty.out_ascii (1.4), "Exp", lines: +1 -1 regress/mdoc/Brq/empty.out_lint (1.5), "Exp", lines: +2 -5 regress/mdoc/Brq/empty.out_markdown (1.4), "Exp", lines: +1 -1 regress/mdoc/Bx/args.in (1.4), "Exp", lines: +3 -2 regress/mdoc/Bx/args.out_ascii (1.4), "Exp", lines: +1 -1 regress/mdoc/Bx/args.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Bx/args.out_markdown (1.4), "Exp", lines: +1 -1 regress/mdoc/Cd/eos.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Cd/eos.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Cd/eos.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Cd/font.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Cd/font.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Cd/font.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Cd/noarg.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Cd/noarg.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Cd/noarg.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Cd/noarg.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Cd/punct.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Cd/punct.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Cd/punct.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Cm/basic.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Cm/basic.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Cm/basic.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Cm/font.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Cm/font.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Cm/font.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Cm/noarg.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Cm/noarg.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Cm/noarg.out_lint (1.6), "Exp", lines: +3 -6 regress/mdoc/Cm/noarg.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Cm/punct.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Cm/punct.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Cm/punct.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/D1/spacing.in (1.2), "Exp", lines: +3 -2 regress/mdoc/D1/spacing.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/D1/spacing.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/D1/spacing.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Db/args.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Db/args.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Db/args.out_lint (1.5), "Exp", lines: +3 -6 regress/mdoc/Dd/badarg.in (1.2), "Exp", lines: +2 -1 regress/mdoc/Dd/badarg.out_lint (1.5), "Exp", lines: +2 -4 regress/mdoc/Dd/dupe.in (1.2), "Exp", lines: +2 -1 regress/mdoc/Dd/dupe.out_lint (1.5), "Exp", lines: +3 -5 regress/mdoc/Dd/late.in (1.2), "Exp", lines: +2 -1 regress/mdoc/Dd/late.out_lint (1.4), "Exp", lines: +1 -3 regress/mdoc/Dd/long.in (1.2), "Exp", lines: +2 -1 regress/mdoc/Dd/long.out_lint (1.5), "Exp", lines: +2 -4 regress/mdoc/Dd/manarg.in (1.2), "Exp", lines: +2 -1 regress/mdoc/Dd/manarg.out_lint (1.5), "Exp", lines: +2 -4 regress/mdoc/Dd/noarg.in (1.2), "Exp", lines: +2 -1 regress/mdoc/Dd/noarg.out_lint (1.4), "Exp", lines: +1 -3 regress/mdoc/Dd/order.in (1.2), "Exp", lines: +2 -1 regress/mdoc/Dd/order.out_lint (1.5), "Exp", lines: +2 -4 regress/mdoc/Dl/spacing.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Dl/spacing.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Dl/spacing.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Dl/spacing.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Dq/empty.in (1.4), "Exp", lines: +3 -2 regress/mdoc/Dq/empty.out_ascii (1.5), "Exp", lines: +1 -1 regress/mdoc/Dq/empty.out_lint (1.5), "Exp", lines: +0 -3 regress/mdoc/Dq/empty.out_markdown (1.4), "Exp", lines: +1 -1 regress/mdoc/Dt/badsec.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Dt/badsec.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Dt/case.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Dt/case.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Dt/case.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Dt/case.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Dt/dupe.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Dt/dupe.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Dt/dupe.out_lint (1.5), "Exp", lines: +2 -5 regress/mdoc/Dt/dupe.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Dt/fourargs.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Dt/fourargs.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Dt/fourargs.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Dt/fourargs.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Dt/late.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Dt/late.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Dt/late.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Dt/late.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Dt/missing.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Dt/missing.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Dt/missing.out_lint (1.5), "Exp", lines: +0 -3 regress/mdoc/Dt/missing.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Dt/noarg.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Dt/noarg.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Dt/noarg.out_lint (1.5), "Exp", lines: +2 -5 regress/mdoc/Dt/noarg.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Dt/nobody.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Dt/nobody.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Dt/nobody.out_lint (1.5), "Exp", lines: +0 -3 regress/mdoc/Dt/nobody.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Dt/nosec.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Dt/nosec.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Dt/nosec.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Dt/nosec.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Dt/order.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Dt/order.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Dt/order.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Dt/order.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Dv/font.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Dv/font.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Dv/font.out_markdown (1.4), "Exp", lines: +1 -1 regress/mdoc/Dv/noarg.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Dv/noarg.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Dv/noarg.out_lint (1.6), "Exp", lines: +2 -5 regress/mdoc/Dv/noarg.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Em/font.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Em/font.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Em/font.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Em/noarg.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Em/noarg.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Em/noarg.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Em/noarg.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Em/punct.in (1.4), "Exp", lines: +3 -2 regress/mdoc/Em/punct.out_ascii (1.4), "Exp", lines: +1 -1 regress/mdoc/Em/punct.out_lint (1.7), "Exp", lines: +5 -8 regress/mdoc/Em/punct.out_markdown (1.4), "Exp", lines: +1 -1 regress/mdoc/Eo/break.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Eo/break.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Eo/break.out_lint (1.5), "Exp", lines: +8 -11 regress/mdoc/Eo/break.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Eo/empty.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Eo/empty.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Eo/empty.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Eo/obsolete.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Eo/obsolete.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Eo/obsolete.out_lint (1.5), "Exp", lines: +6 -9 regress/mdoc/Eo/obsolete.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Eo/unclosed.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Eo/unclosed.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Eo/unclosed.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Eo/unclosed.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Er/font.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Er/font.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Er/font.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Er/noarg.in (1.4), "Exp", lines: +3 -2 regress/mdoc/Er/noarg.out_ascii (1.4), "Exp", lines: +1 -1 regress/mdoc/Er/noarg.out_lint (1.6), "Exp", lines: +2 -5 regress/mdoc/Er/noarg.out_markdown (1.4), "Exp", lines: +1 -1 regress/mdoc/Ev/font.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Ev/font.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Ev/font.out_markdown (1.4), "Exp", lines: +1 -1 regress/mdoc/Ev/noarg.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Ev/noarg.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Ev/noarg.out_lint (1.6), "Exp", lines: +2 -5 regress/mdoc/Ev/noarg.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Ex/args.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Ex/args.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Ex/args.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Ex/noname.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Ex/noname.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Ex/noname.out_lint (1.5), "Exp", lines: +2 -5 regress/mdoc/Ex/noname.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Ex/nostd.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Ex/nostd.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Ex/nostd.out_lint (1.5), "Exp", lines: +3 -6 regress/mdoc/Ex/nostd.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Fd/break.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Fd/break.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Fd/break.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Fd/empty.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Fd/empty.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Fd/empty.out_lint (1.5), "Exp", lines: +2 -5 regress/mdoc/Fd/empty.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Fd/eos.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Fd/eos.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Fd/eos.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Fd/font.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Fd/font.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Fd/font.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Fl/font.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Fl/font.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Fl/font.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Fl/multiarg.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Fl/multiarg.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Fl/multiarg.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Fl/noarg.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Fl/noarg.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Fl/noarg.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Fl/parsed.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Fl/parsed.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Fl/parsed.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Fl/punct.in (1.4), "Exp", lines: +3 -2 regress/mdoc/Fl/punct.out_ascii (1.4), "Exp", lines: +1 -1 regress/mdoc/Fl/punct.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Fl/punct.out_markdown (1.4), "Exp", lines: +1 -1 regress/mdoc/Fo/basic.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Fo/basic.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Fo/basic.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Fo/break.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Fo/break.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Fo/break.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Fo/eos.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Fo/eos.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Fo/eos.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Fo/font.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Fo/font.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Fo/font.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Fo/noarg.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Fo/noarg.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Fo/noarg.out_lint (1.5), "Exp", lines: +10 -13 regress/mdoc/Fo/noarg.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Fo/nohead.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Fo/nohead.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Fo/nohead.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Fo/nohead.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Fo/obsolete.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Fo/obsolete.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Fo/obsolete.out_lint (1.5), "Exp", lines: +2 -5 regress/mdoc/Fo/obsolete.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Fo/punct.in (1.4), "Exp", lines: +3 -2 regress/mdoc/Fo/punct.out_ascii (1.4), "Exp", lines: +1 -1 regress/mdoc/Fo/punct.out_lint (1.5), "Exp", lines: +3 -6 regress/mdoc/Fo/punct.out_markdown (1.4), "Exp", lines: +1 -1 regress/mdoc/Fo/section.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Fo/section.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Fo/section.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Fo/warn.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Fo/warn.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Fo/warn.out_lint (1.5), "Exp", lines: +2 -5 regress/mdoc/Fo/warn.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Ft/font.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Ft/font.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Ft/font.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Ic/font.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Ic/font.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Ic/font.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Ic/noarg.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Ic/noarg.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Ic/noarg.out_lint (1.6), "Exp", lines: +2 -5 regress/mdoc/Ic/noarg.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Ic/punct.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Ic/punct.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Ic/punct.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/In/break.in (1.2), "Exp", lines: +3 -2 regress/mdoc/In/break.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/In/break.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/In/eos.in (1.2), "Exp", lines: +3 -2 regress/mdoc/In/eos.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/In/eos.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/In/font.in (1.3), "Exp", lines: +3 -2 regress/mdoc/In/font.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/In/font.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/In/noarg.in (1.3), "Exp", lines: +3 -2 regress/mdoc/In/noarg.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/In/noarg.out_lint (1.6), "Exp", lines: +3 -6 regress/mdoc/In/noarg.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Lb/badargs.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Lb/badargs.out_ascii (1.4), "Exp", lines: +1 -1 regress/mdoc/Lb/badargs.out_lint (1.8), "Exp", lines: +5 -8 regress/mdoc/Lb/badargs.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Lb/break.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Lb/break.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Lb/break.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Lb/eos.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Lb/eos.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Lb/eos.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Li/font.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Li/font.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Li/font.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Li/punct.in (1.4), "Exp", lines: +3 -2 regress/mdoc/Li/punct.out_ascii (1.4), "Exp", lines: +1 -1 regress/mdoc/Li/punct.out_lint (1.7), "Exp", lines: +5 -8 regress/mdoc/Li/punct.out_markdown (1.4), "Exp", lines: +1 -1 regress/mdoc/Lk/font.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Lk/font.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Lk/link.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Lk/link.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Lk/link.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Lk/noarg.in (1.5), "Exp", lines: +3 -2 regress/mdoc/Lk/noarg.out_ascii (1.4), "Exp", lines: +1 -1 regress/mdoc/Lk/noarg.out_lint (1.7), "Exp", lines: +3 -6 regress/mdoc/Lk/noarg.out_markdown (1.5), "Exp", lines: +1 -1 regress/mdoc/Ms/font.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Ms/font.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Ms/font.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Ms/noarg.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Ms/noarg.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Ms/noarg.out_lint (1.6), "Exp", lines: +2 -5 regress/mdoc/Ms/noarg.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Mt/font.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Mt/font.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Mt/simple.in (1.4), "Exp", lines: +3 -2 regress/mdoc/Mt/simple.out_ascii (1.4), "Exp", lines: +1 -1 regress/mdoc/Mt/simple.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Mt/simple.out_markdown (1.5), "Exp", lines: +1 -1 regress/mdoc/Nd/broken.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Nd/broken.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Nd/broken.out_lint (1.7), "Exp", lines: +9 -12 regress/mdoc/Nd/hyph.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Nd/hyph.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Nd/hyph.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Nd/noarg.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Nd/noarg.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Nd/noarg.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Nd/noarg.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Nd/par.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Nd/par.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Nd/par.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Nm/badNAME.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Nm/badNAME.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Nm/badNAME.out_lint (1.5), "Exp", lines: +2 -5 regress/mdoc/Nm/badNAMEuse.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Nm/badNAMEuse.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Nm/badNAMEuse.out_lint (1.5), "Exp", lines: +2 -5 regress/mdoc/Nm/break.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Nm/break.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Nm/break.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Nm/break.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Nm/broken.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Nm/broken.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Nm/broken.out_lint (1.5), "Exp", lines: +2 -5 regress/mdoc/Nm/broken.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Nm/empty.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Nm/empty.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Nm/empty.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Nm/emptyNAME.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Nm/emptyNAME.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Nm/emptyNAMEuse.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Nm/emptyNAMEuse.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Nm/font.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Nm/font.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Nm/font.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Nm/long.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Nm/long.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Nm/long.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Nm/par.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Nm/par.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Nm/par.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Nm/parns.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Nm/parns.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Nm/parns.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Nm/punct.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Nm/punct.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Nm/punct.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Nm/punct.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/No/punct.in (1.4), "Exp", lines: +3 -2 regress/mdoc/No/punct.out_ascii (1.4), "Exp", lines: +1 -1 regress/mdoc/No/punct.out_lint (1.8), "Exp", lines: +4 -7 regress/mdoc/No/punct.out_markdown (1.4), "Exp", lines: +1 -1 regress/mdoc/No/spacing.in (1.2), "Exp", lines: +3 -2 regress/mdoc/No/spacing.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/No/spacing.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Ns/position.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Ns/position.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Ns/position.out_lint (1.6), "Exp", lines: +2 -5 regress/mdoc/Ns/position.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Ns/punct.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Ns/punct.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Ns/punct.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Oo/punct.in (1.4), "Exp", lines: +3 -2 regress/mdoc/Oo/punct.out_ascii (1.4), "Exp", lines: +1 -1 regress/mdoc/Oo/punct.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Oo/punct.out_markdown (1.4), "Exp", lines: +1 -1 regress/mdoc/Op/break.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Op/break.out_lint (1.5), "Exp", lines: +3 -6 regress/mdoc/Op/break.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Op/broken.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Op/broken.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Op/broken.out_lint (1.5), "Exp", lines: +2 -5 regress/mdoc/Op/broken.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Op/punct.in (1.4), "Exp", lines: +3 -2 regress/mdoc/Op/punct.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Op/punct.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Op/punct.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Os/dupe.in (1.2), "Exp", lines: +2 -1 regress/mdoc/Os/dupe.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Os/dupe.out_lint (1.4), "Exp", lines: +9 -7 regress/mdoc/Os/dupe.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Os/late.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Os/late.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Os/late.out_lint (1.4), "Exp", lines: +1 -3 regress/mdoc/Os/late.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Os/long.in (1.2), "Exp", lines: +2 -1 regress/mdoc/Os/long.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Os/long.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Os/missing.in (1.2), "Exp", lines: +2 -1 regress/mdoc/Os/missing.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Os/missing.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Ox/keep.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Ox/keep.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Ox/keep.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Pa/font.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Pa/font.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Pa/font.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Pa/punct.in (1.4), "Exp", lines: +3 -2 regress/mdoc/Pa/punct.out_ascii (1.4), "Exp", lines: +1 -1 regress/mdoc/Pa/punct.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Pa/punct.out_markdown (1.4), "Exp", lines: +1 -1 regress/mdoc/Pf/spacing.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Pf/spacing.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Pf/spacing.out_lint (1.5), "Exp", lines: +3 -6 regress/mdoc/Pf/spacing.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Pp/arg.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Pp/arg.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Pp/arg.out_lint (1.7), "Exp", lines: +3 -6 regress/mdoc/Pp/arg.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Qq/empty.in (1.4), "Exp", lines: +3 -2 regress/mdoc/Qq/empty.out_ascii (1.4), "Exp", lines: +1 -1 regress/mdoc/Qq/empty.out_lint (1.5), "Exp", lines: +2 -5 regress/mdoc/Qq/empty.out_markdown (1.4), "Exp", lines: +1 -1 regress/mdoc/Rs/allch.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Rs/allch.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Rs/allch.out_lint (1.5), "Exp", lines: +6 -9 regress/mdoc/Rs/allch.out_markdown (1.4), "Exp", lines: +1 -1 regress/mdoc/Rs/allch.out_utf8 (1.2), "Exp", lines: +1 -1 regress/mdoc/Rs/args.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Rs/args.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Rs/args.out_lint (1.5), "Exp", lines: +2 -5 regress/mdoc/Rs/args.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Rs/break.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Rs/break.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Rs/break.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Rs/break.out_utf8 (1.2), "Exp", lines: +1 -1 regress/mdoc/Rs/empty.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Rs/empty.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Rs/empty.out_lint (1.5), "Exp", lines: +2 -5 regress/mdoc/Rs/empty.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Rs/empty.out_utf8 (1.2), "Exp", lines: +1 -1 regress/mdoc/Rs/three_authors.in (1.4), "Exp", lines: +3 -2 regress/mdoc/Rs/three_authors.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Rs/three_authors.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Rs/three_authors.out_utf8 (1.2), "Exp", lines: +1 -1 regress/mdoc/Rv/args.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Rv/args.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Rv/args.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Rv/noname.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Rv/noname.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Rv/noname.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Rv/nostd.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Rv/nostd.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Rv/nostd.out_lint (1.5), "Exp", lines: +3 -6 regress/mdoc/Rv/nostd.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Sh/badNAME.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Sh/badNAME.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Sh/badNAME.out_lint (1.5), "Exp", lines: +2 -5 regress/mdoc/Sh/badNAME.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Sh/before.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Sh/before.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Sh/before.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Sh/before.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Sh/empty.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Sh/empty.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Sh/empty.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Sh/empty.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Sh/emptyNAME.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Sh/emptyNAME.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Sh/emptyNAME.out_lint (1.5), "Exp", lines: +2 -5 regress/mdoc/Sh/emptyNAME.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Sh/first.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Sh/first.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Sh/first.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Sh/first.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Sh/nohead.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Sh/nohead.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Sh/nohead.out_lint (1.5), "Exp", lines: +2 -5 regress/mdoc/Sh/nohead.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Sh/order.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Sh/order.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Sh/order.out_lint (1.5), "Exp", lines: +3 -6 regress/mdoc/Sh/order.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Sh/orderNAME.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Sh/orderNAME.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Sh/orderNAME.out_lint (1.5), "Exp", lines: +2 -5 regress/mdoc/Sh/orderNAME.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Sh/parbefore.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Sh/parbefore.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Sh/parbefore.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Sh/parbefore.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Sh/parborder.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Sh/parborder.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Sh/parborder.out_lint (1.5), "Exp", lines: +7 -10 regress/mdoc/Sh/parborder.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Sh/punctNAME.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Sh/punctNAME.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Sh/punctNAME.out_lint (1.5), "Exp", lines: +4 -7 regress/mdoc/Sh/punctNAME.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Sh/subbefore.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Sh/subbefore.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Sh/subbefore.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Sh/subbefore.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Sm/badarg.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Sm/badarg.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Sm/badarg.out_lint (1.5), "Exp", lines: +2 -5 regress/mdoc/Sm/badarg.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Sm/noarg.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Sm/noarg.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Sm/noarg.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Sm/scope.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Sm/scope.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Sm/scope.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Sm/spacing-No.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Sm/spacing-No.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Sm/spacing-No.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Sm/spacing-Op.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Sm/spacing-Op.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Sm/spacing-Op.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Sm/twoarg.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Sm/twoarg.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Sm/twoarg.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Sm/twoarg.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Sq/empty.in (1.4), "Exp", lines: +3 -2 regress/mdoc/Sq/empty.out_ascii (1.4), "Exp", lines: +1 -1 regress/mdoc/Sq/empty.out_lint (1.5), "Exp", lines: +2 -5 regress/mdoc/Sq/empty.out_markdown (1.4), "Exp", lines: +1 -1 regress/mdoc/St/badargs.in (1.2), "Exp", lines: +3 -2 regress/mdoc/St/badargs.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/St/badargs.out_lint (1.5), "Exp", lines: +2 -5 regress/mdoc/St/badargs.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/St/call.in (1.3), "Exp", lines: +3 -2 regress/mdoc/St/call.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/St/call.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/St/call.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Sx/font.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Sx/font.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Sx/font.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Sx/noarg.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Sx/noarg.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Sx/noarg.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Sx/noarg.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Sy/font.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Sy/font.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Sy/font.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Sy/noarg.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Sy/noarg.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Sy/noarg.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/Sy/noarg.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Sy/punct.in (1.4), "Exp", lines: +3 -2 regress/mdoc/Sy/punct.out_ascii (1.4), "Exp", lines: +1 -1 regress/mdoc/Sy/punct.out_lint (1.7), "Exp", lines: +5 -8 regress/mdoc/Sy/punct.out_markdown (1.4), "Exp", lines: +1 -1 regress/mdoc/Tn/font.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Tn/font.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Tn/font.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Tn/noarg.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Tn/noarg.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Tn/noarg.out_lint (1.6), "Exp", lines: +2 -5 regress/mdoc/Tn/noarg.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Ud/arg.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Ud/arg.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Ud/arg.out_lint (1.6), "Exp", lines: +10 -13 regress/mdoc/Ud/arg.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Ux/eos.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Ux/eos.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Ux/eos.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Ux/punct.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Ux/punct.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Ux/punct.out_lint (1.5), "Exp", lines: +5 -8 regress/mdoc/Ux/punct.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Ux/spacing.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Ux/spacing.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Ux/spacing.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Va/basic.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Va/basic.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Va/basic.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Va/font.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Va/font.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Va/font.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Va/noarg.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Va/noarg.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Va/noarg.out_lint (1.6), "Exp", lines: +2 -5 regress/mdoc/Va/noarg.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Va/punct.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Va/punct.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Va/punct.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Vt/child.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Vt/child.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Vt/child.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Vt/font.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Vt/font.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Vt/font.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Vt/noarg.in (1.3), "Exp", lines: +3 -2 regress/mdoc/Vt/noarg.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/Vt/noarg.out_lint (1.6), "Exp", lines: +2 -5 regress/mdoc/Vt/noarg.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Vt/spacing.in (1.2), "Exp", lines: +3 -2 regress/mdoc/Vt/spacing.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Vt/spacing.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Xr/args.in (1.4), "Exp", lines: +3 -2 regress/mdoc/Xr/args.out_ascii (1.4), "Exp", lines: +1 -1 regress/mdoc/Xr/args.out_lint (1.6), "Exp", lines: +7 -9 regress/mdoc/Xr/args.out_markdown (1.4), "Exp", lines: +1 -1 regress/mdoc/blank/comment.in (1.2), "Exp", lines: +3 -2 regress/mdoc/blank/comment.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/blank/comment.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/blank/comment.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/blank/line.in (1.2), "Exp", lines: +3 -2 regress/mdoc/blank/line.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/blank/line.out_lint (1.5), "Exp", lines: +22 -25 regress/mdoc/blank/list.in (1.2), "Exp", lines: +3 -2 regress/mdoc/blank/list.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/blank/list.out_lint (1.5), "Exp", lines: +7 -10 regress/mdoc/blank/list.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/break/brokenbreaker.in (1.2), "Exp", lines: +3 -2 regress/mdoc/break/brokenbreaker.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/break/brokenbreaker.out_lint (1.5), "Exp", lines: +3 -6 regress/mdoc/break/brokenbreaker.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/break/notopen.in (1.2), "Exp", lines: +3 -2 regress/mdoc/break/notopen.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/break/notopen.out_lint (1.5), "Exp", lines: +1 -4 regress/mdoc/break/notopen.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/break/tail.in (1.3), "Exp", lines: +3 -2 regress/mdoc/break/tail.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/break/tail.out_lint (1.6), "Exp", lines: +5 -8 regress/mdoc/break/tail.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/break/twice.in (1.3), "Exp", lines: +3 -2 regress/mdoc/break/twice.out_ascii (1.3), "Exp", lines: +1 -1 regress/mdoc/break/twice.out_lint (1.6), "Exp", lines: +10 -13 regress/mdoc/break/twice.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/break/two.in (1.2), "Exp", lines: +3 -2 regress/mdoc/break/two.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/break/two.out_lint (1.5), "Exp", lines: +8 -11 regress/mdoc/break/two.out_markdown (1.2), "Exp", lines: +1 -1 regress/roff/args/man.in (1.3), "Exp", lines: +2 -1 regress/roff/args/man.out_lint (1.4), "Exp", lines: +9 -10 regress/roff/args/mdoc.in (1.2), "Exp", lines: +3 -2 regress/roff/args/mdoc.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/args/mdoc.out_lint (1.5), "Exp", lines: +13 -16 regress/roff/args/roff.in (1.3), "Exp", lines: +2 -1 regress/roff/args/roff.out_lint (1.4), "Exp", lines: +16 -17 regress/roff/br/args.in (1.2), "Exp", lines: +2 -1 regress/roff/br/args.out_lint (1.4), "Exp", lines: +1 -2 regress/roff/cc/basic.in (1.2), "Exp", lines: +2 -1 regress/roff/cc/basic.out_lint (1.4), "Exp", lines: +1 -2 regress/roff/cond/before-Dd.in (1.2), "Exp", lines: +3 -2 regress/roff/cond/before-Dd.out_ascii (1.3), "Exp", lines: +1 -1 regress/roff/cond/close.in (1.2), "Exp", lines: +2 -1 regress/roff/cond/close.out_lint (1.6), "Exp", lines: +2 -3 regress/roff/cond/ie.in (1.2), "Exp", lines: +2 -1 regress/roff/cond/if.in (1.2), "Exp", lines: +2 -1 regress/roff/cond/if.out_lint (1.5), "Exp", lines: +2 -3 regress/roff/cond/numeric.in (1.2), "Exp", lines: +2 -1 regress/roff/cond/register.in (1.2), "Exp", lines: +2 -1 regress/roff/cond/strcmp.in (1.2), "Exp", lines: +2 -1 regress/roff/cond/string.in (1.3), "Exp", lines: +2 -1 regress/roff/de/Dd.in (1.2), "Exp", lines: +3 -2 regress/roff/de/Dd.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/de/Makefile (1.3), "Exp", lines: +2 -2 regress/roff/de/TH.in (1.2), "Exp", lines: +2 -1 regress/roff/de/append.in (1.3), "Exp", lines: +3 -2 regress/roff/de/append.out_ascii (1.3), "Exp", lines: +1 -1 regress/roff/de/cond.in (1.2), "Exp", lines: +3 -2 regress/roff/de/cond.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/de/escname.in (1.2), "Exp", lines: +3 -2 regress/roff/de/escname.out_ascii (1.3), "Exp", lines: +1 -1 regress/roff/de/escname.out_lint (1.6), "Exp", lines: +8 -11 regress/roff/de/factorial.in (1.2), "Exp", lines: +3 -2 regress/roff/de/factorial.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/de/indir.in (1.2), "Exp", lines: +3 -2 regress/roff/de/indir.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/de/indir.out_lint (1.6), "Exp", lines: +4 -7 regress/roff/de/infinite.in (1.3), "Exp", lines: +3 -2 regress/roff/de/infinite.out_ascii (1.3), "Exp", lines: +1 -1 regress/roff/de/infinite.out_lint (1.6), "Exp", lines: +2 -5 regress/roff/de/startde.in (1.2), "Exp", lines: +3 -2 regress/roff/de/startde.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/ds/append.in (1.2), "Exp", lines: +3 -2 regress/roff/ds/append.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/ds/escname.in (1.2), "Exp", lines: +3 -2 regress/roff/ds/escname.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/ds/nested.in (1.2), "Exp", lines: +3 -2 regress/roff/ds/nested.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/ds/quoting.in (1.2), "Exp", lines: +3 -2 regress/roff/ds/quoting.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/esc/B.in (1.2), "Exp", lines: +3 -2 regress/roff/esc/B.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/esc/B.out_lint (1.5), "Exp", lines: +1 -4 regress/roff/esc/c.in (1.3), "Exp", lines: +3 -2 regress/roff/esc/c.out_ascii (1.4), "Exp", lines: +1 -1 regress/roff/esc/c_man.in (1.3), "Exp", lines: +2 -1 regress/roff/esc/e.in (1.2), "Exp", lines: +3 -2 regress/roff/esc/e.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/esc/f.in (1.2), "Exp", lines: +3 -2 regress/roff/esc/f.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/esc/h.in (1.5), "Exp", lines: +3 -2 regress/roff/esc/h.out_ascii (1.4), "Exp", lines: +1 -1 regress/roff/esc/h.out_lint (1.7), "Exp", lines: +1 -4 regress/roff/esc/ignore.in (1.2), "Exp", lines: +3 -2 regress/roff/esc/ignore.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/esc/ignore.out_lint (1.5), "Exp", lines: +1 -4 regress/roff/esc/l.in (1.2), "Exp", lines: +3 -2 regress/roff/esc/l.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/esc/l.out_lint (1.4), "Exp", lines: +1 -4 regress/roff/esc/multi.in (1.2), "Exp", lines: +3 -2 regress/roff/esc/multi.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/esc/o.in (1.2), "Exp", lines: +3 -2 regress/roff/esc/o.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/esc/one.in (1.2), "Exp", lines: +3 -2 regress/roff/esc/one.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/esc/p.in (1.2), "Exp", lines: +3 -2 regress/roff/esc/p.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/esc/two.in (1.2), "Exp", lines: +3 -2 regress/roff/esc/two.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/esc/w.in (1.2), "Exp", lines: +3 -2 regress/roff/esc/w.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/esc/w.out_lint (1.5), "Exp", lines: +1 -4 regress/roff/esc/z.in (1.2), "Exp", lines: +3 -2 regress/roff/esc/z.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/ft/badargs-mdoc.in (1.2), "Exp", lines: +3 -2 regress/roff/ft/badargs-mdoc.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/ft/badargs-mdoc.out_lint (1.5), "Exp", lines: +2 -5 regress/roff/ft/badargs.in (1.2), "Exp", lines: +2 -1 regress/roff/ft/badargs.out_lint (1.4), "Exp", lines: +2 -3 regress/roff/ig/basic.in (1.2), "Exp", lines: +3 -2 regress/roff/ig/basic.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/ig/basic.out_lint (1.6), "Exp", lines: +3 -6 regress/roff/it/badarg.in (1.2), "Exp", lines: +3 -2 regress/roff/it/badarg.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/it/badarg.out_lint (1.6), "Exp", lines: +2 -5 regress/roff/it/double.in (1.2), "Exp", lines: +2 -1 regress/roff/it/text.in (1.2), "Exp", lines: +3 -2 regress/roff/it/text.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/ll/basic.in (1.2), "Exp", lines: +3 -2 regress/roff/ll/basic.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/na/args.in (1.2), "Exp", lines: +2 -1 regress/roff/nr/argc.in (1.2), "Exp", lines: +3 -2 regress/roff/nr/argc.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/nr/divzero.in (1.2), "Exp", lines: +2 -1 regress/roff/nr/divzero.out_lint (1.4), "Exp", lines: +2 -3 regress/roff/nr/escname.in (1.2), "Exp", lines: +2 -1 regress/roff/nr/escname.out_lint (1.4), "Exp", lines: +4 -5 regress/roff/nr/eval.in (1.2), "Exp", lines: +2 -1 regress/roff/nr/int.in (1.2), "Exp", lines: +2 -1 regress/roff/nr/predef.in (1.2), "Exp", lines: +2 -1 regress/roff/nr/rr.in (1.2), "Exp", lines: +2 -1 regress/roff/nr/scale.in (1.2), "Exp", lines: +2 -1 regress/roff/po/basic-mdoc.in (1.2), "Exp", lines: +3 -2 regress/roff/po/basic-mdoc.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/ps/ignore.in (1.2), "Exp", lines: +2 -1 regress/roff/rm/basic.in (1.2), "Exp", lines: +3 -2 regress/roff/rm/basic.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/rn/append.in (1.2), "Exp", lines: +3 -2 regress/roff/rn/append.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/scale/horiz.in (1.2), "Exp", lines: +2 -1 regress/roff/sp/badargs-man.in (1.2), "Exp", lines: +2 -1 regress/roff/sp/badargs-man.out_lint (1.4), "Exp", lines: +1 -2 regress/roff/sp/badargs-mdoc.in (1.2), "Exp", lines: +3 -2 regress/roff/sp/badargs-mdoc.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/sp/negative.in (1.2), "Exp", lines: +2 -1 regress/roff/sp/scaling-man.in (1.2), "Exp", lines: +2 -1 regress/roff/sp/scaling-mdoc.in (1.2), "Exp", lines: +3 -2 regress/roff/sp/scaling-mdoc.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/string/escape.in (1.3), "Exp", lines: +2 -1 regress/roff/string/infinite.in (1.2), "Exp", lines: +2 -1 regress/roff/string/name.in (1.2), "Exp", lines: +3 -2 regress/roff/string/name.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/string/name.out_lint (1.5), "Exp", lines: +17 -20 regress/roff/string/std.in (1.2), "Exp", lines: +2 -1 regress/roff/string/std.out_lint (1.3), "Exp", lines: +2 -3 regress/roff/string/zerolength.in (1.3), "Exp", lines: +2 -1 regress/roff/ta/basic-man.in (1.3), "Exp", lines: +2 -1 regress/roff/ta/basic-mdoc.in (1.2), "Exp", lines: +3 -2 regress/roff/ta/basic-mdoc.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/ti/basic-man.in (1.3), "Exp", lines: +2 -1 regress/roff/ti/basic-mdoc.in (1.2), "Exp", lines: +3 -2 regress/roff/ti/basic-mdoc.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/tr/args.in (1.2), "Exp", lines: +2 -1 regress/roff/tr/args.out_lint (1.5), "Exp", lines: +3 -4 regress/tbl/data/blankline.in (1.2), "Exp", lines: +2 -1 regress/tbl/data/block_unclosed.in (1.2), "Exp", lines: +2 -1 regress/tbl/data/block_unclosed.out_lint (1.5), "Exp", lines: +2 -3 regress/tbl/data/block_width.in (1.3), "Exp", lines: +3 -2 regress/tbl/data/block_width.out_ascii (1.3), "Exp", lines: +1 -1 regress/tbl/data/block_wrap.in (1.2), "Exp", lines: +3 -2 regress/tbl/data/block_wrap.out_ascii (1.2), "Exp", lines: +1 -1 regress/tbl/data/empty.in (1.2), "Exp", lines: +2 -1 regress/tbl/data/empty.out_lint (1.5), "Exp", lines: +1 -2 regress/tbl/layout/center.in (1.4), "Exp", lines: +2 -1 regress/tbl/layout/complex.in (1.2), "Exp", lines: +2 -1 regress/tbl/layout/complex.out_lint (1.4), "Exp", lines: +5 -6 regress/tbl/layout/empty.in (1.2), "Exp", lines: +2 -1 regress/tbl/layout/empty.out_lint (1.4), "Exp", lines: +2 -3 regress/tbl/layout/emptyline.in (1.2), "Exp", lines: +2 -1 regress/tbl/layout/lines-nogroff.in (1.2), "Exp", lines: +3 -2 regress/tbl/layout/lines-nogroff.out_ascii (1.2), "Exp", lines: +1 -1 regress/tbl/layout/lines.in (1.2), "Exp", lines: +3 -2 regress/tbl/layout/lines.out_ascii (1.2), "Exp", lines: +1 -1 regress/tbl/layout/numbers.in (1.3), "Exp", lines: +2 -1 regress/tbl/layout/span.in (1.5), "Exp", lines: +2 -1 regress/tbl/macro/column.in (1.2), "Exp", lines: +3 -2 regress/tbl/macro/column.out_ascii (1.2), "Exp", lines: +1 -1 regress/tbl/macro/man.in (1.3), "Exp", lines: +2 -1 regress/tbl/macro/man.out_lint (1.4), "Exp", lines: +2 -3 regress/tbl/macro/nested.in (1.3), "Exp", lines: +2 -1 regress/tbl/macro/nested.out_lint (1.4), "Exp", lines: +1 -2 regress/tbl/mod/badfont.in (1.2), "Exp", lines: +2 -1 regress/tbl/mod/badfont.out_lint (1.4), "Exp", lines: +2 -3 regress/tbl/mod/expand-toowide.in (1.2), "Exp", lines: +2 -1 regress/tbl/mod/expand.in (1.3), "Exp", lines: +2 -1 regress/tbl/mod/font.in (1.3), "Exp", lines: +2 -1 regress/tbl/mod/font.out_lint (1.5), "Exp", lines: +5 -6 regress/tbl/mod/misalign.in (1.2), "Exp", lines: +2 -1 regress/tbl/mod/spacing.in (1.2), "Exp", lines: +2 -1 regress/tbl/mod/width.in (1.3), "Exp", lines: +2 -1 regress/tbl/opt/box.in (1.4), "Exp", lines: +2 -1 regress/tbl/opt/center.in (1.2), "Exp", lines: +2 -1 regress/tbl/opt/invalid.in (1.2), "Exp", lines: +2 -1 regress/tbl/opt/invalid.out_lint (1.4), "Exp", lines: +5 -6 Messages of the -Wbase level now print STYLE:. Since this causes horrible churn anyway, profit of the opportunity to stop excessive testing, such that this is hopefully the last instance of such churn. Consistently use OpenBSD RCS tags, blank .Os, blank fourth .TH argument, and Mdocdate like everywhere else. Use -Ios=OpenBSD for platform-independent predictable output. 2017-07-04 14:40 schwarze Changed: main.c (1.299), "Exp", lines: +2 -3 mandoc.1 (1.214), "Exp", lines: +7 -1 read.c (1.188), "Exp", lines: +2 -2 Printing "BASE:" in messages about violations of base system conventions is confusing, simply print "STYLE:", which is intuitive and does not sound excessively alarming; suggested by jmc@, OK tedu@ jmc@. 2017-07-03 17:33 schwarze Changed: mandoc.1 (1.213), "Exp", lines: +10 -6 mandoc.h (1.241), "Exp", lines: +3 -3 mdoc_validate.c (1.348), "Exp", lines: +95 -49 read.c (1.187), "Exp", lines: +2 -2 report trailing delimiters after macros where they are usually a mistake; the idea came up in a discussion with Thomas Klausner <wiz at NetBSD> 2017-07-03 13:40 schwarze Changed: mandoc.1 (1.212), "Exp", lines: +10 -2 mandoc.c (1.103), "Exp", lines: +11 -3 mandoc.h (1.240), "Exp", lines: +2 -1 read.c (1.186), "Exp", lines: +2 -1 warn about time machines; suggested by Thomas Klausner <wiz @ NetBSD> 2017-07-02 21:18 schwarze Changed: main.c (1.298), "Exp", lines: +6 -2 mandoc_xr.c (1.3), "Exp", lines: +3 -1 mandoc_xr.h (1.3), "Exp", lines: +2 -1 If a single page references the same non-existent manual more than once, print "(N times)" after the message "referenced manual not found", to lessen the risk that people fix the first instance and miss the others; jmc@ confirmed that this is useful. 2017-07-02 15:31 schwarze Changed: main.c (1.297), "Exp", lines: +6 -4 mandoc.1 (1.211), "Exp", lines: +20 -2 mandoc.h (1.239), "Exp", lines: +2 -1 mandoc_xr.c (1.2), "Exp", lines: +14 -7 mandoc_xr.h (1.2), "Exp", lines: +3 -3 mdoc_validate.c (1.347), "Exp", lines: +13 -3 read.c (1.185), "Exp", lines: +2 -1 add warning "cross reference to self"; inspired by mdoclint 2017-07-01 12:54 schwarze Changed: main.c (1.296), "Exp", lines: +12 -3 When checking cross references with -Tlint, ultimately fall back to looking in the current working directory. Not a security issue because the files are never open(2)ed, only access(2)ed. Requested by jmc@ and inspired by mdoclint(1). This cannot be perfect because it only works for files having the exact filename ./pagename.sec - mandoc has no way to figure out which files might contain a manual for multiple names, or that files in autohell might be called ./pagename.man.in instead, or which subdirectories might contain additional source files. Also, it may hide messages if you have bogus stuff lying around in the directory where you run mandoc -Tlint. But jmc@ considers it important, and good enough for everyday use. Also avoid leaking the memory for the file name while here. 2017-07-01 12:02 schwarze Changed: main.c (1.295), "Exp", lines: +13 -7 When checking the validity of cross references with -Tlint, fall back from database search to file system search just like man(1) does when looking up manuals. This is not too expensive because on a system having up-to-date mandoc.db(5) files, it only prolongs the time needed to check *invalid* references - and you are not supposed to have many of those, right? And on a system with missing or invalid mandoc.db(5) files, spending a bit of time and warning loudly about the real problem is also better than quickly issuing bogus warnings about cross references that are actually valid. 2017-07-01 09:47 schwarze Added: mandoc_xr.c (1.1) mandoc_xr.h (1.1) Changed: Makefile (1.514), "Exp", lines: +4 -1 Makefile.depend (1.32), "Exp", lines: +13 -11 configure (1.64), "Exp", lines: +3 -1 configure.local.example (1.32), "Exp", lines: +6 -1 main.c (1.294), "Exp", lines: +34 -1 manconf.h (1.5), "Exp", lines: +3 -2 mandoc.1 (1.210), "Exp", lines: +10 -2 mandoc.h (1.238), "Exp", lines: +2 -1 mandoc_headers.3 (1.15), "Exp", lines: +11 -1 manpath.c (1.35), "Exp", lines: +8 -1 mansearch.c (1.74), "Exp", lines: +9 -3 mdoc_validate.c (1.346), "Exp", lines: +6 -2 read.c (1.184), "Exp", lines: +2 -1 Basic reporting of .Xrs to manual pages that don't exist in the base system, inspired by mdoclint(1). We are able to do this because (1) the -mdoc parser, the -Tlint validator, and the man(1) manual page lookup code are all in the same program and (2) the mandoc.db(5) database format allows fast lookup. Feedback from, previous versions tested by, and OK jmc@. A few features will be added to this in the tree, step by step. 2017-06-29 16:31 schwarze Changed: eqn.c (1.72), "Exp", lines: +2 -2 Skip whitespace at the beginning of eqn(7) nodes, in particular ~ and ^ that misrendered; found by bentley@ in glCopyTexSubImage1D(3); also affected glAccum(3), glClipPlane(3), glDrawPixels(3), glEvalMesh(3), and others. 2017-06-29 15:22 schwarze Added: regress/mdoc/Bl/column_nogroff.in (1.1) regress/mdoc/Bl/column_nogroff.out_ascii (1.1) regress/mdoc/Bl/column_nogroff.out_lint (1.1) regress/mdoc/Bl/column_nogroff.out_markdown (1.1) Changed: mandoc.1 (1.209), "Exp", lines: +19 -2 mandoc.h (1.237), "Exp", lines: +3 -1 mdoc_validate.c (1.345), "Exp", lines: +20 -5 read.c (1.183), "Exp", lines: +3 -1 regress/mdoc/Bl/Makefile (1.8), "Exp", lines: +7 -4 regress/mdoc/Bl/column.in (1.2), "Exp", lines: +3 -0 regress/mdoc/Bl/column.out_lint (1.5), "Exp", lines: +7 -4 warn about some non-portable idioms in .Bl -column; triggered by a question from Yuri Pankov (illumos) 2017-06-29 13:17 schwarze Changed: mdoc.7 (1.267), "Exp", lines: +5 -5 Clarify that .Ta as a line macro is a portability problem, even though mandoc(1) handles it; triggered by a question from Yuri Pankov (illumos). 2017-06-28 12:52 schwarze Changed: man.c (1.176), "Exp", lines: +7 -4 fix incomplete handling of roff(7) nodes in man(7) block next-line scope; assertion failure in tclsh(1) reported by deraadt@ via bentley@ 2017-06-28 00:59 schwarze Changed: tbl.7 (1.28), "Exp", lines: +253 -187 Rewrite half of this, i was completely unaware how bad it was. Remove several lies, lots of duplicate information, and a lengthy discussion of features we don't support. Clarify the wording in some places and make it more concise in others. Delete examples from where they don't belong and write a new EXAMPLES section from scratch. 2017-06-27 19:51 schwarze Added: regress/tbl/mod/spacing.in (1.1) regress/tbl/mod/spacing.out_ascii (1.1) Changed: regress/tbl/mod/Makefile (1.4), "Exp", lines: +1 -1 test inter-column spacing 2017-06-27 18:25 schwarze Changed: out.c (1.70), "Exp", lines: +10 -3 out.h (1.31), "Exp", lines: +2 -1 tbl_layout.c (1.44), "Exp", lines: +3 -1 tbl_term.c (1.55), "Exp", lines: +28 -21 Implement spacing of columns as defined in the table layout; this is for example used by lftp(1) and, ironically, misused by our very own tbl(7) manual... 2017-06-27 12:18 schwarze Changed: mandoc.1 (1.208), "Exp", lines: +4 -2 mdoc_validate.c (1.344), "Exp", lines: +6 -3 regress/mdoc/Ns/position.in (1.2), "Exp", lines: +7 -1 regress/mdoc/Ns/position.out_ascii (1.2), "Exp", lines: +5 -1 regress/mdoc/Ns/position.out_lint (1.5), "Exp", lines: +2 -1 regress/mdoc/Ns/position.out_markdown (1.2), "Exp", lines: +7 -1 warn about .Ns macros that have no effect because they are followed by an isolated closing delimiter; inspired by mdoclint 2017-06-26 20:11 schwarze Added: regress/eqn/define/font.in (1.1) regress/eqn/define/font.out_ascii (1.1) regress/eqn/define/quoted.in (1.1) regress/eqn/define/quoted.out_ascii (1.1) regress/eqn/delim/Makefile (1.1) regress/eqn/delim/basic.in (1.1) regress/eqn/delim/basic.out_ascii (1.1) regress/eqn/nullary/symbol.in (1.1) regress/eqn/nullary/symbol.out_ascii (1.1) regress/eqn/nullary/symbol.out_html (1.1) regress/eqn/nullary/symbol.out_utf8 (1.1) regress/eqn/unary/bold.in (1.1) regress/eqn/unary/bold.out_ascii (1.1) regress/eqn/unary/bold.out_html (1.1) Changed: regress/eqn/Makefile (1.2), "Exp", lines: +1 -1 regress/eqn/define/Makefile (1.3), "Exp", lines: +2 -2 regress/eqn/define/invalid.out_ascii (1.2), "Exp", lines: +3 -3 regress/eqn/fromto/basic.out_ascii (1.2), "Exp", lines: +1 -1 regress/eqn/fromto/basic.out_html (1.2), "Exp", lines: +1 -1 regress/eqn/fromto/noarg.out_ascii (1.2), "Exp", lines: +1 -1 regress/eqn/matrix/basic.in (1.2), "Exp", lines: +3 -0 regress/eqn/matrix/basic.out_ascii (1.2), "Exp", lines: +1 -1 regress/eqn/matrix/basic.out_html (1.2), "Exp", lines: +1 -1 regress/eqn/nullary/Makefile (1.2), "Exp", lines: +3 -2 regress/eqn/nullary/roman.in (1.2), "Exp", lines: +22 -4 regress/eqn/nullary/roman.out_ascii (1.2), "Exp", lines: +7 -3 regress/eqn/nullary/roman.out_html (1.2), "Exp", lines: +15 -1 regress/eqn/over/precedence.out_ascii (1.2), "Exp", lines: +1 -1 regress/eqn/over/precedence.out_html (1.2), "Exp", lines: +1 -1 regress/eqn/size/basic.out_ascii (1.2), "Exp", lines: +1 -1 regress/eqn/subsup/combine.out_ascii (1.2), "Exp", lines: +1 -1 regress/eqn/subsup/combine.out_html (1.2), "Exp", lines: +1 -1 regress/eqn/subsup/noarg.out_ascii (1.2), "Exp", lines: +1 -1 regress/eqn/subsup/noarg.out_html (1.2), "Exp", lines: +1 -1 regress/eqn/subsup/sub_group.out_ascii (1.2), "Exp", lines: +1 -1 regress/eqn/subsup/sub_group.out_html (1.2), "Exp", lines: +1 -1 regress/eqn/unary/Makefile (1.2), "Exp", lines: +2 -2 regress/eqn/unary/diacrit.out_ascii (1.2), "Exp", lines: +1 -1 regress/eqn/unary/diacrit.out_html (1.2), "Exp", lines: +1 -1 regress/eqn/unary/sqrt.in (1.3), "Exp", lines: +1 -1 regress/eqn/unary/sqrt.out_ascii (1.3), "Exp", lines: +1 -1 regress/eqn/unary/sqrt.out_html (1.3), "Exp", lines: +1 -1 catch up with the recent eqn(7) improvements 2017-06-26 20:09 schwarze Changed: eqn.c (1.71), "Exp", lines: +161 -241 libroff.h (1.40), "Exp", lines: +4 -3 Complete rewrite of the lexer in a single function with four operation modes instead of four functions, resulting in considerable simplification, fifty lines less of code, fifteen fewer automatic variables, and several bug fixes, for example: 1. The delim control statement consumes exactly two bytes of input, requires no whitespace after these two bytes, and does not treat quotes in any special way. 2. If the argument of left, right, gfont, gsize, or size is defined as an alias, only the first word of the value is used as the delimiter, font name, or font size. 3. If a back, fwd, down, or up keyword is followed by another keyword instead of the required number, GNU eqn does nothing useful, but typically errors out. So no need to have special handling (with an ugly goto!) for it in mandoc. Also getting rid of one pointless static buffer and twelve redundant calls to strlcpy(3). 2017-06-26 11:04 schwarze Changed: eqn.c (1.70), "Exp", lines: +10 -7 when splitting a composite word, do not forget to close the inserted list box 2017-06-25 17:43 schwarze Changed: mandoc.1 (1.207), "Exp", lines: +7 -2 mandoc.h (1.236), "Exp", lines: +2 -1 mdoc_validate.c (1.343), "Exp", lines: +63 -2 read.c (1.182), "Exp", lines: +2 -1 Catch typos in .Sh names; suggested by jmc@. I'm using a very simple, linear time / zero space fuzzy string matching heuristic rather than a full Levenshtein metric, to keep the code both simple and fast. 2017-06-25 14:09 schwarze Added: regress/man/MT/Makefile (1.1) regress/man/MT/args.in (1.1) regress/man/MT/args.out_ascii (1.1) regress/man/MT/args.out_lint (1.1) regress/man/MT/noME.in (1.1) regress/man/MT/noME.out_ascii (1.1) regress/man/MT/noME.out_lint (1.1) Changed: regress/man/Makefile (1.2), "Exp", lines: +1 -1 test new MT macro 2017-06-25 12:51 schwarze Changed: regress/char/space/esct-man.out_lint (1.3), "Exp", lines: +1 -1 regress/char/space/esct-mdoc.out_lint (1.4), "Exp", lines: +3 -2 regress/char/space/tab-man.out_lint (1.3), "Exp", lines: +1 -1 regress/char/space/tab.out_lint (1.4), "Exp", lines: +3 -2 regress/char/space/trailing-mdoc.out_lint (1.4), "Exp", lines: +3 -2 regress/char/unicode/input.out_lint (1.3), "Exp", lines: +1 -1 regress/char/unicode/invalid.out_lint (1.4), "Exp", lines: +3 -2 regress/eqn/define/infinite.out_lint (1.5), "Exp", lines: +3 -2 regress/eqn/define/invalid.out_lint (1.5), "Exp", lines: +3 -2 regress/eqn/over/noarg.out_lint (1.5), "Exp", lines: +3 -2 regress/man/B/args.out_lint (1.3), "Exp", lines: +1 -1 regress/man/B/blank.out_lint (1.3), "Exp", lines: +1 -1 regress/man/IP/empty.out_lint (1.3), "Exp", lines: +1 -1 regress/man/OP/args.out_lint (1.3), "Exp", lines: +1 -1 regress/man/PD/args.out_lint (1.3), "Exp", lines: +1 -1 regress/man/PP/args.out_lint (1.3), "Exp", lines: +1 -1 regress/man/PP/empty.out_lint (1.3), "Exp", lines: +1 -1 regress/man/RS/REarg.out_lint (1.3), "Exp", lines: +1 -1 regress/man/RS/empty.out_lint (1.3), "Exp", lines: +1 -1 regress/man/RS/lonelyRE.out_lint (1.3), "Exp", lines: +1 -1 regress/man/RS/noRE.out_lint (1.3), "Exp", lines: +1 -1 regress/man/SH/broken.out_lint (1.3), "Exp", lines: +1 -1 regress/man/SH/broken_eline.out_lint (1.3), "Exp", lines: +1 -1 regress/man/SH/empty_before.out_lint (1.3), "Exp", lines: +1 -1 regress/man/SH/noarg.out_lint (1.4), "Exp", lines: +1 -1 regress/man/SS/broken.out_lint (1.3), "Exp", lines: +1 -1 regress/man/SS/broken_eline.out_lint (1.3), "Exp", lines: +1 -1 regress/man/SS/noarg.out_lint (1.4), "Exp", lines: +1 -1 regress/man/TH/case.out_lint (1.3), "Exp", lines: +1 -1 regress/man/TH/nobody.out_lint (1.3), "Exp", lines: +1 -1 regress/man/TH/sixargs.out_lint (1.3), "Exp", lines: +1 -1 regress/man/TP/broken.out_lint (1.4), "Exp", lines: +1 -1 regress/man/TP/double.out_lint (1.3), "Exp", lines: +1 -1 regress/man/TP/eof.out_lint (1.3), "Exp", lines: +1 -1 regress/man/TS/break.out_lint (1.3), "Exp", lines: +1 -1 regress/man/UR/args.out_lint (1.3), "Exp", lines: +1 -1 regress/man/UR/noUE.out_lint (1.3), "Exp", lines: +1 -1 regress/man/blank/afterSH.out_lint (1.3), "Exp", lines: +1 -1 regress/man/blank/afterSS.out_lint (1.3), "Exp", lines: +1 -1 regress/man/blank/line.out_lint (1.4), "Exp", lines: +1 -1 regress/man/nf/args.out_lint (1.3), "Exp", lines: +1 -1 regress/man/nf/dupe.out_lint (1.3), "Exp", lines: +1 -1 regress/mdoc/Ad/noarg.out_lint (1.5), "Exp", lines: +3 -2 regress/mdoc/An/break.out_lint (1.5), "Exp", lines: +3 -2 regress/mdoc/Aq/empty.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Ar/punct.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/At/invalid.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Bd/badargs.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Bd/beforeNAME.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Bd/blank.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Bd/break.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Bd/broken.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Bd/nested.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Bd/unclosed.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Bf/badargs.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Bf/break.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Bf/broken.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Bf/multiargs.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Bk/badarg.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Bk/broken.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Bl/badargs.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Bl/bareIt.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Bl/bareTa.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Bl/break.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Bl/breakingIt.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Bl/broken.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Bl/column.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Bl/empty.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Bl/emptyhead.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Bl/emptyitem.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Bl/emptytag.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Bl/noIt.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Bl/notype.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Bl/tag.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Brq/empty.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Bx/args.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Cd/noarg.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Cm/noarg.out_lint (1.5), "Exp", lines: +3 -2 regress/mdoc/D1/spacing.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Db/args.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Dd/badarg.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Dd/dupe.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Dd/late.out_lint (1.3), "Exp", lines: +2 -1 regress/mdoc/Dd/long.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Dd/manarg.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Dd/noarg.out_lint (1.3), "Exp", lines: +2 -1 regress/mdoc/Dd/order.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Dl/spacing.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Dq/empty.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Dt/badsec.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Dt/case.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Dt/dupe.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Dt/fourargs.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Dt/late.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Dt/missing.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Dt/noarg.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Dt/nobody.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Dt/nosec.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Dt/order.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Dv/noarg.out_lint (1.5), "Exp", lines: +3 -2 regress/mdoc/Em/noarg.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Em/punct.out_lint (1.6), "Exp", lines: +3 -2 regress/mdoc/Eo/break.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Eo/obsolete.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Eo/unclosed.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Er/noarg.out_lint (1.5), "Exp", lines: +3 -2 regress/mdoc/Ev/noarg.out_lint (1.5), "Exp", lines: +3 -2 regress/mdoc/Ex/noname.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Ex/nostd.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Fd/empty.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Fl/punct.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Fo/noarg.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Fo/nohead.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Fo/obsolete.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Fo/punct.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Fo/warn.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Ic/noarg.out_lint (1.5), "Exp", lines: +3 -2 regress/mdoc/In/noarg.out_lint (1.5), "Exp", lines: +3 -2 regress/mdoc/Lb/badargs.out_lint (1.7), "Exp", lines: +3 -2 regress/mdoc/Li/punct.out_lint (1.6), "Exp", lines: +3 -2 regress/mdoc/Lk/noarg.out_lint (1.6), "Exp", lines: +3 -2 regress/mdoc/Ms/noarg.out_lint (1.5), "Exp", lines: +3 -2 regress/mdoc/Mt/simple.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Nd/broken.out_lint (1.6), "Exp", lines: +3 -2 regress/mdoc/Nd/noarg.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Nm/badNAME.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Nm/badNAMEuse.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Nm/break.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Nm/broken.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Nm/punct.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/No/punct.out_lint (1.7), "Exp", lines: +3 -2 regress/mdoc/Ns/position.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Oo/punct.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Op/break.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Op/broken.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Op/punct.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Os/dupe.out_lint (1.3), "Exp", lines: +4 -1 regress/mdoc/Os/late.out_lint (1.3), "Exp", lines: +2 -1 regress/mdoc/Pa/punct.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Pf/spacing.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Pp/arg.out_lint (1.6), "Exp", lines: +3 -2 regress/mdoc/Qq/empty.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Rs/allch.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Rs/args.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Rs/empty.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Rv/noname.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Rv/nostd.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Sh/badNAME.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Sh/before.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Sh/empty.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Sh/emptyNAME.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Sh/first.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Sh/nohead.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Sh/order.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Sh/orderNAME.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Sh/parbefore.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Sh/parborder.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Sh/punctNAME.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Sh/subbefore.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Sm/badarg.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Sm/twoarg.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Sq/empty.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/St/badargs.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/St/call.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Sx/noarg.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Sy/noarg.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Sy/punct.out_lint (1.6), "Exp", lines: +3 -2 regress/mdoc/Tn/noarg.out_lint (1.5), "Exp", lines: +3 -2 regress/mdoc/Ud/arg.out_lint (1.5), "Exp", lines: +3 -2 regress/mdoc/Ux/punct.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/Va/noarg.out_lint (1.5), "Exp", lines: +3 -2 regress/mdoc/Vt/noarg.out_lint (1.5), "Exp", lines: +3 -2 regress/mdoc/Xr/args.out_lint (1.5), "Exp", lines: +3 -2 regress/mdoc/blank/comment.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/blank/line.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/blank/list.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/break/brokenbreaker.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/break/notopen.out_lint (1.4), "Exp", lines: +3 -2 regress/mdoc/break/tail.out_lint (1.5), "Exp", lines: +3 -2 regress/mdoc/break/twice.out_lint (1.5), "Exp", lines: +3 -2 regress/mdoc/break/two.out_lint (1.4), "Exp", lines: +3 -2 regress/roff/args/man.out_lint (1.3), "Exp", lines: +1 -1 regress/roff/args/mdoc.out_lint (1.4), "Exp", lines: +3 -2 regress/roff/args/roff.out_lint (1.3), "Exp", lines: +1 -1 regress/roff/br/args.out_lint (1.3), "Exp", lines: +1 -1 regress/roff/cc/basic.out_lint (1.3), "Exp", lines: +1 -1 regress/roff/cond/close.out_lint (1.5), "Exp", lines: +1 -1 regress/roff/cond/if.out_lint (1.4), "Exp", lines: +1 -1 regress/roff/de/escname.out_lint (1.5), "Exp", lines: +3 -2 regress/roff/de/indir.out_lint (1.5), "Exp", lines: +3 -2 regress/roff/de/infinite.out_lint (1.5), "Exp", lines: +3 -2 regress/roff/esc/B.out_lint (1.4), "Exp", lines: +3 -2 regress/roff/esc/h.out_lint (1.6), "Exp", lines: +3 -2 regress/roff/esc/ignore.out_lint (1.4), "Exp", lines: +3 -2 regress/roff/esc/l.out_lint (1.3), "Exp", lines: +3 -2 regress/roff/esc/w.out_lint (1.4), "Exp", lines: +3 -2 regress/roff/ft/badargs-mdoc.out_lint (1.4), "Exp", lines: +3 -2 regress/roff/ft/badargs.out_lint (1.3), "Exp", lines: +1 -1 regress/roff/ig/basic.out_lint (1.5), "Exp", lines: +3 -2 regress/roff/it/badarg.out_lint (1.5), "Exp", lines: +3 -2 regress/roff/nr/divzero.out_lint (1.3), "Exp", lines: +1 -1 regress/roff/nr/escname.out_lint (1.3), "Exp", lines: +1 -1 regress/roff/sp/badargs-man.out_lint (1.3), "Exp", lines: +1 -1 regress/roff/string/name.out_lint (1.4), "Exp", lines: +3 -2 regress/roff/string/std.out_lint (1.2), "Exp", lines: +1 -1 regress/roff/tr/args.out_lint (1.4), "Exp", lines: +1 -1 regress/tbl/data/block_unclosed.out_lint (1.4), "Exp", lines: +1 -1 regress/tbl/data/empty.out_lint (1.4), "Exp", lines: +1 -1 regress/tbl/layout/complex.out_lint (1.3), "Exp", lines: +1 -1 regress/tbl/layout/empty.out_lint (1.3), "Exp", lines: +1 -1 regress/tbl/macro/man.out_lint (1.3), "Exp", lines: +1 -1 regress/tbl/macro/nested.out_lint (1.3), "Exp", lines: +1 -1 regress/tbl/mod/badfont.out_lint (1.3), "Exp", lines: +1 -1 regress/tbl/mod/font.out_lint (1.4), "Exp", lines: +1 -1 regress/tbl/opt/invalid.out_lint (1.3), "Exp", lines: +1 -1 cope with changes in BASE messages 2017-06-25 11:45 schwarze Changed: man_macro.c (1.123), "Exp", lines: +6 -1 add support for the MT and ME mailto macros, used for example in wg(8); patch from bentley@ 2017-06-25 11:42 schwarze Changed: man.7 (1.136), "Exp", lines: +16 -2 man_html.c (1.145), "Exp", lines: +11 -2 man_term.c (1.208), "Exp", lines: +3 -1 man_validate.c (1.132), "Exp", lines: +3 -1 mandoc.1 (1.206), "Exp", lines: +7 -3 roff.c (1.317), "Exp", lines: +2 -2 roff.h (1.57), "Exp", lines: +3 -1 add support for the MT and ME mailto macros, used for example in wg(8); patch from bentley@ 2017-06-24 21:08 schwarze Changed: mandoc.1 (1.205), "Exp", lines: +2 -2 delete useless .Ns macro that jmc@ found with mdoclint(1) 2017-06-24 19:06 schwarze Changed: mandoc.1 (1.204), "Exp", lines: +7 -1 document message "unknown architecture" 2017-06-24 18:58 schwarze Changed: mandoc.h (1.235), "Exp", lines: +2 -1 mdoc_validate.c (1.342), "Exp", lines: +40 -1 read.c (1.181), "Exp", lines: +2 -1 operating system dependent message about unknown architecture; inspired by mdoclint 2017-06-24 17:37 schwarze Changed: msec.in (1.8), "Exp", lines: +1 -7 delete old, undocumented, obsolete section names that nobody uses 2017-06-24 15:59 schwarze Changed: mandoc.1 (1.203), "Exp", lines: +8 -2 mandoc.h (1.234), "Exp", lines: +2 -1 mdoc_validate.c (1.341), "Exp", lines: +8 -1 read.c (1.180), "Exp", lines: +2 -1 in the base system, suggest leaving .Os blank; inspired by mdoclint 2017-06-24 14:38 schwarze Changed: att.c (1.16), "Exp", lines: +2 -1 cgi.c (1.156), "Exp", lines: +2 -2 demandoc.c (1.29), "Exp", lines: +4 -3 lib.c (1.14), "Exp", lines: +2 -1 main.c (1.293), "Exp", lines: +43 -26 man_html.c (1.144), "Exp", lines: +2 -1 man_validate.c (1.131), "Exp", lines: +11 -7 mandoc.1 (1.202), "Exp", lines: +70 -29 mandoc.3 (1.40), "Exp", lines: +25 -12 mandoc.h (1.233), "Exp", lines: +14 -4 mandoc_headers.3 (1.14), "Exp", lines: +6 -1 mandocd.c (1.6), "Exp", lines: +2 -2 mandocdb.c (1.251), "Exp", lines: +3 -2 mdoc_html.c (1.291), "Exp", lines: +2 -1 mdoc_validate.c (1.340), "Exp", lines: +21 -15 read.c (1.179), "Exp", lines: +17 -13 roff.c (1.316), "Exp", lines: +6 -6 roff.h (1.56), "Exp", lines: +4 -10 roff_html.c (1.11), "Exp", lines: +2 -1 roff_term.c (1.14), "Exp", lines: +2 -1 st.c (1.14), "Exp", lines: +2 -1 Split -Wstyle into -Wstyle and the even lower -Wbase, and add -Wopenbsd and -Wnetbsd to check conventions for the base system of a specific operating system. Mark operating system specific messages with "(OpenBSD)" at the end. Please use just "-Tlint" to check base system manuals (defaulting to -Wall, which is now -Wbase), but prefer "-Tlint -Wstyle" for the manuals of portable software projects you maintain that are not part of OpenBSD base, to avoid bogus recommendations about base system conventions that do not apply. Issue originally reported by semarie@, solution using an idea from tedu@, discussed with jmc@ and jca@. 2017-06-24 13:49 schwarze Changed: mdoc.7 (1.266), "Exp", lines: +2 -7 st.in (1.29), "Exp", lines: +1 -2 Delete .St -p1003.1-2013. It is an OpenBSD addition that did not get used a single time in three years, and groff did not pick it up either, so removing it does not affect any existing manuals anywhere. Cleanup suggested by jmc@, OK bentley@. 2017-06-23 23:00 schwarze Changed: eqn_html.c (1.14), "Exp", lines: +15 -9 Consistently treat character escape sequences as operators, not as letters, even if their names contain letters. This is certainly not perfect, but code to recognize that \(*a is not an operator but a letter would need a huge table, or Unicode character property support, which won't happen at this time. 2017-06-23 22:20 schwarze Changed: TODO (1.238), "Exp", lines: +8 -1 eqn(1) output operator translation 2017-06-23 21:04 schwarze Changed: eqn.c (1.69), "Exp", lines: +20 -2 splitting a text box sometimes requires wrapping it in a list 2017-06-23 15:58 schwarze Changed: INSTALL (1.19), "Exp", lines: +11 -9 LICENSE (1.17), "Exp", lines: +3 -3 NEWS (1.22), "Exp", lines: +6 -6 Stop using "mdocml" as an official name. Prefer mandoc.bsd.lv to mdocml.bsd.lv. 2017-06-23 02:32 schwarze Changed: eqn_html.c (1.13), "Exp", lines: +50 -4 html.c (1.215), "Exp", lines: +2 -1 html.h (1.86), "Exp", lines: +2 -1 Write text boxes as <mi>, <mn>, or <mo> as appropriate, and write fontstyle or fontweight attributes where required. Missing features reported by bentley@. 2017-06-23 00:30 schwarze Changed: eqn.c (1.68), "Exp", lines: +41 -37 Simplify font handling: 1. Inherit the font attribute from the parent box, such that iteration is no longer required to find the current font. 2. For well-known function name tokens, do not insert an EQN_LISTONE box into the AST; simply set the font attribute of the text box itself that contains the name. Also improve word splitting of unquoted strings in default font mode: 3. Split between numbers and punctuation because both will soon get different HTML markup. 4. Do not split between letters. With the newly ubiquitious font attributes, all formatters will be able to figure out what to do without putting each letter into a separate box. 2017-06-22 00:30 schwarze Changed: eqn.c (1.67), "Exp", lines: +22 -8 Fix font selection for text boxes in the terminal formatter. Issue reported by bentley@. The AST data structure is powerful enough that all required information can easily be provided in the parser, and no change of the formatting code is needed. 2017-06-21 20:50 schwarze Changed: eqn.c (1.66), "Exp", lines: +45 -14 Outside explicit font context, give every letter its own box. The formatters need this to correctly select fonts. Missing feature reported by bentley@. 2017-06-21 18:38 schwarze Changed: eqn.c (1.65), "Exp", lines: +11 -12 quoted words are not parsed for defined keys 2017-06-21 18:04 schwarze Changed: eqn.c (1.64), "Exp", lines: +38 -17 Recognize well-known functions names (the same that Heirloom recognizes, which includes those recognized by groff) and wrap them in a roman box unless they already are in roman context. Missing feature reported by bentley@. 2017-06-20 17:24 schwarze Changed: cgi.c (1.155), "Exp", lines: +5 -5 eqn.c (1.63), "Exp", lines: +71 -71 eqn_html.c (1.12), "Exp", lines: +9 -9 KNF: remove parentheses from switch case labels; no binary change 2017-06-19 12:57 schwarze Changed: mdoc_html.c (1.290), "Exp", lines: +7 -3 Fix a regression in the previous revision: When there is no link description, reuse the URI. Reported by tj@ and bentley@. 2017-06-18 17:36 schwarze Added: regress/roff/rn/Makefile (1.1) regress/roff/rn/append.in (1.1) regress/roff/rn/append.out_ascii (1.1) regress/roff/string/std.in (1.1) regress/roff/string/std.out_ascii (1.1) regress/roff/string/std.out_lint (1.1) Changed: roff.c (1.315), "Exp", lines: +185 -135 regress/roff/Makefile (1.5), "Exp", lines: +1 -1 regress/roff/cond/string.in (1.2), "Exp", lines: +4 -0 regress/roff/cond/string.out_ascii (1.2), "Exp", lines: +2 -0 regress/roff/de/append.in (1.2), "Exp", lines: +12 -1 regress/roff/de/append.out_ascii (1.2), "Exp", lines: +5 -1 regress/roff/string/Makefile (1.2), "Exp", lines: +7 -3 Implement appending to standard man(7) and mdoc(7) macros with .am. With roff_getstrn(), provide finer control which definitions can be used for what: * All definitions can be used for .if d tests and .am appending. * User-defined for \* expansion, .dei expansion, and macro calling. * Predefined for \* expansion. * Standard macros, original or renamed, for macro calling. Several related improvements while here: * Do not return string table entries that have explicitly been removed. * Do not create a rentab entry when trying to rename a non-existent macro. * Clear an existing rentab entry when the external interface roff_setstr() is called with its name. * Avoid trailing blanks in macro lines generated from renamed and from aliased macros. * Delete the duplicate __m*_reserved[] tables, just use roff_name[]. 2017-06-17 23:07 schwarze Changed: mandoc.1 (1.201), "Exp", lines: +7 -2 mandoc.h (1.232), "Exp", lines: +2 -1 read.c (1.178), "Exp", lines: +2 -1 roff.c (1.314), "Exp", lines: +6 -2 style message about duplicate RCS ids; inspired by mdoclint 2017-06-17 22:43 schwarze Changed: man_validate.c (1.130), "Exp", lines: +8 -0 mandoc.1 (1.200), "Exp", lines: +44 -2 mandoc.h (1.231), "Exp", lines: +2 -1 mdoc_validate.c (1.339), "Exp", lines: +5 -2 read.c (1.177), "Exp", lines: +2 -1 roff.c (1.313), "Exp", lines: +19 -1 roff.h (1.55), "Exp", lines: +2 -1 regress/char/space/esct-man.out_lint (1.2), "Exp", lines: +1 -0 regress/char/space/esct-mdoc.out_lint (1.3), "Exp", lines: +1 -0 regress/char/space/tab-man.out_lint (1.2), "Exp", lines: +1 -0 regress/char/space/tab.out_lint (1.3), "Exp", lines: +1 -0 regress/char/space/trailing-mdoc.out_lint (1.3), "Exp", lines: +1 -0 regress/char/unicode/input.out_lint (1.2), "Exp", lines: +1 -0 regress/char/unicode/invalid.out_lint (1.3), "Exp", lines: +1 -0 regress/eqn/define/infinite.out_lint (1.4), "Exp", lines: +1 -0 regress/eqn/define/invalid.out_lint (1.4), "Exp", lines: +1 -0 regress/eqn/over/noarg.out_lint (1.4), "Exp", lines: +1 -0 regress/man/B/args.out_lint (1.2), "Exp", lines: +1 -0 regress/man/B/blank.out_lint (1.2), "Exp", lines: +1 -0 regress/man/IP/empty.out_lint (1.2), "Exp", lines: +1 -0 regress/man/OP/args.out_lint (1.2), "Exp", lines: +1 -0 regress/man/PD/args.out_lint (1.2), "Exp", lines: +1 -0 regress/man/PP/args.out_lint (1.2), "Exp", lines: +1 -0 regress/man/PP/empty.out_lint (1.2), "Exp", lines: +1 -0 regress/man/RS/REarg.out_lint (1.2), "Exp", lines: +1 -0 regress/man/RS/empty.out_lint (1.2), "Exp", lines: +1 -0 regress/man/RS/lonelyRE.out_lint (1.2), "Exp", lines: +1 -0 regress/man/RS/noRE.out_lint (1.2), "Exp", lines: +1 -0 regress/man/SH/broken.out_lint (1.2), "Exp", lines: +1 -0 regress/man/SH/broken_eline.out_lint (1.2), "Exp", lines: +1 -0 regress/man/SH/empty_before.out_lint (1.2), "Exp", lines: +1 -0 regress/man/SH/noarg.out_lint (1.3), "Exp", lines: +1 -0 regress/man/SS/broken.out_lint (1.2), "Exp", lines: +1 -0 regress/man/SS/broken_eline.out_lint (1.2), "Exp", lines: +1 -0 regress/man/SS/noarg.out_lint (1.3), "Exp", lines: +1 -0 regress/man/TH/case.out_lint (1.2), "Exp", lines: +1 -0 regress/man/TH/nobody.out_lint (1.2), "Exp", lines: +1 -0 regress/man/TH/sixargs.out_lint (1.2), "Exp", lines: +1 -0 regress/man/TP/broken.out_lint (1.3), "Exp", lines: +1 -0 regress/man/TP/double.out_lint (1.2), "Exp", lines: +1 -0 regress/man/TP/eof.out_lint (1.2), "Exp", lines: +1 -0 regress/man/TS/break.out_lint (1.2), "Exp", lines: +1 -0 regress/man/TS/vspace.in (1.2), "Exp", lines: +1 -1 regress/man/TS/vspace.out_ascii (1.2), "Exp", lines: +1 -1 regress/man/UR/args.out_lint (1.2), "Exp", lines: +1 -0 regress/man/UR/noUE.out_lint (1.2), "Exp", lines: +1 -0 regress/man/blank/afterSH.out_lint (1.2), "Exp", lines: +1 -0 regress/man/blank/afterSS.out_lint (1.2), "Exp", lines: +1 -0 regress/man/blank/line.out_lint (1.3), "Exp", lines: +1 -0 regress/man/nf/args.out_lint (1.2), "Exp", lines: +1 -0 regress/man/nf/dupe.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Ad/noarg.out_lint (1.4), "Exp", lines: +1 -0 regress/mdoc/An/break.out_lint (1.4), "Exp", lines: +1 -0 regress/mdoc/Aq/empty.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Ar/punct.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/At/invalid.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Bd/badargs.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Bd/beforeNAME.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Bd/blank.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Bd/break.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Bd/broken.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Bd/nested.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Bd/unclosed.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Bf/badargs.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Bf/break.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Bf/broken.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Bf/multiargs.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Bk/badarg.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Bk/broken.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Bl/badargs.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Bl/bareIt.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Bl/bareTa.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Bl/break.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Bl/breakingIt.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Bl/broken.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Bl/column.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Bl/empty.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Bl/emptyhead.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Bl/emptyitem.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Bl/emptytag.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Bl/noIt.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Bl/notype.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Bl/tag.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Brq/empty.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Bx/args.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Cd/noarg.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Cm/noarg.out_lint (1.4), "Exp", lines: +1 -0 regress/mdoc/D1/spacing.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Db/args.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Dd/badarg.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Dd/dupe.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Dd/late.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Dd/long.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Dd/manarg.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Dd/noarg.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Dd/order.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Dl/spacing.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Dq/empty.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Dt/badsec.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Dt/case.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Dt/dupe.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Dt/fourargs.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Dt/late.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Dt/missing.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Dt/noarg.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Dt/nobody.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Dt/nosec.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Dt/order.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Dv/noarg.out_lint (1.4), "Exp", lines: +1 -0 regress/mdoc/Em/noarg.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Em/punct.out_lint (1.5), "Exp", lines: +1 -0 regress/mdoc/Eo/break.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Eo/obsolete.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Eo/unclosed.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Er/noarg.out_lint (1.4), "Exp", lines: +1 -0 regress/mdoc/Ev/noarg.out_lint (1.4), "Exp", lines: +1 -0 regress/mdoc/Ex/noname.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Ex/nostd.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Fd/empty.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Fl/punct.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Fo/noarg.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Fo/nohead.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Fo/obsolete.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Fo/punct.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Fo/warn.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Ic/noarg.out_lint (1.4), "Exp", lines: +1 -0 regress/mdoc/In/noarg.out_lint (1.4), "Exp", lines: +1 -0 regress/mdoc/Lb/badargs.out_lint (1.6), "Exp", lines: +1 -0 regress/mdoc/Li/punct.out_lint (1.5), "Exp", lines: +1 -0 regress/mdoc/Lk/noarg.out_lint (1.5), "Exp", lines: +1 -0 regress/mdoc/Ms/noarg.out_lint (1.4), "Exp", lines: +1 -0 regress/mdoc/Mt/simple.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Nd/broken.out_lint (1.5), "Exp", lines: +1 -0 regress/mdoc/Nd/noarg.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Nm/badNAME.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Nm/badNAMEuse.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Nm/break.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Nm/broken.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Nm/punct.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/No/punct.out_lint (1.6), "Exp", lines: +1 -0 regress/mdoc/Ns/position.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Oo/punct.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Op/break.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Op/broken.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Op/punct.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Os/dupe.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Os/late.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Pa/punct.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Pf/spacing.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Pp/arg.out_lint (1.5), "Exp", lines: +1 -0 regress/mdoc/Qq/empty.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Rs/allch.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Rs/args.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Rs/empty.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Rv/noname.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Rv/nostd.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Sh/badNAME.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Sh/before.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Sh/empty.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Sh/emptyNAME.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Sh/first.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Sh/nohead.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Sh/order.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Sh/orderNAME.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Sh/parbefore.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Sh/parborder.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Sh/punctNAME.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Sh/subbefore.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Sm/badarg.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Sm/twoarg.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Sq/empty.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/St/badargs.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/St/call.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Sx/noarg.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Sy/noarg.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Sy/punct.out_lint (1.5), "Exp", lines: +1 -0 regress/mdoc/Tn/noarg.out_lint (1.4), "Exp", lines: +1 -0 regress/mdoc/Ud/arg.out_lint (1.4), "Exp", lines: +1 -0 regress/mdoc/Ux/punct.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Va/noarg.out_lint (1.4), "Exp", lines: +1 -0 regress/mdoc/Vt/noarg.out_lint (1.4), "Exp", lines: +1 -0 regress/mdoc/Xr/args.out_lint (1.4), "Exp", lines: +1 -0 regress/mdoc/blank/comment.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/blank/line.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/blank/list.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/break/brokenbreaker.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/break/notopen.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/break/tail.out_lint (1.4), "Exp", lines: +1 -0 regress/mdoc/break/twice.out_lint (1.4), "Exp", lines: +1 -0 regress/mdoc/break/two.out_lint (1.3), "Exp", lines: +1 -0 regress/roff/args/man.in (1.2), "Exp", lines: +1 -1 regress/roff/args/man.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/args/man.out_lint (1.2), "Exp", lines: +1 -0 regress/roff/args/mdoc.out_lint (1.3), "Exp", lines: +1 -0 regress/roff/args/roff.in (1.2), "Exp", lines: +1 -1 regress/roff/args/roff.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/args/roff.out_lint (1.2), "Exp", lines: +1 -0 regress/roff/br/args.out_lint (1.2), "Exp", lines: +1 -0 regress/roff/cc/basic.out_lint (1.2), "Exp", lines: +1 -0 regress/roff/cond/close.out_lint (1.4), "Exp", lines: +1 -0 regress/roff/cond/if.out_lint (1.3), "Exp", lines: +1 -0 regress/roff/de/escname.out_lint (1.4), "Exp", lines: +1 -0 regress/roff/de/indir.out_lint (1.4), "Exp", lines: +1 -0 regress/roff/de/infinite.out_lint (1.4), "Exp", lines: +1 -0 regress/roff/esc/B.out_lint (1.3), "Exp", lines: +1 -0 regress/roff/esc/h.out_lint (1.5), "Exp", lines: +1 -0 regress/roff/esc/ignore.out_lint (1.3), "Exp", lines: +1 -0 regress/roff/esc/l.out_lint (1.2), "Exp", lines: +1 -0 regress/roff/esc/w.out_lint (1.3), "Exp", lines: +1 -0 regress/roff/ft/badargs-mdoc.out_lint (1.3), "Exp", lines: +1 -0 regress/roff/ft/badargs.out_lint (1.2), "Exp", lines: +1 -0 regress/roff/ig/basic.out_lint (1.4), "Exp", lines: +1 -0 regress/roff/it/badarg.out_lint (1.4), "Exp", lines: +1 -0 regress/roff/nr/divzero.out_lint (1.2), "Exp", lines: +1 -0 regress/roff/nr/escname.out_lint (1.2), "Exp", lines: +1 -0 regress/roff/sp/badargs-man.out_lint (1.2), "Exp", lines: +1 -0 regress/roff/string/escape.in (1.2), "Exp", lines: +1 -1 regress/roff/string/escape.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/string/name.out_lint (1.3), "Exp", lines: +1 -0 regress/roff/string/zerolength.in (1.2), "Exp", lines: +1 -1 regress/roff/string/zerolength.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/tr/args.out_lint (1.3), "Exp", lines: +1 -0 regress/tbl/data/block_unclosed.out_lint (1.3), "Exp", lines: +1 -0 regress/tbl/data/empty.out_lint (1.3), "Exp", lines: +1 -0 regress/tbl/layout/center.in (1.3), "Exp", lines: +1 -1 regress/tbl/layout/center.out_ascii (1.3), "Exp", lines: +1 -1 regress/tbl/layout/complex.out_lint (1.2), "Exp", lines: +1 -0 regress/tbl/layout/empty.out_lint (1.2), "Exp", lines: +1 -0 regress/tbl/layout/numbers.in (1.2), "Exp", lines: +1 -1 regress/tbl/layout/numbers.out_ascii (1.2), "Exp", lines: +1 -1 regress/tbl/layout/span.in (1.4), "Exp", lines: +1 -1 regress/tbl/layout/span.out_ascii (1.4), "Exp", lines: +1 -1 regress/tbl/macro/man.in (1.2), "Exp", lines: +1 -1 regress/tbl/macro/man.out_ascii (1.2), "Exp", lines: +1 -1 regress/tbl/macro/man.out_lint (1.2), "Exp", lines: +1 -0 regress/tbl/macro/nested.in (1.2), "Exp", lines: +1 -1 regress/tbl/macro/nested.out_ascii (1.2), "Exp", lines: +1 -1 regress/tbl/macro/nested.out_lint (1.2), "Exp", lines: +1 -0 regress/tbl/mod/badfont.out_lint (1.2), "Exp", lines: +1 -0 regress/tbl/mod/font.out_lint (1.3), "Exp", lines: +1 -0 regress/tbl/opt/box.in (1.3), "Exp", lines: +2 -2 regress/tbl/opt/box.out_ascii (1.3), "Exp", lines: +3 -3 regress/tbl/opt/invalid.out_lint (1.2), "Exp", lines: +1 -0 style message about missing RCS ids; inspired by mdoclint 2017-06-17 16:47 schwarze Added: regress/man/TP/indent.in (1.1) regress/man/TP/indent.out_ascii (1.1) Changed: man_macro.c (1.122), "Exp", lines: +2 -2 man_validate.c (1.129), "Exp", lines: +19 -2 regress/man/TP/Makefile (1.3), "Exp", lines: +1 -1 if .in is used inside the .TP head, it's always relative 2017-06-17 14:55 schwarze Changed: tbl_term.c (1.54), "Exp", lines: +12 -1 term.h (1.129), "Exp", lines: +2 -1 term_tab.c (1.4), "Exp", lines: +15 -0 regress/tbl/data/block_width.in (1.2), "Exp", lines: +4 -0 regress/tbl/data/block_width.out_ascii (1.2), "Exp", lines: +3 -0 regress/tbl/layout/center.in (1.2), "Exp", lines: +4 -0 regress/tbl/layout/center.out_ascii (1.2), "Exp", lines: +3 -0 regress/tbl/layout/span.in (1.3), "Exp", lines: +4 -0 regress/tbl/layout/span.out_ascii (1.3), "Exp", lines: +3 -0 regress/tbl/mod/expand.in (1.2), "Exp", lines: +6 -0 regress/tbl/mod/expand.out_ascii (1.2), "Exp", lines: +3 -0 regress/tbl/mod/font.in (1.2), "Exp", lines: +4 -0 regress/tbl/mod/font.out_ascii (1.2), "Exp", lines: +3 -0 regress/tbl/mod/font.out_lint (1.2), "Exp", lines: +4 -0 tables leak tab settings to subsequent text 2017-06-17 13:06 schwarze Changed: man.c (1.175), "Exp", lines: +27 -8 man_term.c (1.207), "Exp", lines: +5 -2 mdoc.c (1.267), "Exp", lines: +23 -7 regress/roff/esc/c.in (1.2), "Exp", lines: +9 -0 regress/roff/esc/c.out_ascii (1.3), "Exp", lines: +4 -0 regress/roff/esc/c_man.in (1.2), "Exp", lines: +9 -0 regress/roff/esc/c_man.out_ascii (1.2), "Exp", lines: +3 -0 correct handling of blank lines after \c 2017-06-17 01:27 schwarze Changed: man_term.c (1.206), "Exp", lines: +5 -5 properly set the default indentation such that even pages without any .SH macros get it 2017-06-16 20:01 schwarze Added: regress/tbl/layout/lines-nogroff.in (1.1) regress/tbl/layout/lines-nogroff.out_ascii (1.1) regress/tbl/layout/lines.in (1.1) regress/tbl/layout/lines.out_ascii (1.1) Changed: tbl_data.c (1.43), "Exp", lines: +80 -51 tbl_term.c (1.53), "Exp", lines: +176 -63 regress/tbl/layout/Makefile (1.2), "Exp", lines: +6 -3 Multiple tbl(7) improvements: * Do not discard data that lacks a matching layout cell but remains within the number of columns of the table as a whole. * Do not insert dummy data rows for any layout row starting with a horizontal line, but only for layout rows that would discard all the data on a matching non-empty data row. * Print horizontal lines specified in the layout even if there is no matching data cell. * Improve the logic for extending vertical lines to adjacent rows, for choosing cross marks versus line segments, and some related details. 2017-06-15 00:27 schwarze Added: regress/tbl/data/block_width.in (1.1) regress/tbl/data/block_width.out_ascii (1.1) Changed: out.c (1.69), "Exp", lines: +3 -2 regress/tbl/data/Makefile (1.3), "Exp", lines: +1 -1 round default width of tbl(7) text blocks in the same way as groff 2017-06-14 23:24 schwarze Changed: roff.7 (1.93), "Exp", lines: +6 -3 term.c (1.273), "Exp", lines: +7 -2 regress/roff/esc/h.in (1.4), "Exp", lines: +2 -0 regress/roff/esc/h.out_ascii (1.3), "Exp", lines: +1 -0 regress/roff/esc/h.out_lint (1.4), "Exp", lines: +1 -1 implement so-called absolute horizontal motion: \h'|...', used for example by zoem(1) 2017-06-14 22:51 schwarze Added: regress/roff/po/Makefile (1.1) regress/roff/po/basic-mdoc.in (1.1) regress/roff/po/basic-mdoc.out_ascii (1.1) Changed: mdoc_man.c (1.122), "Exp", lines: +2 -1 roff.7 (1.92), "Exp", lines: +10 -3 roff.c (1.312), "Exp", lines: +5 -5 roff.h (1.54), "Exp", lines: +2 -2 roff_html.c (1.10), "Exp", lines: +2 -1 roff_term.c (1.13), "Exp", lines: +25 -1 roff_validate.c (1.9), "Exp", lines: +2 -1 regress/roff/Makefile (1.4), "Exp", lines: +1 -1 Naive implementation of the roff(7) .po (page offset) request. This clearly works when .po is called on the top level, but might not be sophisticated enough if people call .po inside indentation-changing contexts, but i haven't seen that in manual pages (yet :). 2017-06-14 20:57 schwarze Changed: chars.c (1.71), "Exp", lines: +2 -1 mandoc_char.7 (1.67), "Exp", lines: +3 -2 regress/char/unicode/ascii.in (1.2), "Exp", lines: +1 -1 regress/char/unicode/ascii.out_ascii (1.2), "Exp", lines: +1 -1 regress/char/unicode/ascii.out_html (1.2), "Exp", lines: +1 -1 regress/char/unicode/ascii.out_utf8 (1.2), "Exp", lines: +1 -1 add the \(ru (0.5m baseline ruler) character escape sequence, abused by mail/nmh; groff_char(7) confirms that this really exists 2017-06-14 19:39 schwarze Changed: roff.7 (1.91), "Exp", lines: +1 -2 roff.c (1.311), "Exp", lines: +36 -5 simple implementation of the roff(7) .als (macro alias) request, sufficient for pages using po4a(1) 2017-06-14 18:23 schwarze Added: regress/roff/esc/l.in (1.1) regress/roff/esc/l.out_ascii (1.1) regress/roff/esc/l.out_lint (1.1) Changed: out.c (1.68), "Exp", lines: +2 -4 term.c (1.272), "Exp", lines: +6 -6 regress/roff/esc/Makefile (1.3), "Exp", lines: +2 -2 let \l use the right fill character 2017-06-14 17:51 schwarze Changed: man_term.c (1.205), "Exp", lines: +6 -6 mdoc_term.c (1.364), "Exp", lines: +4 -4 roff_term.c (1.12), "Exp", lines: +2 -2 tbl_term.c (1.52), "Exp", lines: +2 -2 term.c (1.271), "Exp", lines: +18 -4 term.h (1.128), "Exp", lines: +2 -1 term_tab.c (1.3), "Exp", lines: +4 -8 regress/man/HP/spacing.in (1.2), "Exp", lines: +2 -2 regress/man/IP/width.in (1.2), "Exp", lines: +2 -2 regress/man/RS/width.in (1.2), "Exp", lines: +2 -2 regress/man/TP/width.in (1.2), "Exp", lines: +4 -4 regress/mdoc/Bd/offset-neg.in (1.2), "Exp", lines: +2 -2 regress/mdoc/Bl/offset.in (1.2), "Exp", lines: +4 -4 regress/mdoc/Bl/offset.out_ascii (1.2), "Exp", lines: +2 -2 regress/mdoc/Bl/offset.out_markdown (1.2), "Exp", lines: +2 -2 regress/mdoc/Bl/tag.in (1.2), "Exp", lines: +2 -2 regress/roff/esc/h.in (1.3), "Exp", lines: +2 -0 regress/roff/esc/h.out_ascii (1.2), "Exp", lines: +1 -0 regress/roff/esc/h.out_lint (1.3), "Exp", lines: +1 -1 regress/roff/ta/basic-man.in (1.2), "Exp", lines: +3 -0 regress/roff/ta/basic-man.out_ascii (1.2), "Exp", lines: +2 -0 regress/roff/ti/basic-man.in (1.2), "Exp", lines: +2 -2 regress/tbl/mod/width.in (1.2), "Exp", lines: +1 -1 improve rounding rules for scaling units in horizontal orientation in the terminal formatter 2017-06-14 14:24 schwarze Changed: term_ascii.c (1.58), "Exp", lines: +2 -2 harmless, but weird typo; found with afterstep_faq(1) 2017-06-14 14:02 schwarze Added: regress/roff/cond/string.in (1.1) regress/roff/cond/string.out_ascii (1.1) Changed: roff.7 (1.90), "Exp", lines: +10 -3 roff.c (1.310), "Exp", lines: +12 -6 regress/roff/cond/Makefile (1.2), "Exp", lines: +1 -1 implement the roff(7) d (macro or string defined) conditional 2017-06-14 13:00 schwarze Changed: mdoc_man.c (1.121), "Exp", lines: +10 -9 roff.7 (1.89), "Exp", lines: +5 -3 roff.c (1.309), "Exp", lines: +9 -9 roff.h (1.53), "Exp", lines: +2 -2 roff_html.c (1.9), "Exp", lines: +2 -1 roff_term.c (1.11), "Exp", lines: +17 -15 roff_validate.c (1.8), "Exp", lines: +2 -1 implement roff(7) .rj (right justify) request 2017-06-14 01:31 schwarze Added: regress/roff/esc/p.in (1.1) regress/roff/esc/p.out_ascii (1.1) Changed: html.c (1.214), "Exp", lines: +27 -8 mandoc.c (1.102), "Exp", lines: +3 -1 mandoc.h (1.230), "Exp", lines: +2 -1 mdoc_markdown.c (1.23), "Exp", lines: +13 -2 roff.7 (1.88), "Exp", lines: +4 -2 term.c (1.270), "Exp", lines: +33 -1 regress/roff/esc/Makefile (1.2), "Exp", lines: +1 -1 implement the roff(7) \p (break output line) escape sequence 2017-06-13 19:34 schwarze Added: regress/man/RS/an-margin.in (1.1) regress/man/RS/an-margin.out_ascii (1.1) Changed: man_macro.c (1.121), "Exp", lines: +15 -2 regress/man/RS/Makefile (1.2), "Exp", lines: +1 -1 Partial support for the \n[an-margin] number register. Manuals autogenerated from reStructuredText are reckless enough to peek at this non-portable, implementation-dependent, highly groff-specific internal register - for no good reason, because the man(7) language natively provides in a much simpler way what they are trying to emulate here with much fragility. A full implementation would be very hard because it would require access to output-device-specific formatting data at the roff(7) preprocessor stage, which mandoc doesn't support at all. So hardcode a few magic numbers as reStructuredText expects them for terminal output. For other output modes (like HTML), code using this register is utterly broken anyway. 2017-06-13 16:12 schwarze Changed: tbl_layout.c (1.43), "Exp", lines: +3 -1 If the layout is empty except for requesting a left vertical frame, record that detail in struct tbl_opts, such that term_tbl() can do correct column calculations and doesn't prematurely break lines. Fixes the tbl/layout/empty regression test that got broken when line breaking in text block cells was implemented. 2017-06-13 15:06 schwarze Changed: mandoc.1 (1.199), "Exp", lines: +3 -4 manpath.c (1.34), "Exp", lines: +2 -2 Delete the arbitrary range restriction for -Owidth. We provide users with tools. We don't attempt to prevent them from using them in stupid ways: depending on the context, not every stupid-looking use is necessarily actually stupid, and not every stupidity can be automatically detected anyway, so don't even try. 2017-06-13 14:39 schwarze Changed: tbl_term.c (1.51), "Exp", lines: +32 -17 regress/tbl/layout/span.in (1.2), "Exp", lines: +10 -0 regress/tbl/layout/span.out_ascii (1.2), "Exp", lines: +8 -0 fix the interaction of the allbox option with spanned cells in the layout 2017-06-13 13:51 schwarze Changed: roff.c (1.308), "Exp", lines: +4 -3 Explicitly ignore .br, .ce, and .sp inside tbl(7) text blocks. With the current code structure, they would appear at the wrong place in the syntax tree, so it is better to not insert them into the tree at all and issue an UNSUPP message instead. 2017-06-12 22:50 schwarze Added: regress/tbl/data/block_wrap.in (1.1) regress/tbl/data/block_wrap.out_ascii (1.1) Changed: regress/tbl/data/Makefile (1.2), "Exp", lines: +1 -1 regress/tbl/opt/box.in (1.2), "Exp", lines: +19 -0 regress/tbl/opt/box.out_ascii (1.2), "Exp", lines: +17 -0 test the new allbox and wrapping features 2017-06-12 22:49 schwarze Changed: tbl_term.c (1.50), "Exp", lines: +6 -3 Two minor fixes for the "allbox" modifier: 1. It does not reduce explicit "||" in the layout to "|". 2. It does not cause three horizontal lines at the end of a table, even if the table ends with an explicit "_" data line. 2017-06-12 22:05 schwarze Changed: out.c (1.67), "Exp", lines: +4 -3 If a tbl(7) layout contains a 'w' (minimum width) modifier for a given column, that column contains no literal or numeric cell of larger width, and all text block cells in that column can be line wrapped to fit into that minimum width, groff does not increase that column width beyond the specified minimum: so do the same. 2017-06-12 20:45 schwarze Changed: tbl_term.c (1.49), "Exp", lines: +8 -2 implement the tbl(7) "allbox" option; used for example by curs_getch(3) and GLwDrawingArea(3) 2017-06-12 20:14 schwarze Changed: out.c (1.66), "Exp", lines: +19 -12 out.h (1.30), "Exp", lines: +2 -2 tbl_html.c (1.22), "Exp", lines: +2 -2 tbl_term.c (1.48), "Exp", lines: +2 -2 fix column width calculation for text block cells 2017-06-12 19:05 schwarze Added: compat_recallocarray.c (1.1) test-recallocarray.c (1.1) Changed: LICENSE (1.16), "Exp", lines: +2 -2 Makefile (1.513), "Exp", lines: +4 -1 configure (1.63), "Exp", lines: +9 -2 configure.local.example (1.31), "Exp", lines: +2 -1 mandoc_aux.c (1.10), "Exp", lines: +11 -4 mandoc_aux.h (1.7), "Exp", lines: +3 -2 tbl_term.c (1.47), "Exp", lines: +163 -63 term.c (1.269), "Exp", lines: +40 -25 term.h (1.127), "Exp", lines: +4 -2 regress/char/unicode/input.out_ascii (1.2), "Exp", lines: +1 -1 Implement automatic line breaking inside individual table cells that contain text blocks. This cures overlong lines in various Xenocara manuals. 2017-06-11 20:03 schwarze Changed: mdoc_validate.c (1.338), "Exp", lines: +2 -2 ooops, fix a glitch in the previous commit... 2017-06-11 19:45 schwarze Changed: regress/mdoc/Oo/punct.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Op/break.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Op/broken.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Op/punct.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Pa/punct.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Pf/spacing.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Pp/arg.out_lint (1.4), "Exp", lines: +1 -0 regress/mdoc/Qq/empty.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Rs/allch.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Rs/args.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Rs/empty.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Rv/noname.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Rv/nostd.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Sh/badNAME.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Sh/before.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Sh/empty.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Sh/emptyNAME.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Sh/first.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Sh/nohead.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Sh/order.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Sh/orderNAME.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Sh/parbefore.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Sh/parborder.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Sh/punctNAME.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Sh/subbefore.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Sm/badarg.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Sm/twoarg.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Sq/empty.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/St/badargs.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/St/call.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Sx/noarg.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Sy/noarg.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Sy/punct.out_lint (1.4), "Exp", lines: +1 -0 regress/mdoc/Tn/noarg.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Ud/arg.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Ux/punct.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Va/noarg.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Vt/noarg.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Xr/args.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/blank/comment.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/blank/line.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/blank/list.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/break/brokenbreaker.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/break/notopen.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/break/tail.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/break/twice.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/break/two.out_lint (1.2), "Exp", lines: +1 -0 regress/roff/args/mdoc.out_lint (1.2), "Exp", lines: +1 -0 regress/roff/de/escname.out_lint (1.3), "Exp", lines: +1 -0 regress/roff/de/indir.out_lint (1.3), "Exp", lines: +1 -0 regress/roff/de/infinite.out_lint (1.3), "Exp", lines: +1 -0 regress/roff/esc/B.out_lint (1.2), "Exp", lines: +1 -0 regress/roff/esc/h.out_lint (1.2), "Exp", lines: +1 -0 regress/roff/esc/ignore.out_lint (1.2), "Exp", lines: +1 -0 regress/roff/esc/w.out_lint (1.2), "Exp", lines: +1 -0 regress/roff/ft/badargs-mdoc.out_lint (1.2), "Exp", lines: +1 -0 regress/roff/ig/basic.out_lint (1.3), "Exp", lines: +1 -0 regress/roff/it/badarg.out_lint (1.3), "Exp", lines: +1 -0 regress/roff/string/name.out_lint (1.2), "Exp", lines: +1 -0 Style message about legacy man(7) date format in mdoc(7) documents and operating system dependent messages about missing or unexpected Mdocdate; inspired by mdoclint(1). 2017-06-11 19:37 schwarze Changed: libmandoc.h (1.68), "Exp", lines: +2 -2 man_validate.c (1.128), "Exp", lines: +2 -3 mandoc.c (1.101), "Exp", lines: +11 -7 mandoc.h (1.229), "Exp", lines: +4 -1 mdoc_validate.c (1.337), "Exp", lines: +28 -6 read.c (1.176), "Exp", lines: +4 -1 regress/char/space/esct-mdoc.out_lint (1.2), "Exp", lines: +1 -0 regress/char/space/tab.out_lint (1.2), "Exp", lines: +1 -0 regress/char/space/trailing-mdoc.out_lint (1.2), "Exp", lines: +1 -0 regress/char/unicode/invalid.out_lint (1.2), "Exp", lines: +1 -0 regress/eqn/define/infinite.out_lint (1.3), "Exp", lines: +1 -0 regress/eqn/define/invalid.out_lint (1.3), "Exp", lines: +1 -0 regress/eqn/over/noarg.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Ad/noarg.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/An/break.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Aq/empty.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Ar/punct.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/At/invalid.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Bd/badargs.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Bd/beforeNAME.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Bd/blank.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Bd/break.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Bd/broken.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Bd/nested.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Bd/unclosed.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Bf/badargs.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Bf/break.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Bf/broken.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Bf/multiargs.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Bk/badarg.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Bk/broken.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Bl/badargs.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Bl/bareIt.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Bl/bareTa.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Bl/break.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Bl/breakingIt.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Bl/broken.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Bl/column.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Bl/empty.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Bl/emptyhead.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Bl/emptyitem.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Bl/emptytag.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Bl/noIt.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Bl/notype.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Bl/tag.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Brq/empty.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Bx/args.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Cd/noarg.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Cm/noarg.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/D1/spacing.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Db/args.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Dd/badarg.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Dd/dupe.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Dd/long.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Dd/manarg.out_lint (1.2), "Exp", lines: +2 -0 regress/mdoc/Dd/order.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Dl/spacing.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Dq/empty.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Dt/badsec.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Dt/case.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Dt/dupe.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Dt/fourargs.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Dt/late.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Dt/missing.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Dt/noarg.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Dt/nobody.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Dt/nosec.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Dt/order.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Dv/noarg.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Em/noarg.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Em/punct.out_lint (1.4), "Exp", lines: +1 -0 regress/mdoc/Eo/break.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Eo/obsolete.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Eo/unclosed.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Er/noarg.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Ev/noarg.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Ex/noname.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Ex/nostd.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Fd/empty.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Fl/punct.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Fo/noarg.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Fo/nohead.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Fo/obsolete.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Fo/punct.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Fo/warn.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Ic/noarg.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/In/noarg.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Lb/badargs.out_lint (1.5), "Exp", lines: +1 -0 regress/mdoc/Li/punct.out_lint (1.4), "Exp", lines: +1 -0 regress/mdoc/Lk/noarg.out_lint (1.4), "Exp", lines: +1 -0 regress/mdoc/Ms/noarg.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Mt/simple.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Nd/broken.out_lint (1.4), "Exp", lines: +1 -0 regress/mdoc/Nd/noarg.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Nm/badNAME.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Nm/badNAMEuse.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Nm/break.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Nm/broken.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Nm/punct.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/No/punct.out_lint (1.5), "Exp", lines: +1 -0 regress/mdoc/Ns/position.out_lint (1.2), "Exp", lines: +1 -0 Style message about legacy man(7) date format in mdoc(7) documents and operating system dependent messages about missing or unexpected Mdocdate; inspired by mdoclint(1). 2017-06-11 17:16 schwarze Changed: mandoc.1 (1.198), "Exp", lines: +11 -2 mandoc.h (1.228), "Exp", lines: +2 -1 mdoc_validate.c (1.336), "Exp", lines: +25 -8 read.c (1.175), "Exp", lines: +2 -1 style message about missing .Fn markup; inspired by mdoclint 2017-06-11 14:24 schwarze Changed: mdoc_validate.c (1.335), "Exp", lines: +4 -4 regress/mdoc/No/punct.out_lint (1.4), "Exp", lines: +0 -1 Do not issue the message "no blank before trailing delimiter" for .No. In practice, that message only matters inside .Bf, and even there, it can occasionally be a false positive. In all other cases, it usually is a false positive, so it is better to drop it outright. Suggested by jmc@. 2017-06-11 14:23 schwarze Added: regress/mdoc/Dq/empty.out_lint (1.1) add forgotten file 2017-06-11 14:20 schwarze Changed: regress/mdoc/Lb/badargs.out_lint (1.4), "Exp", lines: +1 -1 fix order of messages 2017-06-10 16:54 schwarze Changed: mdoc_validate.c (1.334), "Exp", lines: +76 -3 Reduce false positives for the "no blank before trailing delimiter" message. This brings us down to one false positive for about every 18 pages. 2017-06-10 16:32 schwarze Changed: mdoc.7 (1.265), "Exp", lines: +2 -2 roff.7 (1.87), "Exp", lines: +3 -3 minor markup simplifications 2017-06-10 01:48 schwarze Added: regress/mdoc/Aq/empty.out_lint (1.1) regress/mdoc/Ar/punct.out_lint (1.1) regress/mdoc/Brq/empty.out_lint (1.1) regress/mdoc/Bx/args.out_lint (1.1) regress/mdoc/Fl/punct.out_lint (1.1) regress/mdoc/Fo/punct.out_lint (1.1) regress/mdoc/Mt/simple.out_lint (1.1) regress/mdoc/Nm/punct.out_lint (1.1) regress/mdoc/Oo/punct.out_lint (1.1) regress/mdoc/Op/punct.out_lint (1.1) regress/mdoc/Pa/punct.out_lint (1.1) regress/mdoc/Qq/empty.out_lint (1.1) regress/mdoc/Sq/empty.out_lint (1.1) regress/mdoc/Ux/punct.in (1.1) regress/mdoc/Ux/punct.out_ascii (1.1) regress/mdoc/Ux/punct.out_lint (1.1) regress/mdoc/Ux/punct.out_markdown (1.1) Changed: mandoc.1 (1.197), "Exp", lines: +7 -2 mandoc.h (1.227), "Exp", lines: +2 -1 mdoc_validate.c (1.333), "Exp", lines: +75 -39 read.c (1.174), "Exp", lines: +2 -1 regress/mdoc/Ad/noarg.in (1.2), "Exp", lines: +2 -2 regress/mdoc/Ad/noarg.out_ascii (1.2), "Exp", lines: +2 -2 regress/mdoc/Ad/noarg.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Ad/noarg.out_markdown (1.2), "Exp", lines: +2 -2 regress/mdoc/An/break.in (1.3), "Exp", lines: +1 -1 regress/mdoc/An/break.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Aq/Makefile (1.5), "Exp", lines: +1 -0 regress/mdoc/Aq/empty.in (1.3), "Exp", lines: +3 -3 regress/mdoc/Aq/empty.out_ascii (1.3), "Exp", lines: +2 -2 regress/mdoc/Aq/empty.out_markdown (1.3), "Exp", lines: +3 -3 regress/mdoc/Aq/empty.out_utf8 (1.3), "Exp", lines: +2 -2 regress/mdoc/Ar/Makefile (1.4), "Exp", lines: +1 -0 regress/mdoc/Ar/punct.in (1.3), "Exp", lines: +4 -1 regress/mdoc/Ar/punct.out_ascii (1.3), "Exp", lines: +3 -1 regress/mdoc/Ar/punct.out_markdown (1.3), "Exp", lines: +4 -1 regress/mdoc/Bl/breakingIt.in (1.2), "Exp", lines: +4 -4 regress/mdoc/Bl/breakingIt.out_ascii (1.2), "Exp", lines: +4 -4 regress/mdoc/Bl/breakingIt.out_markdown (1.2), "Exp", lines: +4 -4 regress/mdoc/Bl/noIt.in (1.2), "Exp", lines: +2 -2 regress/mdoc/Bl/noIt.out_ascii (1.2), "Exp", lines: +2 -2 regress/mdoc/Bl/noIt.out_markdown (1.2), "Exp", lines: +2 -2 regress/mdoc/Brq/Makefile (1.4), "Exp", lines: +1 -0 regress/mdoc/Brq/empty.in (1.3), "Exp", lines: +3 -3 regress/mdoc/Brq/empty.out_ascii (1.3), "Exp", lines: +2 -2 regress/mdoc/Brq/empty.out_markdown (1.3), "Exp", lines: +3 -3 regress/mdoc/Bx/Makefile (1.4), "Exp", lines: +1 -0 regress/mdoc/Bx/args.in (1.3), "Exp", lines: +2 -2 regress/mdoc/Bx/args.out_ascii (1.3), "Exp", lines: +2 -2 regress/mdoc/Bx/args.out_markdown (1.3), "Exp", lines: +2 -2 regress/mdoc/Cm/noarg.in (1.2), "Exp", lines: +2 -2 regress/mdoc/Cm/noarg.out_ascii (1.2), "Exp", lines: +2 -2 regress/mdoc/Cm/noarg.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Cm/noarg.out_markdown (1.2), "Exp", lines: +2 -2 regress/mdoc/Dq/Makefile (1.4), "Exp", lines: +1 -0 regress/mdoc/Dq/empty.in (1.3), "Exp", lines: +3 -3 regress/mdoc/Dq/empty.out_ascii (1.4), "Exp", lines: +2 -2 regress/mdoc/Dq/empty.out_markdown (1.3), "Exp", lines: +3 -3 regress/mdoc/Dv/noarg.in (1.2), "Exp", lines: +2 -2 regress/mdoc/Dv/noarg.out_ascii (1.2), "Exp", lines: +2 -2 regress/mdoc/Dv/noarg.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Dv/noarg.out_markdown (1.2), "Exp", lines: +2 -2 regress/mdoc/Em/punct.in (1.3), "Exp", lines: +4 -1 regress/mdoc/Em/punct.out_ascii (1.3), "Exp", lines: +3 -1 regress/mdoc/Em/punct.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Em/punct.out_markdown (1.3), "Exp", lines: +4 -1 regress/mdoc/Er/noarg.in (1.3), "Exp", lines: +2 -1 regress/mdoc/Er/noarg.out_ascii (1.3), "Exp", lines: +2 -2 regress/mdoc/Er/noarg.out_lint (1.2), "Exp", lines: +2 -1 regress/mdoc/Er/noarg.out_markdown (1.3), "Exp", lines: +2 -1 regress/mdoc/Ev/noarg.in (1.2), "Exp", lines: +2 -2 regress/mdoc/Ev/noarg.out_ascii (1.2), "Exp", lines: +2 -2 regress/mdoc/Ev/noarg.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Ev/noarg.out_markdown (1.2), "Exp", lines: +2 -2 regress/mdoc/Fl/Makefile (1.5), "Exp", lines: +1 -0 regress/mdoc/Fl/punct.in (1.3), "Exp", lines: +4 -1 regress/mdoc/Fl/punct.out_ascii (1.3), "Exp", lines: +3 -1 regress/mdoc/Fl/punct.out_markdown (1.3), "Exp", lines: +4 -1 regress/mdoc/Fo/Makefile (1.4), "Exp", lines: +1 -1 regress/mdoc/Fo/punct.in (1.3), "Exp", lines: +3 -3 regress/mdoc/Fo/punct.out_ascii (1.3), "Exp", lines: +3 -3 regress/mdoc/Fo/punct.out_markdown (1.3), "Exp", lines: +3 -3 regress/mdoc/Ic/noarg.in (1.2), "Exp", lines: +2 -2 regress/mdoc/Ic/noarg.out_ascii (1.2), "Exp", lines: +2 -2 regress/mdoc/Ic/noarg.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Ic/noarg.out_markdown (1.2), "Exp", lines: +2 -2 regress/mdoc/In/noarg.in (1.2), "Exp", lines: +1 -1 regress/mdoc/In/noarg.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/In/noarg.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/In/noarg.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Lb/badargs.in (1.2), "Exp", lines: +3 -3 regress/mdoc/Lb/badargs.out_ascii (1.3), "Exp", lines: +3 -3 regress/mdoc/Lb/badargs.out_lint (1.3), "Exp", lines: +2 -0 regress/mdoc/Lb/badargs.out_markdown (1.2), "Exp", lines: +3 -3 regress/mdoc/Li/punct.in (1.3), "Exp", lines: +4 -1 regress/mdoc/Li/punct.out_ascii (1.3), "Exp", lines: +3 -1 regress/mdoc/Li/punct.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Li/punct.out_markdown (1.3), "Exp", lines: +4 -1 regress/mdoc/Lk/noarg.in (1.4), "Exp", lines: +3 -3 regress/mdoc/Lk/noarg.out_ascii (1.3), "Exp", lines: +3 -3 regress/mdoc/Lk/noarg.out_lint (1.3), "Exp", lines: +2 -0 regress/mdoc/Lk/noarg.out_markdown (1.4), "Exp", lines: +3 -3 regress/mdoc/Ms/noarg.in (1.2), "Exp", lines: +4 -4 regress/mdoc/Ms/noarg.out_ascii (1.2), "Exp", lines: +2 -2 regress/mdoc/Ms/noarg.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Ms/noarg.out_markdown (1.2), "Exp", lines: +4 -4 regress/mdoc/Mt/Makefile (1.4), "Exp", lines: +1 -0 regress/mdoc/Mt/simple.in (1.3), "Exp", lines: +4 -1 regress/mdoc/Mt/simple.out_ascii (1.3), "Exp", lines: +3 -1 regress/mdoc/Mt/simple.out_markdown (1.4), "Exp", lines: +4 -1 regress/mdoc/Nm/Makefile (1.5), "Exp", lines: +1 -1 regress/mdoc/Nm/punct.in (1.2), "Exp", lines: +4 -1 regress/mdoc/Nm/punct.out_ascii (1.2), "Exp", lines: +3 -1 regress/mdoc/Nm/punct.out_markdown (1.2), "Exp", lines: +4 -1 regress/mdoc/No/punct.in (1.3), "Exp", lines: +4 -1 regress/mdoc/No/punct.out_ascii (1.3), "Exp", lines: +3 -1 regress/mdoc/No/punct.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/No/punct.out_markdown (1.3), "Exp", lines: +4 -1 regress/mdoc/Oo/Makefile (1.4), "Exp", lines: +1 -0 regress/mdoc/Oo/punct.in (1.3), "Exp", lines: +5 -1 regress/mdoc/Oo/punct.out_ascii (1.3), "Exp", lines: +3 -1 regress/mdoc/Oo/punct.out_markdown (1.3), "Exp", lines: +4 -1 regress/mdoc/Op/Makefile (1.4), "Exp", lines: +1 -1 regress/mdoc/Op/punct.in (1.3), "Exp", lines: +4 -1 regress/mdoc/Op/punct.out_ascii (1.2), "Exp", lines: +3 -1 regress/mdoc/Op/punct.out_markdown (1.2), "Exp", lines: +4 -1 regress/mdoc/Pa/Makefile (1.4), "Exp", lines: +1 -0 regress/mdoc/Pa/punct.in (1.3), "Exp", lines: +4 -1 regress/mdoc/Pa/punct.out_ascii (1.3), "Exp", lines: +3 -1 regress/mdoc/Pa/punct.out_markdown (1.3), "Exp", lines: +4 -1 regress/mdoc/Qq/Makefile (1.4), "Exp", lines: +1 -0 regress/mdoc/Qq/empty.in (1.3), "Exp", lines: +3 -3 regress/mdoc/Qq/empty.out_ascii (1.3), "Exp", lines: +2 -2 regress/mdoc/Qq/empty.out_markdown (1.3), "Exp", lines: +3 -3 regress/mdoc/Sq/Makefile (1.4), "Exp", lines: +1 -0 regress/mdoc/Sq/empty.in (1.3), "Exp", lines: +3 -3 regress/mdoc/Sq/empty.out_ascii (1.3), "Exp", lines: +2 -2 regress/mdoc/Sq/empty.out_markdown (1.3), "Exp", lines: +3 -3 regress/mdoc/Sy/punct.in (1.3), "Exp", lines: +4 -1 regress/mdoc/Sy/punct.out_ascii (1.3), "Exp", lines: +3 -1 regress/mdoc/Sy/punct.out_lint (1.3), "Exp", lines: +1 -0 regress/mdoc/Sy/punct.out_markdown (1.3), "Exp", lines: +4 -1 regress/mdoc/Ux/Makefile (1.4), "Exp", lines: +2 -1 regress/mdoc/Va/noarg.in (1.2), "Exp", lines: +2 -2 regress/mdoc/Va/noarg.out_ascii (1.2), "Exp", lines: +2 -2 regress/mdoc/Va/noarg.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Va/noarg.out_markdown (1.2), "Exp", lines: +2 -2 regress/mdoc/Vt/noarg.in (1.2), "Exp", lines: +2 -2 regress/mdoc/Vt/noarg.out_ascii (1.2), "Exp", lines: +2 -2 regress/mdoc/Vt/noarg.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Vt/noarg.out_markdown (1.2), "Exp", lines: +2 -2 regress/mdoc/Xr/args.in (1.3), "Exp", lines: +6 -2 regress/mdoc/Xr/args.out_ascii (1.3), "Exp", lines: +3 -2 regress/mdoc/Xr/args.out_lint (1.2), "Exp", lines: +6 -3 regress/mdoc/Xr/args.out_markdown (1.3), "Exp", lines: +6 -2 style message about missing blank before trailing delimiter; inspired by mdoclint(1), and jmc@ considers it useful 2017-06-10 01:28 schwarze Changed: mdoc_man.c (1.120), "Exp", lines: +19 -10 do not break the line between Bsx/Bx/Fx/Nx/Ox/Dx and its arguments 2017-06-08 19:35 schwarze Changed: roff.c (1.307), "Exp", lines: +5 -1 Properly reinitialize roffce_node between parses, or this may crash with use-after-free in makewhatis(8); reported by jmc@, thanks! 2017-06-08 18:11 schwarze Added: regress/tbl/mod/width.in (1.1) regress/tbl/mod/width.out_ascii (1.1) Changed: mandoc.h (1.226), "Exp", lines: +7 -4 out.c (1.65), "Exp", lines: +39 -15 out.h (1.29), "Exp", lines: +4 -2 tbl.7 (1.27), "Exp", lines: +6 -7 tbl.c (1.41), "Exp", lines: +2 -1 tbl_data.c (1.42), "Exp", lines: +3 -2 tbl_html.c (1.21), "Exp", lines: +30 -3 tbl_layout.c (1.42), "Exp", lines: +19 -3 tbl_term.c (1.46), "Exp", lines: +9 -3 regress/tbl/mod/Makefile (1.3), "Exp", lines: +1 -1 Implement w layout specifier (minimum column width). Improve width calculation of text blocks. Reduces the groff/mandoc diff in Base+Xenocara by about 800 lines. 2017-06-08 12:54 schwarze Changed: html.c (1.213), "Exp", lines: +5 -2 man_html.c (1.143), "Exp", lines: +2 -6 man_term.c (1.204), "Exp", lines: +7 -7 mdoc_man.c (1.119), "Exp", lines: +15 -9 mdoc_term.c (1.363), "Exp", lines: +4 -2 out.c (1.64), "Exp", lines: +7 -8 out.h (1.28), "Exp", lines: +3 -2 roff_html.c (1.8), "Exp", lines: +2 -2 roff_term.c (1.10), "Exp", lines: +3 -3 term.c (1.268), "Exp", lines: +5 -14 term_tab.c (1.2), "Exp", lines: +1 -1 make the internal a2roffsu() interface more powerful by returning a pointer to the end of the parsed data, making it easier to parse subsequent bytes 2017-06-08 00:23 schwarze Changed: mandoc.1 (1.196), "Exp", lines: +8 -2 mandoc.h (1.225), "Exp", lines: +2 -1 mdoc_validate.c (1.332), "Exp", lines: +4 -1 read.c (1.173), "Exp", lines: +2 -1 regress/mdoc/Lb/badargs.out_lint (1.2), "Exp", lines: +2 -0 warning about unknown .Lb arguments; inspired by mdoclint(1) 2017-06-07 23:29 schwarze Changed: mandoc.1 (1.195), "Exp", lines: +32 -2 mandoc.h (1.224), "Exp", lines: +3 -1 mdoc_validate.c (1.331), "Exp", lines: +37 -3 read.c (1.172), "Exp", lines: +3 -1 roff.h (1.52), "Exp", lines: +8 -1 style checks related to .Er; inspired by mdoclint(1) 2017-06-07 20:58 schwarze Changed: mdoc.c (1.266), "Exp", lines: +13 -7 Also catch "new sentence, new line" if there are three blanks between the sentences. Thomas Klausner says he has seen some of these, and i don't see any false positives. 2017-06-07 20:30 schwarze Changed: mdoc.c (1.265), "Exp", lines: +2 -2 Make "new sentence, new line" detection stricter: Also catch cases where the new sentence starts with a one-letter word and the input line is broken right after that word. Suggested by Thomas Klausner <wiz @ NetBSD>. It's merely a three-bit diff, changing one byte from 0x34 to 0x33, so what can possibly go wrong... 2017-06-07 20:01 schwarze Changed: term.c (1.267), "Exp", lines: +40 -25 term.h (1.126), "Exp", lines: +4 -2 Prepare the terminal driver for filling multiple columns in parallel, second step: make the per-column byte pointer persistent across term_flushln() calls, such that a subsequent call can continue at the point where the previous call left. If more than one column is in use, return from term_flushln() when the column is full, rather than breaking the output line. No functional change, because nothing sets up multiple columns yet. 2017-06-07 17:38 schwarze Changed: man_term.c (1.203), "Exp", lines: +61 -59 mdoc_term.c (1.362), "Exp", lines: +76 -74 roff_term.c (1.9), "Exp", lines: +15 -15 tbl_term.c (1.45), "Exp", lines: +7 -7 term.c (1.266), "Exp", lines: +70 -68 term.h (1.125), "Exp", lines: +15 -9 term_ascii.c (1.57), "Exp", lines: +10 -8 term_ps.c (1.85), "Exp", lines: +8 -5 Prepare the terminal driver for filling multiple columns in parallel, first step: split column data out of the terminal state struct into a new column state struct and use an array of such column state structs. No functional change. 2017-06-07 02:14 schwarze Changed: term.c (1.265), "Exp", lines: +28 -15 term.h (1.124), "Exp", lines: +3 -2 The \h escape sequence provides another method for moving backwards, and after that, previously written output gets overwritten, but overwriting with blanks does *not* erase previously written content. Yes, manual pages exist that are crazy enough to rely on that... 2017-06-07 00:50 schwarze Changed: roff.7 (1.86), "Exp", lines: +13 -4 roff.c (1.306), "Exp", lines: +98 -6 roff.h (1.51), "Exp", lines: +2 -1 Implement the roff(7) .rn (rename macro or string) request. Renaming a user-defined macro is very simple: just copy the definition to the new name and delete the old name. Renaming high-level macros is a bit tricky: use a dedicated key-value-table, with non-standard names as keys and standard names as values. When a macro is found that is not user-defined, look it up in the "renamed" table and translate it back to the standard name before passing it on to the high-level parsers. 2017-06-06 15:03 schwarze Changed: roff.7 (1.85), "Exp", lines: +5 -2 document the new .ce implementation 2017-06-06 15:01 schwarze Changed: mandoc.1 (1.194), "Exp", lines: +7 -2 mandoc.h (1.223), "Exp", lines: +2 -1 mdoc_man.c (1.118), "Exp", lines: +5 -1 read.c (1.171), "Exp", lines: +2 -1 roff.c (1.305), "Exp", lines: +61 -10 roff.h (1.50), "Exp", lines: +2 -2 roff_html.c (1.7), "Exp", lines: +21 -2 roff_term.c (1.8), "Exp", lines: +40 -1 roff_validate.c (1.7), "Exp", lines: +2 -1 Minimal implementation of the roff(7) .ce request (center a number of input lines without filling). Contrary to groff, high-level macros abort .ce mode for now. 2017-06-04 22:44 schwarze Changed: man_term.c (1.202), "Exp", lines: +7 -12 mdoc_man.c (1.117), "Exp", lines: +2 -1 mdoc_term.c (1.361), "Exp", lines: +9 -23 roff.7 (1.84), "Exp", lines: +5 -3 roff.c (1.304), "Exp", lines: +5 -5 roff.h (1.49), "Exp", lines: +2 -2 roff_html.c (1.6), "Exp", lines: +2 -1 roff_term.c (1.7), "Exp", lines: +19 -2 roff_validate.c (1.6), "Exp", lines: +2 -1 tbl_term.c (1.44), "Exp", lines: +9 -18 term.c (1.264), "Exp", lines: +61 -40 term.h (1.123), "Exp", lines: +6 -3 Implement the roff(7) .mc (right margin character) request. The Tcl/Tk manual pages use this extensively. Delete the TERM_MAXMARGIN hack, it breaks .mc inside .nf; instead, implement a proper TERMP_BRNEVER flag. 2017-06-04 18:50 schwarze Changed: man_term.c (1.201), "Exp", lines: +1 -2 mdoc_term.c (1.360), "Exp", lines: +12 -41 term.c (1.263), "Exp", lines: +25 -62 term.h (1.122), "Exp", lines: +4 -4 Make term_flushln() simpler and more robust: Eliminate the "overstep" state variable. The information is already contained in "viscol". Minus 60 lines of code, no functional change intended. 2017-06-04 00:13 schwarze Changed: read.c (1.170), "Exp", lines: +4 -70 roff.7 (1.83), "Exp", lines: +7 -5 roff.c (1.303), "Exp", lines: +100 -14 Pure preprocessor implementation of the roff(7) .ec and .eo requests (escape character control), touching nothing after the preprocessing stage and keeping even the state variable local to the preprocessor. Since the escape character is also used for line continuation, this requires pulling the implementation of line continuation from the input reader to the preprocessor, which also considerably shortens the code required for that. When the escape character is changed, simply let the preprocessor replace bare by escaped backslashes and instances of the non-standard escape character with bare backslashes - that's all we need. Oh, and if anybody dares to use these requests in OpenBSD manuals, sending a medium-sized pack of axe-murderers after them might be a worthwhile part of the punishment, but probably insuffient on its own. 2017-06-03 15:55 schwarze Added: regress/man/B/blank.in (1.1) regress/man/B/blank.out_ascii (1.1) regress/man/B/blank.out_lint (1.1) Changed: man.c (1.174), "Exp", lines: +7 -6 mandoc.h (1.222), "Exp", lines: +2 -1 read.c (1.169), "Exp", lines: +2 -1 regress/man/B/Makefile (1.2), "Exp", lines: +6 -2 regress/man/SH/Makefile (1.2), "Exp", lines: +1 -0 regress/man/SH/noarg.in (1.2), "Exp", lines: +4 -0 regress/man/SH/noarg.out_ascii (1.2), "Exp", lines: +3 -0 regress/man/SH/noarg.out_lint (1.2), "Exp", lines: +1 -0 regress/man/SS/Makefile (1.2), "Exp", lines: +1 -0 regress/man/SS/noarg.in (1.2), "Exp", lines: +4 -0 regress/man/SS/noarg.out_ascii (1.2), "Exp", lines: +3 -0 regress/man/SS/noarg.out_lint (1.2), "Exp", lines: +1 -0 regress/man/TP/Makefile (1.2), "Exp", lines: +1 -0 regress/man/TP/broken.in (1.2), "Exp", lines: +4 -0 regress/man/TP/broken.out_ascii (1.2), "Exp", lines: +2 -0 regress/man/TP/broken.out_lint (1.2), "Exp", lines: +1 -0 ignore blank lines in man(7) next line scope; strange groff edge case behaviour found in multimedia/mjpegtools 2017-06-03 12:17 schwarze Changed: main.c (1.292), "Exp", lines: +2 -2 mandoc.1 (1.193), "Exp", lines: +4 -4 enable -Wstyle by default in -Tlint; OK jmc@ 2017-06-02 19:21 schwarze Changed: mandoc.c (1.100), "Exp", lines: +13 -3 mandoc.h (1.221), "Exp", lines: +2 -1 roff.7 (1.82), "Exp", lines: +7 -5 term.c (1.262), "Exp", lines: +58 -2 Partial implementation of \h (horizontal line drawing function). A full implementation would require access to output device properties and state variables (both only available after the main parser has finalized the parse tree) before numerical expansions in the roff preprocessor (i.e., before the main parser is even started). Not trying to pull that stunt right now because the static-width implementation committed here is sufficient for tcl-style manual pages and already more complicated than i would have suspected. 2017-06-02 12:43 schwarze Changed: chars.c (1.70), "Exp", lines: +18 -2 gmdiff (1.7), "Exp", lines: +7 -4 mandoc_char.7 (1.66), "Exp", lines: +26 -6 regress/char/unicode/latin1.in (1.2), "Exp", lines: +5 -5 regress/char/unicode/latin1.out_ascii (1.2), "Exp", lines: +5 -5 regress/char/unicode/latin1.out_html (1.2), "Exp", lines: +5 -5 regress/char/unicode/latin1.out_utf8 (1.2), "Exp", lines: +5 -5 regress/char/unicode/named.in (1.2), "Exp", lines: +5 -0 regress/char/unicode/named.out_ascii (1.2), "Exp", lines: +5 -0 regress/char/unicode/named.out_html (1.2), "Exp", lines: +5 -0 regress/char/unicode/named.out_utf8 (1.2), "Exp", lines: +5 -0 regress/char/unicode/namediff.in (1.2), "Exp", lines: +6 -1 regress/char/unicode/namediff.out_ascii (1.2), "Exp", lines: +6 -1 regress/char/unicode/namediff.out_html (1.2), "Exp", lines: +6 -1 regress/char/unicode/namediff.out_utf8 (1.2), "Exp", lines: +6 -1 add about 15 missing character escape sequences found in groff_char(7); triggered by multimedia/mkvtoolnix mkvmerge(1) using \(S2 2017-06-01 19:05 schwarze Changed: mandoc.c (1.99), "Exp", lines: +2 -2 mandoc.h (1.220), "Exp", lines: +2 -1 mdoc_term.c (1.359), "Exp", lines: +3 -2 roff.7 (1.81), "Exp", lines: +5 -4 term.c (1.261), "Exp", lines: +23 -1 regress/roff/esc/h.in (1.2), "Exp", lines: +2 -2 Minimal implementation of the \h (horizontal motion) escape sequence. Good enough to cope with the average DocBook insanity. 2017-06-01 15:25 schwarze Changed: mandoc.1 (1.192), "Exp", lines: +7 -2 mandoc.h (1.219), "Exp", lines: +2 -1 mdoc_validate.c (1.330), "Exp", lines: +7 -1 read.c (1.168), "Exp", lines: +2 -1 STYLE message about full stop at the end of .Nd; inspired by mdoclint(1) 2017-05-31 15:31 schwarze Changed: mandoc.1 (1.191), "Exp", lines: +11 -1 mandoc.h (1.218), "Exp", lines: +2 -1 mdoc_validate.c (1.329), "Exp", lines: +33 -1 read.c (1.167), "Exp", lines: +2 -1 STYLE message about missing use of Ox/Nx/Fx/Dx; OK jmc@ wiz@ 2017-05-30 20:25 schwarze Changed: mandoc.1 (1.190), "Exp", lines: +4 -4 tweak previous; from jmc@ 2017-05-30 19:30 schwarze Changed: mandoc.1 (1.189), "Exp", lines: +13 -1 mandoc.h (1.217), "Exp", lines: +3 -1 mdoc_validate.c (1.328), "Exp", lines: +14 -2 read.c (1.166), "Exp", lines: +4 -1 regress/regress.pl (1.6), "Exp", lines: +3 -3 regress/mdoc/Tn/noarg.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Ud/arg.out_lint (1.2), "Exp", lines: +6 -0 STYLE message about useless macros we don't want (Bt Tn Ud); not a WARNING because they don't endanger portability 2017-05-30 16:31 schwarze Changed: mdoc_html.c (1.289), "Exp", lines: +18 -10 mdoc_man.c (1.116), "Exp", lines: +13 -7 mdoc_markdown.c (1.22), "Exp", lines: +13 -7 mdoc_term.c (1.358), "Exp", lines: +15 -7 regress/mdoc/Lk/noarg.in (1.3), "Exp", lines: +1 -1 fix formatting of intermediate punctuation in .Lk 2017-05-30 16:22 schwarze Added: regress/mdoc/Cd/punct.in (1.1) regress/mdoc/Cd/punct.out_ascii (1.1) regress/mdoc/Cd/punct.out_markdown (1.1) regress/mdoc/Cm/punct.in (1.1) regress/mdoc/Cm/punct.out_ascii (1.1) regress/mdoc/Cm/punct.out_markdown (1.1) regress/mdoc/Ic/punct.in (1.1) regress/mdoc/Ic/punct.out_ascii (1.1) regress/mdoc/Ic/punct.out_markdown (1.1) regress/mdoc/Va/punct.in (1.1) regress/mdoc/Va/punct.out_ascii (1.1) regress/mdoc/Va/punct.out_markdown (1.1) Changed: libmdoc.h (1.112), "Exp", lines: +1 -2 mdoc_argv.c (1.115), "Exp", lines: +4 -4 mdoc_macro.c (1.224), "Exp", lines: +17 -23 regress/mdoc/Ad/font.in (1.2), "Exp", lines: +1 -1 regress/mdoc/Ad/font.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Ad/font.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/An/break.in (1.2), "Exp", lines: +2 -2 regress/mdoc/Ap/middle.in (1.2), "Exp", lines: +4 -1 regress/mdoc/Ap/middle.out_ascii (1.2), "Exp", lines: +3 -1 regress/mdoc/Ap/middle.out_markdown (1.2), "Exp", lines: +4 -1 regress/mdoc/Aq/empty.in (1.2), "Exp", lines: +1 -1 regress/mdoc/Aq/empty.out_ascii (1.2), "Exp", lines: +2 -1 regress/mdoc/Aq/empty.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Aq/empty.out_utf8 (1.2), "Exp", lines: +2 -1 regress/mdoc/Ar/punct.in (1.2), "Exp", lines: +3 -0 regress/mdoc/Ar/punct.out_ascii (1.2), "Exp", lines: +2 -0 regress/mdoc/Ar/punct.out_markdown (1.2), "Exp", lines: +3 -0 regress/mdoc/At/invalid.in (1.2), "Exp", lines: +1 -1 regress/mdoc/At/invalid.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/At/invalid.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Brq/empty.in (1.2), "Exp", lines: +2 -2 regress/mdoc/Brq/empty.out_ascii (1.2), "Exp", lines: +2 -1 regress/mdoc/Brq/empty.out_markdown (1.2), "Exp", lines: +2 -2 regress/mdoc/Bx/args.in (1.2), "Exp", lines: +2 -2 regress/mdoc/Bx/args.out_ascii (1.2), "Exp", lines: +2 -2 regress/mdoc/Bx/args.out_markdown (1.2), "Exp", lines: +2 -2 regress/mdoc/Cd/Makefile (1.4), "Exp", lines: +1 -1 regress/mdoc/Cm/Makefile (1.4), "Exp", lines: +1 -1 regress/mdoc/Dq/empty.in (1.2), "Exp", lines: +2 -2 regress/mdoc/Dq/empty.out_ascii (1.3), "Exp", lines: +2 -1 regress/mdoc/Dq/empty.out_markdown (1.2), "Exp", lines: +2 -2 regress/mdoc/Dv/font.in (1.2), "Exp", lines: +1 -1 regress/mdoc/Dv/font.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Dv/font.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Em/punct.in (1.2), "Exp", lines: +7 -6 regress/mdoc/Em/punct.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Em/punct.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Em/punct.out_markdown (1.2), "Exp", lines: +2 -1 regress/mdoc/Eo/empty.in (1.2), "Exp", lines: +1 -1 regress/mdoc/Eo/empty.out_ascii (1.2), "Exp", lines: +3 -3 regress/mdoc/Eo/empty.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Eo/obsolete.in (1.2), "Exp", lines: +1 -1 regress/mdoc/Eo/obsolete.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Eo/obsolete.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Er/noarg.in (1.2), "Exp", lines: +1 -1 regress/mdoc/Er/noarg.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Er/noarg.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Ev/font.in (1.2), "Exp", lines: +1 -1 regress/mdoc/Ev/font.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Ev/font.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/Fl/punct.in (1.2), "Exp", lines: +3 -0 regress/mdoc/Fl/punct.out_ascii (1.2), "Exp", lines: +2 -0 regress/mdoc/Fl/punct.out_markdown (1.2), "Exp", lines: +3 -0 regress/mdoc/Fo/font.in (1.2), "Exp", lines: +1 -1 regress/mdoc/Fo/font.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Fo/font.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Fo/punct.in (1.2), "Exp", lines: +7 -3 regress/mdoc/Fo/punct.out_ascii (1.2), "Exp", lines: +7 -3 regress/mdoc/Fo/punct.out_markdown (1.2), "Exp", lines: +7 -3 regress/mdoc/Ic/Makefile (1.4), "Exp", lines: +1 -1 regress/mdoc/In/font.in (1.2), "Exp", lines: +1 -1 regress/mdoc/In/font.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/In/font.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Li/punct.in (1.2), "Exp", lines: +5 -5 regress/mdoc/Li/punct.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Li/punct.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Li/punct.out_markdown (1.2), "Exp", lines: +2 -2 regress/mdoc/Ms/font.in (1.2), "Exp", lines: +1 -1 regress/mdoc/Ms/font.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Ms/font.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Mt/simple.in (1.2), "Exp", lines: +1 -1 regress/mdoc/Mt/simple.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Mt/simple.out_markdown (1.3), "Exp", lines: +1 -1 regress/mdoc/No/punct.in (1.2), "Exp", lines: +5 -5 regress/mdoc/No/punct.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/No/punct.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/No/punct.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Ns/punct.in (1.2), "Exp", lines: +2 -2 regress/mdoc/Oo/punct.in (1.2), "Exp", lines: +3 -3 regress/mdoc/Oo/punct.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Oo/punct.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Op/punct.in (1.2), "Exp", lines: +2 -2 regress/mdoc/Pa/punct.in (1.2), "Exp", lines: +3 -0 regress/mdoc/Pa/punct.out_ascii (1.2), "Exp", lines: +2 -0 regress/mdoc/Pa/punct.out_markdown (1.2), "Exp", lines: +3 -0 regress/mdoc/Qq/empty.in (1.2), "Exp", lines: +2 -2 regress/mdoc/Qq/empty.out_ascii (1.2), "Exp", lines: +2 -1 regress/mdoc/Qq/empty.out_markdown (1.2), "Exp", lines: +2 -2 regress/mdoc/Sq/empty.in (1.2), "Exp", lines: +2 -2 regress/mdoc/Sq/empty.out_ascii (1.2), "Exp", lines: +2 -1 regress/mdoc/Sq/empty.out_markdown (1.2), "Exp", lines: +2 -2 regress/mdoc/St/call.in (1.2), "Exp", lines: +1 -1 regress/mdoc/Sx/noarg.in (1.2), "Exp", lines: +1 -1 regress/mdoc/Sx/noarg.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Sx/noarg.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Sy/punct.in (1.2), "Exp", lines: +5 -4 regress/mdoc/Sy/punct.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Sy/punct.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Sy/punct.out_markdown (1.2), "Exp", lines: +2 -1 regress/mdoc/Tn/noarg.in (1.2), "Exp", lines: +1 -1 regress/mdoc/Tn/noarg.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Tn/noarg.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Va/Makefile (1.4), "Exp", lines: +1 -1 regress/mdoc/Xr/args.in (1.2), "Exp", lines: +2 -2 regress/mdoc/Xr/args.out_ascii (1.2), "Exp", lines: +2 -2 regress/mdoc/Xr/args.out_markdown (1.2), "Exp", lines: +2 -2 Macro argument quoting does not prevent recognition of punctuation and of called macros. This bug affects almost all macros, and fixing it simplifies the code. It is amazing that the bogus ARGS_QWORD feature got implemented in the first place, and then carrier along for more than eight years without anybody ever noticing that it was pointless. Reported by Leah Neukirchen <leah at vuxu dot org>, found on Void Linux. 2017-05-18 14:45 schwarze Changed: gmdiff (1.6), "Exp", lines: +1 -1 Use [ rather than [[ for portability, in particular since it makes no difference in the case at hand. Reported by Leah Neukirchen <leah at vuxu dot org> (Void Linux). 2017-05-17 23:39 schwarze Changed: main.c (1.291), "Exp", lines: +1 -3 mandoc.1 (1.188), "Exp", lines: +1 -4 mandoc.3 (1.39), "Exp", lines: +4 -6 mandoc_char.7 (1.65), "Exp", lines: +3 -5 Delete the -T xhtml command line option. It has been obsolete for more than two years. Use -T html. 2017-05-17 23:23 schwarze Changed: man.1 (1.29), "Exp", lines: +2 -2 Fix documentation bug: man(1) does not ignore manpath directories lacking mandoc.db(5) files; instead, it uses filename lookup to find manuals in such directories. 2017-05-17 23:20 schwarze Changed: mandoc.1 (1.187), "Exp", lines: +3 -4 Modernize an example showing antiquated syntax, and delete an example showing the arcane -W stop option. 2017-05-17 22:43 schwarze Changed: mandoc.1 (1.186), "Exp", lines: +3 -3 missing space between macro arg and punctuation; from jmc@ 2017-05-17 22:27 schwarze Changed: makewhatis.8 (1.6), "Exp", lines: +5 -2 mandocdb.c (1.250), "Exp", lines: +23 -1 Never create empty databases. When pkg_add(1)ing packages installing manual pages into some directory, the database in that directory automatically gets created or updated, no change so far. This patch causes the database file to be automatically unlinked when pkg_delete(1)ing the last package having manual pages in that directory, to leave less cruft behind. Suggested by ajacoutot@. 2017-05-17 21:19 schwarze Changed: mansearch.c (1.73), "Exp", lines: +2 -1 Do not warn if a database file does not exist because that is simply equivalent to an empty database. Suggested by ajacoutot@ 2017-05-17 17:54 schwarze Changed: mdoc_html.c (1.288), "Exp", lines: +1 -18 Delete pointless width calculation for SYNOPSIS .Nm block heads. Just let HTML <table> do its work of selecting the needed width. <Anton dot Lindqvist at gmail dot com> reported that the manually calculated width was insufficient in some manual pages. 2017-05-16 19:06 schwarze Changed: TODO (1.237), "Exp", lines: +1 -15 main.c (1.290), "Exp", lines: +14 -11 mandoc.1 (1.185), "Exp", lines: +31 -12 mandoc.h (1.216), "Exp", lines: +4 -2 read.c (1.165), "Exp", lines: +4 -3 Introduce a new mandoc(1) message level, -W style, below -W warning. Switch -W all from meaning -W warning to meaning -W style. The meaning of -T lint does *not* change, it still implies -W warning. No messages on the new level yet, but they will come. Usually, i do not lightly make the user interface larger. But this has been planned for years, and EXIT STATUS 1 was reserved for it all the time. The message system is now stable enough to finally implement it. jmc@ regarding the concept: "really good idea" 2017-05-14 14:00 schwarze Changed: mdoc_validate.c (1.327), "Exp", lines: +2 -2 warn about punctuation between .Xr and .Rs in SEE ALSO; inspired by mdoclint 2017-05-14 12:27 schwarze Changed: html.c (1.212), "Exp", lines: +2 -2 Tweak previous: tb@ noticed that some browser/font combinations have so amazingly wide bold fonts (for the same nominal font size) that adding 15% to the column width still isn't sufficient to make text reliably fit, so go for 20%. 2017-05-12 17:58 schwarze Changed: html.c (1.211), "Exp", lines: +11 -5 mandoc_html.3 (1.8), "Exp", lines: +15 -7 mdoc_html.c (1.287), "Exp", lines: +5 -5 Make the tag column in .Bl -tag lists wider: 1. I forgot about the 2n padding between tag and body. 2. The factor 1.1 was too small for bold fold, make it *1.15 + 1n. Ugliness spotted by tb@. 2017-05-09 14:10 schwarze Changed: man_html.c (1.142), "Exp", lines: +3 -2 man_term.c (1.200), "Exp", lines: +4 -3 mdoc_html.c (1.286), "Exp", lines: +4 -4 mdoc_term.c (1.357), "Exp", lines: +3 -2 Trailing \c suppresses the output line break even if the next line is a text line starting with whitespace. Quirk found in the sysutils/rancid port. 2017-05-08 20:33 schwarze Changed: man.c (1.173), "Exp", lines: +6 -7 roff.c (1.302), "Exp", lines: +8 -2 Line-breaking roff(7) requests also break man(7) next-line scope. Considering that real roff implements next-line scope using input line traps, that isn't all that surprising. Issue found in the games/xbattle port. 2017-05-08 15:34 schwarze Added: regress/roff/ti/Makefile (1.1) regress/roff/ti/basic-man.in (1.1) regress/roff/ti/basic-man.out_ascii (1.1) regress/roff/ti/basic-mdoc.in (1.1) regress/roff/ti/basic-mdoc.out_ascii (1.1) Changed: mdoc_man.c (1.115), "Exp", lines: +9 -5 roff.7 (1.80), "Exp", lines: +12 -6 roff.c (1.301), "Exp", lines: +4 -4 roff.h (1.48), "Exp", lines: +2 -2 roff_html.c (1.5), "Exp", lines: +1 -0 roff_term.c (1.6), "Exp", lines: +42 -0 roff_validate.c (1.5), "Exp", lines: +1 -0 term.h (1.121), "Exp", lines: +2 -1 term_ascii.c (1.56), "Exp", lines: +6 -2 term_ps.c (1.84), "Exp", lines: +5 -2 regress/roff/Makefile (1.3), "Exp", lines: +1 -1 Basic implementation of the roff(7) .ti (temporary indent) request. Needed by about four dozen ports (thanks to naddy@ for the research). 2017-05-08 03:55 schwarze Changed: roff.7 (1.79), "Exp", lines: +414 -429 Convert REQUEST REFERENCE from using .Ss to .Bl -tag, allowing to specify request arguments and supporting tag searching in less(1). Improve some entries and document .ta. 2017-05-07 21:44 schwarze Changed: man.7 (1.135), "Exp", lines: +7 -3 man_term.c (1.199), "Exp", lines: +12 -2 implement .DT in terms of .ta; needed for print/ghostview, for example 2017-05-07 17:31 schwarze Added: term_tab.c (1.1) regress/roff/ta/Makefile (1.1) regress/roff/ta/basic-man.in (1.1) regress/roff/ta/basic-man.out_ascii (1.1) regress/roff/ta/basic-mdoc.in (1.1) regress/roff/ta/basic-mdoc.out_ascii (1.1) Changed: Makefile (1.512), "Exp", lines: +3 -1 Makefile.depend (1.31), "Exp", lines: +1 -0 man_term.c (1.198), "Exp", lines: +4 -2 mdoc_man.c (1.114), "Exp", lines: +12 -2 mdoc_term.c (1.356), "Exp", lines: +29 -11 roff.c (1.300), "Exp", lines: +28 -4 roff.h (1.47), "Exp", lines: +2 -2 roff_html.c (1.4), "Exp", lines: +1 -0 roff_term.c (1.5), "Exp", lines: +11 -1 roff_validate.c (1.4), "Exp", lines: +1 -0 term.c (1.260), "Exp", lines: +15 -12 term.h (1.120), "Exp", lines: +4 -2 term_ascii.c (1.55), "Exp", lines: +1 -2 regress/roff/Makefile (1.2), "Exp", lines: +1 -1 Basic implementation of the roff(7) .ta (define tab stops) request. This is the first feature made possible by the parser reorganization. Improves the formatting of the SYNOPSIS in many Xenocara GL manuals. Also important for ports, as reported by many, including naddy@. 2017-05-05 15:54 schwarze Changed: man.7 (1.134), "Exp", lines: +3 -28 mdoc.7 (1.264), "Exp", lines: +2 -19 roff.7 (1.78), "Exp", lines: +12 -2 Shorten the description of .sp and move it to roff(7). If is not a macro but a low-level roff request and not recommended for use in manual pages. 2017-05-05 15:17 schwarze Changed: man.c (1.172), "Exp", lines: +2 -2 man_html.c (1.141), "Exp", lines: +2 -22 man_macro.c (1.120), "Exp", lines: +2 -4 man_term.c (1.197), "Exp", lines: +1 -52 man_validate.c (1.127), "Exp", lines: +4 -1 mandocdb.c (1.249), "Exp", lines: +1 -2 mdoc.c (1.264), "Exp", lines: +2 -2 mdoc_argv.c (1.114), "Exp", lines: +1 -2 mdoc_html.c (1.285), "Exp", lines: +3 -27 mdoc_macro.c (1.223), "Exp", lines: +3 -5 mdoc_man.c (1.113), "Exp", lines: +9 -15 mdoc_markdown.c (1.21), "Exp", lines: +4 -2 mdoc_state.c (1.8), "Exp", lines: +1 -2 mdoc_term.c (1.355), "Exp", lines: +9 -37 mdoc_validate.c (1.326), "Exp", lines: +5 -5 roff.c (1.299), "Exp", lines: +7 -5 roff.h (1.46), "Exp", lines: +2 -4 roff_html.c (1.3), "Exp", lines: +21 -1 roff_term.c (1.4), "Exp", lines: +25 -1 roff_validate.c (1.3), "Exp", lines: +1 -0 regress/man/blank/line.out_lint (1.2), "Exp", lines: +4 -0 regress/mdoc/Pp/arg.out_lint (1.3), "Exp", lines: +1 -1 regress/roff/cond/close.out_lint (1.3), "Exp", lines: +1 -0 Move .sp to the roff modules. Enough infrastructure is in place now that this actually saves code: -70 LOC. 2017-05-05 13:17 schwarze Changed: man_html.c (1.140), "Exp", lines: +1 -2 man_macro.c (1.119), "Exp", lines: +1 -2 man_term.c (1.196), "Exp", lines: +1 -11 man_validate.c (1.126), "Exp", lines: +0 -1 mandocdb.c (1.248), "Exp", lines: +1 -2 mdoc_argv.c (1.113), "Exp", lines: +1 -2 mdoc_html.c (1.284), "Exp", lines: +1 -2 mdoc_macro.c (1.222), "Exp", lines: +2 -3 mdoc_man.c (1.112), "Exp", lines: +24 -26 mdoc_markdown.c (1.20), "Exp", lines: +2 -6 mdoc_state.c (1.7), "Exp", lines: +1 -2 mdoc_term.c (1.354), "Exp", lines: +5 -20 mdoc_validate.c (1.325), "Exp", lines: +1 -2 roff.c (1.298), "Exp", lines: +5 -4 roff.h (1.45), "Exp", lines: +2 -4 roff_term.c (1.3), "Exp", lines: +10 -1 roff_validate.c (1.2), "Exp", lines: +1 -0 move .ll to the roff modules 2017-05-05 02:31 schwarze Changed: man.7 (1.133), "Exp", lines: +5 -11 mdoc.7 (1.263), "Exp", lines: +2 -12 roff.7 (1.77), "Exp", lines: +4 -10 Clean up docs after today's .br and .ft code cleanup; simpler. 2017-05-05 02:06 schwarze Added: roff_validate.c (1.1) regress/roff/ft/badargs-mdoc.in (1.1) regress/roff/ft/badargs-mdoc.out_ascii (1.1) regress/roff/ft/badargs-mdoc.out_lint (1.1) Changed: Makefile (1.511), "Exp", lines: +3 -1 Makefile.depend (1.30), "Exp", lines: +3 -0 man_html.c (1.139), "Exp", lines: +1 -2 man_macro.c (1.118), "Exp", lines: +2 -3 man_term.c (1.195), "Exp", lines: +1 -38 man_validate.c (1.125), "Exp", lines: +2 -44 mandoc_headers.3 (1.13), "Exp", lines: +2 -1 mdoc_html.c (1.283), "Exp", lines: +2 -1 mdoc_man.c (1.111), "Exp", lines: +18 -5 mdoc_markdown.c (1.19), "Exp", lines: +5 -2 mdoc_term.c (1.353), "Exp", lines: +2 -1 mdoc_validate.c (1.324), "Exp", lines: +3 -2 roff.c (1.297), "Exp", lines: +33 -3 roff.h (1.44), "Exp", lines: +3 -3 roff_html.c (1.2), "Exp", lines: +4 -1 roff_term.c (1.2), "Exp", lines: +29 -1 regress/roff/ft/Makefile (1.2), "Exp", lines: +4 -2 Move handling of the roff(7) .ft request from the man(7) modules to the new roff(7) modules. As a side effect, mdoc(7) now handles .ft, too. Of course, do not use that. 2017-05-04 22:16 schwarze Added: roff_html.c (1.1) roff_term.c (1.1) Changed: Makefile (1.510), "Exp", lines: +5 -1 html.h (1.85), "Exp", lines: +3 -1 man_html.c (1.138), "Exp", lines: +8 -18 man_term.c (1.194), "Exp", lines: +3 -11 mandoc_headers.3 (1.12), "Exp", lines: +16 -0 mdoc_html.c (1.282), "Exp", lines: +8 -18 mdoc_term.c (1.352), "Exp", lines: +2 -8 term.h (1.119), "Exp", lines: +7 -5 Start roff formatter modules for HTML and termininal output, used by both the mdoc and man formatters, with the ultimate goal of reducing code duplication between the two macro formatters. Made possible by the parser unification. Add the first formatting function (for the .br request). 2017-05-04 17:48 schwarze Changed: man_html.c (1.137), "Exp", lines: +13 -2 man_macro.c (1.117), "Exp", lines: +2 -4 man_term.c (1.193), "Exp", lines: +14 -3 man_validate.c (1.124), "Exp", lines: +11 -1 mandocdb.c (1.247), "Exp", lines: +5 -3 mdoc_argv.c (1.112), "Exp", lines: +1 -2 mdoc_html.c (1.281), "Exp", lines: +15 -4 mdoc_macro.c (1.221), "Exp", lines: +6 -7 mdoc_man.c (1.110), "Exp", lines: +11 -2 mdoc_markdown.c (1.18), "Exp", lines: +13 -7 mdoc_state.c (1.6), "Exp", lines: +4 -3 mdoc_term.c (1.351), "Exp", lines: +17 -5 mdoc_validate.c (1.323), "Exp", lines: +18 -7 roff.c (1.296), "Exp", lines: +22 -11 roff.h (1.43), "Exp", lines: +4 -5 regress/eqn/define/infinite.out_lint (1.2), "Exp", lines: +4 -4 regress/eqn/define/invalid.out_lint (1.2), "Exp", lines: +5 -5 regress/eqn/over/noarg.out_lint (1.2), "Exp", lines: +1 -1 regress/mdoc/Pp/arg.out_lint (1.2), "Exp", lines: +1 -1 regress/roff/cond/close.out_lint (1.2), "Exp", lines: +1 -1 regress/roff/cond/if.out_lint (1.2), "Exp", lines: +2 -2 regress/roff/de/escname.out_lint (1.2), "Exp", lines: +2 -2 regress/roff/de/indir.out_lint (1.2), "Exp", lines: +2 -2 regress/roff/ig/basic.out_lint (1.2), "Exp", lines: +2 -2 regress/roff/it/badarg.out_lint (1.2), "Exp", lines: +2 -2 regress/roff/tr/args.out_lint (1.2), "Exp", lines: +1 -1 regress/tbl/data/block_unclosed.out_lint (1.2), "Exp", lines: +2 -2 regress/tbl/data/empty.out_lint (1.2), "Exp", lines: +1 -1 Parser reorg: Generate the first node on the roff level: .br Fix some column numbers in diagnostic messages while here. 2017-05-01 23:27 schwarze Changed: man.c (1.171), "Exp", lines: +16 -2 A few days ago, a patch from <G dot Branden dot Robinson at gmail dot com> got committed to groff which changed .TP from using .it to using .itc, such that groff now supports more than one man(7) macro line in the .TP head if all but the last line in the head end with \c. Of course, relying on that behaviour is utterly non-portable, but if authors are reckless enough to use that idiom, let's do what they want. 2017-05-01 20:54 schwarze Added: regress/tbl/mod/expand-toowide.in (1.1) regress/tbl/mod/expand-toowide.out_ascii (1.1) Changed: out.c (1.63), "Exp", lines: +6 -3 regress/tbl/mod/Makefile (1.2), "Exp", lines: +1 -1 When trying to expand some columns in a table where the sum of the widths of the remaining columns is already wider than the line length, underflowing size_t and dying from ENOMEM is the wrong plan. Instead, simply refrain from expanding anything in such a situation, avoiding a crash that tb@ found with afl. 2017-04-29 12:45 schwarze Deleted: man_hash.c (1.37) mdoc_hash.c (1.29) Changed: Makefile (1.509), "Exp", lines: +1 -5 Makefile.depend (1.29), "Exp", lines: +3 -4 libman.h (1.81), "Exp", lines: +1 -2 libmandoc.h (1.67), "Exp", lines: +1 -3 libmdoc.h (1.111), "Exp", lines: +1 -2 man.c (1.170), "Exp", lines: +11 -18 mandoc_headers.3 (1.11), "Exp", lines: +23 -6 mdoc.c (1.263), "Exp", lines: +10 -17 mdoc_macro.c (1.220), "Exp", lines: +2 -2 mdoc_validate.c (1.322), "Exp", lines: +8 -8 read.c (1.164), "Exp", lines: +12 -7 roff.c (1.295), "Exp", lines: +300 -306 roff.h (1.42), "Exp", lines: +8 -1 Parser unification: use nice ohashes for all three request and macro tables; no functional change, minus two source files, minus 200 lines of code. 2017-04-28 16:25 schwarze Added: regress/mdoc/Sh/first.out_ascii (1.1) regress/mdoc/Sh/parbefore.in (1.1) regress/mdoc/Sh/parbefore.out_ascii (1.1) regress/mdoc/Sh/parbefore.out_lint (1.1) regress/mdoc/Sh/parbefore.out_markdown (1.1) regress/mdoc/Sh/parborder.in (1.1) regress/mdoc/Sh/parborder.out_ascii (1.1) regress/mdoc/Sh/parborder.out_lint (1.1) regress/mdoc/Sh/parborder.out_markdown (1.1) Changed: mdoc_validate.c (1.321), "Exp", lines: +4 -1 regress/mdoc/Sh/Makefile (1.4), "Exp", lines: +9 -4 Delete .Pp right before the first .Sh and right before any .Ss, and warn about it; mdoclint(1) does so, and it makes sense. 2017-04-27 17:08 schwarze Changed: TODO (1.236), "Exp", lines: +8 -1 ASCII characters that are special to roff 2017-04-24 23:32 schwarze Deleted: manpage.c (1.15) Changed: Makefile (1.508), "Exp", lines: +1 -10 Makefile.depend (1.28), "Exp", lines: +0 -1 Delete the manpage(1) utility. It was never enabled in any release, nor was a manual ever written. In general, we want to simplify the user interface rather than succumb to featurism. Consequently, integrating manpage(1) into the main binary would seem like a dubious direction. 2017-04-24 23:06 schwarze Changed: libman.h (1.80), "Exp", lines: +3 -3 libmdoc.h (1.110), "Exp", lines: +12 -11 man.c (1.169), "Exp", lines: +5 -20 man.h (1.78), "Exp", lines: +1 -45 man_hash.c (1.36), "Exp", lines: +7 -9 man_html.c (1.136), "Exp", lines: +4 -3 man_macro.c (1.116), "Exp", lines: +15 -18 man_term.c (1.192), "Exp", lines: +4 -3 man_validate.c (1.123), "Exp", lines: +12 -12 mandoc_headers.3 (1.10), "Exp", lines: +11 -0 mandocdb.c (1.246), "Exp", lines: +9 -10 mdoc.c (1.262), "Exp", lines: +9 -47 mdoc.h (1.145), "Exp", lines: +1 -130 mdoc_argv.c (1.111), "Exp", lines: +7 -5 mdoc_hash.c (1.28), "Exp", lines: +7 -7 mdoc_html.c (1.280), "Exp", lines: +8 -5 mdoc_macro.c (1.219), "Exp", lines: +42 -43 mdoc_man.c (1.109), "Exp", lines: +4 -4 mdoc_markdown.c (1.17), "Exp", lines: +4 -4 mdoc_state.c (1.5), "Exp", lines: +5 -4 mdoc_term.c (1.350), "Exp", lines: +7 -5 mdoc_validate.c (1.320), "Exp", lines: +37 -42 roff.c (1.294), "Exp", lines: +132 -281 roff.h (1.41), "Exp", lines: +413 -3 tree.c (1.74), "Exp", lines: +7 -7 Continue parser unification: * Make enum rofft an internal interface as enum roff_tok in "roff.h". * Represent mdoc and man macros in enum roff_tok. * Make TOKEN_NONE a proper enum value and use it throughout. * Put the prologue macros first in the macro tables. * Unify mdoc_macroname[] and man_macroname[] into roff_name[]. 2017-04-19 01:00 schwarze Changed: cgi.c (1.154), "Exp", lines: +3 -2 More thoroughly reject direct access to unintended files, such that URIs like http://man.openbsd.org/OpenBSD-current/mandoc.db and http://man.openbsd.org/OpenBSD-current/man1/ do not cause display of garbage. 2017-04-18 16:01 schwarze Changed: main.c (1.289), "Exp", lines: +7 -3 Now that global -i is gone, pass -i through to the apropos(1) expression parser, such that "apropos -i 'Nm~dump\>'" finds kdump(1) and WCOREDUMP(2) and you don't need to type the counter-intuitive "apropos -- -i 'Nm~dump\>'". 2017-04-18 15:27 schwarze Changed: main.c (1.288), "Exp", lines: +1 -5 Delete the undocumented and unimplemented man(1) -i (interactive apropos) option. It will not be implemented. Featurism isn't the plan for the future; simplicity is. 2017-04-18 15:06 schwarze Changed: mansearch.c (1.72), "Exp", lines: +6 -1 The apropos(1) manual still documents the unary -i operator for regular expression search terms, but it appears that somewhere along the way, the implementation got lost, so restore it. Bug found while investigating other reports from Gonzalo Tornaria. 2017-04-18 13:57 schwarze Changed: mansearch.c (1.71), "Exp", lines: +2 -0 Fix previous: i forgot explicit NUL termination; noticed by Gonzalo <Tornaria at cmat dot edu dot uy>, thanks! 2017-04-17 20:05 schwarze Changed: mansearch.c (1.70), "Exp", lines: +52 -24 mansearch.h (1.28), "Exp", lines: +5 -2 Restore -kO Nd, -kO Nm, -kO sec, and -kO arch to working order. They got broken in the SQLite removal. As opposed to the rest of -kO, they are no longer very useful, but they are certainly not supposed to fail assertions. Issue reported by Gonzalo Tornaria <tornaria at cmat dot edu dot uy>. 2017-04-17 13:37 schwarze Changed: regress/mdoc/Lk/font.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Lk/link.out_ascii (1.2), "Exp", lines: +4 -4 regress/mdoc/Lk/noarg.in (1.2), "Exp", lines: +4 -0 regress/mdoc/Lk/noarg.out_ascii (1.2), "Exp", lines: +6 -2 regress/mdoc/Lk/noarg.out_lint (1.2), "Exp", lines: +1 -1 regress/mdoc/Lk/noarg.out_markdown (1.3), "Exp", lines: +4 -0 adjust tests to recent .Lk improvements 2017-04-17 13:26 schwarze Changed: mdoc_man.c (1.108), "Exp", lines: +58 -5 implement display of long .Lk URIs to match -Tascii 2017-04-17 12:53 schwarze Changed: mdoc_html.c (1.279), "Exp", lines: +15 -9 mdoc_macro.c (1.218), "Exp", lines: +6 -2 mdoc_man.c (1.107), "Exp", lines: +12 -4 mdoc_markdown.c (1.16), "Exp", lines: +15 -4 mdoc_term.c (1.349), "Exp", lines: +12 -6 Fix handling of trailing punctuation in .Lk. This macro is unusual in so far as trailing punction needs to remain inside the scope because it must be inside, not after the display of long URIs in terminal output mode. Improves formatting of fw_update(1), help(1), less(1), sendbug(1), acx(4), inet6(4), ipsec(4), oce(4), isakmpd.conf(5), afterboot(8), release(8), traceroute(8). 2017-04-14 19:35 schwarze Changed: mdoc_term.c (1.348), "Exp", lines: +11 -1 Show long .Lk URIs in like an indented display, similar to groff. Suggested by bentley@. 2017-04-14 18:25 schwarze Changed: mdoc_man.c (1.106), "Exp", lines: +2 -2 mdoc_term.c (1.347), "Exp", lines: +2 -2 Do not make the colon after the .Lk link text italic. I just pushed the same change to GNU troff. 2017-03-30 22:22 schwarze Changed: mandoc_headers.3 (1.9), "Exp", lines: +5 -5 mansearch.3 (1.5), "Exp", lines: +10 -118 delete documentation of some stuff that no longer exists, mostly about SQLite3; noticed by Jan Stary <hans at stare dor cz> 2017-03-27 18:51 schwarze Changed: apropos.1 (1.45), "Exp", lines: +3 -3 main.c (1.287), "Exp", lines: +8 -10 man.1 (1.28), "Exp", lines: +3 -9 mandoc.1 (1.184), "Exp", lines: +4 -4 simplify the SYNOPSIS as well, just like the option lists; suggested by and OK jmc@ 2017-03-27 15:17 schwarze Changed: mandoc.1 (1.183), "Exp", lines: +6 -16 For some options that are rarely needed in mandoc(1), delete the descriptions and point to man(1) instead. Inspired by apropos.1 rev. 1.43. 2017-03-27 14:40 schwarze Changed: apropos.1 (1.44), "Exp", lines: +5 -12 man.1 (1.27), "Exp", lines: +7 -19 mandoc.1 (1.182), "Exp", lines: +5 -17 Simplify: mention at one place that -fkl override each other, rather than stating it separately for each option. Suggested, OKed, and tweaked by jmc@. 2017-03-25 12:46 schwarze Changed: apropos.1 (1.43), "Exp", lines: +7 -29 man.1 (1.26), "Exp", lines: +7 -66 For some options that are rarely needed in apropos(1) and man(1), delete the verbose descriptions and point to man(1) and mandoc(1), respectively, instead. That shortens the pages and makes them easier to read. Tweaks and OK jmc@, based in part on ideas from tedu@. 2017-03-22 13:31 schwarze Changed: man.1 (1.25), "Exp", lines: +8 -13 simplify description of -S and -w, point from EXIT STATUS to mandoc(1) for details, and remove duplicate .Xr to whatis(1); OK jmc@ 2017-03-21 18:25 schwarze Changed: mandoc.1 (1.181), "Exp", lines: +3 -3 simplify .Nd; to display manuals, use man(1) instead; OK jmc@ 2017-03-21 18:06 schwarze Changed: man.1 (1.24), "Exp", lines: +3 -9 delete documentation of a hack that was removed years ago 2017-03-20 14:32 schwarze Changed: main.c (1.286), "Exp", lines: +8 -16 mandoc.1 (1.180), "Exp", lines: +31 -61 Silently ignore invalid -m input formats rather than erroring out. As observed by Jan Stary <hans at stare dot cz>, this is useful such that after 'alias man="man -m $HOME/man"', 'man -l foo.1' still works. Simplify and shorten the description of -m, and use .Ic for macros. 2017-03-18 19:56 schwarze Changed: catman.8 (1.8), "Exp", lines: +3 -3 mandocd.8 (1.2), "Exp", lines: +3 -3 soelim.1 (1.4), "Exp", lines: +3 -3 minor issues found with mandoc -Tlint 2017-03-18 19:51 schwarze Changed: apropos.1 (1.42), "Exp", lines: +24 -19 makewhatis.8 (1.5), "Exp", lines: +13 -3 man.1 (1.23), "Exp", lines: +26 -7 mandoc.1 (1.179), "Exp", lines: +18 -5 Correct description of MANPATH, and a few more improvements to the ENVIRONMENT section; OK jmc@ 2017-03-18 16:48 schwarze Changed: cgi.c (1.153), "Exp", lines: +12 -11 cgi.h.example (1.6), "Exp", lines: +0 -1 man.cgi.8 (1.22), "Exp", lines: +2 -7 Simplify: write HTTP 303 redirects with relative locations. Suggested by bentley@. Delete the HTTP_HOST configuration variable that is now obsolete. 2017-03-18 16:19 schwarze Changed: cgi.c (1.152), "Exp", lines: +3 -2 Bugfix: use SCRIPT_NAME for .Xr hyperlinks. Patch from <andreas at AndreasVoegele dot com>. 2017-03-17 17:24 schwarze Changed: apropos.1 (1.41), "Exp", lines: +25 -4 man.1 (1.22), "Exp", lines: +7 -3 Document man(1) section selection priority, and correct description of apropos(1) output search order. Suggested by tb@. 2017-03-17 12:56 schwarze Changed: man.cgi.8 (1.21), "Exp", lines: +9 -8 Update HISTORY and AUTHORS: we no longer use SQLite. Outdated information reported by an Anonymous Coward on undeadly.org. 2017-03-17 12:10 schwarze Changed: man_html.c (1.135), "Exp", lines: +5 -3 mdoc_html.c (1.278), "Exp", lines: +5 -3 Fix regression in mdoc_html.c 1.275, man_html 1.134: For .Sh, .Ss, .SH, .SS, only write selflink if an id could be constructed. Crash reported by Raf Czlonka <rczlonka at gmail dot com>, analysis of root cause by natano@ 2017-03-15 13:49 schwarze Changed: cgi.c (1.151), "Exp", lines: +7 -4 In URIs in apropos(1) result tables, only write the manpath if it does not match the default. 2017-03-15 13:18 schwarze Changed: cgi.c (1.150), "Exp", lines: +49 -34 man.cgi.3 (1.4), "Exp", lines: +9 -4 Mention the manual page name and section in the HTML page <title>. Based on a patch from <Anton dot Lindqvist at gmail dot com>, but simplified and also covering apropos(1) search results. 2017-03-15 11:29 schwarze Changed: html.c (1.210), "Exp", lines: +25 -2 html.h (1.84), "Exp", lines: +3 -1 man_html.c (1.134), "Exp", lines: +18 -6 mandoc_html.3 (1.7), "Exp", lines: +30 -3 mdoc_html.c (1.277), "Exp", lines: +6 -29 Minimal support for deep linking into man(7) pages. As the man(7) language does not provide semantic markup, only .SH, .SS, and .UR become anchors for now. 2017-03-15 10:17 schwarze Changed: cgi.c (1.149), "Exp", lines: +25 -3 man.cgi.3 (1.3), "Exp", lines: +21 -3 It's annoying that people keep writing URIs including redundant parts like "/OpenBSD-current/manN/". To discourage that, let man.cgi(8) redirect search form results to nice, concise URIs. 2017-03-14 01:35 schwarze Changed: html.c (1.209), "Exp", lines: +3 -1 mdoc_html.c (1.276), "Exp", lines: +3 -2 Slightly increase widths calculated from string lengths (mainly for .Bl -tag lists and SYNOPSIS .Nm blocks), such that the text still fits even if it is printed in bold font. This is an ugly band aid - but implementing font-dependent width measurements would be a major project and even more difficult for HTML than for PostScript. Issue reported by Jan Stary <hans at stare dot cz>. 2017-03-13 20:22 schwarze Changed: mandoc.css (1.18), "Exp", lines: +6 -1 mdoc_html.c (1.275), "Exp", lines: +81 -11 Port ctags-style, less(1) :t internal searching from terminal output to HTML output. For certain macros appearing at the beginning of .It heads, write HTML id="..." attributes such that deep linking works. Write HTML <a> attributes such that you can easily copy out link targets with the mouse. Try: http://man.openbsd.org/vmctl.8#create Feature suggested by <guettliml at Thomas dash Guettler dot de>, some details of the design and implementation by me. 2017-03-13 19:01 schwarze Changed: html.c (1.208), "Exp", lines: +13 -6 mandoc_html.3 (1.6), "Exp", lines: +7 -2 mdoc_html.c (1.274), "Exp", lines: +43 -43 Print title="..." in addition to id="..." attributes for macro keys that can be searched for by apropos(1), such that you see the semantic function in a tooltip when hovering with the mouse. 2017-03-11 16:04 schwarze Added: regress/eqn/define/infinite.in (1.1) regress/eqn/define/infinite.out_ascii (1.1) regress/eqn/define/infinite.out_lint (1.1) Changed: regress/eqn/define/Makefile (1.2), "Exp", lines: +2 -2 test infinite recursion in eqn(7) "define" statements 2017-03-11 15:43 schwarze Changed: eqn.c (1.62), "Exp", lines: +8 -3 Improve detection of recursive eqn(7) "define" statements: Do not only catch "define key 'key other stuff'", but also "define key 'other stuff key'". Fixing infinite loop found by tb@ with afl(1). 2017-03-11 12:35 schwarze Changed: mdoc_markdown.c (1.15), "Exp", lines: +49 -22 regress/mdoc/Aq/author.out_markdown (1.2), "Exp", lines: +3 -3 regress/mdoc/Lk/noarg.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Mt/simple.out_markdown (1.2), "Exp", lines: +2 -2 regress/mdoc/Rs/allch.out_markdown (1.3), "Exp", lines: +2 -2 In markdown, autolinks are dangerous. Different compilers disagree with respect to what constitutes a valid autolink, and if a compiler deems an autolink invalid, the input turns into an unintended and potentially harmful raw HTML tag. So, never write autolinks. Instead of <link>, write [link](link). Instead of <addr>, write [addr](mailto:addr). Issue pointed out by bentley@, who also agrees with the general direction of the change. 2017-03-09 15:33 schwarze Changed: regress/mdoc/Op/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Os/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Ox/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Pa/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Pf/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Pp/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Qq/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Rs/Makefile (1.4), "Exp", lines: +0 -1 regress/mdoc/Rv/Makefile (1.3), "Exp", lines: +4 -1 regress/mdoc/Sh/Makefile (1.3), "Exp", lines: +0 -2 regress/mdoc/Sm/Makefile (1.4), "Exp", lines: +0 -1 regress/mdoc/Sq/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/St/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Sx/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Sy/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Tn/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Ud/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Ux/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Va/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Vt/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Xr/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/blank/Makefile (1.3), "Exp", lines: +1 -1 regress/mdoc/break/Makefile (1.4), "Exp", lines: +0 -1 regress/roff/Makefile.inc (1.2), "Exp", lines: +1 -0 regress/tbl/Makefile.inc (1.2), "Exp", lines: +1 -0 Really commit some files that failed to get committed in this commit: Now that markdown output is tested for almost everything, test all input files in -T markdown output mode by default and only mark those files with SKIP_MARKDOWN that are not to be tested. Much easier to read, and almost minus 40 lines of Makefile code. 2017-03-09 15:29 schwarze Changed: roff.c (1.293), "Exp", lines: +3 -1 Fix blunder in previous: we must keep the line parse buffer consistent even when aborting the parsing of the line. That buffer is not our own, but owned and reused by mparse_buf_r(), read.c. Returning without cleanup leaked memory and caused write overruns of the old, typically much smaller buffer in mparse_buf_r(). Promptly noticed by tb@ with afl(1), using MALLOC_OPTIONS=C. 2017-03-08 22:54 schwarze Changed: regress/regress.pl (1.5), "Exp", lines: +9 -4 regress/char/Makefile.inc (1.2), "Exp", lines: +1 -0 regress/eqn/Makefile.inc (1.2), "Exp", lines: +1 -0 regress/man/Makefile.inc (1.2), "Exp", lines: +1 -0 regress/mdoc/Ad/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/An/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Ap/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Aq/Makefile (1.4), "Exp", lines: +0 -1 regress/mdoc/Ar/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/At/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Bd/Makefile (1.3), "Exp", lines: +0 -4 regress/mdoc/Bf/Makefile (1.2), "Exp", lines: +4 -0 regress/mdoc/Bk/Makefile (1.2), "Exp", lines: +5 -0 regress/mdoc/Bl/Makefile (1.7), "Exp", lines: +4 -6 regress/mdoc/Brq/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Bx/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Cd/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Cm/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/D1/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Db/Makefile (1.2), "Exp", lines: +4 -0 regress/mdoc/Dd/Makefile (1.3), "Exp", lines: +5 -2 regress/mdoc/Dl/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Dq/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Dt/Makefile (1.3), "Exp", lines: +1 -2 regress/mdoc/Dv/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Em/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Eo/Makefile (1.4), "Exp", lines: +0 -1 regress/mdoc/Er/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Ev/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Ex/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Fd/Makefile (1.4), "Exp", lines: +0 -1 regress/mdoc/Fl/Makefile (1.4), "Exp", lines: +0 -1 regress/mdoc/Fo/Makefile (1.3), "Exp", lines: +0 -2 regress/mdoc/Ft/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Ic/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/In/Makefile (1.4), "Exp", lines: +0 -1 regress/mdoc/Lb/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Li/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Lk/Makefile (1.3), "Exp", lines: +4 -1 regress/mdoc/Ms/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Mt/Makefile (1.3), "Exp", lines: +4 -1 regress/mdoc/Nd/Makefile (1.3), "Exp", lines: +2 -1 regress/mdoc/Nm/Makefile (1.4), "Exp", lines: +2 -3 regress/mdoc/No/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Ns/Makefile (1.3), "Exp", lines: +0 -1 regress/mdoc/Oo/Makefile (1.3), "Exp", lines: +0 -1 Now that markdown output is tested for almost everything, test all input files in -T markdown output mode by default and only mark those files with SKIP_MARKDOWN that are not to be tested. Much easier to read, and almost minus 40 lines of Makefile code. 2017-03-08 19:40 schwarze Changed: mandoc.1 (1.178), "Exp", lines: +12 -2 Document that -T markdown produces ASCII output, and the implied limitations. Of course, we could write UTF-8 output instead, but even the CommonMark specification doesn't require parsers to support that, so portability would be doubtful. While here, provide a link to the CommonMark specification. 2017-03-08 19:23 schwarze Changed: mdoc_markdown.c (1.14), "Exp", lines: +3 -10 The CommonMark specification wants that opening parentheses inside link destinations be escaped. While here, remove the obsolete ESC_PAR. 2017-03-08 18:17 schwarze Changed: mdoc_markdown.c (1.13), "Exp", lines: +5 -1 regress/mdoc/Dv/font.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Er/font.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Ev/font.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Li/font.out_markdown (1.2), "Exp", lines: +1 -1 regress/mdoc/Tn/font.out_markdown (1.2), "Exp", lines: +1 -1 According to the CommonMark specification, backslash escapes and markdown markup do not work inside code spans. 2017-03-08 17:51 schwarze Changed: mdoc_markdown.c (1.12), "Exp", lines: +2 -2 The CommonMark specification allows list markers fo the form "number) " as well as "number. ", so escape closing parentheses after leading digits to improve portability. 2017-03-08 17:40 schwarze Changed: mdoc_markdown.c (1.11), "Exp", lines: +4 -2 Do not increment .Bl -enum list markers beyond two digits. Otherwise, we would indent subsequent paragraphs less than the CommonMark specification requires, harming portability. 2017-03-08 15:08 schwarze Added: regress/mdoc/Bl/colNoIt.out_markdown (1.1) regress/mdoc/Bl/column.out_markdown (1.1) Changed: mdoc_markdown.c (1.10), "Exp", lines: +6 -2 regress/mdoc/Bl/Makefile (1.6), "Exp", lines: +1 -1 .Bl -column never gets blank lines between rows 2017-03-08 14:51 schwarze Added: regress/mdoc/Bl/inset.out_markdown (1.1) regress/mdoc/Fl/parsed.out_markdown (1.1) add two result files that were forgotten 2017-03-08 14:45 schwarze Added: regress/mdoc/Bd/badargs.out_markdown (1.1) regress/mdoc/Bd/beforeNAME.out_markdown (1.1) regress/mdoc/Bd/blank.out_markdown (1.1) regress/mdoc/Bd/break.out_markdown (1.1) regress/mdoc/Bd/broken.out_markdown (1.1) regress/mdoc/Bd/centered.out_markdown (1.1) regress/mdoc/Bd/empty.out_markdown (1.1) regress/mdoc/Bd/nested.out_markdown (1.1) regress/mdoc/Bd/offset-empty.out_markdown (1.1) regress/mdoc/Bd/offset-neg.out_markdown (1.1) regress/mdoc/Bd/spacing.out_markdown (1.1) regress/mdoc/Bd/unclosed.out_markdown (1.1) regress/mdoc/Bl/badargs.out_markdown (1.1) regress/mdoc/Bl/breakingIt.out_markdown (1.1) regress/mdoc/Bl/broken.out_markdown (1.1) regress/mdoc/Bl/emptyhead.out_markdown (1.1) regress/mdoc/Bl/emptytag.out_markdown (1.1) regress/mdoc/Bl/extend.out_markdown (1.1) regress/mdoc/Bl/hang.out_markdown (1.1) regress/mdoc/Bl/multitag.out_markdown (1.1) regress/mdoc/Bl/nested.out_markdown (1.1) regress/mdoc/Bl/noIt.out_markdown (1.1) regress/mdoc/Bl/offset.out_markdown (1.1) regress/mdoc/Bl/secstart.out_markdown (1.1) regress/mdoc/Bl/tag.out_markdown (1.1) regress/mdoc/D1/spacing.out_markdown (1.1) regress/mdoc/Sm/scope.out_markdown (1.1) regress/mdoc/break/tail.out_markdown (1.1) Changed: regress/mdoc/Bd/Makefile (1.2), "Exp", lines: +4 -0 regress/mdoc/Bl/Makefile (1.5), "Exp", lines: +5 -4 regress/mdoc/D1/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Sm/Makefile (1.3), "Exp", lines: +1 -1 regress/mdoc/break/Makefile (1.3), "Exp", lines: +1 -1 enable -T markdown tests of filled displays and tagged lists 2017-03-08 14:30 schwarze Changed: mdoc_markdown.c (1.9), "Exp", lines: +8 -2 Add a blank after ">" when quoting. If is allowed by markdown syntax and more human-readable. 2017-03-08 13:18 schwarze Changed: roff.c (1.292), "Exp", lines: +16 -3 regress/roff/de/infinite.in (1.2), "Exp", lines: +6 -0 regress/roff/de/infinite.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/de/infinite.out_lint (1.2), "Exp", lines: +1 -0 prevent infinite recursion while expanding the arguments of a user-defined macro; issue found by tb@ with afl(1) 2017-03-07 20:00 schwarze Added: regress/roff/de/infinite.in (1.1) regress/roff/de/infinite.out_ascii (1.1) regress/roff/de/infinite.out_lint (1.1) Changed: read.c (1.163), "Exp", lines: +13 -9 regress/roff/de/Makefile (1.2), "Exp", lines: +7 -2 If a user-defined macro is aborted because it exceeds the stack limit, usually due to infinite recursion, discard whatever remains in all those open stack levels. Otherwise, insane constructions like the following could generate macros of enormous size, causing mandoc(1) to die from memory exhaustion: .de m \" original macro definition .m \" recursion to blow up the stack .de m \" definition to be run during the call of .m marked (*) very long plain text (some kilobytes) .m \" expand the above a thousand times while unwinding the stack .. \" end of the original definition .m \" (*) recursively generate a ridiculously large macro .. \" end of recursively generated definition .m \" execute the giant macro, exhausting memory Very creative abuse found by tb@ with afl(1). 2017-03-07 15:31 schwarze Changed: mdoc_markdown.c (1.8), "Exp", lines: +23 -12 regress/mdoc/Bl/Makefile (1.4), "Exp", lines: +1 -1 Escape blanks at the end of markdown lines such that they don't look like output line breaks. 2017-03-07 14:04 schwarze Added: regress/mdoc/Eo/empty.out_markdown (1.1) Changed: mdoc_markdown.c (1.7), "Exp", lines: +5 -9 regress/mdoc/Eo/Makefile (1.3), "Exp", lines: +1 -1 fix completely empty .Eo: no blank line wanted 2017-03-07 13:28 schwarze Changed: mdoc_markdown.c (1.6), "Exp", lines: +12 -2 regress/mdoc/Fl/Makefile (1.3), "Exp", lines: +1 -1 regress/mdoc/Fl/noarg.out_markdown (1.2), "Exp", lines: +1 -1 fix spacing after empty .Fl 2017-03-07 13:09 schwarze Added: regress/mdoc/An/break.out_markdown (1.1) regress/mdoc/Aq/author.out_markdown (1.1) Changed: mdoc_markdown.c (1.5), "Exp", lines: +31 -2 regress/mdoc/An/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Aq/Makefile (1.3), "Exp", lines: +1 -1 implement .An -split and -nosplit 2017-03-07 12:39 schwarze Added: regress/mdoc/Fd/empty.out_markdown (1.1) regress/mdoc/In/break.out_markdown (1.1) regress/mdoc/In/noarg.out_markdown (1.1) Changed: mdoc_markdown.c (1.4), "Exp", lines: +7 -10 regress/mdoc/Fd/Makefile (1.3), "Exp", lines: +1 -1 regress/mdoc/In/Makefile (1.3), "Exp", lines: +1 -1 Fix .In formatting in the SYNOPSIS: No ‌ in the middle of **, please. 2017-03-06 17:26 schwarze Changed: mandoc.1 (1.177), "Exp", lines: +10 -2 mandoc.h (1.215), "Exp", lines: +2 -1 mdoc_validate.c (1.319), "Exp", lines: +5 -1 read.c (1.162), "Exp", lines: +2 -1 regress/mdoc/Nd/broken.out_lint (1.3), "Exp", lines: +2 -0 Using .Nd only makes sense in the NAME section. Warn if that macro occurs elsewhere. Triggered by a question from Dag-Erling Smoergrav <des @ FreeBSD>. 2017-03-06 14:58 schwarze Changed: mdoc_markdown.c (1.3), "Exp", lines: +13 -4 regress/mdoc/Rs/allch.out_markdown (1.2), "Exp", lines: +2 -2 URIs need different escaping; reported by reyk@ 2017-03-05 20:15 schwarze Added: regress/mdoc/break/brokenbreaker.out_markdown (1.1) regress/mdoc/break/notopen.out_markdown (1.1) regress/mdoc/break/twice.out_markdown (1.1) regress/mdoc/break/two.out_markdown (1.1) Changed: regress/mdoc/break/Makefile (1.2), "Exp", lines: +1 -0 first batch of -T markdown tests 2017-03-05 20:12 schwarze Added: regress/mdoc/Vt/child.out_markdown (1.1) regress/mdoc/Vt/font.out_markdown (1.1) regress/mdoc/Vt/noarg.out_markdown (1.1) regress/mdoc/Vt/spacing.out_markdown (1.1) regress/mdoc/Xr/args.out_markdown (1.1) regress/mdoc/blank/comment.out_markdown (1.1) regress/mdoc/blank/list.out_markdown (1.1) Changed: regress/mdoc/Vt/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Xr/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/blank/Makefile (1.2), "Exp", lines: +1 -0 first batch of -T markdown tests 2017-03-05 20:09 schwarze Added: regress/mdoc/Ud/arg.out_markdown (1.1) regress/mdoc/Ux/eos.out_markdown (1.1) regress/mdoc/Ux/spacing.out_markdown (1.1) regress/mdoc/Va/basic.out_markdown (1.1) regress/mdoc/Va/font.out_markdown (1.1) regress/mdoc/Va/noarg.out_markdown (1.1) Changed: regress/mdoc/Ud/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Ux/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Va/Makefile (1.2), "Exp", lines: +1 -0 first batch of -T markdown tests 2017-03-05 20:06 schwarze Added: regress/mdoc/Sx/font.out_markdown (1.1) regress/mdoc/Sx/noarg.out_markdown (1.1) regress/mdoc/Sy/font.out_markdown (1.1) regress/mdoc/Sy/noarg.out_markdown (1.1) regress/mdoc/Sy/punct.out_markdown (1.1) regress/mdoc/Tn/font.out_markdown (1.1) regress/mdoc/Tn/noarg.out_markdown (1.1) Changed: regress/mdoc/Sx/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Sy/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Tn/Makefile (1.2), "Exp", lines: +1 -0 first batch of -T markdown tests 2017-03-05 20:03 schwarze Added: regress/mdoc/Sm/badarg.out_markdown (1.1) regress/mdoc/Sm/noarg.out_markdown (1.1) regress/mdoc/Sm/spacing-No.out_markdown (1.1) regress/mdoc/Sm/spacing-Op.out_markdown (1.1) regress/mdoc/Sm/twoarg.out_markdown (1.1) regress/mdoc/Sq/empty.out_markdown (1.1) regress/mdoc/St/badargs.out_markdown (1.1) regress/mdoc/St/call.out_markdown (1.1) Changed: regress/mdoc/Sm/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Sq/Makefile (1.2), "Exp", lines: +2 -1 regress/mdoc/St/Makefile (1.2), "Exp", lines: +1 -0 first batch of -T markdown tests 2017-03-05 19:59 schwarze Added: regress/mdoc/Ad/font.out_markdown (1.1) regress/mdoc/Ad/noarg.out_markdown (1.1) regress/mdoc/Ap/eos.out_markdown (1.1) regress/mdoc/Ap/middle.out_markdown (1.1) regress/mdoc/Aq/empty.out_markdown (1.1) regress/mdoc/Ar/font.out_markdown (1.1) regress/mdoc/Ar/punct.out_markdown (1.1) regress/mdoc/At/invalid.out_markdown (1.1) regress/mdoc/Bl/bareIt.out_markdown (1.1) regress/mdoc/Bl/bareTa.out_markdown (1.1) regress/mdoc/Bl/breakingTa.out_markdown (1.1) regress/mdoc/Bl/bullet.out_markdown (1.1) regress/mdoc/Bl/dash.out_markdown (1.1) regress/mdoc/Bl/diag.out_markdown (1.1) regress/mdoc/Bl/empty.out_markdown (1.1) regress/mdoc/Bl/emptyitem.out_markdown (1.1) regress/mdoc/Bl/enum.out_markdown (1.1) regress/mdoc/Bl/item.out_markdown (1.1) regress/mdoc/Bl/multitype.out_markdown (1.1) regress/mdoc/Bl/notype.out_markdown (1.1) regress/mdoc/Bl/ohang.out_markdown (1.1) regress/mdoc/Bl/unclosed.out_markdown (1.1) regress/mdoc/Brq/empty.out_markdown (1.1) regress/mdoc/Bx/args.out_markdown (1.1) regress/mdoc/Cd/eos.out_markdown (1.1) regress/mdoc/Cd/font.out_markdown (1.1) regress/mdoc/Cd/noarg.out_markdown (1.1) regress/mdoc/Cm/basic.out_markdown (1.1) regress/mdoc/Cm/font.out_markdown (1.1) regress/mdoc/Cm/noarg.out_markdown (1.1) regress/mdoc/Dd/badarg.out_markdown (1.1) regress/mdoc/Dd/dupe.out_markdown (1.1) regress/mdoc/Dd/late.out_markdown (1.1) regress/mdoc/Dd/long.out_markdown (1.1) regress/mdoc/Dd/manarg.out_markdown (1.1) regress/mdoc/Dd/order.out_markdown (1.1) regress/mdoc/Dl/spacing.out_markdown (1.1) regress/mdoc/Dq/empty.out_markdown (1.1) regress/mdoc/Dt/case.out_markdown (1.1) regress/mdoc/Dt/dupe.out_markdown (1.1) regress/mdoc/Dt/fourargs.out_markdown (1.1) regress/mdoc/Dt/late.out_markdown (1.1) regress/mdoc/Dt/missing.out_markdown (1.1) regress/mdoc/Dt/noarg.out_markdown (1.1) regress/mdoc/Dt/nobody.out_markdown (1.1) regress/mdoc/Dt/nosec.out_markdown (1.1) regress/mdoc/Dt/order.out_markdown (1.1) regress/mdoc/Dv/font.out_markdown (1.1) regress/mdoc/Dv/noarg.out_markdown (1.1) regress/mdoc/Em/font.out_markdown (1.1) regress/mdoc/Em/noarg.out_markdown (1.1) regress/mdoc/Em/punct.out_markdown (1.1) regress/mdoc/Eo/break.out_markdown (1.1) regress/mdoc/Eo/obsolete.out_markdown (1.1) regress/mdoc/Eo/unclosed.out_markdown (1.1) regress/mdoc/Er/font.out_markdown (1.1) regress/mdoc/Er/noarg.out_markdown (1.1) regress/mdoc/Ev/font.out_markdown (1.1) regress/mdoc/Ev/noarg.out_markdown (1.1) regress/mdoc/Ex/args.out_markdown (1.1) regress/mdoc/Ex/noname.out_markdown (1.1) regress/mdoc/Ex/nostd.out_markdown (1.1) regress/mdoc/Fd/break.out_markdown (1.1) regress/mdoc/Fd/eos.out_markdown (1.1) regress/mdoc/Fd/font.out_markdown (1.1) regress/mdoc/Fl/font.out_markdown (1.1) regress/mdoc/Fl/multiarg.out_markdown (1.1) regress/mdoc/Fl/noarg.out_markdown (1.1) regress/mdoc/Fl/punct.out_markdown (1.1) regress/mdoc/Fo/basic.out_markdown (1.1) regress/mdoc/Fo/break.out_markdown (1.1) regress/mdoc/Fo/eos.out_markdown (1.1) regress/mdoc/Fo/font.out_markdown (1.1) regress/mdoc/Fo/noarg.out_markdown (1.1) regress/mdoc/Fo/nohead.out_markdown (1.1) regress/mdoc/Fo/obsolete.out_markdown (1.1) regress/mdoc/Fo/punct.out_markdown (1.1) regress/mdoc/Fo/section.out_markdown (1.1) regress/mdoc/Fo/warn.out_markdown (1.1) regress/mdoc/Ft/font.out_markdown (1.1) regress/mdoc/Ic/font.out_markdown (1.1) regress/mdoc/Ic/noarg.out_markdown (1.1) regress/mdoc/In/eos.out_markdown (1.1) regress/mdoc/In/font.out_markdown (1.1) regress/mdoc/Lb/badargs.out_markdown (1.1) regress/mdoc/Lb/break.out_markdown (1.1) regress/mdoc/Lb/eos.out_markdown (1.1) regress/mdoc/Li/font.out_markdown (1.1) regress/mdoc/Li/punct.out_markdown (1.1) regress/mdoc/Lk/link.out_markdown (1.1) regress/mdoc/Lk/noarg.out_markdown (1.1) regress/mdoc/Ms/font.out_markdown (1.1) regress/mdoc/Ms/noarg.out_markdown (1.1) regress/mdoc/Mt/simple.out_markdown (1.1) regress/mdoc/Nd/hyph.out_markdown (1.1) regress/mdoc/Nd/noarg.out_markdown (1.1) regress/mdoc/Nd/par.out_markdown (1.1) regress/mdoc/Nm/break.out_markdown (1.1) regress/mdoc/Nm/broken.out_markdown (1.1) regress/mdoc/Nm/empty.out_markdown (1.1) regress/mdoc/Nm/font.out_markdown (1.1) regress/mdoc/Nm/long.out_markdown (1.1) regress/mdoc/Nm/par.out_markdown (1.1) regress/mdoc/Nm/parns.out_markdown (1.1) regress/mdoc/Nm/punct.out_markdown (1.1) regress/mdoc/No/punct.out_markdown (1.1) regress/mdoc/No/spacing.out_markdown (1.1) regress/mdoc/Ns/position.out_markdown (1.1) regress/mdoc/Ns/punct.out_markdown (1.1) regress/mdoc/Oo/punct.out_markdown (1.1) regress/mdoc/Op/break.out_markdown (1.1) regress/mdoc/Op/broken.out_markdown (1.1) regress/mdoc/Op/punct.out_markdown (1.1) regress/mdoc/Os/dupe.out_markdown (1.1) regress/mdoc/Os/late.out_markdown (1.1) regress/mdoc/Os/long.out_markdown (1.1) regress/mdoc/Os/missing.out_markdown (1.1) regress/mdoc/Ox/keep.out_markdown (1.1) regress/mdoc/Pa/font.out_markdown (1.1) regress/mdoc/Pa/punct.out_markdown (1.1) regress/mdoc/Pf/spacing.out_markdown (1.1) regress/mdoc/Pp/arg.out_markdown (1.1) regress/mdoc/Qq/empty.out_markdown (1.1) regress/mdoc/Rs/allch.out_markdown (1.1) regress/mdoc/Rs/args.out_markdown (1.1) regress/mdoc/Rs/break.out_markdown (1.1) regress/mdoc/Rs/empty.out_markdown (1.1) regress/mdoc/Rs/three_authors.out_markdown (1.1) regress/mdoc/Rv/args.out_markdown (1.1) regress/mdoc/Rv/nostd.out_markdown (1.1) regress/mdoc/Sh/badNAME.out_markdown (1.1) regress/mdoc/Sh/before.out_markdown (1.1) regress/mdoc/Sh/empty.out_markdown (1.1) regress/mdoc/Sh/emptyNAME.out_markdown (1.1) regress/mdoc/Sh/first.out_markdown (1.1) regress/mdoc/Sh/nohead.out_markdown (1.1) regress/mdoc/Sh/order.out_markdown (1.1) regress/mdoc/Sh/orderNAME.out_markdown (1.1) regress/mdoc/Sh/punctNAME.out_markdown (1.1) regress/mdoc/Sh/subbefore.out_markdown (1.1) Changed: regress/mdoc/Ad/Makefile (1.2), "Exp", lines: +2 -1 regress/mdoc/Ap/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Aq/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Ar/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/At/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Bl/Makefile (1.3), "Exp", lines: +5 -0 regress/mdoc/Brq/Makefile (1.2), "Exp", lines: +2 -1 regress/mdoc/Bx/Makefile (1.2), "Exp", lines: +2 -1 regress/mdoc/Cd/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Cm/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Dd/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Dl/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Dq/Makefile (1.2), "Exp", lines: +2 -1 regress/mdoc/Dt/Makefile (1.2), "Exp", lines: +2 -0 regress/mdoc/Dv/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Em/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Eo/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Er/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Ev/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Ex/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Fd/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Fl/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Fo/Makefile (1.2), "Exp", lines: +2 -0 regress/mdoc/Ft/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Ic/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/In/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Lb/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Li/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Lk/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Ms/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Mt/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Nd/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Nm/Makefile (1.3), "Exp", lines: +3 -0 regress/mdoc/No/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Ns/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Oo/Makefile (1.2), "Exp", lines: +2 -1 regress/mdoc/Op/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Os/Makefile (1.2), "Exp", lines: +2 -0 regress/mdoc/Ox/Makefile (1.2), "Exp", lines: +2 -1 regress/mdoc/Pa/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Pf/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Pp/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Qq/Makefile (1.2), "Exp", lines: +2 -1 regress/mdoc/Rs/Makefile (1.3), "Exp", lines: +1 -0 regress/mdoc/Rv/Makefile (1.2), "Exp", lines: +1 -0 regress/mdoc/Sh/Makefile (1.2), "Exp", lines: +2 -0 first batch of -T markdown tests 2017-03-05 19:57 schwarze Changed: regress/regress.pl (1.4), "Exp", lines: +33 -5 regress/regress.pl.1 (1.2), "Exp", lines: +7 -3 Infrastructure for -T markdown tests. This is needed because -T marksdown is expected to receive less maintenance than -T ascii, so we need automation to make sure that regular parser maintenance doesn't break this output mode. 2017-03-04 21:41 schwarze Changed: mdoc_man.c (1.105), "Exp", lines: +3 -5 mdoc_markdown.c (1.2), "Exp", lines: +3 -5 Remove a redundant condition in .%T handling, no functional change. Found by jsg@ with scan-build. 2017-03-04 17:17 schwarze Changed: mandoc.1 (1.176), "Exp", lines: +21 -13 Make the description of -K autodetection easer to understand. Basic idea suggested by jmc@, OK jmc@. 2017-03-04 16:44 schwarze Changed: Makefile (1.488.2.11), "Exp", lines: +7 -7 configure (1.43.2.13), "Exp", lines: +11 -8 configure.local.example (1.14.2.9), "Exp", lines: +8 -1 Merge Makefile 1.507, configure 1.62, configure.local.example 1.30: relative symlinks for program files 2017-03-04 16:36 schwarze Changed: Makefile (1.507), "Exp", lines: +7 -7 configure (1.62), "Exp", lines: +11 -8 configure.local.example (1.30), "Exp", lines: +8 -1 Debian needs relative symlinks not only for manual pages, but also for program files. Issue reported by Michael <Stapelberg at debian dot org> and by Markus <Waldeck at gmx dot de>. 2017-03-03 15:05 schwarze Changed: mdoc_argv.c (1.110), "Exp", lines: +10 -9 Markdown output mode helped us to find the first parser bug (as such, this bug could cause wrong output in other modes as well): Do not misinterpret tab characters as .Ta macros when they appear on non-column .It lines in non-column .Bl lists that are nested inside a parent .Bl -column list. (Admittedly, such constructions are not very useful; don't use them!) Found by tb@ with afl(1) because the resulting tree corruption triggered an assertion in the markdown output module. 2017-03-03 14:23 schwarze Added: mdoc_markdown.c (1.1) Changed: Makefile (1.506), "Exp", lines: +4 -3 TODO (1.235), "Exp", lines: +1 -7 main.c (1.285), "Exp", lines: +7 -1 main.h (1.27), "Exp", lines: +3 -1 mandoc.1 (1.175), "Exp", lines: +33 -3 new -mdoc -Tmarkdown output mode; OK millert@ reyk@ tb@; thanks to reyk@ and to Vsevolod at FreeBSD for suggesting it 2017-03-03 13:55 schwarze Changed: man.c (1.168), "Exp", lines: +2 -2 mdoc.c (1.261), "Exp", lines: +2 -2 mdoc_html.c (1.273), "Exp", lines: +2 -2 roff.c (1.291), "Exp", lines: +2 -2 remove a few redundant conditions that jsg@ found with cppcheck 2017-03-03 13:41 schwarze Changed: mandocdb.c (1.245), "Exp", lines: +2 -2 Fix a copy-and-paste error that caused man(7) manuals without a section number in .TH to be misinterpreted as preformatted. Found by jsg@ with cppcheck. 2017-03-03 13:11 schwarze Changed: mansearch.c (1.69), "Exp", lines: +1 -0 A missing initialization could randomly cause regular expression searches to be case-insensitive that ought to be case sensitive. Found by jsg@ with scan-build. 2017-03-03 11:50 schwarze Changed: roff.c (1.290), "Exp", lines: +2 -2 Fix previous: do not access the byte before the string if the string is empty; found by jsg@ with afl(1). 2017-02-22 16:20 schwarze Changed: cgi.c (1.148), "Exp", lines: +17 -1 Pledge man.cgi(8). Based on a more complicated patch from semarie@. Sebastien and tb@ both agree with the simplification. 2017-02-22 14:58 schwarze Changed: main.c (1.284), "Exp", lines: +3 -3 Since SQLite is gone, we no longer need the "flock" pledge. Patch from semarie@, OK tb@. 2017-02-22 09:41 schwarze Changed: INSTALL (1.15.2.4), "Exp", lines: +8 -1 NEWS (1.21.2.1), "Exp", lines: +19 -24 warn that this is not the newest release 2017-02-22 08:54 schwarze Changed: mdoc_html.c (1.272), "Exp", lines: +2 -1 Handle an odd edge case where .It is preceded by .Sm. NULL dereference in man.cgi reported by Gabriel Guzman <gabe at guzman dash nunez dot com> on misc@. 2017-02-22 00:05 schwarze Changed: Makefile (1.488.2.10), "Exp", lines: +2 -3 merge revision 1.505: Debian wants relative, not absolute symlinks for man pages; suggested by Michael Stapelberg 2017-02-22 00:00 schwarze Changed: Makefile (1.505), "Exp", lines: +2 -3 Debian wants relative, not absolute symlinks for man pages; suggested by Michael Stapelberg 2017-02-21 23:44 schwarze Changed: roff.7 (1.76), "Exp", lines: +3 -3 fix spelling error; found by Michael <Stapelberg at debian dot org> with Lintian 2017-02-21 17:57 schwarze Changed: INSTALL (1.15.2.3), "Exp", lines: +12 -7 Makefile (1.488.2.9), "Exp", lines: +34 -2 provide the regression suite for 1.13, too 2017-02-21 17:04 schwarze Changed: INSTALL (1.15.2.2), "Exp", lines: +5 -6 Makefile (1.488.2.8), "Exp", lines: +6 -9 configure (1.43.2.12), "Exp", lines: +9 -35 configure.local.example (1.14.2.8), "Exp", lines: +1 -10 main.c (1.273.2.9), "Exp", lines: +1 -21 Drop support for building without SQLite. There whole point of the 1.13 branch is SQLite support after all. 2017-02-21 16:25 schwarze Changed: INSTALL (1.15.2.1), "Exp", lines: +5 -5 LICENSE (1.13.2.1), "Exp", lines: +2 -2 Makefile (1.488.2.7), "Exp", lines: +6 -10 configure (1.43.2.11), "Exp", lines: +3 -3 configure.local.example (1.14.2.7), "Exp", lines: +2 -2 first step of 1.13.5 release preparations 2017-02-21 00:37 tag VERSION_1_14_1 2017-02-21 00:37 schwarze Changed: LICENSE (1.15), "Exp", lines: +2 -2 NEWS (1.21), "Exp", lines: +21 -13 release 1.14.1 2017-02-18 17:33 schwarze Changed: read.c (1.150.2.8), "Exp", lines: +4 -4 merge revision 1.161: resolve trivial differences with OpenBSD 2017-02-18 17:29 schwarze Changed: read.c (1.161), "Exp", lines: +2 -4 resolve trivial differences with OpenBSD: * we include <sys/types.h> for size_t, so we don't need <stdint.h> * sort declarations in read_whole_file() 2017-02-18 15:29 schwarze Changed: Makefile (1.504), "Exp", lines: +29 -1 add some regress targets 2017-02-18 13:43 schwarze Changed: libmandoc.h (1.66), "Exp", lines: +2 -2 preconv.c (1.16), "Exp", lines: +7 -7 preconv_encode() can take a const input buffer; diff from <christos at NetBSD> 2017-02-18 13:16 schwarze Changed: Makefile (1.488.2.6), "Exp", lines: +47 -8 merge revision 1.503: uninstall target 2017-02-18 13:05 schwarze Changed: Makefile (1.503), "Exp", lines: +51 -8 Provide an uninstall target, to help cleaning up after installing with the wrong DESTDIR. Use with care. 2017-02-18 12:24 schwarze Added: test-O_DIRECTORY.c (1.1) Changed: Makefile (1.502), "Exp", lines: +2 -1 catman.c (1.21), "Exp", lines: +1 -5 compat_fts.c (1.14), "Exp", lines: +1 -7 configure (1.61), "Exp", lines: +4 -1 configure.local.example (1.29), "Exp", lines: +2 -1 proper test for O_DIRECTORY 2017-02-18 11:53 schwarze Changed: TODO (1.234), "Exp", lines: +2 -5 double quotes were fixed, finally 2017-02-17 19:15 schwarze Added: regress/mdoc/Rs/allch.out_utf8 (1.1) regress/mdoc/Rs/break.out_utf8 (1.1) regress/mdoc/Rs/empty.out_utf8 (1.1) regress/mdoc/Rs/three_authors.out_utf8 (1.1) Changed: mdoc_man.c (1.104), "Exp", lines: +3 -5 mdoc_term.c (1.346), "Exp", lines: +5 -3 regress/mdoc/Rs/Makefile (1.2), "Exp", lines: +1 -0 Use typographic quotes rather than '"' for .Rs %T (no change for -Tascii output, of course). Patch from bentley@ in November 2014. This can be committed now because groff merged Anthony's patch yesterday. 2017-02-17 18:28 schwarze Changed: chars.c (1.69), "Exp", lines: +3 -3 regress/mdoc/Dq/empty.out_ascii (1.2), "Exp", lines: +1 -2 regress/mdoc/Lb/badargs.out_ascii (1.2), "Exp", lines: +2 -2 regress/mdoc/Lb/break.out_ascii (1.2), "Exp", lines: +2 -2 regress/mdoc/Lb/eos.out_ascii (1.2), "Exp", lines: +1 -1 regress/mdoc/Op/broken.out_ascii (1.2), "Exp", lines: +2 -2 regress/mdoc/St/badargs.out_ascii (1.2), "Exp", lines: +2 -2 regress/mdoc/St/call.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/cond/before-Dd.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/de/escname.out_ascii (1.2), "Exp", lines: +1 -1 regress/roff/esc/c.out_ascii (1.2), "Exp", lines: +1 -1 Many people have been complaining for a long time that ``...'' looks ugly in -Tascii output. For that reason, bentley@ submitted patches to render "..." instead to groff in November 2014 (yes, more than two years ago). Carsten Kunze yesterday merged them for the upcoming groff-1.22.4 release. Yay! Consequently, do the same in mandoc: Render \(Lq and \(Rq (which are used for .Do, .Dq, .Lb, and .St) as '"' in -Tascii output. All other output modes including -Tutf8 remain unchanged. 2017-02-17 17:43 schwarze Changed: regress/man/IP/literal.in (1.2), "Exp", lines: +40 -0 regress/man/IP/literal.out_ascii (1.2), "Exp", lines: +29 -2 more tests for .IP/.nf interaction that i forgot to commit 2017-02-17 14:50 schwarze Changed: configure (1.43.2.10), "Exp", lines: +5 -2 main.c (1.273.2.8), "Exp", lines: +2 -2 mandocdb.c (1.220.2.12), "Exp", lines: +3 -3 merge small style improvements from christos@ to the 1.13 branch 2017-02-17 14:45 schwarze Changed: mandocdb.c (1.244), "Exp", lines: +2 -2 No need to cast NULL when assigning it to a variable; from Christos Zoulas <christos at NetBSD>. 2017-02-17 14:43 schwarze Changed: dba.c (1.10), "Exp", lines: +7 -7 dbm_map.c (1.8), "Exp", lines: +2 -2 Improve clarity of some casts; from Christos Zoulas <christos at NetBSD>. 2017-02-17 14:40 schwarze Changed: configure (1.60), "Exp", lines: +5 -2 Make the directory explicit where source files are located. This is simple and seems to help the NetBSD build infrastructure. From Christos Zoulas <christos at NetBSD>. 2017-02-17 14:31 schwarze Changed: catman.c (1.20), "Exp", lines: +3 -3 libmandoc.h (1.65), "Exp", lines: +2 -2 main.c (1.283), "Exp", lines: +2 -2 mandoc_aux.h (1.6), "Exp", lines: +2 -2 mandocd.c (1.5), "Exp", lines: +2 -2 mandocdb.c (1.243), "Exp", lines: +2 -2 tag.c (1.18), "Exp", lines: +2 -2 term_ps.c (1.83), "Exp", lines: +2 -2 Be consistent in protecting __attribute__ attributes with __; from Christos Zoulas <christos @ NetBSD>. 2017-02-17 03:03 schwarze Changed: roff.c (1.289), "Exp", lines: +12 -4 Fix a read buffer overrun that copied random data from memory into text nodes when a string passed to deroff() ended in a backslash and the byte after the terminating NUL was non-NUL, found by tb@ with afl(1). Invalid bytes so copied with the high bit set could later sometimes trigger another out of bounds read access to static memory in roff_strdup(), so add an assertion there to abort safely in case of similar data corruption. 2017-02-16 16:21 schwarze Changed: Makefile (1.488.2.5), "Exp", lines: +7 -7 configure (1.43.2.9), "Exp", lines: +4 -2 configure.local.example (1.14.2.6), "Exp", lines: +11 -2 Merge Makefile 1.501, configure 1.59, configure.local.example 1.28: add $(LN) configuration variable 2017-02-16 16:19 schwarze Changed: main.c (1.273.2.7), "Exp", lines: +23 -18 merge revision 1.282: fix apropos -O 2017-02-16 16:09 schwarze Changed: Makefile (1.501), "Exp", lines: +6 -6 configure (1.59), "Exp", lines: +4 -2 configure.local.example (1.28), "Exp", lines: +11 -2 add $(LN) configuration variable; requested by Michael <Stapelberg@debian.org> 2017-02-16 15:19 schwarze Changed: configure.local.example (1.27), "Exp", lines: +3 -3 fix previous: stupid typo 2017-02-16 15:12 schwarze Changed: Makefile (1.500), "Exp", lines: +5 -3 catman.c (1.19), "Exp", lines: +3 -3 configure (1.58), "Exp", lines: +4 -1 configure.local.example (1.26), "Exp", lines: +7 -2 Provide a variable BINM_CATMAN. Suggested by Michael <Stapelberg@debian.org>. 2017-02-16 14:38 schwarze Changed: NEWS (1.20), "Exp", lines: +3 -1 mdoc.7 (1.262), "Exp", lines: +4 -6 mdoc_term.c (1.345), "Exp", lines: +11 -5 regress/mdoc/Bl/breakingTa.in (1.2), "Exp", lines: +1 -1 Surprisingly, groff does not support scaling units in .Bl -column column width specifiers, so stop supporting them, too. As a side effect, this fixes an assertion failure that tb@ found with afl(1), triggered by: .Bl -column -4n 2017-02-16 10:56 schwarze Changed: main.c (1.282), "Exp", lines: +23 -18 Fix rev. 1.280: -O syntax is different in default apropos(1) output mode and in other output modes, so do not error out prematurely. Also sort local variables in main() while here. 2017-02-16 09:47 schwarze Changed: mdoc_macro.c (1.217), "Exp", lines: +6 -3 regress/mdoc/break/twice.in (1.2), "Exp", lines: +14 -5 regress/mdoc/break/twice.out_ascii (1.2), "Exp", lines: +9 -5 regress/mdoc/break/twice.out_lint (1.2), "Exp", lines: +3 -0 Fix block scoping error if an explicit block is broken by two implicit blocks (.Aq Bq Po .Pc) that left the outer breaker open and could in exceptional cases, like between .Bl and .It, cause tree corruption leading to NULL dereference. Found by tb@ with afl(1). While here, do not mark intermediate ENDBODY markers as broken. 2017-02-16 03:00 schwarze Changed: libmdoc.h (1.109), "Exp", lines: +2 -2 mdoc.c (1.260), "Exp", lines: +3 -3 mdoc_html.c (1.271), "Exp", lines: +1 -3 mdoc_macro.c (1.216), "Exp", lines: +4 -4 mdoc_man.c (1.103), "Exp", lines: +1 -4 mdoc_term.c (1.344), "Exp", lines: +1 -9 roff.h (1.40), "Exp", lines: +2 -3 Remove the ENDBODY_NOSPACE flag, simplifying the code. Comparing to groff output, it appears that all cases where it was used and made a difference actually require the opposite, ENDBODY_SPACE. I have no idea why i added it back in 2010; maybe to compensate for some other bug that has long been fixed. 2017-02-15 15:58 schwarze Changed: compat_fts.c (1.13), "Exp", lines: +7 -8 Style improvement, no functional change. As reported by Yuri Pankov, some versions of GCC whine that "tmp" might be used uninitialized in fts_open(3). Clearly, that cannot actually happen, but explicitly setting it to NULL is safer anyway. While here, rename the badly named variable "tmp" and make the inner "if" easier to understand. Feedback and OK guenther@ 2017-02-15 14:10 schwarze Changed: man_term.c (1.191), "Exp", lines: +2 -2 Fix previous: I forgot that i had to change the convention how a node is marked as "not a macro" when unifying the parsers. Confirmed to work by Sevan Janiyan. 2017-02-12 14:19 schwarze Added: regress/eqn/matrix/empty.in (1.1) regress/eqn/matrix/empty.out_ascii (1.1) regress/eqn/matrix/empty.out_html (1.1) Changed: NEWS (1.19), "Exp", lines: +3 -1 eqn_term.c (1.9), "Exp", lines: +8 -5 regress/eqn/matrix/Makefile (1.2), "Exp", lines: +2 -2 regress/eqn/unary/sqrt.in (1.2), "Exp", lines: +2 -2 regress/eqn/unary/sqrt.out_ascii (1.2), "Exp", lines: +2 -2 regress/eqn/unary/sqrt.out_html (1.2), "Exp", lines: +1 -1 Do not access a NULL pointer if a matrix or square root are empty. Crashes found by tb@ with afl(1). 2017-02-11 21:49 schwarze Changed: man_term.c (1.190), "Exp", lines: +3 -2 Do not read one element past the end of the static const termacts array. Bug found by Sevan Janiyan <venture37 at geeklan dot co dot uk> who ran the OpenBSD mandoc test suite on Ubuntu on POWER8 (sic!) and reported that mdoc/Sh/before.in failed in -Tman mode. If that isn't power testing, i don't know... 2017-02-11 20:22 schwarze Added: regress/mdoc/Bl/breakingTa.in (1.1) regress/mdoc/Bl/breakingTa.out_ascii (1.1) regress/mdoc/Nm/broken.out_lint (1.1) Changed: regress/mdoc/Bl/Makefile (1.2), "Exp", lines: +8 -3 regress/mdoc/Nd/broken.in (1.2), "Exp", lines: +8 -0 regress/mdoc/Nd/broken.out_ascii (1.2), "Exp", lines: +3 -1 regress/mdoc/Nd/broken.out_lint (1.2), "Exp", lines: +1 -0 regress/mdoc/Nm/Makefile (1.2), "Exp", lines: +1 -1 regress/mdoc/Nm/broken.in (1.2), "Exp", lines: +12 -1 regress/mdoc/Nm/broken.out_ascii (1.2), "Exp", lines: +5 -2 regress/mdoc/break/tail.in (1.2), "Exp", lines: +13 -2 regress/mdoc/break/tail.out_ascii (1.2), "Exp", lines: +5 -2 regress/mdoc/break/tail.out_lint (1.2), "Exp", lines: +1 -0 new regression tests for mdoc_macro.c revs. 1.211-1.215 2017-02-11 17:53 schwarze Changed: regress/char/unicode/Makefile (1.3), "Exp", lines: +1 -1 Disable three UTF-8 tests that expose bugs in wcwidth(3) in the native C libraries of illumos, Oracle Solaris 11, and SunOS 5.10. While it is useful to catch wcwidth(3) regressions on OpenBSD, the purpose of the *portable* mandoc regression suite is not to check the C library of the host system; that would just hide genuine mandoc portability issues in the noise. The remaining UTF-8 tests are still sufficient to establish that mandoc does the right thing. Issues reported by Sevan Janiyan <venture37 at geeklan dot co dot uk> after testing on OmniOS. 2017-02-11 15:47 schwarze Changed: NEWS (1.18), "Exp", lines: +3 -1 mdoc_macro.c (1.215), "Exp", lines: +5 -4 Never look for broken blocks inside blocks that are already closed. Fixes the last the of tree corruptions sometimes causing NULL dereference reported by tb@; this one triggered in cases like: .Bl -column .It Pq Ta 2017-02-11 14:11 schwarze Changed: NEWS (1.17), "Exp", lines: +4 -2 mdoc_macro.c (1.214), "Exp", lines: +9 -3 Do not prematurely close .Nd containing a broken child. Fixes tree corruption leading to NULL dereference in insane cases like .Oo Oo .Nd .Pq Oc .Oc Oc found by tb@ with afl(1). 2017-02-11 13:24 schwarze Changed: mdoc_macro.c (1.213), "Exp", lines: +17 -10 Do not prematurely mark intermediate blocks as broken while scanning backwards. Only do so when a block is found that is actually broken. Logic error found while investigating crashes reported by tb@. 2017-02-10 22:19 schwarze Changed: mdoc_macro.c (1.212), "Exp", lines: +8 -7 For child macros of block-end macros, only scan backwards for pending breakers unless the parent of the block is already closed. While the scanning is needed in cases like ".Ac Bo" for broken Ao, it is useless and crashy in cases like ".Ac Bc" for non-broken Ao. This fixes a NULL pointer dereference that tb@ found with afl(1). 2017-02-10 16:20 schwarze Changed: NEWS (1.16), "Exp", lines: +3 -1 mdoc_macro.c (1.211), "Exp", lines: +15 -7 In the SYNOPSIS, .Nm blocks can get broken if one of their children gets broken. In that case, mark them as BROKEN and ENDED and make sure they get closed out together with the child. Fixes tree corruption leeding to a NULL dereference found by tb@ with afl(1) in: .Sh SYNOPSIS .Bl .Oo .Nm .Bk .Oc .It (where .Bk is the child and .Oo is the breaker). A simpler form of the same corruption (without crash) is visible in: .Sh SYNOPSIS .Ao .Nm .Bo .Ac .Bc text where the text ended up inside the .Nm (child .Bo, breaker .Ao). 2017-02-10 15:57 schwarze Changed: main.c (1.273.2.6), "Exp", lines: +5 -3 manpath.c (1.30.2.2), "Exp", lines: +5 -2 merge main.c 1.281, manpath.c 1.33: -Ttree -Onoval 2017-02-10 15:45 schwarze Changed: NEWS (1.15), "Exp", lines: +6 -5 main.c (1.281), "Exp", lines: +5 -3 manconf.h (1.4), "Exp", lines: +1 -0 mandoc.1 (1.174), "Exp", lines: +15 -2 manpath.c (1.33), "Exp", lines: +5 -2 tree.c (1.73), "Exp", lines: +3 -1 In -Ttree output mode, show the BROKEN node flag and provide a -Onoval output option to show the unvalidated tree. 2017-02-09 20:53 schwarze Changed: catman.c (1.18), "Exp", lines: +4 -3 same as mandocdb.c rev. 1.196: for portability, use (char *)NULL in execlp(3) as discussed on tech@ OpenBSD (didn't blow up anywhere yet, but better safe than sorry) 2017-02-09 18:46 schwarze Changed: catman.c (1.17), "Exp", lines: +5 -1 Illumos doesn't have O_DIRECTORY. Work around that for now, may fix it better after the 1.14.1 release. Portability issue reported by Sevan Janiyan <venture37 at geeklan dot co dot uk>. 2017-02-09 15:34 schwarze Changed: regress/regress.pl (1.3), "Exp", lines: +2 -2 Escape literal braces in a regular expression. Deprecated perlre(1) syntax reported by Thomas Klausner and Sevan Janiyan. 2017-02-08 16:56 schwarze Changed: regress/regress.pl (1.2), "Exp", lines: +10 -6 On some systems (e.g. Solaris 11) diff(1) does not support -a. Make it easier to get rid of it. 2017-02-08 16:16 schwarze Changed: configure.local.example (1.25), "Exp", lines: +3 -1 mention that BUILD_CATMAN doesn't work on SunOS 5.9 and 5.10 2017-02-08 16:11 schwarze Added: test-cmsg.c (1.1) test-recvmsg.c (1.1) Changed: Makefile (1.499), "Exp", lines: +3 -1 catman.c (1.16), "Exp", lines: +5 -1 configure (1.57), "Exp", lines: +37 -2 configure.local.example (1.24), "Exp", lines: +7 -1 mandocd.c (1.4), "Exp", lines: +5 -1 config glue for recvmsg(2) and CMSG_FIRSTHDR(3); needed for Solaris 11 2017-02-08 14:50 schwarze Changed: catman.c (1.15), "Exp", lines: +19 -2 sendmsg(3) may block, so retry 2017-02-08 13:36 schwarze Changed: Makefile (1.498), "Exp", lines: +3 -3 even catman needs libmandoc on systems not having fts 2017-02-08 13:34 schwarze Changed: cgi.c (1.147), "Exp", lines: +3 -1 protect <err.h> inclusion 2017-02-08 12:24 schwarze Changed: INSTALL (1.18), "Exp", lines: +31 -20 LICENSE (1.14), "Exp", lines: +2 -1 Makefile (1.497), "Exp", lines: +7 -3 Makefile.depend (1.27), "Exp", lines: +2 -0 NEWS (1.14), "Exp", lines: +4 -2 more 1.14.1 release preparations 2017-02-08 12:20 schwarze Changed: TODO (1.233), "Exp", lines: +2 -2 reference a relevant mail for one TODO item 2017-02-08 12:19 schwarze Changed: regress/char/space/esct-mdoc.in (1.2), "Exp", lines: +1 -1 regress/mdoc/Bk/break.in (1.2), "Exp", lines: +1 -1 regress/mdoc/Bk/synopsis.in (1.2), "Exp", lines: +1 -1 remove some instances of Mdocdate 2017-02-08 12:18 schwarze Changed: regress/char/unicode/Makefile (1.2), "Exp", lines: +4 -1 disable some tests that expose wcwidth(3) differences among systems 2017-02-08 03:02 schwarze Added: regress/regress.pl (1.1) regress/regress.pl.1 (1.1) regress/char/Makefile (1.1) regress/char/Makefile.inc (1.1) regress/char/N/Makefile (1.1) regress/char/N/basic.in (1.1) regress/char/N/basic.out_ascii (1.1) regress/char/accent/Makefile (1.1) regress/char/accent/combine.in (1.1) regress/char/accent/combine.out_utf8 (1.1) regress/char/accent/nocombine.in (1.1) regress/char/accent/nocombine.out_ascii (1.1) regress/char/accent/nocombine.out_utf8 (1.1) regress/char/accent/utf8only.in (1.1) regress/char/accent/utf8only.out_utf8 (1.1) regress/char/bar/Makefile (1.1) regress/char/bar/man.in (1.1) regress/char/bar/man.out_ascii (1.1) regress/char/bar/mdoc.in (1.1) regress/char/bar/mdoc.out_ascii (1.1) regress/char/hyphen/Makefile (1.1) regress/char/hyphen/man.in (1.1) regress/char/hyphen/man.out_ascii (1.1) regress/char/hyphen/mdoc.in (1.1) regress/char/hyphen/mdoc.out_ascii (1.1) regress/char/space/Makefile (1.1) regress/char/space/break.in (1.1) regress/char/space/break.out_ascii (1.1) regress/char/space/eos-man.in (1.1) regress/char/space/eos-man.out_ascii (1.1) regress/char/space/eos.in (1.1) regress/char/space/eos.out_ascii (1.1) regress/char/space/esct-man.in (1.1) regress/char/space/esct-man.out_ascii (1.1) regress/char/space/esct-man.out_lint (1.1) regress/char/space/esct-mdoc.in (1.1) regress/char/space/esct-mdoc.out_ascii (1.1) regress/char/space/esct-mdoc.out_lint (1.1) regress/char/space/leading-man.in (1.1) regress/char/space/leading-man.out_ascii (1.1) regress/char/space/leading-mdoc.in (1.1) regress/char/space/leading-mdoc.out_ascii (1.1) regress/char/space/multiple.in (1.1) regress/char/space/multiple.out_ascii (1.1) regress/char/space/nobreak.in (1.1) regress/char/space/nobreak.out_ascii (1.1) regress/char/space/tab-man.in (1.1) regress/char/space/tab-man.out_ascii (1.1) regress/char/space/tab-man.out_lint (1.1) regress/char/space/tab.in (1.1) regress/char/space/tab.out_ascii (1.1) regress/char/space/tab.out_lint (1.1) regress/char/space/trailing-mdoc.in (1.1) regress/char/space/trailing-mdoc.out_ascii (1.1) regress/char/space/trailing-mdoc.out_lint (1.1) regress/char/space/zerowidth.in (1.1) regress/char/space/zerowidth.out_ascii (1.1) regress/char/space/zerowidth.out_html (1.1) regress/char/space/zerowidth.out_utf8 (1.1) regress/char/unicode/Makefile (1.1) regress/char/unicode/ascii.in (1.1) regress/char/unicode/ascii.out_ascii (1.1) regress/char/unicode/ascii.out_html (1.1) regress/char/unicode/ascii.out_utf8 (1.1) regress/char/unicode/input.in (1.1) regress/char/unicode/input.out_ascii (1.1) regress/char/unicode/input.out_lint (1.1) regress/char/unicode/input.out_utf8 (1.1) regress/char/unicode/invalid.in (1.1) regress/char/unicode/invalid.out_ascii (1.1) regress/char/unicode/invalid.out_html (1.1) regress/char/unicode/invalid.out_lint (1.1) regress/char/unicode/invalid.out_utf8 (1.1) regress/char/unicode/latin1.in (1.1) regress/char/unicode/latin1.out_ascii (1.1) regress/char/unicode/latin1.out_html (1.1) regress/char/unicode/latin1.out_utf8 (1.1) regress/char/unicode/latin1diff.in (1.1) regress/char/unicode/latin1diff.out_ascii (1.1) regress/char/unicode/latin1diff.out_html (1.1) regress/char/unicode/latin1diff.out_utf8 (1.1) regress/char/unicode/man.in (1.1) regress/char/unicode/man.out_utf8 (1.1) regress/char/unicode/mdoc.in (1.1) regress/char/unicode/mdoc.out_utf8 (1.1) regress/char/unicode/named.in (1.1) regress/char/unicode/named.out_ascii (1.1) regress/char/unicode/named.out_html (1.1) regress/char/unicode/named.out_utf8 (1.1) regress/char/unicode/namediff.in (1.1) regress/char/unicode/namediff.out_ascii (1.1) regress/char/unicode/namediff.out_html (1.1) regress/char/unicode/namediff.out_utf8 (1.1) regress/char/unicode/nogroff.in (1.1) regress/char/unicode/nogroff.out_ascii (1.1) regress/char/unicode/nogroff.out_html (1.1) regress/char/unicode/nogroff.out_utf8 (1.1) regress/eqn/Makefile (1.1) regress/eqn/Makefile.inc (1.1) regress/eqn/define/Makefile (1.1) regress/eqn/define/invalid.in (1.1) regress/eqn/define/invalid.out_ascii (1.1) regress/eqn/define/invalid.out_lint (1.1) regress/eqn/fromto/Makefile (1.1) regress/eqn/fromto/basic.in (1.1) regress/eqn/fromto/basic.out_ascii (1.1) regress/eqn/fromto/basic.out_html (1.1) regress/eqn/fromto/noarg.in (1.1) regress/eqn/fromto/noarg.out_ascii (1.1) regress/eqn/fromto/noarg.out_html (1.1) regress/eqn/matrix/Makefile (1.1) regress/eqn/matrix/basic.in (1.1) regress/eqn/matrix/basic.out_ascii (1.1) regress/eqn/matrix/basic.out_html (1.1) regress/eqn/nullary/Makefile (1.1) regress/eqn/nullary/roman.in (1.1) regress/eqn/nullary/roman.out_ascii (1.1) regress/eqn/nullary/roman.out_html (1.1) regress/eqn/over/Makefile (1.1) regress/eqn/over/noarg.in (1.1) regress/eqn/over/noarg.out_ascii (1.1) regress/eqn/over/noarg.out_html (1.1) regress/eqn/over/noarg.out_lint (1.1) regress/eqn/over/precedence.in (1.1) regress/eqn/over/precedence.out_ascii (1.1) regress/eqn/over/precedence.out_html (1.1) regress/eqn/size/Makefile (1.1) regress/eqn/size/basic.in (1.1) regress/eqn/size/basic.out_ascii (1.1) regress/eqn/subsup/Makefile (1.1) regress/eqn/subsup/combine.in (1.1) regress/eqn/subsup/combine.out_ascii (1.1) regress/eqn/subsup/combine.out_html (1.1) regress/eqn/subsup/noarg.in (1.1) regress/eqn/subsup/noarg.out_ascii (1.1) regress/eqn/subsup/noarg.out_html (1.1) regress/eqn/subsup/sub_group.in (1.1) regress/eqn/subsup/sub_group.out_ascii (1.1) regress/eqn/subsup/sub_group.out_html (1.1) regress/eqn/unary/Makefile (1.1) regress/eqn/unary/diacrit.in (1.1) regress/eqn/unary/diacrit.out_ascii (1.1) regress/eqn/unary/diacrit.out_html (1.1) regress/eqn/unary/sqrt.in (1.1) regress/eqn/unary/sqrt.out_ascii (1.1) regress/eqn/unary/sqrt.out_html (1.1) regress/man/Makefile (1.1) regress/man/Makefile.inc (1.1) regress/man/B/Makefile (1.1) regress/man/B/args.in (1.1) regress/man/B/args.out_ascii (1.1) regress/man/B/args.out_lint (1.1) regress/man/BI/Makefile (1.1) regress/man/BI/emptyargs.in (1.1) regress/man/BI/emptyargs.out_ascii (1.1) regress/man/BI/literal.in (1.1) regress/man/BI/literal.out_ascii (1.1) regress/man/EX/Makefile (1.1) regress/man/EX/args.in (1.1) regress/man/EX/args.out_ascii (1.1) regress/man/EX/nested.in (1.1) regress/man/EX/nested.out_ascii (1.1) regress/man/EX/spacing.in (1.1) regress/man/EX/spacing.out_ascii (1.1) regress/man/HP/Makefile (1.1) regress/man/HP/break.in (1.1) regress/man/HP/break.out_ascii (1.1) regress/man/HP/literal.in (1.1) regress/man/HP/literal.out_ascii (1.1) regress/man/HP/macrotag.in (1.1) regress/man/HP/macrotag.out_ascii (1.1) regress/man/HP/manyargs.in (1.1) regress/man/HP/manyargs.out_ascii (1.1) regress/man/HP/spacing.in (1.1) regress/man/HP/spacing.out_ascii (1.1) regress/man/IP/Makefile (1.1) regress/man/IP/empty.in (1.1) regress/man/IP/empty.out_ascii (1.1) regress/man/IP/empty.out_lint (1.1) regress/man/IP/literal.in (1.1) regress/man/IP/literal.out_ascii (1.1) regress/man/IP/longhead.in (1.1) regress/man/IP/longhead.out_ascii (1.1) regress/man/IP/manyargs.in (1.1) regress/man/IP/manyargs.out_ascii (1.1) regress/man/IP/spacing.in (1.1) regress/man/IP/spacing.out_ascii (1.1) regress/man/IP/width.in (1.1) regress/man/IP/width.out_ascii (1.1) regress/man/OP/Makefile (1.1) regress/man/OP/args.in (1.1) regress/man/OP/args.out_ascii (1.1) regress/man/OP/args.out_lint (1.1) regress/man/PD/Makefile (1.1) regress/man/PD/args.in (1.1) regress/man/PD/args.out_ascii (1.1) regress/man/PD/args.out_lint (1.1) regress/man/PD/nextline.in (1.1) regress/man/PD/nextline.out_ascii (1.1) regress/man/PD/spacing.in (1.1) regress/man/PD/spacing.out_ascii (1.1) regress/man/PP/Makefile (1.1) regress/man/PP/args.in (1.1) regress/man/PP/args.out_ascii (1.1) regress/man/PP/args.out_lint (1.1) regress/man/PP/empty.in (1.1) regress/man/PP/empty.out_ascii (1.1) regress/man/PP/empty.out_lint (1.1) regress/man/RS/Makefile (1.1) regress/man/RS/REarg.in (1.1) regress/man/RS/REarg.out_ascii (1.1) regress/man/RS/REarg.out_lint (1.1) regress/man/RS/breaking.in (1.1) regress/man/RS/breaking.out_ascii (1.1) regress/man/RS/broken.in (1.1) regress/man/RS/broken.out_ascii (1.1) regress/man/RS/empty.in (1.1) regress/man/RS/empty.out_ascii (1.1) regress/man/RS/empty.out_lint (1.1) regress/man/RS/literal.in (1.1) regress/man/RS/literal.out_ascii (1.1) regress/man/RS/lonelyRE.in (1.1) regress/man/RS/lonelyRE.out_ascii (1.1) regress/man/RS/lonelyRE.out_lint (1.1) regress/man/RS/nested.in (1.1) regress/man/RS/nested.out_ascii (1.1) regress/man/RS/noRE.in (1.1) regress/man/RS/noRE.out_ascii (1.1) regress/man/RS/noRE.out_lint (1.1) regress/man/RS/nowidth.in (1.1) regress/man/RS/nowidth.out_ascii (1.1) regress/man/RS/width.in (1.1) regress/man/RS/width.out_ascii (1.1) regress/man/SH/Makefile (1.1) regress/man/SH/broken.in (1.1) regress/man/SH/broken.out_ascii (1.1) regress/man/SH/broken.out_lint (1.1) regress/man/SH/broken_eline.in (1.1) regress/man/SH/broken_eline.out_ascii (1.1) regress/man/SH/broken_eline.out_lint (1.1) regress/man/SH/empty_before.in (1.1) regress/man/SH/empty_before.out_ascii (1.1) regress/man/SH/empty_before.out_lint (1.1) regress/man/SH/longarg.in (1.1) regress/man/SH/longarg.out_ascii (1.1) regress/man/SH/noarg.in (1.1) regress/man/SH/noarg.out_ascii (1.1) regress/man/SH/noarg.out_lint (1.1) regress/man/SS/Makefile (1.1) regress/man/SS/broken.in (1.1) regress/man/SS/broken.out_ascii (1.1) regress/man/SS/broken.out_lint (1.1) regress/man/SS/broken_eline.in (1.1) regress/man/SS/broken_eline.out_ascii (1.1) regress/man/SS/broken_eline.out_lint (1.1) regress/man/SS/longarg.in (1.1) regress/man/SS/longarg.out_ascii (1.1) regress/man/SS/noarg.in (1.1) regress/man/SS/noarg.out_ascii (1.1) regress/man/SS/noarg.out_lint (1.1) regress/man/TH/Makefile (1.1) regress/man/TH/baddate.in (1.1) regress/man/TH/baddate.out_ascii (1.1) regress/man/TH/baddate.out_lint (1.1) regress/man/TH/case.in (1.1) regress/man/TH/case.out_ascii (1.1) regress/man/TH/case.out_lint (1.1) regress/man/TH/emptydate.in (1.1) regress/man/TH/emptydate.out_ascii (1.1) regress/man/TH/emptydate.out_lint (1.1) regress/man/TH/isodate.in (1.1) regress/man/TH/isodate.out_ascii (1.1) regress/man/TH/longdate.in (1.1) regress/man/TH/longdate.out_ascii (1.1) regress/man/TH/longdate.out_lint (1.1) regress/man/TH/longtit.in (1.1) regress/man/TH/longtit.out_ascii (1.1) regress/man/TH/longvol.in (1.1) regress/man/TH/longvol.out_ascii (1.1) regress/man/TH/mdocdate.in (1.1) regress/man/TH/mdocdate.out_ascii (1.1) regress/man/TH/noTH.in (1.1) regress/man/TH/noTH.out_lint (1.1) regress/man/TH/noarg.in (1.1) regress/man/TH/noarg.out_ascii (1.1) regress/man/TH/noarg.out_lint (1.1) regress/man/TH/nobody.in (1.1) regress/man/TH/nobody.out_ascii (1.1) regress/man/TH/nobody.out_lint (1.1) regress/man/TH/onearg.in (1.1) regress/man/TH/onearg.out_ascii (1.1) regress/man/TH/onearg.out_lint (1.1) regress/man/TH/onlyyear.in (1.1) regress/man/TH/onlyyear.out_ascii (1.1) regress/man/TH/sixargs.in (1.1) regress/man/TH/sixargs.out_ascii (1.1) regress/man/TH/sixargs.out_lint (1.1) regress/man/TH/twoargs.in (1.1) regress/man/TH/twoargs.out_ascii (1.1) regress/man/TH/twoargs.out_lint (1.1) regress/man/TP/Makefile (1.1) regress/man/TP/badarg.in (1.1) regress/man/TP/badarg.out_ascii (1.1) regress/man/TP/broken.in (1.1) regress/man/TP/broken.out_ascii (1.1) regress/man/TP/broken.out_lint (1.1) regress/man/TP/double.in (1.1) regress/man/TP/double.out_ascii (1.1) regress/man/TP/double.out_lint (1.1) regress/man/TP/eof.in (1.1) regress/man/TP/eof.out_ascii (1.1) regress/man/TP/eof.out_lint (1.1) regress/man/TP/fill.in (1.1) regress/man/TP/fill.out_ascii (1.1) regress/man/TP/literal.in (1.1) regress/man/TP/literal.out_ascii (1.1) regress/man/TP/longhead.in (1.1) regress/man/TP/longhead.out_ascii (1.1) regress/man/TP/macrotag.in (1.1) regress/man/TP/macrotag.out_ascii (1.1) regress/man/TP/manyargs.in (1.1) regress/man/TP/manyargs.out_ascii (1.1) regress/man/TP/sameline.in (1.1) regress/man/TP/sameline.out_ascii (1.1) regress/man/TP/spacing.in (1.1) regress/man/TP/spacing.out_ascii (1.1) regress/man/TP/width.in (1.1) regress/man/TP/width.out_ascii (1.1) regress/man/TS/Makefile (1.1) regress/man/TS/break.in (1.1) regress/man/TS/break.out_ascii (1.1) regress/man/TS/break.out_lint (1.1) regress/man/TS/vspace.in (1.1) regress/man/TS/vspace.out_ascii (1.1) regress/man/UR/Makefile (1.1) regress/man/UR/args.in (1.1) regress/man/UR/args.out_ascii (1.1) regress/man/UR/args.out_lint (1.1) regress/man/UR/noUE.in (1.1) regress/man/UR/noUE.out_ascii (1.1) regress/man/UR/noUE.out_lint (1.1) regress/man/blank/Makefile (1.1) regress/man/blank/afterSH.in (1.1) regress/man/blank/afterSH.out_ascii (1.1) regress/man/blank/afterSH.out_lint (1.1) regress/man/blank/afterSS.in (1.1) regress/man/blank/afterSS.out_ascii (1.1) regress/man/blank/afterSS.out_lint (1.1) regress/man/blank/line.in (1.1) regress/man/blank/line.out_ascii (1.1) regress/man/blank/line.out_lint (1.1) regress/man/nf/Makefile (1.1) regress/man/nf/args.in (1.1) regress/man/nf/args.out_ascii (1.1) regress/man/nf/args.out_lint (1.1) regress/man/nf/dupe.in (1.1) regress/man/nf/dupe.out_ascii (1.1) regress/man/nf/dupe.out_lint (1.1) regress/man/nf/indent.in (1.1) regress/man/nf/indent.out_ascii (1.1) regress/man/nf/userdef.in (1.1) regress/man/nf/userdef.out_ascii (1.1) regress/man/nf/vert.in (1.1) regress/man/nf/vert.out_ascii (1.1) regress/mdoc/Makefile (1.1) regress/mdoc/Makefile.inc (1.1) regress/mdoc/Ad/Makefile (1.1) regress/mdoc/Ad/font.in (1.1) regress/mdoc/Ad/font.out_ascii (1.1) regress/mdoc/Ad/noarg.in (1.1) regress/mdoc/Ad/noarg.out_ascii (1.1) regress/mdoc/Ad/noarg.out_lint (1.1) regress/mdoc/An/Makefile (1.1) regress/mdoc/An/break.in (1.1) regress/mdoc/An/break.out_ascii (1.1) regress/mdoc/An/break.out_lint (1.1) regress/mdoc/Ap/Makefile (1.1) regress/mdoc/Ap/eos.in (1.1) regress/mdoc/Ap/eos.out_ascii (1.1) regress/mdoc/Ap/middle.in (1.1) regress/mdoc/Ap/middle.out_ascii (1.1) regress/mdoc/Aq/Makefile (1.1) regress/mdoc/Aq/author.in (1.1) regress/mdoc/Aq/author.out_ascii (1.1) regress/mdoc/Aq/author.out_utf8 (1.1) regress/mdoc/Aq/empty.in (1.1) regress/mdoc/Aq/empty.out_ascii (1.1) regress/mdoc/Aq/empty.out_utf8 (1.1) regress/mdoc/Ar/Makefile (1.1) regress/mdoc/Ar/font.in (1.1) regress/mdoc/Ar/font.out_ascii (1.1) regress/mdoc/Ar/punct.in (1.1) regress/mdoc/Ar/punct.out_ascii (1.1) regress/mdoc/At/Makefile (1.1) regress/mdoc/At/invalid.in (1.1) regress/mdoc/At/invalid.out_ascii (1.1) regress/mdoc/At/invalid.out_lint (1.1) regress/mdoc/Bd/Makefile (1.1) regress/mdoc/Bd/badargs.in (1.1) regress/mdoc/Bd/badargs.out_ascii (1.1) regress/mdoc/Bd/badargs.out_lint (1.1) regress/mdoc/Bd/beforeNAME.in (1.1) regress/mdoc/Bd/beforeNAME.out_ascii (1.1) regress/mdoc/Bd/beforeNAME.out_lint (1.1) regress/mdoc/Bd/blank.in (1.1) regress/mdoc/Bd/blank.out_ascii (1.1) regress/mdoc/Bd/blank.out_lint (1.1) regress/mdoc/Bd/break.in (1.1) regress/mdoc/Bd/break.out_ascii (1.1) regress/mdoc/Bd/break.out_lint (1.1) regress/mdoc/Bd/broken.in (1.1) regress/mdoc/Bd/broken.out_ascii (1.1) regress/mdoc/Bd/broken.out_lint (1.1) regress/mdoc/Bd/centered.in (1.1) regress/mdoc/Bd/centered.out_ascii (1.1) regress/mdoc/Bd/empty.in (1.1) regress/mdoc/Bd/empty.out_ascii (1.1) regress/mdoc/Bd/nested.in (1.1) regress/mdoc/Bd/nested.out_ascii (1.1) regress/mdoc/Bd/nested.out_lint (1.1) regress/mdoc/Bd/offset-empty.in (1.1) regress/mdoc/Bd/offset-empty.out_ascii (1.1) regress/mdoc/Bd/offset-neg.in (1.1) regress/mdoc/Bd/offset-neg.out_ascii (1.1) regress/mdoc/Bd/spacing.in (1.1) regress/mdoc/Bd/spacing.out_ascii (1.1) regress/mdoc/Bd/unclosed.in (1.1) regress/mdoc/Bd/unclosed.out_ascii (1.1) regress/mdoc/Bd/unclosed.out_lint (1.1) regress/mdoc/Bf/Makefile (1.1) regress/mdoc/Bf/badargs.in (1.1) regress/mdoc/Bf/badargs.out_ascii (1.1) regress/mdoc/Bf/badargs.out_lint (1.1) regress/mdoc/Bf/break.in (1.1) regress/mdoc/Bf/break.out_ascii (1.1) regress/mdoc/Bf/break.out_lint (1.1) regress/mdoc/Bf/broken.in (1.1) regress/mdoc/Bf/broken.out_ascii (1.1) regress/mdoc/Bf/broken.out_lint (1.1) regress/mdoc/Bf/multiargs.in (1.1) regress/mdoc/Bf/multiargs.out_ascii (1.1) regress/mdoc/Bf/multiargs.out_lint (1.1) regress/mdoc/Bf/nest.in (1.1) regress/mdoc/Bf/nest.out_ascii (1.1) regress/mdoc/Bk/Makefile (1.1) regress/mdoc/Bk/badarg.in (1.1) regress/mdoc/Bk/badarg.out_ascii (1.1) regress/mdoc/Bk/badarg.out_lint (1.1) regress/mdoc/Bk/break.in (1.1) regress/mdoc/Bk/break.out_ascii (1.1) regress/mdoc/Bk/broken.in (1.1) regress/mdoc/Bk/broken.out_ascii (1.1) regress/mdoc/Bk/broken.out_lint (1.1) regress/mdoc/Bk/inputlines.in (1.1) regress/mdoc/Bk/inputlines.out_ascii (1.1) regress/mdoc/Bk/lines.in (1.1) regress/mdoc/Bk/lines.out_ascii (1.1) regress/mdoc/Bk/synopsis.in (1.1) regress/mdoc/Bk/synopsis.out_ascii (1.1) regress/mdoc/Bl/Makefile (1.1) regress/mdoc/Bl/badargs.in (1.1) regress/mdoc/Bl/badargs.out_ascii (1.1) regress/mdoc/Bl/badargs.out_lint (1.1) regress/mdoc/Bl/bareIt.in (1.1) regress/mdoc/Bl/bareIt.out_ascii (1.1) regress/mdoc/Bl/bareIt.out_lint (1.1) regress/mdoc/Bl/bareTa.in (1.1) regress/mdoc/Bl/bareTa.out_ascii (1.1) regress/mdoc/Bl/bareTa.out_lint (1.1) regress/mdoc/Bl/break.in (1.1) regress/mdoc/Bl/break.out_ascii (1.1) regress/mdoc/Bl/break.out_lint (1.1) regress/mdoc/Bl/breakingIt.in (1.1) regress/mdoc/Bl/breakingIt.out_ascii (1.1) regress/mdoc/Bl/breakingIt.out_lint (1.1) regress/mdoc/Bl/broken.in (1.1) regress/mdoc/Bl/broken.out_ascii (1.1) regress/mdoc/Bl/broken.out_lint (1.1) regress/mdoc/Bl/bullet.in (1.1) regress/mdoc/Bl/bullet.out_ascii (1.1) regress/mdoc/Bl/colNoIt.in (1.1) regress/mdoc/Bl/colNoIt.out_ascii (1.1) regress/mdoc/Bl/column.in (1.1) regress/mdoc/Bl/column.out_ascii (1.1) regress/mdoc/Bl/column.out_lint (1.1) regress/mdoc/Bl/dash.in (1.1) regress/mdoc/Bl/dash.out_ascii (1.1) regress/mdoc/Bl/dash.out_utf8 (1.1) regress/mdoc/Bl/diag.in (1.1) regress/mdoc/Bl/diag.out_ascii (1.1) regress/mdoc/Bl/empty.in (1.1) regress/mdoc/Bl/empty.out_ascii (1.1) regress/mdoc/Bl/empty.out_lint (1.1) regress/mdoc/Bl/emptyhead.in (1.1) regress/mdoc/Bl/emptyhead.out_ascii (1.1) regress/mdoc/Bl/emptyhead.out_lint (1.1) regress/mdoc/Bl/emptyitem.in (1.1) regress/mdoc/Bl/emptyitem.out_ascii (1.1) regress/mdoc/Bl/emptyitem.out_lint (1.1) regress/mdoc/Bl/emptytag.in (1.1) regress/mdoc/Bl/emptytag.out_ascii (1.1) regress/mdoc/Bl/emptytag.out_lint (1.1) regress/mdoc/Bl/enum.in (1.1) regress/mdoc/Bl/enum.out_ascii (1.1) regress/mdoc/Bl/extend.in (1.1) regress/mdoc/Bl/extend.out_ascii (1.1) regress/mdoc/Bl/hang.in (1.1) regress/mdoc/Bl/hang.out_ascii (1.1) regress/mdoc/Bl/inset.in (1.1) regress/mdoc/Bl/inset.out_ascii (1.1) regress/mdoc/Bl/item.in (1.1) regress/mdoc/Bl/item.out_ascii (1.1) regress/mdoc/Bl/multitag.in (1.1) regress/mdoc/Bl/multitag.out_ascii (1.1) regress/mdoc/Bl/multitype.in (1.1) regress/mdoc/Bl/multitype.out_ascii (1.1) regress/mdoc/Bl/nested.in (1.1) regress/mdoc/Bl/nested.out_ascii (1.1) regress/mdoc/Bl/noIt.in (1.1) regress/mdoc/Bl/noIt.out_ascii (1.1) regress/mdoc/Bl/noIt.out_lint (1.1) regress/mdoc/Bl/notype.in (1.1) regress/mdoc/Bl/notype.out_ascii (1.1) regress/mdoc/Bl/notype.out_lint (1.1) regress/mdoc/Bl/offset.in (1.1) regress/mdoc/Bl/offset.out_ascii (1.1) regress/mdoc/Bl/ohang.in (1.1) regress/mdoc/Bl/ohang.out_ascii (1.1) regress/mdoc/Bl/secstart.in (1.1) regress/mdoc/Bl/secstart.out_ascii (1.1) regress/mdoc/Bl/tag.in (1.1) regress/mdoc/Bl/tag.out_ascii (1.1) regress/mdoc/Bl/tag.out_lint (1.1) regress/mdoc/Bl/unclosed.in (1.1) regress/mdoc/Bl/unclosed.out_ascii (1.1) regress/mdoc/Brq/Makefile (1.1) regress/mdoc/Brq/empty.in (1.1) regress/mdoc/Brq/empty.out_ascii (1.1) regress/mdoc/Bx/Makefile (1.1) regress/mdoc/Bx/args.in (1.1) regress/mdoc/Bx/args.out_ascii (1.1) regress/mdoc/Cd/Makefile (1.1) regress/mdoc/Cd/eos.in (1.1) regress/mdoc/Cd/eos.out_ascii (1.1) regress/mdoc/Cd/font.in (1.1) regress/mdoc/Cd/font.out_ascii (1.1) regress/mdoc/Cd/noarg.in (1.1) regress/mdoc/Cd/noarg.out_ascii (1.1) regress/mdoc/Cd/noarg.out_lint (1.1) regress/mdoc/Cm/Makefile (1.1) regress/mdoc/Cm/basic.in (1.1) regress/mdoc/Cm/basic.out_ascii (1.1) regress/mdoc/Cm/font.in (1.1) regress/mdoc/Cm/font.out_ascii (1.1) regress/mdoc/Cm/noarg.in (1.1) regress/mdoc/Cm/noarg.out_ascii (1.1) regress/mdoc/Cm/noarg.out_lint (1.1) regress/mdoc/D1/Makefile (1.1) regress/mdoc/D1/spacing.in (1.1) regress/mdoc/D1/spacing.out_ascii (1.1) regress/mdoc/D1/spacing.out_lint (1.1) regress/mdoc/Db/Makefile (1.1) regress/mdoc/Db/args.in (1.1) regress/mdoc/Db/args.out_ascii (1.1) regress/mdoc/Db/args.out_lint (1.1) regress/mdoc/Dd/Makefile (1.1) regress/mdoc/Dd/badarg.in (1.1) regress/mdoc/Dd/badarg.out_ascii (1.1) regress/mdoc/Dd/badarg.out_lint (1.1) regress/mdoc/Dd/dupe.in (1.1) regress/mdoc/Dd/dupe.out_ascii (1.1) regress/mdoc/Dd/dupe.out_lint (1.1) regress/mdoc/Dd/late.in (1.1) regress/mdoc/Dd/late.out_ascii (1.1) regress/mdoc/Dd/late.out_lint (1.1) regress/mdoc/Dd/long.in (1.1) regress/mdoc/Dd/long.out_ascii (1.1) regress/mdoc/Dd/long.out_lint (1.1) regress/mdoc/Dd/manarg.in (1.1) regress/mdoc/Dd/manarg.out_ascii (1.1) regress/mdoc/Dd/manarg.out_lint (1.1) regress/mdoc/Dd/noarg.in (1.1) regress/mdoc/Dd/noarg.out_lint (1.1) regress/mdoc/Dd/order.in (1.1) regress/mdoc/Dd/order.out_ascii (1.1) regress/mdoc/Dd/order.out_lint (1.1) regress/mdoc/Dl/Makefile (1.1) regress/mdoc/Dl/spacing.in (1.1) regress/mdoc/Dl/spacing.out_ascii (1.1) regress/mdoc/Dl/spacing.out_lint (1.1) regress/mdoc/Dq/Makefile (1.1) regress/mdoc/Dq/empty.in (1.1) regress/mdoc/Dq/empty.out_ascii (1.1) regress/mdoc/Dt/Makefile (1.1) regress/mdoc/Dt/badsec.in (1.1) regress/mdoc/Dt/badsec.out_lint (1.1) regress/mdoc/Dt/case.in (1.1) regress/mdoc/Dt/case.out_ascii (1.1) regress/mdoc/Dt/case.out_lint (1.1) regress/mdoc/Dt/dupe.in (1.1) regress/mdoc/Dt/dupe.out_ascii (1.1) regress/mdoc/Dt/dupe.out_lint (1.1) regress/mdoc/Dt/fourargs.in (1.1) regress/mdoc/Dt/fourargs.out_ascii (1.1) regress/mdoc/Dt/fourargs.out_lint (1.1) regress/mdoc/Dt/late.in (1.1) regress/mdoc/Dt/late.out_ascii (1.1) regress/mdoc/Dt/late.out_lint (1.1) regress/mdoc/Dt/missing.in (1.1) regress/mdoc/Dt/missing.out_ascii (1.1) regress/mdoc/Dt/missing.out_lint (1.1) regress/mdoc/Dt/noarg.in (1.1) regress/mdoc/Dt/noarg.out_ascii (1.1) regress/mdoc/Dt/noarg.out_lint (1.1) regress/mdoc/Dt/nobody.in (1.1) regress/mdoc/Dt/nobody.out_ascii (1.1) regress/mdoc/Dt/nobody.out_lint (1.1) regress/mdoc/Dt/nosec.in (1.1) regress/mdoc/Dt/nosec.out_ascii (1.1) regress/mdoc/Dt/nosec.out_lint (1.1) regress/mdoc/Dt/order.in (1.1) regress/mdoc/Dt/order.out_ascii (1.1) regress/mdoc/Dt/order.out_lint (1.1) regress/mdoc/Dv/Makefile (1.1) regress/mdoc/Dv/font.in (1.1) regress/mdoc/Dv/font.out_ascii (1.1) regress/mdoc/Dv/noarg.in (1.1) regress/mdoc/Dv/noarg.out_ascii (1.1) regress/mdoc/Dv/noarg.out_lint (1.1) regress/mdoc/Em/Makefile (1.1) regress/mdoc/Em/font.in (1.1) regress/mdoc/Em/font.out_ascii (1.1) regress/mdoc/Em/noarg.in (1.1) regress/mdoc/Em/noarg.out_ascii (1.1) regress/mdoc/Em/noarg.out_lint (1.1) regress/mdoc/Em/punct.in (1.1) regress/mdoc/Em/punct.out_ascii (1.1) regress/mdoc/Em/punct.out_lint (1.1) regress/mdoc/Eo/Makefile (1.1) regress/mdoc/Eo/break.in (1.1) regress/mdoc/Eo/break.out_ascii (1.1) regress/mdoc/Eo/break.out_lint (1.1) regress/mdoc/Eo/empty.in (1.1) regress/mdoc/Eo/empty.out_ascii (1.1) regress/mdoc/Eo/obsolete.in (1.1) regress/mdoc/Eo/obsolete.out_ascii (1.1) regress/mdoc/Eo/obsolete.out_lint (1.1) regress/mdoc/Eo/unclosed.in (1.1) regress/mdoc/Eo/unclosed.out_ascii (1.1) regress/mdoc/Eo/unclosed.out_lint (1.1) regress/mdoc/Er/Makefile (1.1) regress/mdoc/Er/font.in (1.1) regress/mdoc/Er/font.out_ascii (1.1) regress/mdoc/Er/noarg.in (1.1) regress/mdoc/Er/noarg.out_ascii (1.1) regress/mdoc/Er/noarg.out_lint (1.1) regress/mdoc/Ev/Makefile (1.1) regress/mdoc/Ev/font.in (1.1) regress/mdoc/Ev/font.out_ascii (1.1) regress/mdoc/Ev/noarg.in (1.1) regress/mdoc/Ev/noarg.out_ascii (1.1) regress/mdoc/Ev/noarg.out_lint (1.1) regress/mdoc/Ex/Makefile (1.1) regress/mdoc/Ex/args.in (1.1) regress/mdoc/Ex/args.out_ascii (1.1) regress/mdoc/Ex/noname.in (1.1) regress/mdoc/Ex/noname.out_ascii (1.1) regress/mdoc/Ex/noname.out_lint (1.1) regress/mdoc/Ex/nostd.in (1.1) regress/mdoc/Ex/nostd.out_ascii (1.1) regress/mdoc/Ex/nostd.out_lint (1.1) regress/mdoc/Fd/Makefile (1.1) regress/mdoc/Fd/break.in (1.1) regress/mdoc/Fd/break.out_ascii (1.1) regress/mdoc/Fd/empty.in (1.1) regress/mdoc/Fd/empty.out_ascii (1.1) regress/mdoc/Fd/empty.out_lint (1.1) regress/mdoc/Fd/eos.in (1.1) regress/mdoc/Fd/eos.out_ascii (1.1) regress/mdoc/Fd/font.in (1.1) regress/mdoc/Fd/font.out_ascii (1.1) regress/mdoc/Fl/Makefile (1.1) regress/mdoc/Fl/font.in (1.1) regress/mdoc/Fl/font.out_ascii (1.1) regress/mdoc/Fl/multiarg.in (1.1) regress/mdoc/Fl/multiarg.out_ascii (1.1) regress/mdoc/Fl/noarg.in (1.1) regress/mdoc/Fl/noarg.out_ascii (1.1) regress/mdoc/Fl/parsed.in (1.1) regress/mdoc/Fl/parsed.out_ascii (1.1) regress/mdoc/Fl/punct.in (1.1) regress/mdoc/Fl/punct.out_ascii (1.1) regress/mdoc/Fo/Makefile (1.1) regress/mdoc/Fo/basic.in (1.1) regress/mdoc/Fo/basic.out_ascii (1.1) regress/mdoc/Fo/break.in (1.1) regress/mdoc/Fo/break.out_ascii (1.1) regress/mdoc/Fo/eos.in (1.1) regress/mdoc/Fo/eos.out_ascii (1.1) regress/mdoc/Fo/font.in (1.1) regress/mdoc/Fo/font.out_ascii (1.1) regress/mdoc/Fo/noarg.in (1.1) regress/mdoc/Fo/noarg.out_ascii (1.1) regress/mdoc/Fo/noarg.out_lint (1.1) regress/mdoc/Fo/nohead.in (1.1) regress/mdoc/Fo/nohead.out_ascii (1.1) regress/mdoc/Fo/nohead.out_lint (1.1) regress/mdoc/Fo/obsolete.in (1.1) regress/mdoc/Fo/obsolete.out_ascii (1.1) regress/mdoc/Fo/obsolete.out_lint (1.1) regress/mdoc/Fo/punct.in (1.1) regress/mdoc/Fo/punct.out_ascii (1.1) regress/mdoc/Fo/section.in (1.1) regress/mdoc/Fo/section.out_ascii (1.1) regress/mdoc/Fo/warn.in (1.1) regress/mdoc/Fo/warn.out_ascii (1.1) regress/mdoc/Fo/warn.out_lint (1.1) regress/mdoc/Ft/Makefile (1.1) regress/mdoc/Ft/font.in (1.1) regress/mdoc/Ft/font.out_ascii (1.1) regress/mdoc/Ic/Makefile (1.1) regress/mdoc/Ic/font.in (1.1) regress/mdoc/Ic/font.out_ascii (1.1) regress/mdoc/Ic/noarg.in (1.1) regress/mdoc/Ic/noarg.out_ascii (1.1) regress/mdoc/Ic/noarg.out_lint (1.1) regress/mdoc/In/Makefile (1.1) regress/mdoc/In/break.in (1.1) regress/mdoc/In/break.out_ascii (1.1) regress/mdoc/In/eos.in (1.1) regress/mdoc/In/eos.out_ascii (1.1) regress/mdoc/In/font.in (1.1) regress/mdoc/In/font.out_ascii (1.1) regress/mdoc/In/noarg.in (1.1) regress/mdoc/In/noarg.out_ascii (1.1) regress/mdoc/In/noarg.out_lint (1.1) regress/mdoc/Lb/Makefile (1.1) regress/mdoc/Lb/badargs.in (1.1) regress/mdoc/Lb/badargs.out_ascii (1.1) regress/mdoc/Lb/badargs.out_lint (1.1) regress/mdoc/Lb/break.in (1.1) regress/mdoc/Lb/break.out_ascii (1.1) regress/mdoc/Lb/eos.in (1.1) regress/mdoc/Lb/eos.out_ascii (1.1) regress/mdoc/Li/Makefile (1.1) regress/mdoc/Li/font.in (1.1) regress/mdoc/Li/font.out_ascii (1.1) regress/mdoc/Li/punct.in (1.1) regress/mdoc/Li/punct.out_ascii (1.1) regress/mdoc/Li/punct.out_lint (1.1) regress/mdoc/Lk/Makefile (1.1) regress/mdoc/Lk/font.in (1.1) regress/mdoc/Lk/font.out_ascii (1.1) regress/mdoc/Lk/link.in (1.1) regress/mdoc/Lk/link.out_ascii (1.1) regress/mdoc/Lk/noarg.in (1.1) regress/mdoc/Lk/noarg.out_ascii (1.1) regress/mdoc/Lk/noarg.out_lint (1.1) regress/mdoc/Ms/Makefile (1.1) regress/mdoc/Ms/font.in (1.1) regress/mdoc/Ms/font.out_ascii (1.1) regress/mdoc/Ms/noarg.in (1.1) regress/mdoc/Ms/noarg.out_ascii (1.1) regress/mdoc/Ms/noarg.out_lint (1.1) regress/mdoc/Mt/Makefile (1.1) regress/mdoc/Mt/font.in (1.1) regress/mdoc/Mt/font.out_ascii (1.1) regress/mdoc/Mt/simple.in (1.1) regress/mdoc/Mt/simple.out_ascii (1.1) regress/mdoc/Nd/Makefile (1.1) regress/mdoc/Nd/broken.in (1.1) regress/mdoc/Nd/broken.out_ascii (1.1) regress/mdoc/Nd/broken.out_lint (1.1) regress/mdoc/Nd/hyph.in (1.1) regress/mdoc/Nd/hyph.out_ascii (1.1) regress/mdoc/Nd/noarg.in (1.1) regress/mdoc/Nd/noarg.out_ascii (1.1) regress/mdoc/Nd/noarg.out_lint (1.1) regress/mdoc/Nd/par.in (1.1) regress/mdoc/Nd/par.out_ascii (1.1) regress/mdoc/Nm/Makefile (1.1) regress/mdoc/Nm/badNAME.in (1.1) regress/mdoc/Nm/badNAME.out_ascii (1.1) regress/mdoc/Nm/badNAME.out_lint (1.1) regress/mdoc/Nm/badNAMEuse.in (1.1) regress/mdoc/Nm/badNAMEuse.out_ascii (1.1) regress/mdoc/Nm/badNAMEuse.out_lint (1.1) regress/mdoc/Nm/break.in (1.1) regress/mdoc/Nm/break.out_ascii (1.1) regress/mdoc/Nm/break.out_lint (1.1) regress/mdoc/Nm/broken.in (1.1) regress/mdoc/Nm/broken.out_ascii (1.1) regress/mdoc/Nm/empty.in (1.1) regress/mdoc/Nm/empty.out_ascii (1.1) regress/mdoc/Nm/emptyNAME.in (1.1) regress/mdoc/Nm/emptyNAME.out_ascii (1.1) regress/mdoc/Nm/emptyNAMEuse.in (1.1) regress/mdoc/Nm/emptyNAMEuse.out_ascii (1.1) regress/mdoc/Nm/font.in (1.1) regress/mdoc/Nm/font.out_ascii (1.1) regress/mdoc/Nm/long.in (1.1) regress/mdoc/Nm/long.out_ascii (1.1) regress/mdoc/Nm/par.in (1.1) regress/mdoc/Nm/par.out_ascii (1.1) regress/mdoc/Nm/parns.in (1.1) regress/mdoc/Nm/parns.out_ascii (1.1) regress/mdoc/Nm/punct.in (1.1) regress/mdoc/Nm/punct.out_ascii (1.1) regress/mdoc/No/Makefile (1.1) regress/mdoc/No/punct.in (1.1) regress/mdoc/No/punct.out_ascii (1.1) regress/mdoc/No/punct.out_lint (1.1) regress/mdoc/No/spacing.in (1.1) regress/mdoc/No/spacing.out_ascii (1.1) regress/mdoc/Ns/Makefile (1.1) regress/mdoc/Ns/position.in (1.1) regress/mdoc/Ns/position.out_ascii (1.1) regress/mdoc/Ns/position.out_lint (1.1) regress/mdoc/Ns/punct.in (1.1) regress/mdoc/Ns/punct.out_ascii (1.1) regress/mdoc/Oo/Makefile (1.1) regress/mdoc/Oo/punct.in (1.1) regress/mdoc/Oo/punct.out_ascii (1.1) regress/mdoc/Op/Makefile (1.1) regress/mdoc/Op/break.in (1.1) regress/mdoc/Op/break.out_lint (1.1) regress/mdoc/Op/broken.in (1.1) regress/mdoc/Op/broken.out_ascii (1.1) regress/mdoc/Op/broken.out_lint (1.1) regress/mdoc/Op/punct.in (1.1) regress/mdoc/Op/punct.out_ascii (1.1) regress/mdoc/Os/Makefile (1.1) regress/mdoc/Os/dupe.in (1.1) regress/mdoc/Os/dupe.out_ascii (1.1) regress/mdoc/Os/dupe.out_lint (1.1) regress/mdoc/Os/late.in (1.1) regress/mdoc/Os/late.out_ascii (1.1) regress/mdoc/Os/late.out_lint (1.1) regress/mdoc/Os/long.in (1.1) regress/mdoc/Os/long.out_ascii (1.1) regress/mdoc/Os/missing.in (1.1) regress/mdoc/Os/missing.out_ascii (1.1) regress/mdoc/Os/missing.out_lint (1.1) regress/mdoc/Ox/Makefile (1.1) regress/mdoc/Ox/keep.in (1.1) regress/mdoc/Ox/keep.out_ascii (1.1) regress/mdoc/Pa/Makefile (1.1) regress/mdoc/Pa/font.in (1.1) regress/mdoc/Pa/font.out_ascii (1.1) regress/mdoc/Pa/punct.in (1.1) regress/mdoc/Pa/punct.out_ascii (1.1) regress/mdoc/Pf/Makefile (1.1) regress/mdoc/Pf/spacing.in (1.1) regress/mdoc/Pf/spacing.out_ascii (1.1) regress/mdoc/Pf/spacing.out_lint (1.1) regress/mdoc/Pp/Makefile (1.1) regress/mdoc/Pp/arg.in (1.1) regress/mdoc/Pp/arg.out_ascii (1.1) regress/mdoc/Pp/arg.out_lint (1.1) regress/mdoc/Qq/Makefile (1.1) regress/mdoc/Qq/empty.in (1.1) regress/mdoc/Qq/empty.out_ascii (1.1) regress/mdoc/Rs/Makefile (1.1) regress/mdoc/Rs/allch.in (1.1) regress/mdoc/Rs/allch.out_ascii (1.1) regress/mdoc/Rs/allch.out_lint (1.1) regress/mdoc/Rs/args.in (1.1) regress/mdoc/Rs/args.out_ascii (1.1) regress/mdoc/Rs/args.out_lint (1.1) regress/mdoc/Rs/break.in (1.1) regress/mdoc/Rs/break.out_ascii (1.1) regress/mdoc/Rs/empty.in (1.1) regress/mdoc/Rs/empty.out_ascii (1.1) regress/mdoc/Rs/empty.out_lint (1.1) regress/mdoc/Rs/three_authors.out_ascii (1.1) regress/mdoc/Rv/Makefile (1.1) regress/mdoc/Rv/args.in (1.1) regress/mdoc/Rv/args.out_ascii (1.1) regress/mdoc/Rv/noname.in (1.1) regress/mdoc/Rv/noname.out_ascii (1.1) regress/mdoc/Rv/noname.out_lint (1.1) regress/mdoc/Rv/nostd.in (1.1) regress/mdoc/Rv/nostd.out_ascii (1.1) regress/mdoc/Rv/nostd.out_lint (1.1) regress/mdoc/Sh/Makefile (1.1) regress/mdoc/Sh/badNAME.in (1.1) regress/mdoc/Sh/badNAME.out_ascii (1.1) regress/mdoc/Sh/badNAME.out_lint (1.1) regress/mdoc/Sh/before.in (1.1) regress/mdoc/Sh/before.out_ascii (1.1) regress/mdoc/Sh/before.out_lint (1.1) regress/mdoc/Sh/empty.in (1.1) regress/mdoc/Sh/empty.out_ascii (1.1) regress/mdoc/Sh/empty.out_lint (1.1) regress/mdoc/Sh/emptyNAME.in (1.1) regress/mdoc/Sh/emptyNAME.out_ascii (1.1) regress/mdoc/Sh/emptyNAME.out_lint (1.1) regress/mdoc/Sh/first.in (1.1) regress/mdoc/Sh/first.out_lint (1.1) regress/mdoc/Sh/nohead.in (1.1) regress/mdoc/Sh/nohead.out_ascii (1.1) regress/mdoc/Sh/nohead.out_lint (1.1) regress/mdoc/Sh/order.in (1.1) regress/mdoc/Sh/order.out_ascii (1.1) regress/mdoc/Sh/order.out_lint (1.1) regress/mdoc/Sh/orderNAME.in (1.1) regress/mdoc/Sh/orderNAME.out_ascii (1.1) regress/mdoc/Sh/orderNAME.out_lint (1.1) regress/mdoc/Sh/punctNAME.in (1.1) regress/mdoc/Sh/punctNAME.out_ascii (1.1) regress/mdoc/Sh/punctNAME.out_lint (1.1) regress/mdoc/Sh/subbefore.in (1.1) regress/mdoc/Sh/subbefore.out_ascii (1.1) regress/mdoc/Sh/subbefore.out_lint (1.1) regress/mdoc/Sm/Makefile (1.1) regress/mdoc/Sm/badarg.in (1.1) regress/mdoc/Sm/badarg.out_ascii (1.1) regress/mdoc/Sm/badarg.out_lint (1.1) regress/mdoc/Sm/noarg.in (1.1) regress/mdoc/Sm/noarg.out_ascii (1.1) regress/mdoc/Sm/scope.in (1.1) regress/mdoc/Sm/scope.out_ascii (1.1) regress/mdoc/Sm/spacing-No.in (1.1) regress/mdoc/Sm/spacing-No.out_ascii (1.1) regress/mdoc/Sm/spacing-Op.in (1.1) regress/mdoc/Sm/spacing-Op.out_ascii (1.1) regress/mdoc/Sm/twoarg.in (1.1) regress/mdoc/Sm/twoarg.out_ascii (1.1) regress/mdoc/Sm/twoarg.out_lint (1.1) regress/mdoc/Sq/Makefile (1.1) regress/mdoc/Sq/empty.in (1.1) regress/mdoc/Sq/empty.out_ascii (1.1) regress/mdoc/St/Makefile (1.1) regress/mdoc/St/badargs.in (1.1) regress/mdoc/St/badargs.out_ascii (1.1) regress/mdoc/St/badargs.out_lint (1.1) regress/mdoc/St/call.in (1.1) regress/mdoc/St/call.out_ascii (1.1) regress/mdoc/St/call.out_lint (1.1) regress/mdoc/Sx/Makefile (1.1) regress/mdoc/Sx/font.in (1.1) regress/mdoc/Sx/font.out_ascii (1.1) regress/mdoc/Sx/noarg.in (1.1) regress/mdoc/Sx/noarg.out_ascii (1.1) regress/mdoc/Sx/noarg.out_lint (1.1) regress/mdoc/Sy/Makefile (1.1) regress/mdoc/Sy/font.in (1.1) regress/mdoc/Sy/font.out_ascii (1.1) regress/mdoc/Sy/noarg.in (1.1) regress/mdoc/Sy/noarg.out_ascii (1.1) regress/mdoc/Sy/noarg.out_lint (1.1) regress/mdoc/Sy/punct.in (1.1) regress/mdoc/Sy/punct.out_ascii (1.1) regress/mdoc/Sy/punct.out_lint (1.1) regress/mdoc/Tn/Makefile (1.1) regress/mdoc/Tn/font.in (1.1) regress/mdoc/Tn/font.out_ascii (1.1) regress/mdoc/Tn/noarg.in (1.1) regress/mdoc/Tn/noarg.out_ascii (1.1) regress/mdoc/Tn/noarg.out_lint (1.1) regress/mdoc/Ud/Makefile (1.1) regress/mdoc/Ud/arg.in (1.1) regress/mdoc/Ud/arg.out_ascii (1.1) regress/mdoc/Ud/arg.out_lint (1.1) regress/mdoc/Ux/Makefile (1.1) regress/mdoc/Ux/eos.in (1.1) regress/mdoc/Ux/eos.out_ascii (1.1) regress/mdoc/Ux/spacing.in (1.1) regress/mdoc/Ux/spacing.out_ascii (1.1) regress/mdoc/Va/Makefile (1.1) regress/mdoc/Va/basic.in (1.1) regress/mdoc/Va/basic.out_ascii (1.1) regress/mdoc/Va/font.in (1.1) regress/mdoc/Va/font.out_ascii (1.1) regress/mdoc/Va/noarg.in (1.1) regress/mdoc/Va/noarg.out_ascii (1.1) regress/mdoc/Va/noarg.out_lint (1.1) regress/mdoc/Vt/Makefile (1.1) regress/mdoc/Vt/child.in (1.1) regress/mdoc/Vt/child.out_ascii (1.1) regress/mdoc/Vt/font.in (1.1) regress/mdoc/Vt/font.out_ascii (1.1) regress/mdoc/Vt/noarg.in (1.1) regress/mdoc/Vt/noarg.out_ascii (1.1) regress/mdoc/Vt/noarg.out_lint (1.1) regress/mdoc/Vt/spacing.in (1.1) regress/mdoc/Vt/spacing.out_ascii (1.1) regress/mdoc/Xr/Makefile (1.1) regress/mdoc/Xr/args.in (1.1) regress/mdoc/Xr/args.out_ascii (1.1) regress/mdoc/Xr/args.out_lint (1.1) regress/mdoc/blank/Makefile (1.1) regress/mdoc/blank/comment.in (1.1) regress/mdoc/blank/comment.out_ascii (1.1) regress/mdoc/blank/comment.out_lint (1.1) regress/mdoc/blank/line.in (1.1) regress/mdoc/blank/line.out_ascii (1.1) regress/mdoc/blank/line.out_lint (1.1) regress/mdoc/blank/list.in (1.1) regress/mdoc/blank/list.out_ascii (1.1) regress/mdoc/blank/list.out_lint (1.1) regress/mdoc/break/Makefile (1.1) regress/mdoc/break/brokenbreaker.in (1.1) regress/mdoc/break/brokenbreaker.out_ascii (1.1) regress/mdoc/break/brokenbreaker.out_lint (1.1) regress/mdoc/break/notopen.in (1.1) regress/mdoc/break/notopen.out_ascii (1.1) regress/mdoc/break/notopen.out_lint (1.1) regress/mdoc/break/tail.in (1.1) regress/mdoc/break/tail.out_ascii (1.1) regress/mdoc/break/tail.out_lint (1.1) regress/mdoc/break/twice.in (1.1) regress/mdoc/break/twice.out_ascii (1.1) regress/mdoc/break/twice.out_lint (1.1) regress/mdoc/break/two.in (1.1) regress/mdoc/break/two.out_ascii (1.1) regress/mdoc/break/two.out_lint (1.1) regress/roff/Makefile (1.1) regress/roff/Makefile.inc (1.1) regress/roff/args/Makefile (1.1) regress/roff/args/man.in (1.1) regress/roff/args/man.out_ascii (1.1) regress/roff/args/man.out_lint (1.1) regress/roff/args/mdoc.in (1.1) regress/roff/args/mdoc.out_ascii (1.1) regress/roff/args/mdoc.out_lint (1.1) regress/roff/args/roff.in (1.1) regress/roff/args/roff.out_ascii (1.1) regress/roff/args/roff.out_lint (1.1) regress/roff/br/Makefile (1.1) regress/roff/br/args.in (1.1) regress/roff/br/args.out_ascii (1.1) regress/roff/br/args.out_lint (1.1) regress/roff/cc/Makefile (1.1) regress/roff/cc/basic.in (1.1) regress/roff/cc/basic.out_ascii (1.1) regress/roff/cc/basic.out_lint (1.1) regress/roff/cond/Makefile (1.1) regress/roff/cond/before-Dd.in (1.1) regress/roff/cond/before-Dd.out_ascii (1.1) regress/roff/cond/close.in (1.1) regress/roff/cond/close.out_ascii (1.1) regress/roff/cond/close.out_lint (1.1) regress/roff/cond/ie.in (1.1) regress/roff/cond/ie.out_ascii (1.1) regress/roff/cond/if.in (1.1) regress/roff/cond/if.out_ascii (1.1) regress/roff/cond/if.out_lint (1.1) regress/roff/cond/numeric.in (1.1) regress/roff/cond/numeric.out_ascii (1.1) regress/roff/cond/register.in (1.1) regress/roff/cond/register.out_ascii (1.1) regress/roff/cond/strcmp.in (1.1) regress/roff/cond/strcmp.out_ascii (1.1) regress/roff/de/Dd.in (1.1) regress/roff/de/Dd.out_ascii (1.1) regress/roff/de/Makefile (1.1) regress/roff/de/TH.in (1.1) regress/roff/de/TH.out_ascii (1.1) regress/roff/de/append.in (1.1) regress/roff/de/append.out_ascii (1.1) regress/roff/de/cond.in (1.1) regress/roff/de/cond.out_ascii (1.1) regress/roff/de/escname.in (1.1) regress/roff/de/escname.out_ascii (1.1) regress/roff/de/escname.out_lint (1.1) regress/roff/de/factorial.in (1.1) regress/roff/de/factorial.out_ascii (1.1) regress/roff/de/indir.in (1.1) regress/roff/de/indir.out_ascii (1.1) regress/roff/de/indir.out_lint (1.1) regress/roff/de/startde.in (1.1) regress/roff/de/startde.out_ascii (1.1) regress/roff/ds/Makefile (1.1) regress/roff/ds/append.in (1.1) regress/roff/ds/append.out_ascii (1.1) regress/roff/ds/escname.in (1.1) regress/roff/ds/escname.out_ascii (1.1) regress/roff/ds/nested.in (1.1) regress/roff/ds/nested.out_ascii (1.1) regress/roff/ds/quoting.in (1.1) regress/roff/ds/quoting.out_ascii (1.1) regress/roff/esc/B.in (1.1) regress/roff/esc/B.out_ascii (1.1) regress/roff/esc/B.out_lint (1.1) regress/roff/esc/Makefile (1.1) regress/roff/esc/c.in (1.1) regress/roff/esc/c.out_ascii (1.1) regress/roff/esc/c_man.in (1.1) regress/roff/esc/c_man.out_ascii (1.1) regress/roff/esc/e.in (1.1) regress/roff/esc/e.out_ascii (1.1) regress/roff/esc/f.in (1.1) regress/roff/esc/f.out_ascii (1.1) regress/roff/esc/h.in (1.1) regress/roff/esc/h.out_ascii (1.1) regress/roff/esc/h.out_lint (1.1) regress/roff/esc/ignore.in (1.1) regress/roff/esc/ignore.out_ascii (1.1) regress/roff/esc/ignore.out_lint (1.1) regress/roff/esc/multi.in (1.1) regress/roff/esc/multi.out_ascii (1.1) regress/roff/esc/o.in (1.1) regress/roff/esc/o.out_ascii (1.1) regress/roff/esc/one.in (1.1) regress/roff/esc/one.out_ascii (1.1) regress/roff/esc/two.in (1.1) regress/roff/esc/two.out_ascii (1.1) regress/roff/esc/w.in (1.1) regress/roff/esc/w.out_ascii (1.1) regress/roff/esc/w.out_lint (1.1) regress/roff/esc/z.in (1.1) regress/roff/esc/z.out_ascii (1.1) regress/roff/ft/Makefile (1.1) regress/roff/ft/badargs.in (1.1) regress/roff/ft/badargs.out_ascii (1.1) regress/roff/ft/badargs.out_lint (1.1) regress/roff/ig/Makefile (1.1) regress/roff/ig/basic.in (1.1) regress/roff/ig/basic.out_ascii (1.1) regress/roff/ig/basic.out_lint (1.1) regress/roff/it/Makefile (1.1) regress/roff/it/badarg.in (1.1) regress/roff/it/badarg.out_ascii (1.1) regress/roff/it/badarg.out_lint (1.1) regress/roff/it/double.in (1.1) regress/roff/it/double.out_ascii (1.1) regress/roff/it/text.in (1.1) regress/roff/it/text.out_ascii (1.1) regress/roff/ll/Makefile (1.1) regress/roff/ll/basic.in (1.1) regress/roff/ll/basic.out_ascii (1.1) regress/roff/na/Makefile (1.1) regress/roff/na/args.in (1.1) regress/roff/na/args.out_ascii (1.1) regress/roff/nr/Makefile (1.1) regress/roff/nr/argc.in (1.1) regress/roff/nr/argc.out_ascii (1.1) regress/roff/nr/divzero.in (1.1) regress/roff/nr/divzero.out_ascii (1.1) regress/roff/nr/divzero.out_lint (1.1) regress/roff/nr/escname.in (1.1) regress/roff/nr/escname.out_ascii (1.1) regress/roff/nr/escname.out_lint (1.1) regress/roff/nr/eval.in (1.1) regress/roff/nr/eval.out_ascii (1.1) regress/roff/nr/int.in (1.1) regress/roff/nr/int.out_ascii (1.1) regress/roff/nr/predef.in (1.1) regress/roff/nr/predef.out_ascii (1.1) regress/roff/nr/rr.in (1.1) regress/roff/nr/rr.out_ascii (1.1) regress/roff/nr/scale.in (1.1) regress/roff/nr/scale.out_ascii (1.1) regress/roff/ps/Makefile (1.1) regress/roff/ps/ignore.in (1.1) regress/roff/ps/ignore.out_ascii (1.1) regress/roff/rm/Makefile (1.1) regress/roff/rm/basic.in (1.1) regress/roff/rm/basic.out_ascii (1.1) regress/roff/scale/Makefile (1.1) regress/roff/scale/horiz.in (1.1) regress/roff/scale/horiz.out_ascii (1.1) regress/roff/sp/Makefile (1.1) regress/roff/sp/badargs-man.in (1.1) regress/roff/sp/badargs-man.out_ascii (1.1) regress/roff/sp/badargs-man.out_lint (1.1) regress/roff/sp/badargs-mdoc.in (1.1) regress/roff/sp/badargs-mdoc.out_ascii (1.1) regress/roff/sp/negative.in (1.1) regress/roff/sp/negative.out_ascii (1.1) regress/roff/sp/scaling-man.in (1.1) regress/roff/sp/scaling-man.out_ascii (1.1) regress/roff/sp/scaling-mdoc.in (1.1) regress/roff/sp/scaling-mdoc.out_ascii (1.1) regress/roff/string/Makefile (1.1) regress/roff/string/escape.in (1.1) regress/roff/string/escape.out_ascii (1.1) regress/roff/string/infinite.in (1.1) regress/roff/string/infinite.out_ascii (1.1) regress/roff/string/name.in (1.1) regress/roff/string/name.out_ascii (1.1) regress/roff/string/name.out_lint (1.1) regress/roff/string/zerolength.in (1.1) regress/roff/string/zerolength.out_ascii (1.1) regress/roff/tr/Makefile (1.1) regress/roff/tr/args.in (1.1) regress/roff/tr/args.out_ascii (1.1) regress/roff/tr/args.out_lint (1.1) regress/tbl/Makefile (1.1) regress/tbl/Makefile.inc (1.1) regress/tbl/data/Makefile (1.1) regress/tbl/data/blankline.in (1.1) regress/tbl/data/blankline.out_ascii (1.1) regress/tbl/data/block_unclosed.in (1.1) regress/tbl/data/block_unclosed.out_ascii (1.1) regress/tbl/data/block_unclosed.out_lint (1.1) regress/tbl/data/empty.in (1.1) regress/tbl/data/empty.out_ascii (1.1) regress/tbl/data/empty.out_lint (1.1) regress/tbl/layout/Makefile (1.1) regress/tbl/layout/center.in (1.1) regress/tbl/layout/center.out_ascii (1.1) regress/tbl/layout/complex.in (1.1) regress/tbl/layout/complex.out_ascii (1.1) regress/tbl/layout/complex.out_lint (1.1) regress/tbl/layout/empty.in (1.1) regress/tbl/layout/empty.out_ascii (1.1) regress/tbl/layout/empty.out_lint (1.1) regress/tbl/layout/emptyline.in (1.1) regress/tbl/layout/emptyline.out_ascii (1.1) regress/tbl/layout/numbers.in (1.1) regress/tbl/layout/numbers.out_ascii (1.1) regress/tbl/layout/span.in (1.1) regress/tbl/layout/span.out_ascii (1.1) regress/tbl/macro/Makefile (1.1) regress/tbl/macro/column.in (1.1) regress/tbl/macro/column.out_ascii (1.1) regress/tbl/macro/man.in (1.1) regress/tbl/macro/man.out_ascii (1.1) regress/tbl/macro/man.out_lint (1.1) regress/tbl/macro/nested.in (1.1) regress/tbl/macro/nested.out_ascii (1.1) regress/tbl/macro/nested.out_lint (1.1) regress/tbl/mod/Makefile (1.1) regress/tbl/mod/badfont.in (1.1) regress/tbl/mod/badfont.out_ascii (1.1) regress/tbl/mod/badfont.out_lint (1.1) regress/tbl/mod/expand.in (1.1) regress/tbl/mod/expand.out_ascii (1.1) regress/tbl/mod/font.in (1.1) regress/tbl/mod/font.out_ascii (1.1) regress/tbl/mod/font.out_lint (1.1) regress/tbl/mod/misalign.in (1.1) regress/tbl/mod/misalign.out_ascii (1.1) regress/tbl/opt/Makefile (1.1) regress/tbl/opt/box.in (1.1) regress/tbl/opt/box.out_ascii (1.1) regress/tbl/opt/center.in (1.1) regress/tbl/opt/center.out_ascii (1.1) regress/tbl/opt/invalid.in (1.1) regress/tbl/opt/invalid.out_ascii (1.1) regress/tbl/opt/invalid.out_lint (1.1) Changed: regress/mdoc/Rs/three_authors.in (1.3), "Exp", lines: +9 -13 Finally port the OpenBSD regression suite. Both kristaps@ and wiz@ repeated asked for this, literally for years. 2017-02-07 01:30 schwarze Changed: NEWS (1.13), "Exp", lines: +108 -1 first draft of NEWS for 1.14.1 2017-02-06 19:04 schwarze Added: mandocd.8 (1.1) Changed: Makefile (1.496), "Exp", lines: +8 -2 catman.8 (1.7), "Exp", lines: +153 -78 new manual pages for catman(8) and mandocd(8) 2017-02-06 19:02 schwarze Changed: catman.c (1.14), "Exp", lines: +41 -16 mandocd.c (1.3), "Exp", lines: +14 -4 Polishing: * support -Ios= * create missing directories * fix output file permissions * error out on comminication failures I now consider this good enough for a first release. Bugs and missing features are still likely, though. 2017-02-06 03:48 schwarze Changed: gmdiff (1.5), "Exp", lines: +2 -2 explicitly pass -Tascii to mandoc(1), such that LC_CTYPE does not get into the way, and fix the usage() while here 2017-02-06 03:44 schwarze Changed: mdoc_html.c (1.270), "Exp", lines: +1 -3 mdoc_man.c (1.102), "Exp", lines: +3 -5 mdoc_term.c (1.343), "Exp", lines: +2 -4 mdoc_validate.c (1.318), "Exp", lines: +11 -1 The .Nm macro does not only use the default name when it has no argument, but also when the first argument is a child macro. Arcane issue found in the FreeBSD cxgbetool(8) manual that Baptiste Daroussin <bapt at FreeBSD> sent me long ago for a different reason. While solving this, switch to the new technique of doing text production in the validator, reducing code duplication in the formatters, which also makes -Ttree output clearer. 2017-02-05 22:51 schwarze Changed: mandocd.c (1.2), "Exp", lines: +2 -1 uint8_t requires <stdint.h>; from Michael Stapelberg 2017-02-05 22:30 schwarze Changed: mdoc.7 (1.261), "Exp", lines: +5 -3 document output spacing near delimiters 2017-02-05 22:25 schwarze Changed: TODO (1.232), "Exp", lines: +1 -26 remove several things that were taken care of in the past 2017-02-05 22:24 schwarze Changed: Makefile (1.488.2.4), "Exp", lines: +2 -1 merge rev. 1.495: add missing file man.options.1 2017-02-05 22:22 schwarze Changed: Makefile (1.495), "Exp", lines: +2 -1 add missing file man.options.1 2017-02-05 21:41 schwarze Changed: mandoc_char.7 (1.64), "Exp", lines: +26 -2 document hyphenation 2017-02-05 21:00 schwarze Changed: mandoc.css (1.17), "Exp", lines: +2 -1 mdoc_html.c (1.269), "Exp", lines: +11 -3 Wrap .St content in a <span class="St">. Also add forgotten <span class="Ux"> to .At rendering. 2017-02-05 20:34 schwarze Changed: mdoc_html.c (1.268), "Exp", lines: +2 -2 fix font selection for .Bf without argument 2017-02-05 20:22 schwarze Changed: TODO (1.231), "Exp", lines: +1 -4 html.c (1.207), "Exp", lines: +2 -1 html.h (1.83), "Exp", lines: +2 -1 mandoc.css (1.16), "Exp", lines: +11 -6 mdoc_html.c (1.267), "Exp", lines: +10 -10 mark up .Ar, .Fa, .Va, .Ft, and .Vt with <var> rather than <i>; suggested by bentley@ long ago, but needed lots of cleanup first 2017-02-05 19:29 schwarze Changed: html.c (1.206), "Exp", lines: +2 -1 html.h (1.82), "Exp", lines: +2 -1 mandoc.css (1.15), "Exp", lines: +3 -2 mdoc_html.c (1.266), "Exp", lines: +2 -2 for .Rs, use <cite> 2017-02-05 18:15 schwarze Changed: html.c (1.205), "Exp", lines: +2 -2 html.h (1.81), "Exp", lines: +2 -2 man_html.c (1.133), "Exp", lines: +1 -2 mdoc_html.c (1.265), "Exp", lines: +13 -9 tbl_html.c (1.20), "Exp", lines: +4 -3 Improve <table> syntax: The <col> element can only appear inside <colgroup>, so use <colgroup>. The <tbody> element is optional and useless, so don't use it. Even if we would ever need <thead> or <tfoot>, <tbody> would still be optional and useless; besides, we will likely never need <thead> or <tfoot>, simply because our languages don't support such functionality. 2017-02-04 12:03 schwarze Added: mandocd.c (1.1) Changed: Makefile (1.494), "Exp", lines: +24 -9 catman.c (1.13), "Exp", lines: +156 -455 configure (1.56), "Exp", lines: +7 -2 configure.local.example (1.23), "Exp", lines: +8 -1 experimental mandocd(8) and catman(8) for development in the tree, not yet ready for production 2017-02-04 11:58 schwarze Changed: man_term.c (1.189), "Exp", lines: +5 -2 mdoc_term.c (1.342), "Exp", lines: +4 -1 Do not fix the default indent for all subsequent files; some may use a different macro language and hence require a different indent. You can see the effect with "man -a 1 host hostname". 2017-02-03 18:22 schwarze Changed: read.c (1.150.2.7), "Exp", lines: +8 -7 merge rev.s 1.159 and 1.160: gzip bugfix and struct mparse cleanup 2017-02-03 18:18 schwarze Changed: read.c (1.160), "Exp", lines: +7 -7 Minor cleanup, no functional change: We always have a roff parser, so mparse_free() does not need to check for existence before freeing it. Also arrange code in struct mparse, mparse_reset(), and mparse_free() in the same order for readability. 2017-02-03 17:59 schwarze Changed: TODO (1.230), "Exp", lines: +18 -2 more work found in old mails 2017-02-03 17:56 schwarze Changed: read.c (1.159), "Exp", lines: +2 -1 If an application parses multiple files with mparse_readfd(3) but without using mparse_open(3) to open the files, and if one of the files includes a gzip'ed file with .so, then the gzip flag remains set and the next main file will be expected to be gzip'ed. Fix this by clearing the gzip flag in mparse_reset(3). Bug found and patch provided by Michael <Stapelberg at debian dot org>. 2017-02-02 20:10 schwarze Changed: man.options.1 (1.6), "Exp", lines: +1 -6 even man-1.6g does *not* have apropos -C, maybe it is MacOS X specific, i don't know... 2017-02-02 19:59 schwarze Changed: man.options.1 (1.5), "Exp", lines: +43 -40 correct information about early groff (up to 1.02) 2017-02-02 18:10 schwarze Changed: man.options.1 (1.4), "Exp", lines: +4 -1 mention groff git, and one minor fix 2017-02-02 16:58 schwarze Changed: man.options.1 (1.3), "Exp", lines: +95 -75 more info about man-1.6 and man-db 2017-02-02 02:30 schwarze Changed: man.options.1 (1.2), "Exp", lines: +5 -7 minor fixes 2017-02-02 02:17 schwarze Added: man.options.1 (1.1) new page, not to be installed 2017-01-31 19:44 schwarze Changed: apropos.1 (1.40), "Exp", lines: +6 -2 man.1 (1.21), "Exp", lines: +18 -4 mandoc.1 (1.173), "Exp", lines: +15 -2 add missing HISTORY information 2017-01-30 20:24 schwarze Changed: man_html.c (1.132), "Exp", lines: +134 -69 Rework fill mode handling for -man -Thtml. Basically, open <pre> whenever printing text in no-fill mode and it is not already open, and close it whenever printing something that cannot be inside <pre>. This fixes a crash reported by Michael <Stapelberg at debian dot org> in the French Linux chroot(2) manual and also improves rendering for OpenBSD pages like DPMSGetTimeouts(3) and GLwDrawingArea(3). These changes also permitted retiring struct mhtml. 2017-01-29 14:02 schwarze Changed: html.c (1.204), "Exp", lines: +10 -10 html.h (1.80), "Exp", lines: +2 -6 man_html.c (1.131), "Exp", lines: +3 -3 mdoc_html.c (1.264), "Exp", lines: +3 -3 eliminate one useless struct and one level of indirection; no functional change 2017-01-28 23:35 schwarze Changed: read.c (1.150.2.6), "Exp", lines: +2 -1 merge rev. 1.158: new sentence, new line 2017-01-28 23:30 schwarze Changed: mandoc.1 (1.172), "Exp", lines: +6 -2 mandoc.h (1.214), "Exp", lines: +2 -1 mdoc.c (1.259), "Exp", lines: +18 -2 read.c (1.158), "Exp", lines: +2 -1 Add a warning "new sentence, new line". This does not attempt to pinpoint each and every offender, but instead tries very hard to avoid false positives: Currently, there are only two false positives in the whole OpenBSD base system. Only do this in mdoc(7), not in man(7), because manuals written in man(7) typically have much worse problems than this. OK jmc@ on a previous version of the patch 2017-01-28 22:36 schwarze Changed: html.c (1.203), "Exp", lines: +51 -33 mandoc_html.3 (1.5), "Exp", lines: +16 -5 mdoc_html.c (1.263), "Exp", lines: +21 -48 Simplify usage of print_otag() even more: accept NULL to skip the attribute or format. 2017-01-28 22:32 schwarze Changed: TODO (1.229), "Exp", lines: +1 -9 MANDOCERR_BADTAB no longer exists, and i checked that MANDOCERR_FI_TAB is used correctly. 2017-01-28 18:43 schwarze Changed: mdoc_html.c (1.262), "Exp", lines: +17 -17 .Bl -column with zero columns is legal, so don't segfalt on it. Bug introduced in rev. 1.248 triggered for example in gssapi(3), analyzed and reported by Michael <Stapelberg at debian dot org>. Simplify the code a bit more while here. 2017-01-27 14:41 schwarze Changed: main.c (1.273.2.5), "Exp", lines: +10 -4 manpath.c (1.30.2.1), "Exp", lines: +69 -30 merge manpath.c 1.32, main.c 1.280: warn about invalid output options 2017-01-27 14:32 schwarze Changed: mandocdb.c (1.220.2.11), "Exp", lines: +9 -5 merge rev 1.242: warn about missing one-line description 2017-01-27 14:23 schwarze Changed: mandocdb.c (1.220.2.10), "Exp", lines: +31 -14 merge rev. 1.241: parse section number from the content of preformatted pages 2017-01-27 14:18 schwarze Changed: mandocdb.c (1.220.2.9), "Exp", lines: +20 -15 merge rev. 1.240: default to preformatted, not to man(7) 2017-01-27 13:59 schwarze Changed: mandocdb.c (1.220.2.8), "Exp", lines: +15 -1 merge rev. 1.239: fix base directory detection for makewhatis -t 2017-01-27 13:47 schwarze Changed: TODO (1.228), "Exp", lines: +1 -8 main.c (1.280), "Exp", lines: +10 -4 manconf.h (1.3), "Exp", lines: +1 -1 manpath.c (1.32), "Exp", lines: +68 -29 warn about invalid output options and error out if they occur on the command line; missing feature found in the TODO file 2017-01-27 11:33 schwarze Changed: mandocdb.c (1.242), "Exp", lines: +9 -4 warn about missing one-line description; missing feature found in the TODO file 2017-01-27 01:14 schwarze Changed: TODO (1.227), "Exp", lines: +1 -6 mandocdb.c (1.241), "Exp", lines: +31 -14 Parse the section number from the content of preformatted pages and warn if it doesn't match the directory where the file was found. 2017-01-27 01:09 schwarze Changed: mandocdb.c (1.240), "Exp", lines: +17 -13 If parsing a page reveals that it is neither mdoc(7) nor man(7), fall back to treating it as preformatted rather than treating it as man(7) anyway. 2017-01-27 01:04 schwarze Changed: mandocdb.c (1.239), "Exp", lines: +15 -1 fix base directory detection for makewhatis -t 2017-01-27 00:56 schwarze Changed: mandocdb.c (1.238), "Exp", lines: +7 -5 Always register names taken from file names in the names ohash. Bug found by makewhatis -p crashing in mlink_check(). 2017-01-26 19:32 schwarze Changed: TODO (1.226), "Exp", lines: +4 -1 more info on man(7) .Xr hyperlinking 2017-01-26 18:28 schwarze Changed: TODO (1.225), "Exp", lines: +1 -10 html.c (1.202), "Exp", lines: +2 -3 html.h (1.79), "Exp", lines: +2 -1 man_html.c (1.130), "Exp", lines: +47 -58 Fix -man -Thtml formatting after .nf (which has nothing to do with "literal", by the way, it means "no fill"): * Use <pre> such that whitespace is preserved. * Preserve lines breaks. * For font alternating macros, avoid node recursion which required scary juggling with the fill state. Instead, simply print the text children directly. Missing feature first noticed by kristaps@ in 2011, the again reported by afresh1@ in 2016, and finally reported here: https://github.com/Debian/debiman/issues/21 , which i only found because of Shane Kerr's comment here: https://plus.google.com/110314300533310775053/posts/H1eaw9Yskoc 2017-01-25 03:49 schwarze Changed: cgi.c (1.146), "Exp", lines: +2 -2 add arm64 architecture; from deraadt@ 2017-01-25 02:14 schwarze Changed: TODO (1.224), "Exp", lines: +1 -7 cgi.c (1.145), "Exp", lines: +3 -1 html.c (1.201), "Exp", lines: +4 -1 mandoc.css (1.14), "Exp", lines: +13 -4 mandoc_html.3 (1.4), "Exp", lines: +5 -1 mdoc_html.c (1.261), "Exp", lines: +46 -4 Improve HTML formatting of .Bl -tag. In particular, when using the style sheet, put the body on the same line as the head for short heads, or on the next line for long heads, in a way that preserves both correct indentation and correct vertical spacing with and without -compact, and with one or more heads per body (hi, Zaphod) - eight use cases so far - and with and without -tag, and with and without -offset, 32 use cases grand total. Using many ideas from zhuk@, from <David dot Dahlberg at fkie dot fraunhofer dot de>, and from Benny Lofgren <bl dash lists at lofgren dot biz>, and a few of my own. This is an excellent demonstration that CSS is an extremely hostile language, much more trapful and much harder to use than, say, C. When matthew@ reported this in July 2014 (!), it was already a known issue, and i no longer remember for how long. My first serious attempt at fixing it (in November 2015) failed miserably. I'd love to see simplifications of both the generated HTML code and of the style sheet, but without breaking any of the 32 use cases, please. 2017-01-21 02:32 schwarze Changed: mandoc.1 (1.171), "Exp", lines: +2 -11 bug was fixed, delete the BUGS section 2017-01-21 02:29 schwarze Changed: html.c (1.200), "Exp", lines: +1 -5 mandoc.css (1.13), "Exp", lines: +7 -8 slightly simplify header and footer styles 2017-01-21 02:09 schwarze Changed: mandoc.css (1.12), "Exp", lines: +7 -4 mdoc_html.c (1.260), "Exp", lines: +15 -10 Avoid writing constant style attributes over and over again. Move them to the style sheet. 2017-01-21 01:20 schwarze Changed: cgi.c (1.144), "Exp", lines: +9 -14 man_html.c (1.129), "Exp", lines: +4 -4 mandoc.css (1.11), "Exp", lines: +14 -27 mdoc_html.c (1.259), "Exp", lines: +8 -8 clean up the remaining class attributes 2017-01-20 23:51 schwarze Changed: man_html.c (1.128), "Exp", lines: +3 -3 mandoc.css (1.10), "Exp", lines: +42 -26 mdoc_html.c (1.258), "Exp", lines: +44 -43 Standardize class attributes for semantic macros. Correct markup for .Va and iprove markup for .Dv, .Er, .Ev while here. 2017-01-20 21:37 schwarze Changed: mandoc.css (1.9), "Exp", lines: +17 -16 mdoc_html.c (1.257), "Exp", lines: +18 -24 standardize .Rs class attributes 2017-01-20 19:58 schwarze Changed: mandoc.css (1.8), "Exp", lines: +36 -47 mdoc_html.c (1.256), "Exp", lines: +104 -72 standardize .Bl and .It class attributes 2017-01-19 16:56 schwarze Changed: mandoc.css (1.7), "Exp", lines: +12 -4 html.c (1.199), "Exp", lines: +1 -2 html.h (1.78), "Exp", lines: +1 -2 mdoc_html.c (1.255), "Exp", lines: +10 -14 clean up markup of .Bd, .D1, .Dl, .Li, and .Ql; in particular, stop abuse of <blockquote> 2017-01-19 15:48 schwarze Changed: mandoc.css (1.6), "Exp", lines: +3 -4 mdoc_html.c (1.254), "Exp", lines: +7 -7 clean up .Sx and .Xr HTML markup 2017-01-19 15:27 schwarze Changed: html.c (1.198), "Exp", lines: +3 -3 man_html.c (1.127), "Exp", lines: +9 -13 mandoc.css (1.5), "Exp", lines: +14 -8 mdoc_html.c (1.253), "Exp", lines: +8 -10 Clean up CSS rules for sections and paragraphs. Start using real macro names for CSS classes. 2017-01-19 14:29 schwarze Changed: mandoc.css (1.4), "Exp", lines: +22 -13 Clean up and fix rules for header and footer lines. In particular, horizontal alignment was missing. 2017-01-19 13:55 schwarze Changed: cgi.c (1.143), "Exp", lines: +27 -27 Adjust indentation of the HTML output to the conventions established by html.c. No semantic change. 2017-01-19 13:35 schwarze Changed: cgi.c (1.142), "Exp", lines: +5 -10 man_html.c (1.126), "Exp", lines: +8 -10 mandoc.css (1.3), "Exp", lines: +20 -23 mdoc_html.c (1.252), "Exp", lines: +8 -10 Start cleanup: trim useless HTML comments, <div> elements, and CSS rules on the <html> and <body> levels. 2017-01-19 01:00 schwarze Changed: html.c (1.197), "Exp", lines: +171 -65 html.h (1.77), "Exp", lines: +6 -3 man_html.c (1.125), "Exp", lines: +1 -3 mdoc_html.c (1.251), "Exp", lines: +1 -3 Implement line breaking of the generated HTML code at space characters in filled text. This does not affect HTML semantics, but makes the HTML code even more humanly readable. While here, - collapse multiple consecutive space characters in filled text - and insert a blank between style entries. 2017-01-18 19:22 schwarze Changed: html.c (1.196), "Exp", lines: +144 -77 html.h (1.76), "Exp", lines: +4 -1 man_html.c (1.124), "Exp", lines: +1 -2 mdoc_html.c (1.250), "Exp", lines: +1 -2 Make HTML output more human readable by overhauling line break logic around tags and by introducing some simple indentation. No change of HTML semantics intended. 2017-01-17 15:32 schwarze Changed: TODO (1.223), "Exp", lines: +1 -10 html.c (1.195), "Exp", lines: +73 -155 html.h (1.75), "Exp", lines: +1 -16 man_html.c (1.123), "Exp", lines: +5 -6 mandoc_html.3 (1.3), "Exp", lines: +23 -27 mdoc_html.c (1.249), "Exp", lines: +78 -74 Completely delete the buf field of struct html and all the buf*() interfaces. Such a static buffer was a bad idea in the first place, causing unfixable truncation that was only prevented by triggering an assertion failure. Instead, let the small number of remaining users allocate and free their own, temporary dynamic buffers, or for the case of .Xr and .In, pass the original data to be assembled in print_otag(). 2017-01-17 01:47 schwarze Changed: eqn_html.c (1.11), "Exp", lines: +29 -35 html.c (1.194), "Exp", lines: +135 -50 html.h (1.74), "Exp", lines: +3 -36 man_html.c (1.122), "Exp", lines: +47 -92 mandoc_html.3 (1.2), "Exp", lines: +114 -19 mdoc_html.c (1.248), "Exp", lines: +159 -403 tbl_html.c (1.19), "Exp", lines: +9 -21 Simplify the usage of print_otag() by making it accept a variable number of arguments. Delete struct htmlpair and all the PAIR_*() macros. Delete enum htmlattr, handle that in print_otag() instead. Minus 190 lines of code; no functional change except better ordering of attributes (class before style) in three cases. 2017-01-15 15:28 schwarze Changed: Makefile.depend (1.26), "Exp", lines: +1 -1 dba.c (1.9), "Exp", lines: +131 -63 When looking up macro values while the macro tables are being built in makewhatis(8), use ohash rather than linear searches. This was identified as the main makewhatis(8) performance bottleneck by Baptiste Daroussin <bapt at FreeBSD>, who also suggested part of the improved algorithm. This reduces the run time of "makewhatis /usr/share/man" from eleven to five seconds on my notebook. Note that the changed code is not used in apropos(1), so don't expect speedups there. While here, sort macro values asciibetically, to improve reproducibility - which still isn't perfect, but getting better. 2017-01-12 18:02 schwarze Changed: roff.c (1.288), "Exp", lines: +5 -9 Skipping all escape sequences at the beginning of strings in deroff() was too aggressive. There are strings that legitimately begin with an escape sequence. Only skip leading escape sequences representing whitespace. Bug reported by martijn@. 2017-01-12 17:29 schwarze Changed: mandoc.1 (1.170), "Exp", lines: +11 -3 tree.c (1.72), "Exp", lines: +28 -4 show meta data for -Ttree output 2017-01-12 15:47 schwarze Changed: configure (1.43.2.8), "Exp", lines: +3 -3 merge rev. 1.55: gcc 6 fix from Alpine Linux 2017-01-12 15:45 schwarze Changed: configure (1.55), "Exp", lines: +3 -3 Put compiler arguments that may contain -l at the end; according to the people at Alpine Linux, gcc 6 seems to fail when it's at the beginning. From Daniel Sabogal via http://git.alpinelinux.org. 2017-01-11 17:46 schwarze Changed: mandocdb.c (1.220.2.7), "Exp", lines: +3 -3 merge rev. 1.237: completion of NODE_NOSRC work 2017-01-11 17:39 schwarze Changed: mandocdb.c (1.237), "Exp", lines: +3 -3 mdoc_html.c (1.247), "Exp", lines: +5 -113 mdoc_man.c (1.101), "Exp", lines: +11 -101 mdoc_term.c (1.341), "Exp", lines: +5 -107 mdoc_validate.c (1.317), "Exp", lines: +188 -82 Do text production for .Bt, .Ex, .Rv, .Ud at the validation stage rather than in the formatters. Use NODE_NOSRC flag for .Lb and NODE_NOSRC and NODE_NOPRT for .St. Results in a more rigorous syntax tree and in 135 lines less code. This work was triggered by a question from Abhinav Upadhyay <er dot abhinav dot upadhyay at gmail dot com> (NetBSD) on discuss@. 2017-01-10 23:40 schwarze Changed: mandocdb.c (1.220.2.6), "Exp", lines: +3 -3 merge rev. 1.236: NODE_NOSRC and NODE_NOPRT for .Bx and .At 2017-01-10 23:36 schwarze Changed: mandocdb.c (1.236), "Exp", lines: +3 -3 mdoc_html.c (1.246), "Exp", lines: +2 -30 mdoc_man.c (1.100), "Exp", lines: +2 -23 mdoc_term.c (1.340), "Exp", lines: +2 -26 mdoc_validate.c (1.316), "Exp", lines: +46 -22 Use new NODE_NOSRC and NODE_NOPRT flags for .Bx and .At. More rigorous AST and 40 lines less code. 2017-01-10 22:04 schwarze Changed: mandocdb.c (1.220.2.5), "Exp", lines: +136 -131 merge rev. 1.235: use NODE_NOSRC for .Ux, .Ox, and friends 2017-01-10 21:59 schwarze Changed: mandocdb.c (1.235), "Exp", lines: +136 -131 mdoc_html.c (1.245), "Exp", lines: +2 -35 mdoc_man.c (1.99), "Exp", lines: +7 -7 mdoc_term.c (1.339), "Exp", lines: +18 -42 mdoc_validate.c (1.315), "Exp", lines: +43 -7 roff.c (1.287), "Exp", lines: +7 -3 For the .Ux/.Ox family of macros, do text production at the validation stage rather than in each and every individual formatter, using the new NODE_NOSRC flag. More rigorous and also ten lines less code. 2017-01-10 14:09 schwarze Changed: roff.c (1.286), "Exp", lines: +3 -9 simplify; NODE_ENDED does no harm in man(7) 2017-01-10 13:47 schwarze Changed: demandoc.c (1.28), "Exp", lines: +3 -3 man.c (1.167), "Exp", lines: +5 -5 man_html.c (1.121), "Exp", lines: +4 -4 man_macro.c (1.115), "Exp", lines: +6 -6 man_term.c (1.188), "Exp", lines: +9 -9 mdoc.c (1.258), "Exp", lines: +5 -5 mdoc_html.c (1.244), "Exp", lines: +19 -19 mdoc_macro.c (1.210), "Exp", lines: +31 -31 mdoc_man.c (1.98), "Exp", lines: +18 -18 mdoc_state.c (1.4), "Exp", lines: +2 -2 mdoc_term.c (1.338), "Exp", lines: +24 -24 mdoc_validate.c (1.314), "Exp", lines: +4 -4 roff.c (1.285), "Exp", lines: +9 -9 roff.h (1.39), "Exp", lines: +9 -12 tree.c (1.71), "Exp", lines: +7 -7 unify names of AST node flags; no change of cpp output 2017-01-10 12:53 schwarze Changed: mandoc.1 (1.169), "Exp", lines: +8 -2 mdoc_html.c (1.243), "Exp", lines: +4 -1 mdoc_man.c (1.97), "Exp", lines: +5 -2 mdoc_term.c (1.337), "Exp", lines: +13 -2 mdoc_validate.c (1.313), "Exp", lines: +16 -15 roff.h (1.38), "Exp", lines: +4 -2 tree.c (1.70), "Exp", lines: +5 -1 Introduce flags NODE_NOSRC and NODE_NOPRT for AST nodes. Use them to mark generated nodes and nodes that shall not produce output. Let -Ttree output mode display these new flags. Use NODE_NOSRC for .Ar, .Mt, and .Pa default arguments. Use NODE_NOPRT for .Dd, .Dt, and .Os. These will help to make handling of text production macros more rigorous. 2017-01-09 17:57 schwarze Changed: main.c (1.273.2.4), "Exp", lines: +6 -6 merge rev. 1.279: make "cat foo.mdoc | man -l" work 2017-01-09 17:49 schwarze Changed: main.c (1.279), "Exp", lines: +6 -6 tag.c (1.17), "Exp", lines: +3 -3 Use stdout rather than stdin for controlling the terminal such that "cat foo.mdoc | man -l" works. Issue reported by Christian Neukirchen <chneukirchen at gmail dot com> and also tested by him on Void Linux with both glibc and musl. The patch makes sense to millert@. 2017-01-09 14:10 schwarze Changed: mdoc.7 (1.260), "Exp", lines: +20 -8 Clarify how tabs after .It work because this is a really nasty trap for the unwary. Triggered by a question from Abhinav Upadhyay <er dot abhinav dot upadhyay at gmail dot com> (NetBSD) on discuss@. 2017-01-09 12:48 schwarze Changed: mdoc_html.c (1.242), "Exp", lines: +2 -2 The .No macro is not supposed to produce fixed-width font, it is not the same as .Li, so don't use <code>. Bug reported by <Anton dot Lindqvist at gmail dot com> on tech@. 2017-01-09 02:27 schwarze Changed: main.c (1.273.2.3), "Exp", lines: +3 -2 merge rev. 1.278: call new function mparse_updaterc() 2017-01-09 02:25 schwarze Changed: read.c (1.150.2.5), "Exp", lines: +8 -1 merge rev. 1.157: new function mparse_updaterc() 2017-01-09 02:24 schwarze Changed: read.c (1.150.2.4), "Exp", lines: +5 -3 merge rev.s 1.155 and 1.156: changes to the message catalogue 2017-01-09 02:21 schwarze Changed: read.c (1.150.2.3), "Exp", lines: +4 -2 merge rev. 1.154: improve message "whitespace at end of input line" 2017-01-09 01:37 schwarze Changed: main.c (1.278), "Exp", lines: +3 -2 mandoc.3 (1.38), "Exp", lines: +29 -4 mandoc.h (1.213), "Exp", lines: +2 -1 read.c (1.157), "Exp", lines: +8 -1 Warnings and errors that occur during mdoc_validate() or during man_validate() have to affect the mandoc(1) EXIT STATUS. Many thanks to <Yuri dot Pankov at gmail dot com> (illumos developer) for reporting this regression. 2017-01-08 22:51 schwarze Changed: mdoc_html.c (1.241), "Exp", lines: +9 -9 Indentation must be measured in units of the surrounding text, not in units of the contained text. Consequently, "display" and "lit" class tags must not be on the same element: First, "display" must set up the indentation, still using the outer units, and only after that, "lit" may change the font. This fixes .Bd -literal which got the wrong indentation. Bug reported by tb@. 2017-01-08 18:16 schwarze Changed: term.c (1.259), "Exp", lines: +15 -3 Fix an assertion failure caused by \z\[u00FF] with -Tps/-Tpdf. Reported by jsg@ after an afl(1) run long ago. 2017-01-08 16:38 schwarze Changed: html.c (1.193), "Exp", lines: +2 -2 style: missing blank between case statement and label; from Tiago Silva <tiagofilipesilva at icloud dot com> long ago 2017-01-08 02:01 schwarze Changed: mdoc_validate.c (1.312), "Exp", lines: +3 -2 Tolerate bare tabs in SYNOPSIS .Cd for now. It's used in half a dozen pages. Even though i have been thinking about it for years, i still can't suggest anything better. The false positives are annoying. 2017-01-08 00:11 schwarze Changed: mandoc.1 (1.168), "Exp", lines: +14 -7 mandoc.h (1.212), "Exp", lines: +4 -3 mdoc_validate.c (1.311), "Exp", lines: +19 -11 read.c (1.156), "Exp", lines: +4 -3 Stricter validation of the NAME section, in particular: - require a comma between names - reject all other text nodes - reject all empty Nm below NAME, not only in the leading position - reject Nm after Nd 2017-01-06 01:34 schwarze Changed: man.1 (1.20), "Exp", lines: +8 -8 mandoc.1 (1.167), "Exp", lines: +5 -5 sort options list; from jmc@ 2016-12-28 22:52 schwarze Changed: man.conf.5 (1.4), "Exp", lines: +2 -2 escape a macro name that is not intended to be called 2016-12-28 21:51 schwarze Changed: mandoc.1 (1.166), "Exp", lines: +3 -3 correct spelling error; from jmc@ 2016-12-28 17:34 schwarze Changed: mandoc.1 (1.165), "Exp", lines: +9 -2 mandoc.h (1.211), "Exp", lines: +2 -1 mdoc.7 (1.259), "Exp", lines: +5 -6 mdoc_validate.c (1.310), "Exp", lines: +19 -3 read.c (1.155), "Exp", lines: +2 -1 Make the second, section number argument of .Xr mandatory. In fact, we have been requiring it for many years. The only reason to not warn when it was missing was excessive traditionalism - it was optional in 4.4BSD. 2016-12-07 22:59 schwarze Changed: read.c (1.154), "Exp", lines: +4 -2 When reporting "whitespace at end of input line" on lines ending with roff(7) comments, let the column number in the message point to the end of the line rather than to the beginning of the comment. Improvement suggested by bluhm@. 2016-11-23 20:22 schwarze Changed: lib.in (1.19), "Exp", lines: +5 -1 sync with NetBSD: add four new libraries; triggered by a smaller patch from kamil@ via wiz@ 2016-11-19 15:24 schwarze Changed: Makefile (1.493), "Exp", lines: +11 -9 configure (1.54), "Exp", lines: +4 -2 configure.local.example (1.22), "Exp", lines: +16 -3 Do not install libmandoc.a by default. The only environment where it is ever needed is NetBSD base. Even NetBSD ports and pkgsrc should better not install it. Triggered by a question from bentley@. 2016-11-10 12:52 schwarze Changed: read.c (1.150.2.2), "Exp", lines: +12 -6 merge rev. 1.153: warn about trailing whitespace at the end of comments 2016-11-10 12:47 schwarze Changed: read.c (1.153), "Exp", lines: +12 -6 warn about trailing whitespace at the end of comments; missing feature noticed by jmc@ 2016-11-08 17:05 schwarze Changed: man.1 (1.19), "Exp", lines: +15 -3 document improved tagging functionality 2016-11-08 16:38 schwarze Changed: mdoc_term.c (1.336), "Exp", lines: +2 -2 use .Fn in custom sections for tagging, in addition to in DESCRIPTION; written on the TGV Paris-Strassbourg 2016-11-08 16:29 schwarze Changed: mdoc_term.c (1.335), "Exp", lines: +2 -1 tag leading .Dv, .Li, and .No in .It; written on the TGV Paris-Strassbourg 2016-11-08 16:23 schwarze Changed: mdoc_term.c (1.334), "Exp", lines: +25 -3 tag.c (1.16), "Exp", lines: +12 -4 implement tag priority 0, which will tag only keys that appear as tag candidates exactly once, and use it for .Em and .Sy; written on the TGV Toulouse-Paris 2016-11-08 16:04 schwarze Changed: mdoc_term.c (1.333), "Exp", lines: +4 -2 generate two tag entries from list entries of the form .It Macro tag1 ... | Macro tag2 ... written on the TGV Toulouse-Paris 2016-11-08 15:57 schwarze Changed: tag.c (1.15), "Exp", lines: +8 -2 skip leading \& and \e in tags 2016-11-08 15:28 schwarze Changed: tag.c (1.14), "Exp", lines: +39 -8 support more than one tag entry for the same search term; general idea discussed with bcook@ during l2k16 2016-10-22 10:13 schwarze Changed: mandocdb.c (1.220.2.4), "Exp", lines: +3 -2 merge 1.234: cast off_t and uint64_t for printf(3) 2016-10-22 10:09 schwarze Changed: dbm_map.c (1.7), "Exp", lines: +2 -2 mandocdb.c (1.234), "Exp", lines: +3 -2 cast off_t and uint64_t for printf(3) to make sure that widths match on all platforms; from Ed Maste <emaste at freebsd dot org>; OK guenther@ 2016-10-20 19:34 schwarze Changed: configure (1.43.2.7), "Exp", lines: +2 -1 fix sqlite3_errstr() autodetection if sqlite3 is in /usr/local 2016-10-20 18:52 schwarze Changed: configure (1.43.2.6), "Exp", lines: +27 -18 configure.local.example (1.14.2.5), "Exp", lines: +3 -2 mandocdb.c (1.220.2.3), "Exp", lines: +32 -15 merge reproducible build support including compat glue to 1.13 branch: mandocdb.c 1.231 & 1.232; configure 1.52 & 1.53; configure.local.example 1.21 2016-10-20 18:47 schwarze Changed: configure (1.53), "Exp", lines: +2 -2 typo in informational message: s/UTF_LOCALE/UTF8_LOCALE/ 2016-10-20 18:06 schwarze Changed: Makefile (1.488.2.3), "Exp", lines: +2 -1 add test-EFTYPE.c, related to configure rev. 1.43.2.5 2016-10-20 17:57 schwarze Changed: configure.local.example (1.14.2.4), "Exp", lines: +2 -1 add EFTYPE, corresponding to configure rev. 1.43.2.5 2016-10-20 17:51 schwarze Changed: configure (1.43.2.5), "Exp", lines: +4 -1 merge rev. 1.46: work around the lack of EFTYPE 2016-10-20 17:40 schwarze Changed: mandocdb.c (1.220.2.2), "Exp", lines: +2 -2 merge rev. 1.233: 0x%llu is a bad idea, make that 0x%llx 2016-10-20 17:35 schwarze Changed: mandocdb.c (1.220.2.1), "Exp", lines: +2 -2 merge rev. 1.226: fix a typo that prevented names from .Dt from getting priority over names from .Sh NAME 2016-10-20 16:31 schwarze Changed: mandocdb.c (1.233), "Exp", lines: +2 -2 0x%llu is a bad idea, make that 0x%llx; noticed while investigating a report from Ed Maste 2016-10-20 16:12 schwarze Changed: dbm_map.c (1.6), "Exp", lines: +2 -2 st_size is off_t, which is signed, so use %lld rather than %llu; noticed by Ed Maste when compiling on FreeBSD 2016-10-19 22:20 schwarze Changed: man.1 (1.18), "Exp", lines: +4 -8 Avoid the confusion that -a might require a section argument; it does not. Triggered by a question from <jmates at ee dot washington at edu>. OK jmc@. 2016-10-18 23:58 schwarze Changed: compat_fts.c (1.12), "Exp", lines: +61 -8 compat_fts.h (1.4), "Exp", lines: +5 -1 bring back support for sorting 2016-10-18 23:13 schwarze Changed: compat_fts.c (1.11), "Exp", lines: +12 -17 sync with OpenBSD 2016-10-18 22:44 schwarze Changed: read.c (1.150.2.1), "Exp", lines: +2 -2 merge ".Bl -tag without -width" fix to 1.13 branch 2016-10-18 22:27 schwarze Changed: dbm.c (1.5), "Exp", lines: +23 -19 The termination condition of the iteration logic in page_bymacro() was overzealous. Consequently, macro=substr and macro~regexp searches only returned all pages containing the first matching macro value, rather than all pages containing any of the matching macro values. Bug reported by tb@ - thanks! 2016-10-18 16:06 schwarze Changed: configure (1.52), "Exp", lines: +24 -15 configure.local.example (1.21), "Exp", lines: +3 -2 mandocdb.c (1.232), "Exp", lines: +9 -1 test-fts.c (1.4), "Exp", lines: +18 -1 Compat glue for the FreeBSD comparison function prototype for fts_open(3) which differs from what most other systems use. While here, improve diagnostic output of ./configure tests. 2016-10-18 16:01 schwarze Changed: Makefile.depend (1.25), "Exp", lines: +1 -1 update after rev. 1.5 of dba.c 2016-10-18 14:15 schwarze Changed: LICENSE (1.13), "Exp", lines: +4 -3 mandocdb.c (1.231), "Exp", lines: +26 -36 Simplify and correct support for reproducible builds, such that database entries come in a well-defined order even in the presence of MLINKS. Do this by using the compar() argument of fts_open(3) rather than trying to sort later, which missed some cases. This also shortens the code by a few lines. Diff from Ed Maste <emaste @ FreeBSD>, adapted to our tree and tweaked a bit by me, final version confirmed by Ed. 2016-10-11 17:30 schwarze Changed: mdoc.7 (1.258), "Exp", lines: +8 -2 link to http://mdocml.bsd.lv/mdoc/ below SEE ALSO; tweak and OK jmc@ 2016-10-09 18:16 schwarze Changed: mandoc.h (1.210), "Exp", lines: +2 -2 mdoc_term.c (1.332), "Exp", lines: +2 -2 mdoc_validate.c (1.309), "Exp", lines: +1 -82 read.c (1.152), "Exp", lines: +2 -2 Delete complicated code dealing with .Bl -tag without -width, and just let it default to -width 6n, which agrees with the traditional -width Ds that is still in widespread use. I just pushed a patch upstream to GNU roff that does the same for groff_mdoc(7). Before, groff contained code that was even more complicated than mandoc, but both resulted in quite different user-visible output. Now, both agree, and output is nicer for both. Useless complication noticed by Carsten Kunze (Heirloom roff). 2016-09-18 16:13 schwarze Changed: main.c (1.273.2.2), "Exp", lines: +49 -32 merge wide stream fixes from HEAD to 1.13, rev. 1.276 and 1.277 2016-09-18 15:47 schwarze Changed: main.c (1.277), "Exp", lines: +15 -5 We cannot use fputs(3) in passthrough() because the stdout stream might be in stdio wide orientation due to prior formatting of an unformatted manual in man -aTutf8 mode. So for now, use fflush(3) followed by unbuffered write(2) instead. Fixes output corruption on glibc discovered on Linux while testing a diff to fix a loosely related bug reported by <jmates at ee dot washington dot edu>. I detest the concept of stdio stream orientation. One day, i will rewrite term_ascii.c to always use narrow streams, even in UTF-8 output mode. But that's too much work for today. 2016-09-18 15:22 schwarze Changed: main.c (1.276), "Exp", lines: +35 -28 Make sure an output device is allocated before calling terminal_sepline(), fixing a NULL pointer access that happened when the first of multiple pages shown was preformatted, as in "man -a groff troff". Crash reported by <jmates at ee dot washington dot edu> on bugs@, thanks! 2016-09-13 12:09 schwarze Changed: TODO (1.222), "Exp", lines: +8 -1 minor tbl(7) column spacing and wrapping issues in lftp(1) 2016-09-12 00:06 schwarze Changed: cgi.c (1.141), "Exp", lines: +2 -2 use the proper HTML escape for double quote ("): " not "e; patch from bentley@ 2016-09-03 21:24 schwarze Changed: cgi.c (1.140), "Exp", lines: +4 -4 move zaurus down to the discontinued architectures 2016-09-02 14:03 schwarze Changed: mandocdb.c (1.230), "Exp", lines: +4 -4 When "makewhatis -d" tries to add to a database that doesn't (yet) exist, silently create it from scratch instead of printing a warning. The annoying warning message was reported by ajacoutot@, and espie@ convincingly argues that a non-existing database can be considered equivalent to an empty one. 2016-09-01 15:08 schwarze Changed: mandocdb.c (1.229), "Exp", lines: +2 -2 remove "sparc" from a comment 2016-09-01 15:07 schwarze Changed: cgi.c (1.139), "Exp", lines: +4 -4 move "sparc" down to discontinued architectures 2016-08-30 22:01 schwarze Changed: dbm.c (1.4), "Exp", lines: +16 -2 When the database is corrupt in the sense of containing invalid pointers in the pages table, do not access NULL pointers, but gracefully handle the errors. Similar patches will be needed for the macro tables, too. <attila at stalphonsos dot com> audited the code and pointed out to me that dbm_get() can return NULL for corrupted databases, but that isn't handled properly at various places. 2016-08-30 21:37 schwarze Changed: dbm_map.c (1.5), "Exp", lines: +6 -2 less confusing warning message about negative offsets 2016-08-28 16:15 schwarze Changed: mdoc_argv.c (1.109), "Exp", lines: +2 -2 If a line inside .Bl -column starts with a tab character and there was no preceding .It macro, do not read the byte before the beginning of the line buffer. Found by tb@ with afl@. 2016-08-22 16:15 schwarze Changed: mandocdb.c (1.228), "Exp", lines: +5 -5 When trying to edit an existing database with makewhatis(8) -d or -u but reading the database fails, report the full path to the database on standard error, and mention that the database is automatically recreated from scratch. Suggested by espie@. 2016-08-22 16:07 schwarze Changed: dbm_map.c (1.4), "Exp", lines: +9 -3 When running into a mandoc.db(5) file still using the obsolete format based on SQLite 3, say so in words that mortals can understand rather than babbling about hex magic. Suggested by espie@. 2016-08-20 17:59 schwarze Changed: mdoc_macro.c (1.209), "Exp", lines: +23 -14 When a mismatching end macro occurs while at least two nested blocks are open, all except the innermost open block got a bogus MDOC_ENDED marker, in some situations triggering segfaults down the road which tb@ found with afl(1). Fix the logic error by figuring out up front whether an end macro has a matching body, and if it hasn't, don't mark any blocks as broken. 2016-08-20 15:58 schwarze Changed: mdoc_macro.c (1.208), "Exp", lines: +2 -2 When scanning upwards for a column list to put a .Ta macro in, ignore body end markers of lists breaking other blocks. Fixing a logical error that caused a NULL deref found by tb@ with afl(1). 2016-08-20 14:43 schwarze Changed: mdoc.c (1.257), "Exp", lines: +20 -43 mdoc_validate.c (1.308), "Exp", lines: +34 -6 If a column list starts with implicit rows (that is, rows without .It) and roff-level nodes (e.g. tbl or eqn) follow, don't run into an assertion. Instead, wrap the roff-level nodes in their own row. Issue found by tb@ with afl(1). 2016-08-18 09:02 schwarze Changed: cgi.c (1.138), "Exp", lines: +2 -1 fix an fd leak; patch from jsg@ 2016-08-17 20:46 schwarze Changed: dba.c (1.8), "Exp", lines: +3 -6 dba.h (1.2), "Exp", lines: +2 -3 dba_read.c (1.4), "Exp", lines: +4 -5 mandocdb.c (1.227), "Exp", lines: +3 -2 When the content of a manual page does not specify a section, the empty string got added to the list of sections, breaking the database format slightly and causing the page to not be considered part of any section, not even if a section could be deduced from the directory or from the file name. Bug found due to the bogus pcredemo(3) "manual" in the pcre-8.38p0 package. 2016-08-17 18:59 schwarze Changed: dba.c (1.7), "Exp", lines: +3 -2 dba_read.c (1.3), "Exp", lines: +3 -4 When reading back a mandoc.db(5) file in order to apply incremental changes, do not prepend a stray NAME_FILE (0x10) byte to the first names of pages. Bug found while investigating another issue reported by sthen@. 2016-08-17 18:10 schwarze Changed: dba.c (1.6), "Exp", lines: +2 -2 Make sure manuals in architecture-independent directories are treated as architecture-independent even if they abuse the third (architecture) argument of the .Dt macro for random stuff like "freetds reference manual". While the .Dt syntax is not the same as the .TH syntax in man(7), punishing offenders by treating them as architecture-dependent and hence completely excluding them from searches is too severe. Problem reported by sthen@. 2016-08-11 13:30 schwarze Changed: mdoc_macro.c (1.207), "Exp", lines: +2 -2 Even after switching from a pending head to the body, we have to continue scanning upwards, because the enclosing block might already be pending as well, e.g. .Bl .Bl .It Bo .El .It. Tree corruption leading to a later NULL deref found by tb@ with afl(1). 2016-08-11 11:39 schwarze Changed: mdoc_validate.c (1.307), "Exp", lines: +3 -2 oops, fix stupid typo in previous 2016-08-11 10:47 schwarze Changed: mdoc_validate.c (1.306), "Exp", lines: +5 -4 If a .Bd display is on the one hand doomed to be deleted because it has no type, but is on the other hand breaking another block, delete its end marker as well, or the end marker may remain behind as an orphan, triggering an assertion in the terminal formatter. Problem found by tb@ with afl(1). 2016-08-10 20:17 schwarze Changed: mdoc_validate.c (1.305), "Exp", lines: +8 -5 Don't deref NULL if the only child of the first .Sh is an empty in-line macro, and don't printf("%s", NULL) if the first child of the first .Sh is a macro; again found by tb@ with afl(1). (No, you should never use macros in any .Sh at all, please.) 2016-08-10 18:39 schwarze Changed: cgi.c (1.137), "Exp", lines: +6 -5 move armish and hppa64 down in the dropdown box; reminded by jmc@ 2016-08-10 12:54 schwarze Changed: configure (1.43.2.4), "Exp", lines: +2 -2 merge tentative 'entering directory' fix for gmake to 1.13 branch 2016-08-10 12:50 schwarze Changed: configure (1.51), "Exp", lines: +2 -2 When trying to figure out which C compiler make(1) wants to use, pass it the POSIX -s option. On most systems, this won't make a difference, but Bdale Garbee reported that the make(1) on his Debian system, most likely some version of gmake, breaks Makefile.local by printing some 'entering directory' messages. I failed to reproduce and Bdale didn't report back, but judging from gmake source code, this is likely to help and unlikely to do harm elsewhere. 2016-08-10 12:29 schwarze Changed: mdoc_validate.c (1.304), "Exp", lines: +4 -3 Don't printf("%s", NULL) if .It has a macro as an argument in a list of a type where items don't takes arguments. Issue found by tb@ with afl(1). 2016-08-10 12:06 schwarze Changed: mdoc_validate.c (1.303), "Exp", lines: +2 -1 When validating a .Bl list that defaults to -item for want of a type, don't let a subsequent -width access mdoc_argnames[] out of bounds. Found by tb@ with afl(1). 2016-08-10 11:03 schwarze Changed: term.c (1.258), "Exp", lines: +6 -4 term_ps.c (1.82), "Exp", lines: +46 -58 Fix assertion failures caused by whitespace inside \o'' (overstrike) sequences that jsg@ found with afl(1): * Avoid writing \t\b in term.c. * Handle trailing \b in term_ps.c. 2016-08-09 15:15 schwarze Changed: main.c (1.273.2.1), "Exp", lines: +3 -2 backport to 1.13: fix printf("%s", NULL) 2016-08-09 15:09 schwarze Changed: main.c (1.275), "Exp", lines: +3 -2 mdoc_validate.c (1.302), "Exp", lines: +5 -4 fix printf("%s", NULL); found while investigating an unrelated bug report from jsg@ 2016-08-05 23:15 schwarze Added: test-be32toh.c (1.1) test-ntohl.c (1.1) Changed: Makefile (1.492), "Exp", lines: +4 -2 configure (1.50), "Exp", lines: +22 -1 configure.local.example (1.20), "Exp", lines: +4 -1 dba.c (1.5), "Exp", lines: +9 -1 dba_write.c (1.3), "Exp", lines: +7 -1 dbm.c (1.3), "Exp", lines: +7 -1 dbm_map.c (1.3), "Exp", lines: +7 -1 The concept of endianness seems to be somewhat newfangled, so the respective conversion functions are not yet properly standardized. Rumour has it that POSIX is working on it, though. For now, sprinkle some configuration glue. 2016-08-05 23:08 schwarze Changed: mansearch.c (1.68), "Exp", lines: +2 -0 Really protect <err.h> as already promised in the previous commit message. 2016-08-05 21:38 schwarze Changed: dba.c (1.4), "Exp", lines: +2 -1 missing <endian.h> reported by Bapt@iste Daroussin, found on FreeBSD 2016-08-05 17:22 schwarze Changed: mandocdb.c (1.226), "Exp", lines: +2 -2 fix a typo that prevented names from .Dt from getting priority over names from .Sh NAME 2016-08-04 09:33 schwarze Changed: dba_read.c (1.2), "Exp", lines: +2 -2 Fix an assertion failure that happened when trying to add a page with makewhatis -d to a completely empty database. Reported by Mark Patruck <mark at wrapped dot cx>, thanks! 2016-08-02 11:19 schwarze Changed: Makefile (1.488.2.2), "Exp", lines: +2 -1 configure (1.43.2.3), "Exp", lines: +3 -1 configure.local.example (1.14.2.3), "Exp", lines: +2 -1 1.13 backport: handle absence of PATH_MAX 2016-08-02 11:09 schwarze Added: test-PATH_MAX.c (1.1) Changed: Makefile (1.491), "Exp", lines: +3 -1 TODO (1.221), "Exp", lines: +8 -1 compat_fts.c (1.10), "Exp", lines: +4 -1 configure (1.49), "Exp", lines: +4 -1 configure.local.example (1.19), "Exp", lines: +3 -1 POSIX allows PATH_MAX to not be defined, meaning "unlimited". Found by Aaron M. Ucko <amu at alum dot mit dot edu> on the GNU Hurd, via Bdale Garbee, https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=829624 Also add EFTYPE at two places where it was forgotten. 2016-08-01 20:53 schwarze Changed: mandocdb.c (1.225), "Exp", lines: +4 -3 Repair makewhatis -t, regression in rev. 1.221 reported by naddy@. 2016-08-01 12:31 schwarze Changed: mansearch.h (1.27), "Exp", lines: +3 -3 Adjust MANDOC_DB and bump MANDOCDB_VERSION now that this was put into production in OpenBSD-current. 2016-08-01 12:27 schwarze Changed: mandoc.db.5 (1.5), "Exp", lines: +156 -84 document the new file format 2016-07-31 23:37 schwarze Changed: cgi.c (1.136), "Exp", lines: +3 -2 Some base system pages, for example perl(1), contain non-ASCII characters in their source code, so switch on charset autodetection in the same way as in man(1) itself. Issue reported by Pavan Maddamsetti at gmail dot com on bugs@. 2016-07-31 09:47 schwarze Changed: configure (1.43.2.2), "Exp", lines: +29 -2 configure.local.example (1.14.2.2), "Exp", lines: +8 -1 1.13 backport: autodetect UTF8_LOCALE 2016-07-31 09:29 schwarze Changed: TODO (1.220), "Exp", lines: +1 -11 configure (1.48), "Exp", lines: +29 -2 configure.local.example (1.18), "Exp", lines: +8 -1 term_ascii.c (1.54), "Exp", lines: +2 -2 test-wchar.c (1.4), "Exp", lines: +4 -4 Autodetect a suitable locale for -Tutf8 mode, and allow overriding it manually. Based on a patch from Svyatoslav Mishyn <juef at openmailbox dot org> tweaked by me. The idea originally came up in a conversation with Markus Waldeck. 2016-07-29 15:29 schwarze Changed: dba.c (1.3), "Exp", lines: +19 -7 Sort sections and architectures in the pages table. 2016-07-29 15:26 schwarze Changed: mandocdb.c (1.224), "Exp", lines: +27 -8 Sort pages in the pages table by file names. 2016-07-29 15:23 schwarze Changed: dba.c (1.2), "Exp", lines: +5 -2 mandocdb.c (1.223), "Exp", lines: +8 -25 No need to populate the TYPE_arch and TYPE_sec bits, the information is provided directly to dba_page_add() in dbadd_mlink() and to dba_page_new() in dbadd(). No need for a dedicated loop for NAME_FILE. It's done in dbadd_mlink() anyway. In this context, also record section numbers taken from filenames and from .Dt and .TH macros, architectures taken from .Dt macros, and fix the filtering of duplicate filename entries. 2016-07-20 14:14 schwarze Changed: Makefile (1.488.2.1), "Exp", lines: +2 -1 configure (1.43.2.1), "Exp", lines: +19 -1 configure.local.example (1.14.2.1), "Exp", lines: +11 -5 1.13 backport: Autodetect if -lrt is needed for nanosleep(3). 2016-07-20 14:03 schwarze Added: test-nanosleep.c (1.1) Changed: Makefile (1.490), "Exp", lines: +2 -1 configure (1.47), "Exp", lines: +19 -1 configure.local.example (1.17), "Exp", lines: +11 -5 Autodetect if -lrt is needed for nanosleep(3). Helpful for Solaris 9 and 10. Reminded by Thomas Klausner. 2016-07-20 13:03 schwarze Changed: tag.c (1.13), "Exp", lines: +2 -2 tag_signal() is dead; from LLVM via Christos Zoulas 2016-07-20 00:23 schwarze Added: test-EFTYPE.c (1.1) Changed: Makefile.depend (1.24), "Exp", lines: +9 -9 configure (1.46), "Exp", lines: +3 -0 dba_write.c (1.2), "Exp", lines: +5 -1 dbm.c (1.2), "Exp", lines: +5 -1 dbm_map.c (1.2), "Exp", lines: +5 -1 mansearch.c (1.67), "Exp", lines: +2 -1 mansearch.h (1.26), "Exp", lines: +2 -2 Linux compatibility: Work around the lack of EFTYPE and protect <err.h>. 2016-07-19 22:40 schwarze Changed: INSTALL (1.17), "Exp", lines: +10 -13 configure (1.45), "Exp", lines: +1 -19 configure.local.example (1.16), "Exp", lines: +4 -17 makewhatis.8 (1.4), "Exp", lines: +2 -4 mandocdb.c (1.222), "Exp", lines: +2 -3 manpath.c (1.31), "Exp", lines: +1 -52 Now that our man.conf(5) format is mature and extremely simple, delete manpath(1) support. With the mandoc-based man(1), manpath(1) is utterly useless. Just set MANPATH_DEFAULT in configure.local for sane operating system defaults, use man.conf(5) for machine- specific modifications, and use ${MANPATH}, -m, and -M for user preferences. 2016-07-19 21:31 schwarze Deleted: compat_sqlite3_errstr.c (1.5) mansearch_const.c (1.8) test-mmap.c (1.7) test-sqlite3.c (1.3) test-sqlite3_errstr.c (1.3) Added: dba.c (1.1) dba.h (1.1) dba_array.c (1.1) dba_array.h (1.1) dba_read.c (1.1) dba_write.c (1.1) dba_write.h (1.1) dbm.c (1.1) dbm.h (1.1) dbm_map.c (1.1) dbm_map.h (1.1) Changed: INSTALL (1.16), "Exp", lines: +5 -16 Makefile (1.489), "Exp", lines: +43 -38 Makefile.depend (1.23), "Exp", lines: +12 -8 TODO (1.219), "Exp", lines: +1 -7 configure (1.44), "Exp", lines: +5 -65 configure.local.example (1.15), "Exp", lines: +19 -48 main.c (1.274), "Exp", lines: +4 -25 mandocdb.c (1.221), "Exp", lines: +91 -368 mansearch.c (1.66), "Exp", lines: +469 -573 mansearch.h (1.25), "Exp", lines: +14 -7 read.c (1.151), "Exp", lines: +1 -7 Remove the dependency on SQLite without loss of functionality. Stop supporting systems that don't have mmap(3). Drop the obsolete names_check() now that we deleted MLINKS. 2016-07-19 17:56 schwarze Changed: configure.local.example (1.14), "Exp", lines: +2 -4 Remove one outdated comment and fix one typo noted by Jan Stary <hans at stare dot cz>. 2016-07-19 16:22 schwarze Changed: read.c (1.150), "Exp", lines: +3 -25 Since the mdoc/man parser unification, the parser is always allocated in mparse_alloc(), so delete all the curp->man == NULL checks. Triggered by a patch from Christos Zoulas suggesting to add yet another such check. 2016-07-19 13:36 schwarze Changed: configure (1.43), "Exp", lines: +3 -5 html.h (1.73), "Exp", lines: +3 -5 libmandoc.h (1.64), "Exp", lines: +3 -5 main.c (1.273), "Exp", lines: +1 -7 mandoc_aux.h (1.5), "Exp", lines: +3 -2 mandocdb.c (1.220), "Exp", lines: +5 -4 term_ps.c (1.81), "Exp", lines: +3 -5 Use __attribute__((__format__ throughout. Triggered by a smaller patch from Christos Zoulas. While here, unify style, move several config tests to config.h, and delete the useless MANDOC_CONFIG_H. 2016-07-18 18:35 schwarze Changed: test-ohash.c (1.5), "Exp", lines: +21 -3 test-vasprintf.c (1.4), "Exp", lines: +5 -2 cope with -Wmissing-prototypes 2016-07-15 19:33 schwarze Changed: main.c (1.272), "Exp", lines: +2 -2 main.h (1.26), "Exp", lines: +1 -3 To remove the const qualifier from a pointer to an object - either because we know it is actually mutable or because we are passing it to a function that doesn't accept a const object but won't actually attempt to modify it - simply casting from (const type *) to (type *) is legal C and clearly expresses the intent. So get rid of the obfuscating UNCONST macro. Basic idea discussed with guenther@. 2016-07-15 18:50 schwarze Changed: main.c (1.271), "Exp", lines: +3 -4 Fix previous: the mandocdb() prototype was already there, it just hid among static functions, as noticed by tedu@ (my bad). 2016-07-15 18:03 schwarze Changed: Makefile.depend (1.22), "Exp", lines: +3 -3 configure (1.42), "Exp", lines: +2 -1 main.c (1.270), "Exp", lines: +4 -1 man_hash.c (1.35), "Exp", lines: +3 -1 mandocdb.c (1.219), "Exp", lines: +4 -1 mdoc_argv.c (1.108), "Exp", lines: +2 -1 mdoc_hash.c (1.27), "Exp", lines: +3 -1 add missing prototypes, no code change; noticed by Christos Zoulas with -Wmissing-prototypes 2016-07-15 15:08 schwarze Changed: configure (1.41), "Exp", lines: +1 -1 Sanitize the environment when calling make(1) to autodetect ${CC}. Sevan Janiyan found during testing on AIX that ${CC} could leak in. 2016-07-14 11:09 tag VERSION_1_13_4 2016-07-14 11:09 schwarze Changed: INSTALL (1.15), "Exp", lines: +2 -2 NEWS (1.12), "Exp", lines: +29 -19 configure.local.example (1.13), "Exp", lines: +9 -1 final 1.13.4 release notes 2016-07-12 05:18 kristaps Added: test-sandbox_init.c (1.1) Changed: Makefile (1.488), "Exp", lines: +2 -1 configure (1.40), "Exp", lines: +3 -0 main.c (1.269), "Exp", lines: +9 -1 mandocdb.c (1.218), "Exp", lines: +11 -1 Add support for Mac OS X's sandbox_init(3) sandbox functionality, which is marked as DEPRECATED in OS X after 2011 or so, but has not been removed and has no replacement. ok schwarze@ 2016-07-11 22:48 schwarze Changed: cgi.c (1.135), "Exp", lines: +42 -17 man.cgi.8 (1.20), "Exp", lines: +5 -3 Make all components of the URI individually optional, independent of each other, as in: http://man.openbsd.org[/manpath][/mansec][/arch]/name[.sec] The restrictions in the past kept confusing people. Triggered by a question from RafaelNeves at gmail dot com. 2016-07-10 18:24 schwarze Changed: Makefile (1.487), "Exp", lines: +6 -6 configure (1.39), "Exp", lines: +2 -0 configure.local.example (1.12), "Exp", lines: +9 -2 support LDFLAGS; suggested by Christian Neukirchen <chneukirchen at gmail dot com> 2016-07-10 14:05 schwarze Changed: main.c (1.268), "Exp", lines: +3 -3 On OpenBSD, more(1) is actually less(1) with a small number of compatibility features - so we can safely use more -T on OpenBSD. But don't do that in the portable version: more -T is unlikely to work elsewhere. Issue reported by Svyatoslav Mishyn <juef at openmailbox dot org>. 2016-07-10 13:34 schwarze Changed: read.c (1.149), "Exp", lines: +2 -2 Fix a nasty typo that prevented .so links to gziped manuals from working in the absence of a mandoc.db(5) database. Found the hard way by Svyatoslav Mishyn on Crux Linux. 2016-07-10 10:05 schwarze Changed: Makefile (1.486), "Exp", lines: +1 -5 cgi.c (1.134), "Exp", lines: +4 -12 man.cgi.8 (1.19), "Exp", lines: +12 -13 Simplify the code and the server setup by deleting the pseudo-manpath "mandoc" that was used for man.cgi(8) documentation and by assuming that the apropos(1) and man.cgi(8) manuals are simply installed in the default manpath. Even though man.cgi(8) is not installed by default when installing OpenBSD, it is easy to copy it into the default manpath used for man.cgi(8). Idea found when considering a question asked by wrant dot com. 2016-07-09 19:58 schwarze Changed: cgi.c (1.133), "Exp", lines: +2 -2 Do not treat PATH_INFO as a complete path if it doesn't contain a manpath. For example, this makes http://man.openbsd.org/mandoc work as expected. Bug reported by tb@, reminded by Svyatoslav Mishyn. 2016-07-09 15:24 schwarze Changed: demandoc.c (1.27), "Exp", lines: +1 -2 mandocdb.c (1.217), "Exp", lines: +1 -2 manpage.c (1.14), "Exp", lines: +1 -2 mansearch.c (1.65), "Exp", lines: +1 -2 getopt(3) is declared in <unistd.h>, and <getopt.h> is not needed; from Joerg Sonnenberger via Thomas Klausner, NetBSD. 2016-07-08 22:29 schwarze Changed: main.c (1.267), "Exp", lines: +2 -2 main.h (1.25), "Exp", lines: +2 -2 term_ascii.c (1.53), "Exp", lines: +6 -7 ISO C99 7.19.2.5 doesn't like mixing putchar(3) and putwchar(3) on the same stream, and actually, it fails spectacularly on glibc. Portability issue pointed out by Svyatoslav Mishyn <juef at openmailbox dot org> after testing on Void Linux. 2016-07-08 20:46 schwarze Changed: Makefile (1.485), "Exp", lines: +6 -1 A some missing files to TESTSRCS and DISTFILES and add a trivial "dist" target for convenience. 2016-07-08 20:42 schwarze Changed: tag.c (1.12), "Exp", lines: +19 -7 POSIX requires that a process calling tcsetpgrp(3) from the background gets a SIGTTOU signal. In that case, do not stop. Portability issue found while testing on commercial Solaris 9/10/11. Thanks to opencsw.org for providing me with a testing environment. 2016-07-07 23:46 schwarze Changed: INSTALL (1.14), "Exp", lines: +3 -3 LICENSE (1.12), "Exp", lines: +2 -2 Makefile (1.484), "Exp", lines: +2 -2 NEWS (1.11), "Exp", lines: +124 -1 some 1.13.4 release preparations 2016-07-07 19:19 schwarze Changed: libmandoc.h (1.63), "Exp", lines: +1 -2 man.cgi.3 (1.2), "Exp", lines: +14 -9 mandoc.3 (1.37), "Exp", lines: +87 -96 mandoc_headers.3 (1.8), "Exp", lines: +92 -84 mandoc_malloc.3 (1.2), "Exp", lines: +10 -16 mchars_alloc.3 (1.4), "Exp", lines: +4 -3 update developer documentation 2016-07-07 14:35 schwarze Changed: mandoc.db.5 (1.4), "Exp", lines: +2 -3 sync with OpenBSD: do not mention mansearch(3), which is not installed, in a manual which is installed 2016-07-07 14:34 schwarze Changed: man.cgi.8 (1.18), "Exp", lines: +3 -5 sync with OpenBSD: do not talk about nginx(8) 2016-07-01 20:24 schwarze Changed: man.1 (1.17), "Exp", lines: +7 -31 Update and simplify the documentation of the -s option, which was forgotten when implementing the new man.conf(5) format. The outdated information was originally pointed out by Andy Bradford <amb dash openbsd at bradfords dot org> on misc@. OK jmc@ 2016-06-05 21:06 schwarze Changed: TODO (1.218), "Exp", lines: +1 -6 delete two entries that are done 2016-05-28 13:44 schwarze Changed: manpath.c (1.30), "Exp", lines: +5 -6 Trim trailing whitespace from man.conf lines; patch from millert@. 2016-05-28 13:40 schwarze Changed: cgi.c (1.132), "Exp", lines: +9 -28 man.cgi.8 (1.17), "Exp", lines: +11 -16 Simplify search form: minus two visible control elements, minus one table, minus twenty lines of code, no loss of functionality. No idea why i didn't do this earlier... 2016-05-18 23:51 schwarze Changed: Makefile (1.483), "Exp", lines: +7 -7 Delete useless variables that could sneak into the Makefile behind the user's back, dangerously bypassing ./configure. Leakage reported by Peter Bray <pdb_ml at yahoo dot com dot au>. 2016-05-18 22:36 schwarze Changed: main.c (1.266), "Exp", lines: +3 -3 Do not hardcode "makewhatis" in a warning message, use BINM_MAKEWHATIS. Patch from Peter Bray <pdb_ml at yahoo dot com dot au>. 2016-05-18 21:37 schwarze Changed: Makefile (1.482), "Exp", lines: +6 -6 configure (1.38), "Exp", lines: +33 -32 configure.local.example (1.11), "Exp", lines: +34 -13 Various people (among others Maxim Belooussov and Carsten Kunze) reported that the build system still assumed that ohash is only needed if sqlite3 is also in use, which is no longer true: The ohash library is now required no matter what. Rework sqlite3 and ohash library autodetection such that both work independently of each other. Provide LDADD for additional linker flags. Add some missing variables to configure.local.example. 2016-05-18 20:43 schwarze Changed: test-rewb-bsd.c (1.2), "Exp", lines: +1 -0 test-rewb-sysv.c (1.2), "Exp", lines: +1 -0 Linux needs <stddef.h>, or NULL isn't defined. 2016-04-29 10:45 schwarze Changed: cgi.c (1.131), "Exp", lines: +18 -9 Only focus on the query input box when no manual page is displayed, that is, for the index page, for the noresult page, and for the result of an apropos(1) query with more than one page. As noted by bentley@, when a manual page is displayed, it is more important that people can quickly use the space bar for paging and Ctrl-F for searching. 2016-04-28 17:59 schwarze Changed: cgi.c (1.130), "Exp", lines: +2 -2 Set the "autofocus" attribute on the query text box. Patch from Fabian dot Raetz at gmail dot com. 2016-04-15 21:20 schwarze Changed: Makefile (1.481), "Exp", lines: +3 -1 set up man.cgi(3) for inclusion in the web site 2016-04-15 21:16 schwarze Added: man.cgi.3 (1.1) document the internals of cgi.c for developers; not intended to be installed 2016-04-15 21:14 schwarze Changed: cgi.c (1.129), "Exp", lines: +16 -16 Rename five static functions to make the classification of functions as parsers, page generators, and result generators more obvious. No functional change. 2016-04-15 16:42 schwarze Changed: cgi.c (1.128), "Exp", lines: +19 -23 prefer warn[x](3) over fprintf(3) where appropriate 2016-04-15 15:13 schwarze Changed: cgi.c (1.127), "Exp", lines: +14 -18 Fix parsing of PATH_INFO if both a section directory and an architecture subdirectory are specified. Issue reported by tb@. 2016-04-15 01:34 schwarze Changed: cgi.c (1.126), "Exp", lines: +97 -97 Make HTML tags lower case for better stylistic agreement with what html.c does. 2016-04-15 00:51 schwarze Changed: cgi.c (1.125), "Exp", lines: +10 -10 In the architectures dropdown, move aviion, ia64, solbourne, and vax down to the currently unsupported entries. 2016-04-15 00:37 schwarze Changed: cgi.c (1.124), "Exp", lines: +4 -3 If PATH_INFO contains a complete and correct path to a manual page file, for example "/OpenBSD-5.9/man2/pledge.2", no database query is needed and the file is delivered directly. But even in this case, let's parse the PATH_INFO and fill the query structure such that the search form at the top of the result page gets pre-filled with useful values. 2016-04-15 00:14 schwarze Changed: cgi.c (1.123), "Exp", lines: +24 -21 omit list of other results when there is only one match 2016-04-14 23:48 schwarze Changed: cgi.c (1.122), "Exp", lines: +3 -7 for .Xr links, use short PATH_INFO style URIs 2016-04-14 20:55 schwarze Changed: main.c (1.265), "Exp", lines: +9 -3 Fix a process group race. It could occasionally happen that the child process spawned less(1) before the parent process passed the control of the terminal to the child, and in that case, less(1) sometimes complained "Stopped (tty output)". Issue reported by naddy@. 2016-04-14 20:40 schwarze Changed: cgi.c (1.121), "Exp", lines: +5 -2 do not rewrite short queries 2016-04-14 11:16 schwarze Changed: TODO (1.217), "Exp", lines: +6 -1 in -man -Thtml, .nf does not preserve indentation 2016-04-13 15:38 schwarze Changed: cgi.c (1.120), "Exp", lines: +15 -13 Give manuals in purely numerical sections priority over manuals of the same name in sections with an alphabetical suffix; same logic as in main.c rev. 1.264. 2016-04-13 12:26 schwarze Changed: main.c (1.264), "Exp", lines: +11 -9 Give manuals in purely numerical sections priority over manuals of the same name in sections with an alphabetical suffix (on OpenBSD, mostly 3p), restoring behaviour of the traditional BSD man(1) that got lost in the switch to the mandoc-based implementation. Issue reported by jsg@, using an idea by mikeb@ for the solution, and at least afresh1@ and jasper@ also seem in favour of the direction. 2016-04-13 10:19 schwarze Changed: mandoc.css (1.2), "Exp", lines: +3 -2 fix error page indentation: negative indent for h1 only in div.section issue reported by mikeb@ 2016-04-12 15:30 schwarze Changed: term.c (1.257), "Exp", lines: +2 -2 sed 's/the the/the/' in a comment; from krw@ 2016-03-19 13:29 schwarze Changed: man.cgi.8 (1.16), "Exp", lines: +2 -2 double word; from jmc@ 2016-03-18 13:22 schwarze Changed: cgi.c (1.119), "Exp", lines: +16 -24 cgi.h.example (1.5), "Exp", lines: +2 -1 man.cgi.8 (1.15), "Exp", lines: +51 -42 Make the SCRIPT_NAME logic simpler, safer, and make it actually work; in part based on ideas by bentley@. While here, improve the documentation. 2016-03-18 01:22 schwarze Changed: man.cgi.8 (1.14), "Exp", lines: +11 -2 document short URIs 2016-03-17 22:06 schwarze Changed: cgi.c (1.118), "Exp", lines: +3 -2 make man(1) mode the default rather than apropos(1) mode 2016-03-17 21:26 schwarze Changed: mandocdb.c (1.216), "Exp", lines: +2 -2 'accomodate' -> 'accommodate' in a comment. From krw@, started by a diff from Mical Mazurek. 2016-03-17 21:22 schwarze Changed: cgi.c (1.117), "Exp", lines: +69 -9 support short URIs for man.openbsd.org 2016-01-16 22:30 schwarze Changed: main.c (1.263), "Exp", lines: +2 -2 unbreak reading from stdin after recent parse() restructuring; patch from florian@ 2016-01-08 17:48 schwarze Changed: man_html.c (1.120), "Exp", lines: +3 -3 man_macro.c (1.114), "Exp", lines: +2 -2 man_term.c (1.187), "Exp", lines: +2 -2 man_validate.c (1.122), "Exp", lines: +10 -10 mandoc.3 (1.36), "Exp", lines: +3 -3 mandocdb.c (1.215), "Exp", lines: +10 -9 mdoc_html.c (1.240), "Exp", lines: +26 -25 mdoc_man.c (1.96), "Exp", lines: +25 -26 mdoc_term.c (1.331), "Exp", lines: +26 -25 mdoc_validate.c (1.301), "Exp", lines: +12 -14 roff.c (1.284), "Exp", lines: +1 -4 roff.h (1.37), "Exp", lines: +0 -1 Delete the redundant "nchild" member of struct roff_node, replacing most uses by one, a few by two pointer checks, and only one by a tiny loop - not only making data smaller, but code shorter as well. This gets rid of an implicit invariant that confused both static analysis tools and human auditors. No functional change. 2016-01-08 15:02 schwarze Changed: mandocdb.c (1.214), "Exp", lines: +4 -4 mansearch.c (1.64), "Exp", lines: +6 -6 Prefer warn(3) over perror(3) at the few places where it was used. It is useful to see the program name, and we have err.h compat in place anyway. Suggested by Christos Zoulas (NetBSD). 2016-01-08 02:53 schwarze Changed: demandoc.c (1.26), "Exp", lines: +2 -2 main.c (1.262), "Exp", lines: +5 -9 mandoc.3 (1.35), "Exp", lines: +4 -7 mandoc.h (1.209), "Exp", lines: +3 -3 mandocdb.c (1.213), "Exp", lines: +2 -3 read.c (1.148), "Exp", lines: +12 -12 Simplify the mparse_open() interface. Just return the file descriptor or -1 on error; there is just one kind of error anyway. Suggested by Christos Zoulas (NetBSD). 2016-01-08 02:13 schwarze Changed: demandoc.c (1.25), "Exp", lines: +2 -1 main.c (1.261), "Exp", lines: +4 -2 mandoc.3 (1.34), "Exp", lines: +7 -2 mandocdb.c (1.212), "Exp", lines: +2 -1 read.c (1.147), "Exp", lines: +2 -5 It was very surprising that a function called mparse_readfd() closed the file descriptor passed to it after completing its work, in particular considering the fact that it required its callers to call open(2) or mparse_open() beforehand. Change mparse_readfd() to not call close(2) and change the callers to call close(2) afterwards, more or less bringing open and close to the same level of the code and making review easier. Note that man.cgi(8) already did that, even though it was wrong in the past. Small restructuring suggested by Christos Zoulas (NetBSD). 2016-01-08 01:37 schwarze Changed: TODO (1.216), "Exp", lines: +6 -1 would be nice to warn about broken .Xr links... 2016-01-08 00:50 schwarze Changed: eqn.c (1.61), "Exp", lines: +2 -2 The root of an .EQ tree is always EQN_ROOT, never EQN_LIST, so delete a redundant NULL check that confused Coverity in CID 1257471; issue reported by wiz@, patch differs from what christos@ did in NetBSD. No functional change. 2016-01-07 21:03 schwarze Changed: term.c (1.256), "Exp", lines: +2 -2 This code wasted memory by allocating sizeof(enum termfont *) where only sizeof(enum termfont) is needed. Fixes CID 1288941. From christos@ via wiz@, both at NetBSD. 2016-01-07 20:19 schwarze Changed: eqn.c (1.60), "Exp", lines: +2 -1 Recursive "define" was not detected because "lim" was never incremented, causing infinite loops. Fixing CID 1288962. From christos@ via wiz@, both at NetBSD. 2016-01-04 14:44 schwarze Changed: mandocdb.c (1.211), "Exp", lines: +29 -14 Improve handling of .Va and .Vt macros. tedu@ noticed that no Vt= database entries were generated. Serguey Parkhomovsky suggested the deletion of parse_mdoc_body(). tb@ noticed that the fix requires more than just adding TYPE_Vt to the MDOC_Vt mask in the mdoc_handler array. 2016-01-04 12:45 schwarze Changed: html.c (1.192), "Exp", lines: +4 -4 mdoc_html.c (1.239), "Exp", lines: +2 -4 Generate simpler in-page links: just replace spaces with underscores. Patch from bentley@. 2016-01-04 12:36 schwarze Changed: cgi.c (1.116), "Exp", lines: +3 -56 Don't retain the search query in the resulting manual links. Clean, simple URLs are best. Patch from bentley@. 2015-12-23 20:50 schwarze Changed: term_ps.c (1.80), "Exp", lines: +3 -5 remove NULL-checks before free(); from mmcc@ 2015-12-15 17:38 schwarze Changed: main.c (1.260), "Exp", lines: +11 -6 mandocdb.c (1.210), "Exp", lines: +12 -9 pledge(2) style: Make sure to always use the idiom 'if (pledge("' such that it can easily be searched for. No functional change. Requested by deraadt@ some time ago. 2015-11-26 07:42 schwarze Changed: compat_err.c (1.4), "Exp", lines: +13 -1 configure (1.37), "Exp", lines: +1 -0 mansearch.c (1.63), "Exp", lines: +10 -7 No point in trying to go on when elementary database operations like preparing queries or binding variables fail; that won't yield useful results anyway but may generate huge pointless error messages. Issue reported by deraadt@. 2015-11-20 21:59 schwarze Changed: main.c (1.259), "Exp", lines: +42 -19 tag.c (1.11), "Exp", lines: +22 -5 tag.h (1.7), "Exp", lines: +3 -1 Fix multiple issues regarding process group and signal mask handling found by tb@ and millert@; parts of the code, in particular in tag.c, by millert@; OK millert@. 2015-11-14 23:57 schwarze Changed: main.c (1.258), "Exp", lines: +35 -5 Fix an issue reported by deraadt@: When hitting Ctrl-Backslash (= SIGQUIT) in the less(1) spawned by man(1), man(1) died uncleanly, leaving behind its temp files, and killed less(1) uncleanly as well with SIGPIPE, leaving the terminal in the wrong state. Fix this by giving less(1) its own process group and handing it control of the terminal, but in such a way that Ctrl-z (= SIGSTOP) still works: In that case, let man(1) stop itself, too, and let it continue the pager when it continues itself. Joint work with millert@ who contributed most of the expertise required, and also most parts of the code. OK deraadt@ millert@ 2015-11-12 22:44 schwarze Changed: mandoc.c (1.98), "Exp", lines: +32 -16 Simplify the logic in mandoc_normdate() and add some comments. Also add a comment in time2a() explaining why it isn't possible to use just one single call to strftime(). Do some style cleanup while here. No functional change. Triggered by a very different patch from des@FreeBSD. 2015-11-12 21:50 schwarze Changed: term_ascii.c (1.52), "Exp", lines: +10 -2 Never use LC_ALL. On the one hand, it can cause misformatting. On the other hand, it is a security risk because it might cause buffer overflows. Use LC_CTYPE only, that's all we need. 2015-11-07 21:53 schwarze Changed: Makefile (1.480), "Exp", lines: +4 -3 move compat_reallocarray.o into SOELIM_OBJS, no functional change 2015-11-07 21:38 schwarze Changed: Makefile (1.479), "Exp", lines: +6 -2 soelim(1) use getline(3) and err(3), and err(3) uses getprogname(3); found on Solaris 10 at OpenCSW 2015-11-07 21:31 schwarze Changed: configure (1.36), "Exp", lines: +3 -3 The sh(1) "test" builtin on Solaris 10 doesn't have -e, even though that's required by POSIX. Use -w and -r, that's just as good. 2015-11-07 20:52 schwarze Added: compat_getline.c (1.1) test-getline.c (1.1) Changed: Makefile (1.478), "Exp", lines: +4 -1 Makefile.depend (1.21), "Exp", lines: +1 -0 configure (1.35), "Exp", lines: +8 -1 provide a simple stand-alone implementation of getline(3) for systems lacking it 2015-11-07 17:58 schwarze Deleted: compat_fgetln.c (1.5) test-fgetln.c (1.4) Changed: LICENSE (1.11), "Exp", lines: +1 -4 Makefile (1.477), "Exp", lines: +1 -4 Makefile.depend (1.20), "Exp", lines: +1 -1 cgi.c (1.115), "Exp", lines: +23 -12 configure (1.34), "Exp", lines: +1 -8 main.c (1.257), "Exp", lines: +20 -24 mandocdb.c (1.209), "Exp", lines: +22 -18 manpage.c (1.13), "Exp", lines: +12 -7 manpath.c (1.29), "Exp", lines: +16 -10 Modernization, no functional change intended: Use the POSIX function getline(3) rather than the slightly dangerous BSD function fgetln(3). Remove the related compatibility code. 2015-11-07 14:22 schwarze Changed: compat_err.c (1.3), "Exp", lines: +1 -2 compat_stringlist.c (1.6), "Exp", lines: +3 -1 main.c (1.256), "Exp", lines: +3 -1 mandoc_aux.c (1.9), "Exp", lines: +3 -1 mandocdb.c (1.208), "Exp", lines: +3 -1 manpath.c (1.28), "Exp", lines: +3 -1 mansearch.c (1.62), "Exp", lines: +3 -1 read.c (1.146), "Exp", lines: +3 -1 soelim.c (1.5), "Exp", lines: +3 -1 term_ps.c (1.79), "Exp", lines: +3 -1 Without HAVE_ERR, don't try to include <err.h>, it probably isn't there. In that case, the required prototypes are in "config.h". Patch from Peter Bray <pdb_ml at yahoo dot com dot au>. 2015-11-07 14:01 schwarze Changed: INSTALL (1.13), "Exp", lines: +6 -1 compat_fts.h (1.3), "Exp", lines: +1 -2 compat_ohash.h (1.6), "Exp", lines: +1 -2 compat_stringlist.h (1.4), "Exp", lines: +2 -3 configure (1.33), "Exp", lines: +4 -15 html.h (1.72), "Exp", lines: +1 -4 libman.h (1.79), "Exp", lines: +1 -4 libmandoc.h (1.62), "Exp", lines: +1 -4 libmdoc.h (1.108), "Exp", lines: +1 -4 libroff.h (1.39), "Exp", lines: +1 -4 main.h (1.24), "Exp", lines: +1 -5 man.h (1.77), "Exp", lines: +1 -4 manconf.h (1.2), "Exp", lines: +0 -3 mandoc.h (1.208), "Exp", lines: +1 -4 mandoc_aux.h (1.4), "Exp", lines: +1 -5 mandoc_ohash.h (1.2), "Exp", lines: +1 -5 mansearch.h (1.24), "Exp", lines: +1 -4 mdoc.h (1.144), "Exp", lines: +1 -4 out.h (1.27), "Exp", lines: +1 -4 roff.h (1.36), "Exp", lines: +0 -3 roff_int.h (1.7), "Exp", lines: +1 -5 tag.h (1.6), "Exp", lines: +1 -4 term.h (1.118), "Exp", lines: +1 -4 In private header files, __BEGIN_DECLS and __END_DECLS are pointless. Because these work slightly differently on different systems, they are becoming a maintenance burden in the portable version, so delete them. Besides, one of the chief design goals of the mandoc toolbox is to make sure that nothing related to documentation requires C++. Consequently, linking mandoc against any kind of C++ program would defeat the purpose and is not supported. I don't understand why kristaps@ added them in the first place. 2015-11-07 13:14 schwarze Changed: Makefile (1.476), "Exp", lines: +1 -2 configure (1.32), "Exp", lines: +0 -3 configure.local.example (1.10), "Exp", lines: +1 -2 garbage collect unused EXAMPLEDIR, forgotten in the CSS cleanup; noticed by Peter Bray <pdb_ml at yahoo dot com dot au> 2015-11-07 13:05 schwarze Changed: Makefile (1.475), "Exp", lines: +5 -3 Install the soelim(1) binary and manual to the right places. Bug reported by Peter Bray <pdb_ml at yahoo dot com dot au>. 2015-11-06 21:19 schwarze Added: test-rewb-bsd.c (1.1) test-rewb-sysv.c (1.1) Changed: TODO (1.215), "Exp", lines: +1 -7 configure (1.31), "Exp", lines: +6 -0 mansearch.c (1.61), "Exp", lines: +8 -1 In ./configure, select a RE syntax for word boundaries supported by libc; issue reported by Svyatoslav Mishyn, Peter Bray, and Daniel Levai. 2015-11-06 17:33 schwarze Added: test-pledge.c (1.1) Changed: Makefile (1.474), "Exp", lines: +2 -1 configure (1.30), "Exp", lines: +3 -0 main.c (1.255), "Exp", lines: +21 -1 mandocdb.c (1.207), "Exp", lines: +23 -1 merge pledge(2) support from OpenBSD 2015-11-06 16:30 schwarze Added: compat_progname.c (1.1) Changed: Makefile (1.473), "Exp", lines: +3 -1 compat_err.c (1.2), "Exp", lines: +2 -4 configure (1.29), "Exp", lines: +5 -1 main.c (1.254), "Exp", lines: +19 -16 mandoc_aux.c (1.8), "Exp", lines: +1 -4 mandocdb.c (1.206), "Exp", lines: +4 -6 test-progname.c (1.2), "Exp", lines: +5 -4 Use getprogname(3) rather than __progname. Suggested by Joerg@ Sonnenberger (NetBSD). Last year, deraadt@ confirmed on tech@ that this "has the potential to be more portable", and micro-optimizing for speed is not relevant here. Also gets rid of one global variable. 2015-11-05 20:55 schwarze Changed: cgi.c (1.114), "Exp", lines: +20 -2 cgi.h.example (1.4), "Exp", lines: +0 -2 man.cgi.8 (1.13), "Exp", lines: +9 -9 Use include files "header.html" and "footer.html" rather than a compiled-in string. This is not a security risk, we read the file manpath.conf from the same directory, anyway. No error handling is needed; even if the files are absent, that's not an error. This is more flexible without causing complication of the code or the user interface. It helps the upcoming revamp of the online manual pages on man.NetBSD.org. Based on an idea by Jean-Yves Migeon <jeanyves dot migeon at free dot fr>, but implemented in a much simpler way. 2015-11-05 17:47 schwarze Deleted: example.style.css (1.56) man-cgi.css (1.8) style.css (1.32) Added: mandoc.css (1.1) Changed: Makefile (1.472), "Exp", lines: +5 -9 cgi.c (1.113), "Exp", lines: +3 -5 man.cgi.8 (1.12), "Exp", lines: +7 -9 mandoc.1 (1.164), "Exp", lines: +5 -5 Unify the three stylesheets into a single CSS file. Many thanks to bentley@ for doing this work. 2015-11-05 17:16 schwarze Changed: Makefile (1.471), "Exp", lines: +2 -2 demandoc(1) needs to link against -lutil, too 2015-11-05 16:58 schwarze Changed: NEWS (1.10), "Exp", lines: +2 -2 remove a stray iso-latin-1 character; noticed by bentley@ 2015-11-05 12:06 schwarze Changed: mdoc.7 (1.257), "Exp", lines: +7 -2 specify option ordering in the DESCRIPTION section; from guenther@, ok and tweaks jmc@ 2015-10-30 19:04 schwarze Changed: mandoc.1 (1.163), "Exp", lines: +9 -2 mandoc.h (1.207), "Exp", lines: +2 -1 mdoc.c (1.256), "Exp", lines: +2 -1 mdoc_validate.c (1.300), "Exp", lines: +11 -1 read.c (1.145), "Exp", lines: +2 -1 If a .Bd block has no arguments at all, drop the block and only keep its contents. Removing a gratuitious difference to groff output found after a related bug report from krw@. 2015-10-30 18:53 schwarze Changed: mdoc_state.c (1.3), "Exp", lines: +4 -1 Do not access a NULL pointer when a .Bd macro has no arguments at all. Bug reported by krw@. 2015-10-23 14:50 schwarze Changed: term.c (1.255), "Exp", lines: +2 -2 apply bold and italic to all non-ASCII Unicode codepoints, fixing input like \fB\('e; issue reported by bentley@ 2015-10-22 22:06 schwarze Changed: Makefile.depend (1.19), "Exp", lines: +1 -1 cgi.c (1.112), "Exp", lines: +5 -2 demandoc.c (1.24), "Exp", lines: +4 -2 mandocdb.c (1.205), "Exp", lines: +2 -1 use the new function man_validate() here, too 2015-10-22 21:54 schwarze Changed: libman.h (1.78), "Exp", lines: +3 -2 main.c (1.253), "Exp", lines: +2 -1 man.c (1.166), "Exp", lines: +36 -1 man.h (1.76), "Exp", lines: +3 -2 man_macro.c (1.113), "Exp", lines: +5 -19 man_validate.c (1.121), "Exp", lines: +17 -32 roff.c (1.283), "Exp", lines: +3 -3 roff_int.h (1.6), "Exp", lines: +1 -2 move man(7) validation into the dedicated validation phase, too 2015-10-22 21:03 schwarze Changed: main.c (1.252), "Exp", lines: +18 -16 If no output device was allocated because no file wanted to produce output, refrain from dereferencing a NULL pointer during final deallocation. Fixing a recent regression reported by czarkoff@ 2015-10-21 23:51 schwarze Changed: mdoc_state.c (1.2), "Exp", lines: +22 -2 mdoc_validate.c (1.299), "Exp", lines: +212 -242 roff.c (1.282), "Exp", lines: +13 -29 roff_int.h (1.5), "Exp", lines: +1 -3 Move all mdoc(7) node validation done before child parsing to the new separate validation pass, except for a tiny bit needed by the parser which goes to the new mdoc_state() module; cleaner, simpler, and surprisingly also shorter by 15 lines. 2015-10-20 02:01 schwarze Added: mdoc_state.c (1.1) Changed: Makefile (1.470), "Exp", lines: +3 -1 Makefile.depend (1.18), "Exp", lines: +2 -1 cgi.c (1.111), "Exp", lines: +5 -3 demandoc.c (1.23), "Exp", lines: +4 -3 libmdoc.h (1.107), "Exp", lines: +6 -2 main.c (1.251), "Exp", lines: +2 -1 mandocdb.c (1.204), "Exp", lines: +2 -1 mdoc.c (1.255), "Exp", lines: +11 -20 mdoc.h (1.143), "Exp", lines: +7 -1 mdoc_macro.c (1.206), "Exp", lines: +7 -13 mdoc_validate.c (1.298), "Exp", lines: +65 -130 roff.c (1.281), "Exp", lines: +9 -4 roff_int.h (1.4), "Exp", lines: +1 -2 In order to become able to generate syntax tree nodes on the roff(7) level, validation must be separated from parsing and rewinding. This first big step moves calling of the mdoc(7) post_*() functions out of the parser loop into their own mdoc_validate() pass, while using a new mdoc_state() module to make syntax tree state handling available to both the parser loop and the validation pass. 2015-10-19 20:04 schwarze Changed: mdoc_validate.c (1.297), "Exp", lines: +59 -56 style cleanup, no functional change 2015-10-19 19:51 schwarze Changed: main.c (1.250), "Exp", lines: +52 -36 Simplify, no functional change: Delete the outmdoc, outman, and outfree function pointers. 2015-10-19 18:58 schwarze Changed: mandoc_ohash.c (1.2), "Exp", lines: +2 -1 including <ohash.h> requires including <stdint.h> beforehand; noticed by Svyatoslav Mishyn <juef at openmailbox dot org> 2015-10-17 00:21 schwarze Changed: libmdoc.h (1.106), "Exp", lines: +2 -4 mdoc_argv.c (1.107), "Exp", lines: +46 -16 mdoc_macro.c (1.205), "Exp", lines: +29 -23 roff.h (1.35), "Exp", lines: +5 -2 Very tricky diff to fix macro interpretation and spacing around tabs in .Bl -column; it took me more than a day to get this right. Triggered by a loosely related bug report from tim@. The lesson for you is: Use .Ta macros in .Bl -column, avoid tabs, or you are in for surprises: The last word before a tab is not interpreted as a macro (unless there is a blank in between), the first word after a tab isn't either (unless there is a blank in between), and a blank after a tab causes a leading blank in the respective output cell. Yes, "blank", "tab", "blank tab" and "tab blank" all have different semantics; if you write code relying on that, good luck maintaining it afterwards... 2015-10-15 23:35 schwarze Changed: mandoc.c (1.97), "Exp", lines: +1 -3 roff.c (1.280), "Exp", lines: +1 -4 Delete two preprocessor constants that are no longer used. Patch from Michael Reed <m dot reed at mykolab dot com>. 2015-10-15 22:45 schwarze Changed: mdoc_argv.c (1.106), "Exp", lines: +28 -73 Simplify the part of args() that is handling .Bl -column phrases: Delete manual "Ta" handling because macro handling should not be done in an argument parser but should be left to the macro parsers, which exist anyway and work well. No functional change, minus 40 lines of code. Confusing and redundant code found while investigating an old bug report from tim@. 2015-10-15 22:27 schwarze Changed: mdoc_macro.c (1.204), "Exp", lines: +6 -1 When blk_full() handles an .It line in .Bl -column and indirectly calls phrase_ta() to handle a .Ta child macro, advance the body pointer accordingly, such that a subsequent tab character rewinds the right body block and doesn't fail an assertion. That happened when there was nothing between the .Ta and the tab character. Bug reported by tim@ some time ago. 2015-10-13 23:30 schwarze Changed: mandoc.c (1.96), "Exp", lines: +4 -1 Reject the escape sequences \[uD800] to \[uDFFF] in the parser. These surrogates are not valid Unicode codepoints, so treat them just like any other undefined character escapes: Warn about them and do not produce output. Issue noticed while talking to stsp@, semarie@, and bentley@. 2015-10-13 22:59 schwarze Deleted: chars.in (1.53) Changed: Makefile (1.469), "Exp", lines: +1 -2 Makefile.depend (1.17), "Exp", lines: +1 -1 cgi.c (1.110), "Exp", lines: +6 -8 chars.c (1.68), "Exp", lines: +400 -81 demandoc.c (1.22), "Exp", lines: +4 -5 html.c (1.191), "Exp", lines: +3 -5 html.h (1.71), "Exp", lines: +1 -2 libmandoc.h (1.61), "Exp", lines: +2 -3 main.c (1.249), "Exp", lines: +10 -18 main.h (1.23), "Exp", lines: +7 -14 mandoc.3 (1.33), "Exp", lines: +2 -12 mandoc.h (1.206), "Exp", lines: +6 -10 mandoc_headers.3 (1.7), "Exp", lines: +2 -19 mandocdb.c (1.203), "Exp", lines: +6 -8 mchars_alloc.3 (1.3), "Exp", lines: +11 -20 read.c (1.144), "Exp", lines: +3 -5 roff.c (1.279), "Exp", lines: +3 -5 term.c (1.254), "Exp", lines: +5 -8 term.h (1.117), "Exp", lines: +1 -2 term_ascii.c (1.51), "Exp", lines: +9 -12 term_ps.c (1.78), "Exp", lines: +7 -9 Major character table cleanup: * Use ohash(3) rather than a hand-rolled hash table. * Make the character table static in the chars.c module: There is no need to pass a pointer around, we most certainly never want to use two different character tables concurrently. * No need to keep the characters in a separate file chars.in; that merely encourages downstream porters to mess with them. * Sort the characters to agree with the mandoc_chars(7) manual page. * Specify Unicode codepoints in hex, not decimal (that's the detail that originally triggered this patch). No functional change, minus 100 LOC, and i don't see a performance change. 2015-10-13 15:53 schwarze Added: mandoc_ohash.c (1.1) mandoc_ohash.h (1.1) Changed: Makefile (1.468), "Exp", lines: +4 -1 Makefile.depend (1.16), "Exp", lines: +4 -3 mandocdb.c (1.202), "Exp", lines: +10 -52 mansearch.c (1.60), "Exp", lines: +3 -38 tag.c (1.10), "Exp", lines: +3 -41 Reduce the amount of code by moving the three copies of the ohash callback functions into one common place, preparing for the use of ohash for some additional purposes. No functional change. 2015-10-12 21:26 schwarze Changed: mdoc_validate.c (1.296), "Exp", lines: +1 -2 Delete an assignment that is unconditionally overwritten two lines later; found by Svyatoslav Mishyn <juef at openmailbox dot org> with the clang static analyzer. 2015-10-12 21:17 schwarze Changed: mandocdb.c (1.201), "Exp", lines: +3 -4 Garbage collect an unused variable, no functional change; found by Svyatoslav Mishyn <juef at openmailbox dot org> with cppcheck. 2015-10-12 21:09 schwarze Changed: mandoc_aux.c (1.7), "Exp", lines: +2 -2 Check the right pointer against NULL; fixing a pasto introduced in the previous commit; found by Svyatoslav Mishyn <juef at openmailbox dot org> with cppcheck. 2015-10-12 15:29 schwarze Changed: mdoc_term.c (1.330), "Exp", lines: +2 -2 Use "-" rather than "\(hy" for the heads of .Bl -dash and -hyphen lists. In UTF-8 output, that renders as ASCII HYPHEN-MINUS (U+002D) rather than HYPHEN (U+2010), which looks better and matches groff. In ASCII output, it makes no difference. Suggested by naddy@. 2015-10-12 00:32 schwarze Changed: mandocdb.c (1.200), "Exp", lines: +23 -20 Clear dform and dsec when exiting a first-level directory in treescan(). Fixes a segfault reported by bentley@. While here, do some style cleanup in the same function. 2015-10-12 00:15 schwarze Changed: html.c (1.190), "Exp", lines: +2 -2 Fix an obvious bug found during the /* FALLTHROUGH */ cleanup: ASCII_NBRSP has to be rendered as " ", not "-". 2015-10-12 00:08 schwarze Changed: html.c (1.189), "Exp", lines: +2 -11 main.c (1.248), "Exp", lines: +1 -6 man_term.c (1.186), "Exp", lines: +1 -11 man_validate.c (1.120), "Exp", lines: +0 -8 mandoc.c (1.95), "Exp", lines: +1 -32 mandocdb.c (1.199), "Exp", lines: +1 -7 mdoc.c (1.254), "Exp", lines: +1 -13 mdoc_html.c (1.238), "Exp", lines: +1 -55 mdoc_macro.c (1.203), "Exp", lines: +1 -11 mdoc_man.c (1.95), "Exp", lines: +1 -15 mdoc_term.c (1.329), "Exp", lines: +4 -55 mdoc_validate.c (1.295), "Exp", lines: +2 -23 out.c (1.62), "Exp", lines: +1 -5 roff.c (1.278), "Exp", lines: +1 -25 tbl_html.c (1.18), "Exp", lines: +1 -2 tbl_layout.c (1.41), "Exp", lines: +1 -5 tbl_term.c (1.43), "Exp", lines: +1 -6 term.c (1.253), "Exp", lines: +1 -5 term_ascii.c (1.50), "Exp", lines: +1 -3 term_ps.c (1.77), "Exp", lines: +1 -3 tree.c (1.69), "Exp", lines: +1 -6 To make the code more readable, delete 283 /* FALLTHROUGH */ comments that were right between two adjacent case statement. Keep only those 24 where the first case actually executes some code before falling through to the next case. 2015-10-11 22:00 schwarze Changed: tag.c (1.9), "Exp", lines: +2 -2 Drop tags containing a blank character: They don't work, they break other tags in weird ways, and even if they could be made to work, they would be mostly useless. Issue reported by naddy@, thanks. 2015-10-11 21:12 schwarze Added: compat_err.c (1.1) test-err.c (1.1) test-progname.c (1.1) Changed: LICENSE (1.10), "Exp", lines: +2 -2 Makefile (1.467), "Exp", lines: +6 -2 Makefile.depend (1.15), "Exp", lines: +2 -1 configure (1.28), "Exp", lines: +13 -0 main.c (1.247), "Exp", lines: +33 -50 mandoc_aux.c (1.6), "Exp", lines: +18 -25 mandocdb.c (1.198), "Exp", lines: +10 -17 manpath.c (1.27), "Exp", lines: +6 -9 mansearch.c (1.59), "Exp", lines: +17 -18 read.c (1.143), "Exp", lines: +9 -13 term_ps.c (1.76), "Exp", lines: +3 -2 Finally use __progname, err(3) and warn(3). That's more readable and less error-prone than fumbling around with argv[0], fprintf(3), strerror(3), perror(3), and exit(3). It's a bad idea to boycott good interfaces merely because standards committees ignore them. Instead, let's provide compatibility modules for archaic systems (like commercial Solaris) that still don't have them. The compat module has an UCB Copyright (c) 1993... 2015-10-11 18:56 schwarze Changed: mdoc.7 (1.256), "Exp", lines: +10 -6 Mention that the first argument of .Pf does not need escaping. While here, make the first sentence regarding .Pf more concise. OK jmc@ 2015-10-10 13:21 schwarze Changed: main.c (1.246), "Exp", lines: +6 -4 Decide whether to use_pager as early as possible, in preparation for pledge(2); no functional change intended. 2015-10-06 18:32 schwarze Changed: att.c (1.15), "Exp", lines: +2 -2 cgi.c (1.109), "Exp", lines: +19 -19 chars.c (1.67), "Exp", lines: +12 -12 compat_isblank.c (1.2), "Exp", lines: +2 -2 compat_mkdtemp.c (1.2), "Exp", lines: +5 -5 compat_sqlite3_errstr.c (1.4), "Exp", lines: +1 -1 compat_vasprintf.c (1.3), "Exp", lines: +3 -3 demandoc.c (1.21), "Exp", lines: +3 -3 eqn.c (1.59), "Exp", lines: +21 -21 html.c (1.188), "Exp", lines: +8 -8 lib.c (1.13), "Exp", lines: +2 -2 main.c (1.245), "Exp", lines: +21 -21 man.c (1.165), "Exp", lines: +11 -11 man_hash.c (1.34), "Exp", lines: +7 -6 man_html.c (1.119), "Exp", lines: +31 -31 man_macro.c (1.112), "Exp", lines: +3 -3 man_term.c (1.185), "Exp", lines: +33 -33 mandoc.c (1.94), "Exp", lines: +27 -26 mandoc_aux.c (1.5), "Exp", lines: +8 -8 mandocdb.c (1.197), "Exp", lines: +43 -43 manpage.c (1.12), "Exp", lines: +6 -6 mansearch.c (1.58), "Exp", lines: +24 -24 mdoc.c (1.253), "Exp", lines: +25 -25 mdoc_argv.c (1.105), "Exp", lines: +17 -17 mdoc_hash.c (1.26), "Exp", lines: +8 -7 mdoc_html.c (1.237), "Exp", lines: +96 -96 mdoc_macro.c (1.202), "Exp", lines: +25 -25 mdoc_man.c (1.94), "Exp", lines: +72 -72 mdoc_term.c (1.328), "Exp", lines: +79 -79 mdoc_validate.c (1.294), "Exp", lines: +47 -47 msec.c (1.15), "Exp", lines: +2 -2 out.c (1.61), "Exp", lines: +4 -4 preconv.c (1.15), "Exp", lines: +10 -10 read.c (1.142), "Exp", lines: +14 -14 roff.c (1.277), "Exp", lines: +129 -129 st.c (1.13), "Exp", lines: +2 -2 tag.c (1.8), "Exp", lines: +5 -5 tbl.c (1.40), "Exp", lines: +9 -9 tbl_data.c (1.41), "Exp", lines: +5 -5 tbl_html.c (1.17), "Exp", lines: +4 -3 tbl_layout.c (1.40), "Exp", lines: +2 -2 tbl_term.c (1.42), "Exp", lines: +3 -3 term.c (1.252), "Exp", lines: +7 -7 term_ascii.c (1.49), "Exp", lines: +10 -10 term_ps.c (1.75), "Exp", lines: +6 -6 test-dirent-namlen.c (1.2), "Exp", lines: +1 -1 test-fgetln.c (1.3), "Exp", lines: +1 -1 test-fts.c (1.3), "Exp", lines: +5 -5 test-getsubopt.c (1.4), "Exp", lines: +3 -3 test-isblank.c (1.2), "Exp", lines: +1 -1 test-mkdtemp.c (1.2), "Exp", lines: +2 -2 test-mmap.c (1.6), "Exp", lines: +1 -1 test-ohash.c (1.4), "Exp", lines: +2 -2 test-reallocarray.c (1.2), "Exp", lines: +1 -1 test-sqlite3.c (1.2), "Exp", lines: +5 -5 test-sqlite3_errstr.c (1.2), "Exp", lines: +1 -1 test-strcasestr.c (1.3), "Exp", lines: +1 -1 test-stringlist.c (1.2), "Exp", lines: +6 -6 test-strlcat.c (1.3), "Exp", lines: +2 -2 test-strlcpy.c (1.3), "Exp", lines: +2 -2 test-strptime.c (1.3), "Exp", lines: +2 -2 test-strsep.c (1.2), "Exp", lines: +1 -1 test-strtonum.c (1.2), "Exp", lines: +10 -10 test-vasprintf.c (1.3), "Exp", lines: +5 -5 test-wchar.c (1.3), "Exp", lines: +7 -7 modernize style: "return" is not a function 2015-10-06 15:33 schwarze Changed: mandoc.1 (1.162), "Exp", lines: +5 -4 improve wording and start a new sentence on a new line; from jmc@ 2015-09-29 18:45 schwarze Changed: TODO (1.214), "Exp", lines: +7 -1 Theo found a stray blank in HTML output. 2015-09-26 12:56 schwarze Changed: mandoc.1 (1.161), "Exp", lines: +42 -2 briefly document -T tree output 2015-09-26 12:55 schwarze Changed: tree.c (1.68), "Exp", lines: +18 -8 Show the flags MDOC_DELIMO, MDOC_DELIMC, MDOC_EOS, and MAN_EOS. Drop the "block-" prefixes from the node type names. 2015-09-26 00:54 schwarze Changed: html.c (1.187), "Exp", lines: +1 -2 man_html.c (1.118), "Exp", lines: +1 -2 man_macro.c (1.111), "Exp", lines: +1 -2 mdoc_html.c (1.236), "Exp", lines: +1 -6 mdoc_macro.c (1.201), "Exp", lines: +1 -2 mdoc_term.c (1.327), "Exp", lines: +1 -5 mdoc_validate.c (1.293), "Exp", lines: +1 -4 out.c (1.60), "Exp", lines: +1 -2 roff.c (1.276), "Exp", lines: +3 -4 tbl_opts.c (1.21), "Exp", lines: +1 -2 tbl_term.c (1.41), "Exp", lines: +1 -2 term.c (1.251), "Exp", lines: +1 -2 term_ascii.c (1.48), "Exp", lines: +1 -2 tree.c (1.67), "Exp", lines: +1 -5 /* NOTREACHED */ after abort() is silly, delete it 2015-09-26 00:32 schwarze Changed: mdoc_html.c (1.235), "Exp", lines: +5 -9 resolve code duplication and do style cleanup in mdoc_nm_pre(), no functional change 2015-09-26 00:22 schwarze Changed: mdoc_html.c (1.234), "Exp", lines: +4 -3 Fix multiple aspects of SYNOPSIS .Nm formatting: * Don't break lines before non-block .Nm elements. * Use proper <b> markup for the heads of .Nm blocks. * Make the width measurements work by doing them on the head children. 2015-09-24 18:41 schwarze Changed: mdoc.7 (1.255), "Exp", lines: +3 -3 roff.7 (1.75), "Exp", lines: +6 -6 typos; found and fixed by sobrado@ 2015-09-21 13:25 schwarze Changed: man_term.c (1.184), "Exp", lines: +3 -3 mdoc_term.c (1.326), "Exp", lines: +3 -3 term.c (1.250), "Exp", lines: +7 -1 term.h (1.116), "Exp", lines: +8 -7 Trailing whitespace is significant when determining the width of a tag in mdoc(7) .Bl -tag and man(7) .TP, but not in man(7) .IP. Quirk reported by Jan Stary <hans at stare dot cz> on ports@. 2015-09-21 09:59 schwarze Changed: man.1 (1.16), "Exp", lines: +2 -20 no more _subdir; Jan Stary <hans at stare dot cz> 2015-09-16 09:50 schwarze Changed: mandocdb.c (1.196), "Exp", lines: +3 -3 for portability, use (char *)NULL in execlp(3) as discussed on tech@ OpenBSD (didn't blow up anywhere yet, but better safe than sorry) 2015-09-14 20:10 schwarze Changed: mdoc.7 (1.254), "Exp", lines: +3 -3 Avoid .Ns right after .Pf, it's pointless. 2015-09-14 15:36 schwarze Changed: mandoc.1 (1.160), "Exp", lines: +2 -9 mandoc.h (1.205), "Exp", lines: +1 -2 mdoc_validate.c (1.292), "Exp", lines: +2 -25 read.c (1.141), "Exp", lines: +1 -2 Remove the warning about children of .Vt blocks because actually, .Vt type global_variable No = Dv defined_constant ; is the best way to specify in the SYNOPSIS how a global variable is initialized in the rare case where that matters. Issue noticed by jmc@. 2015-09-14 12:57 schwarze Changed: mdoc_term.c (1.325), "Exp", lines: +2 -2 The .Dv macro actually forces normal font. 2015-09-04 21:25 schwarze Changed: man.c (1.164), "Exp", lines: +15 -1 man_macro.c (1.110), "Exp", lines: +3 -3 Fill mode changes don't break next-line scope in all cases, in particular not for tagged paragraphs. Issue found by Christian Neukirchen <chneukirchen at gmail dot com> in the exiv2(1) manual page. 2015-09-02 15:38 schwarze Changed: mandoc_char.7 (1.63), "Exp", lines: +7 -7 Recommend an unambiguous escape for minus signs instead of \-. Historically, \- was used in troff for three cases: flags/pathnames, en dashes, and minus signs. mandoc_char(7) currently recommends it for minus signs, recommends \(en for en dashes, and doesn't mention flags/pathnames. In the old days, nroff rendered \- as ASCII '-', and troff rendered it as en dash/minus (which were visually indistinguishable). In Unicode, en dashes and minus signs are semantically distinct and encoded differently (U+2013 for en dash, U+2212 for minus), and often rendered differently too. Meanwhile ASCII '-' has been renamed "hyphen-minus" and fonts typically render it closest to a hyphen, not a minus. There is very little consistency across roff implementations and output formats for what Unicode character \- corresponds to. So at least for minus signs, change the recommendation to the unambiguous \(mi escape. from bentley@, ok jmc@ (after reams of discussion) 2015-08-30 21:10 schwarze Changed: term.c (1.249), "Exp", lines: +8 -2 Drop leading, internal, and trailing blank characters in \o (overstrike) escape sequences; that's cleaner for all output modes, and it's required to prevent the PostScript/PDF formatter from dying on assertions. Bug found by jsg@ with afl. 2015-08-30 19:00 schwarze Changed: mdoc_html.c (1.233), "Exp", lines: +3 -4 If an .Fo macro lacks its mandatory argument, don't die on an assertion. Bug found by jsg@ with afl. 2015-08-29 23:56 schwarze Changed: roff.c (1.275), "Exp", lines: +18 -17 If we have to reparse the text line because we spring an input line trap, we must not escape breakable hyphens yet, or mparse_buf_r() in read.c will complain and replace the escaped hyphens with question marks. Bug found in ocserv(8) following a report from Kurt Jaeger <pi at FreeBSD>. 2015-08-29 22:40 schwarze Changed: mandoc.c (1.93), "Exp", lines: +5 -1 roff.7 (1.74), "Exp", lines: +9 -3 Parse and ignore the escape sequences \, and \/ (italic corrections). Actually using these is very stupid because they are groff extensions and other roff(7) implementations typically print unintended characters at the places where they are used. Nevertheless, some manuals contain them, for example ocserv(8). Problem reported by Kurt Jaeger <pi at FreeBSD>. 2015-08-29 21:37 schwarze Changed: roff.7 (1.73), "Exp", lines: +4 -2 roff.c (1.274), "Exp", lines: +27 -16 Implement the escape sequence \\$*, expanding to all arguments of the current user-defined macro. This is another missing feature required for ocserv(8). Problem reported by Kurt Jaeger <pi at FreeBSD>. 2015-08-29 20:26 schwarze Changed: roff.c (1.273), "Exp", lines: +19 -9 Minimal implementation of the read-only number register \n(.$ which returns the number of arguments of the current macro. This is one of the missing features required for ocserv(8). Problem reported by Kurt Jaeger <pi at FreeBSD>. 2015-08-29 15:28 schwarze Changed: tag.c (1.7), "Exp", lines: +4 -1 Including <ohash.h> requires including <stdint.h> before, and "config.h" was missing as well. Patch from Svyatoslav Mishyn <juef and openmailbox dot org>, Crux Linux. 2015-08-29 15:10 schwarze Changed: TODO (1.213), "Exp", lines: +15 -1 tedu@ reports tbl(7) issues in synaptics(4) 2015-07-28 18:38 schwarze Changed: main.c (1.244), "Exp", lines: +33 -62 tag.c (1.6), "Exp", lines: +57 -20 tag.h (1.5), "Exp", lines: +9 -2 Remove the hack of scrolling forward and backward with +G1G that many (jmc@, millert@, espie@, deraadt@) considered revolting. Instead, when using a pager, since we are using a temporary file for tags anyway, use another temporary file for the formatted page(s), as suggested by millert@ and similar to what the traditional BSD man(1) did, except that we use only one single temporary output file rather than one for each formatted manual page, such that searching (both with / and :t) works across all the displayed files. 2015-07-25 14:28 schwarze Changed: mdoc_term.c (1.324), "Exp", lines: +7 -11 tag.c (1.5), "Exp", lines: +10 -32 tag.h (1.4), "Exp", lines: +2 -3 Simplify and make tag_put() more efficient by integrating tag_get() into it and by only handling NUL-terminated strings. Minus 25 lines of code, no functional change. 2015-07-25 14:23 schwarze Changed: mdoc_term.c (1.323), "Exp", lines: +16 -2 implement tagging for .Er 2015-07-25 14:18 schwarze Changed: mdoc_term.c (1.322), "Exp", lines: +18 -3 basic tag support for function names; written at YYC 2015-07-25 14:02 schwarze Changed: mdoc_term.c (1.321), "Exp", lines: +3 -3 tag.c (1.4), "Exp", lines: +6 -4 tag.h (1.3), "Exp", lines: +3 -3 basic support for tag priorities; written at YYC 2015-07-21 03:26 schwarze Changed: main.c (1.243), "Exp", lines: +12 -9 tag.c (1.3), "Exp", lines: +3 -9 tag.h (1.2), "Exp", lines: +2 -3 When creation of the temporary tags file fails, call the pager without the -T option, because otherwise the pager won't even start. Fixing a bug reported by jca@. While here, shorten the code by two lines and delete one internal interface function. 2015-07-19 06:05 schwarze Changed: INSTALL (1.12), "Exp", lines: +5 -4 Makefile (1.466), "Exp", lines: +2 -2 configure (1.27), "Exp", lines: +2 -2 main.c (1.242), "Exp", lines: +1 -5 mandoc.3 (1.32), "Exp", lines: +8 -44 mandoc.h (1.204), "Exp", lines: +1 -2 mandocdb.c (1.195), "Exp", lines: +1 -5 read.c (1.140), "Exp", lines: +33 -83 Do not fork and exec gunzip(1), just link with libz instead. As discussed with deraadt@, that's cleaner and will help tame(2). Something like this was also suggested earlier by bapt at FreeBSD. Minus 50 lines of code, deleting one interface function (mparse_wait), no functional change intended. 2015-07-19 00:07 schwarze Changed: main.c (1.241), "Exp", lines: +6 -3 If we aren't on a tty, clear the pager flag up front. Just to clean up code structure, no functional change. 2015-07-18 05:47 schwarze Changed: main.c (1.240), "Exp", lines: +2 -2 Insist that manual page file name extensions must begin with a digit, lest pkg.conf(5) be shown when pkg(5) is asked for; issue reported by Michael Reed <m dot reed at mykolab dot com>. 2015-07-18 03:43 schwarze Changed: TODO (1.212), "Exp", lines: +8 -1 another portability todo 2015-07-18 03:41 schwarze Changed: tag.c (1.2), "Exp", lines: +17 -1 clean up the temporary file when the process dies from a signal 2015-07-17 22:38 schwarze Added: tag.c (1.1) tag.h (1.1) Changed: Makefile (1.465), "Exp", lines: +4 -1 Makefile.depend (1.14), "Exp", lines: +3 -2 main.c (1.239), "Exp", lines: +44 -27 man.1 (1.15), "Exp", lines: +9 -2 mdoc_term.c (1.320), "Exp", lines: +22 -2 term.h (1.115), "Exp", lines: +2 -1 term_ascii.c (1.47), "Exp", lines: +5 -1 Initial, still somewhat experimental implementation to leverage less(1) -T and :t ctags(1)-like functionality to jump to the definitions of various terms inside manual pages. To be polished in the tree, so bear with me and report issues. Technically, if less(1) is used as a pager, information is collected by the mdoc(7) terminal formatter, first stored using the ohash library, then ultimately written to a temporary file which is passed to less via -T. No change intended for other output formatters or when running without a pager. Based on an idea from Kristaps using feedback from many, in particular phessler@ nicm@ millert@ halex@ doug@ kspillner@ deraadt@. 2015-07-14 23:16 schwarze Changed: Makefile (1.464), "Exp", lines: +4 -4 Makefile.depend (1.13), "Exp", lines: +4 -21 Fix the "depend" target and regenerate Makefile.depend: * do not process the test-*.c files, they are not built via make * add the missing compat_stringlist.c and soelim.c * read.c now uses roff_int.h * roff.c no longer uses libmdoc.h 2015-07-14 19:40 schwarze Changed: TODO (1.211), "Exp", lines: +5 -1 headers should not contain macros 2015-06-27 13:29 schwarze Changed: roff.c (1.272), "Exp", lines: +3 -1 Ignore blank characters at the beginning of a conditional block, that is, after "\{". Issue found by Markus <Waldeck at gmx dot de> in bash(1). 2015-06-26 16:56 schwarze Changed: TODO (1.210), "Exp", lines: +11 -23 delete some TODO entries that were already fixed 2015-06-18 01:02 schwarze Changed: TODO (1.209), "Exp", lines: +6 -1 nice idea for eqn(7) from CDBUG. 2015-06-10 22:26 schwarze Changed: TODO (1.208), "Exp", lines: +11 -1 two new tasks i heard about at BSDCan 2015-06-10 19:26 schwarze Changed: manpath.c (1.26), "Exp", lines: +5 -1 Avoid warning "defined but not used" when compiling with HAVE_MANPATH. Issue found on Debian by Markus <Waldeck at gmx dot de>. 2015-06-10 19:17 schwarze Changed: term_ascii.c (1.46), "Exp", lines: +3 -1 Avoid warning "unused variable" when compiling without HAVE_WCHAR. Issue found on Debian by Markus <Waldeck at gmx dot de>. 2015-05-31 23:13 schwarze Changed: roff.7 (1.72), "Exp", lines: +7 -4 roff.c (1.271), "Exp", lines: +32 -6 Implement the roff(7) `r' (register exists) conditional. Missing feature found by Markus <Waldeck at gmx dot de> in Debian's bash(1) manual page. 2015-05-21 00:18 schwarze Changed: soelim.c (1.4), "Exp", lines: +2 -1 This one needs config.h too, if only for __BEGIN_DECLS. Found on Solaris 11 in the OpenCSW cluster. 2015-05-21 00:13 schwarze Changed: compat_stringlist.c (1.5), "Exp", lines: +11 -1 add forgotten glue 2015-05-21 00:04 schwarze Changed: Makefile (1.463), "Exp", lines: +3 -3 Link compat_reallocarray.o into soelim; needed on platforms having neither stringlist nor compat_reallocarray. 2015-05-20 23:43 schwarze Changed: LICENSE (1.9), "Exp", lines: +3 -4 compat_stringlist.c (1.4), "Exp", lines: +1 -3 compat_stringlist.h (1.3), "Exp", lines: +1 -6 Remove clauses 3 and 4 from Christos Zoulas' BSD license. This is safe because Christos did that himself in NetBSD in 2008. No code change. 2015-05-20 23:00 schwarze Changed: compat_stringlist.c (1.3), "Exp", lines: +4 -3 fix integer overflows by using reallocarray(3) 2015-05-20 22:59 schwarze Changed: soelim.1 (1.3), "Exp", lines: +9 -5 * fix roff terminology in .Nd * remove .Xr to self * add AUTHORS section 2015-05-20 22:57 schwarze Changed: soelim.c (1.3), "Exp", lines: +3 -3 Use PATH_MAX rather than the non-standard MAXPATHLEN. 2015-05-20 22:22 schwarze Added: test-stringlist.c (1.1) Changed: LICENSE (1.8), "Exp", lines: +12 -3 Makefile (1.462), "Exp", lines: +16 -4 compat_stringlist.c (1.2), "Exp", lines: +6 -14 compat_stringlist.h (1.2), "Exp", lines: +2 -8 configure (1.26), "Exp", lines: +9 -3 configure.local.example (1.9), "Exp", lines: +7 -6 soelim.1 (1.2), "Exp", lines: +3 -3 soelim.c (1.2), "Exp", lines: +10 -9 * remove FreeBSDisms * purge and sort headers * add build and compat glue * and LICENSE information for soelim(1) 2015-05-20 20:55 tag bapt_150504 2015-05-20 20:55 schwarze Added: compat_stringlist.c (1.1) compat_stringlist.h (1.1) soelim.1 (1.1) soelim.c (1.1) Initial revision 2015-05-20 20:55 schwarze Changed: compat_stringlist.c (1.1.1.1), "Exp", lines: +0 -0 compat_stringlist.h (1.1.1.1), "Exp", lines: +0 -0 soelim.1 (1.1.1.1), "Exp", lines: +0 -0 soelim.c (1.1.1.1), "Exp", lines: +0 -0 import bapt's original soelim(1) sources 2015-05-07 12:08 schwarze Changed: manpath.c (1.25), "Exp", lines: +8 -6 Do not let the -m option or MANPATH with leading, trailing, or double colon override the default manpath, let them add to the default manpath. Only override the default manpath by the -M option, by MANPATH without leading, trailing, or double colon, or by "manpath" in man.conf(5). Problem reported by Jan Stary <hans at stare dot cz>. Patch OK'ed by millert@. 2015-05-01 16:58 schwarze Changed: mdoc_macro.c (1.200), "Exp", lines: +2 -2 mdoc_valid_post() may indirectly call roff_node_unlink() which may set ROFF_NEXT_CHILD, which is desirable for the final call to mdoc_valid_post() - in case the target itself gets deleted, the parse point may need this adjustment - but not for the intermediate calls - if intermediate nodes get deleted, that mustn't clobber the parse point. So move setting ROFF_NEXT_SIBLING to the proper place in rew_last(). This fixes the assertion failure in jsg@'s afl test case 108/Apr27. 2015-05-01 16:02 schwarze Changed: mdoc_macro.c (1.199), "Exp", lines: +2 -4 roff.c (1.270), "Exp", lines: +2 -1 Setting the "last" member of struct roff_node was done at an extremely weird place. Move it to the obviously correct place. Surprisingly, this didn't cause any misformatting in the test suite or in any base system manuals, but i cannot believe the code was really correct for all conceivable input, and it would be very hard to verify. At the very least, it cannot have worked for man(7). 2015-05-01 15:27 schwarze Changed: mdoc_macro.c (1.198), "Exp", lines: +2 -2 Minor bug fix: When .Pp rewinds .Nm, rewind the whole block, not just the body. In some unusual edge cases, this caused the .Pp to become a sibling of the .Nm body inside the .Nm block. 2015-04-29 21:58 schwarze Changed: mdoc_macro.c (1.197), "Exp", lines: +4 -2 If a block body gets broken, that's no good reason to extend the scope of the end macro. Instead, only keep the tail scope open if the end macro macro calls an explicit macro and actually breaks that. This corrects syntax tree structure and fixes an assertion found by jsg@ with afl (test case 098/Apr27). 2015-04-29 18:35 schwarze Changed: roff.7 (1.71), "Exp", lines: +3 -6 term.c (1.248), "Exp", lines: +27 -43 term.h (1.114), "Exp", lines: +9 -8 Replace the kludge for the \z escape sequence by an actual implementation. As a side effect, minus ten lines of code. As another side effect, this also fixes the assertion failure that used to be triggered by "\z\o'ab'c" at the beginning of an output line, found by jsg@ with afl (test case 022/Apr27). 2015-04-29 14:48 schwarze Changed: mdoc_macro.c (1.196), "Exp", lines: +3 -1 Do not mark a block with the MDOC_BROKEN flag if it merely contains a mismatching explicit end macro without actually being broken. Avoids a subsequent upward search for the non-existent breaker ending up in a NULL pointer access; afl test case 005/Apr27 from jsg@. 2015-04-29 12:44 schwarze Changed: tbl_layout.c (1.39), "Exp", lines: +2 -1 When the last line of a table layout turns out to be empty, it is deleted. Do not just free the struct tbl_row but also make sure that no pointer to it remains. Fixing a use after free found by jsg@ with afl. 2015-04-29 11:04 schwarze Changed: main.c (1.238), "Exp", lines: +3 -3 Improve the error message in case somebody has configured an invalid PAGER. Suggested by Lorenzo Beretta <lory dot fulgi at infinito dot it>. 2015-04-28 16:13 schwarze Changed: manpath.c (1.24), "Exp", lines: +2 -2 Fix the HAVE_MANPATH case, got broken in rev. 1.23. Patch from Steffen Nurpmeso <sdaoden at yandex dot com>, thanks. 2015-04-23 16:17 schwarze Changed: man.c (1.163), "Exp", lines: +1 -47 man.h (1.75), "Exp", lines: +1 -2 mandocdb.c (1.194), "Exp", lines: +3 -3 mdoc.c (1.252), "Exp", lines: +1 -40 mdoc.h (1.142), "Exp", lines: +1 -9 mdoc_validate.c (1.291), "Exp", lines: +5 -5 roff.c (1.269), "Exp", lines: +47 -1 roff.h (1.34), "Exp", lines: +6 -0 Unify mdoc_deroff() and man_deroff() into a common function deroff(). No functional change except that for mdoc(7), it now skips leading escape sequences just like it already did for man(7). Escape sequences rarely occur in mdoc(7) code and if they do, skipping them is an improvement in this context. Minus 30 lines of code. 2015-04-23 15:35 schwarze Changed: libman.h (1.77), "Exp", lines: +1 -2 libmdoc.h (1.105), "Exp", lines: +1 -2 man.c (1.162), "Exp", lines: +1 -8 man_macro.c (1.109), "Exp", lines: +2 -3 mdoc.c (1.251), "Exp", lines: +1 -8 mdoc_macro.c (1.195), "Exp", lines: +2 -2 Get rid of two empty wrapper functions. No functional change. 2015-04-21 16:14 schwarze Changed: mdoc_macro.c (1.194), "Exp", lines: +16 -13 Avoid a use after free when the target node is deleted during validation. Bug reported by jsg@. 2015-04-20 09:54 schwarze Changed: main.c (1.237), "Exp", lines: +10 -6 Fix previous: Don't let man(1) warn twice about non-existant names. Again noticed by deraadt@. 2015-04-20 09:48 schwarze Changed: mdoc_validate.c (1.290), "Exp", lines: +3 -2 Avoid out-of-bounds read access before the beginning of the mdoc_macros[] array. This sometimes prevented proper warnings about text nodes preceding the first section header. 2015-04-19 20:35 schwarze Changed: tbl_data.c (1.40), "Exp", lines: +3 -2 More than one data field may follow T} on the same input line. Issue found by Christian Neukirchen <chneukirchen at gmail dot com> in the socket(2) manual on Linux. Also fixes major rendering bugs (including partial loss of content) in XkbChangeControls(3), XkbFreeClientMap(3), XkbGetMap(3), XkbKeyNumGroups(3), and XkbSetMap(3). 2015-04-19 19:44 schwarze Changed: man_term.c (1.183), "Exp", lines: +12 -1 If an explicit line break request (.br or .sp) occurs within an .HP block, the next line doesn't hang, but is simply indented. Issue found by Christian Neukirchen <chneukirchen at gmail dot com> in the dmsetup(8) manual on Linux. This patch also improves the indentation of XDGA(3) and XrmGetResource(3). 2015-04-19 15:10 schwarze Changed: main.c (1.236), "Exp", lines: +3 -1 If apropos(1) finds no match, print "nothing appropriate" to stderr similar to what the old apropos did. Requested by and OK deraadt@. 2015-04-19 14:57 schwarze Changed: libman.h (1.76), "Exp", lines: +1 -3 man.c (1.161), "Exp", lines: +2 -22 man_macro.c (1.108), "Exp", lines: +4 -5 mdoc.c (1.250), "Exp", lines: +2 -2 mdoc_macro.c (1.193), "Exp", lines: +4 -4 roff.c (1.268), "Exp", lines: +22 -1 roff_int.h (1.3), "Exp", lines: +3 -1 Unify trickier node handling functions. * man_elem_alloc() -> roff_elem_alloc() * man_block_alloc() -> roff_block_alloc() The functions mdoc_elem_alloc() and mdoc_block_alloc() remain for now because they need to do mdoc(7)-specific argument processing. 2015-04-19 14:25 schwarze Changed: libman.h (1.75), "Exp", lines: +1 -3 libmandoc.h (1.60), "Exp", lines: +1 -5 libmdoc.h (1.104), "Exp", lines: +1 -6 man.c (1.160), "Exp", lines: +3 -59 man_macro.c (1.107), "Exp", lines: +5 -5 mdoc.c (1.249), "Exp", lines: +2 -54 mdoc_macro.c (1.192), "Exp", lines: +3 -3 mdoc_validate.c (1.289), "Exp", lines: +6 -6 read.c (1.139), "Exp", lines: +7 -12 roff.c (1.267), "Exp", lines: +62 -3 roff_int.h (1.2), "Exp", lines: +19 -2 Unify some node handling functions that use TOKEN_NONE. * mdoc_word_alloc(), man_word_alloc() -> roff_word_alloc() * mdoc_word_append(), man_word_append() -> roff_word_append() * mdoc_addspan(), man_addspan() -> roff_addtbl() * mdoc_addeqn(), man_addeqn() -> roff_addeqn() Minus 50 lines of code, no functional change. 2015-04-19 14:00 schwarze Changed: man.c (1.159), "Exp", lines: +11 -11 man_hash.c (1.33), "Exp", lines: +5 -7 man_term.c (1.182), "Exp", lines: +2 -2 man_validate.c (1.119), "Exp", lines: +1 -1 mdoc.c (1.248), "Exp", lines: +11 -10 mdoc_argv.c (1.104), "Exp", lines: +2 -2 mdoc_hash.c (1.25), "Exp", lines: +6 -6 mdoc_macro.c (1.191), "Exp", lines: +19 -18 mdoc_validate.c (1.288), "Exp", lines: +3 -3 read.c (1.138), "Exp", lines: +5 -6 roff.h (1.33), "Exp", lines: +1 -0 Decouple the token code for "no request or macro" from the individual high-level parsers to allow further unification of functions that only need to recognize this code, but that don't care about different high-level macrosets beyond that. 2015-04-19 13:50 schwarze Added: roff_int.h (1.1) Changed: Makefile.depend (1.12), "Exp", lines: +8 -8 libman.h (1.74), "Exp", lines: +1 -3 libmandoc.h (1.59), "Exp", lines: +1 -3 libmdoc.h (1.103), "Exp", lines: +1 -3 man.c (1.158), "Exp", lines: +18 -180 man_macro.c (1.106), "Exp", lines: +9 -7 man_validate.c (1.118), "Exp", lines: +5 -4 mdoc.c (1.247), "Exp", lines: +20 -216 mdoc_macro.c (1.190), "Exp", lines: +18 -17 mdoc_validate.c (1.287), "Exp", lines: +16 -15 roff.c (1.266), "Exp", lines: +205 -7 Unify node handling functions: * node_alloc() for mdoc and man_node_alloc() -> roff_node_alloc() * node_append() for mdoc and man_node_append() -> roff_node_append() * mdoc_head_alloc() and man_head_alloc() -> roff_head_alloc() * mdoc_body_alloc() and man_body_alloc() -> roff_body_alloc() * mdoc_node_unlink() and man_node_unlink() -> roff_node_unlink() * mdoc_node_free() and man_node_free() -> roff_node_free() * mdoc_node_delete() and man_node_delete() -> roff_node_delete() Minus 130 lines of code, no functional change. 2015-04-18 17:53 schwarze Changed: demandoc.c (1.20), "Exp", lines: +3 -3 man.c (1.157), "Exp", lines: +1 -15 man.h (1.74), "Exp", lines: +1 -3 man_html.c (1.117), "Exp", lines: +8 -14 man_term.c (1.181), "Exp", lines: +6 -10 mandocdb.c (1.193), "Exp", lines: +8 -9 mdoc.c (1.246), "Exp", lines: +1 -15 mdoc.h (1.141), "Exp", lines: +1 -3 mdoc_html.c (1.232), "Exp", lines: +11 -18 mdoc_man.c (1.93), "Exp", lines: +6 -12 mdoc_term.c (1.319), "Exp", lines: +7 -9 tree.c (1.66), "Exp", lines: +3 -3 Delete the wrapper functions mdoc_meta(), man_meta(), mdoc_node(), man_node() from the mandoc(3) semi-public interface and the internal wrapper functions print_mdoc() and print_man() from the HTML formatters. Minus 60 lines of code, no functional change. 2015-04-18 17:28 schwarze Changed: libman.h (1.73), "Exp", lines: +1 -2 libmandoc.h (1.58), "Exp", lines: +8 -9 libmdoc.h (1.102), "Exp", lines: +1 -2 man.c (1.156), "Exp", lines: +1 -63 mdoc.c (1.245), "Exp", lines: +1 -85 read.c (1.137), "Exp", lines: +25 -39 roff.c (1.265), "Exp", lines: +70 -2 Unify {mdoc,man}_{alloc,reset,free}() into roff_man_{alloc,reset,free}(). Minus 80 lines of code, no functional change. Written on the train from Koeln to Wolfsburg returning from p2k15. 2015-04-18 17:01 schwarze Changed: libman.h (1.72), "Exp", lines: +1 -2 libmandoc.h (1.57), "Exp", lines: +3 -1 libmdoc.h (1.101), "Exp", lines: +1 -2 man.c (1.155), "Exp", lines: +1 -3 man_hash.c (1.32), "Exp", lines: +4 -5 mdoc.c (1.244), "Exp", lines: +1 -2 mdoc_hash.c (1.24), "Exp", lines: +4 -5 read.c (1.136), "Exp", lines: +9 -3 Move mdoc_hash_init() and man_hash_init() to libmandoc.h and call them from mparse_alloc() and choose_parser(), preparing unified allocation of struct roff_man. 2015-04-18 16:34 schwarze Changed: cgi.c (1.108), "Exp", lines: +7 -7 demandoc.c (1.19), "Exp", lines: +7 -8 main.c (1.235), "Exp", lines: +7 -6 man.c (1.154), "Exp", lines: +2 -1 mandoc.h (1.203), "Exp", lines: +2 -2 mandocdb.c (1.192), "Exp", lines: +9 -11 mdoc.c (1.243), "Exp", lines: +2 -1 read.c (1.135), "Exp", lines: +40 -52 roff.h (1.32), "Exp", lines: +7 -0 Profit from the unified struct roff_man and reduce the number of arguments of mparse_result() by one. No functional change. Written on the ICE Bruxelles-Koeln on the way back from p2k15. 2015-04-18 16:06 schwarze Changed: cgi.c (1.107), "Exp", lines: +3 -3 demandoc.c (1.18), "Exp", lines: +3 -3 libman.h (1.71), "Exp", lines: +12 -33 libmandoc.h (1.56), "Exp", lines: +19 -20 libmdoc.h (1.100), "Exp", lines: +17 -47 main.c (1.234), "Exp", lines: +5 -5 main.h (1.22), "Exp", lines: +10 -11 man.c (1.153), "Exp", lines: +54 -52 man.h (1.73), "Exp", lines: +5 -5 man_html.c (1.116), "Exp", lines: +2 -2 man_macro.c (1.105), "Exp", lines: +9 -9 man_term.c (1.180), "Exp", lines: +2 -2 man_validate.c (1.117), "Exp", lines: +2 -2 mandoc.h (1.202), "Exp", lines: +6 -7 mandocdb.c (1.191), "Exp", lines: +3 -3 mdoc.c (1.242), "Exp", lines: +52 -52 mdoc.h (1.140), "Exp", lines: +4 -4 mdoc_argv.c (1.103), "Exp", lines: +10 -10 mdoc_html.c (1.231), "Exp", lines: +2 -2 mdoc_macro.c (1.189), "Exp", lines: +22 -21 mdoc_man.c (1.92), "Exp", lines: +3 -3 mdoc_term.c (1.318), "Exp", lines: +2 -2 mdoc_validate.c (1.286), "Exp", lines: +15 -15 read.c (1.134), "Exp", lines: +7 -7 roff.h (1.31), "Exp", lines: +35 -1 tree.c (1.65), "Exp", lines: +3 -3 Replace the structs mdoc and man by a unified struct roff_man. Almost completely mechanical, no functional change. Written on the train from Exeter to London returning from p2k15. 2015-04-18 16:05 schwarze Changed: TODO (1.207), "Exp", lines: +5 -2 look at COHERENT troff 2015-04-16 20:36 schwarze Changed: TODO (1.206), "Exp", lines: +5 -1 florian want <img> tags for https://tlakh.xyz/p2k15.7.html 2015-04-16 20:22 schwarze Changed: mdoc_html.c (1.230), "Exp", lines: +3 -7 Restore the page headers and page footers that accidentally got lost in rev. 1.225. Regression reported by florian@. 2015-04-16 16:36 schwarze Changed: main.c (1.233), "Exp", lines: +3 -5 shorten "outdated mandoc.db" warning message; requested by deraadt@ 2015-04-06 22:06 schwarze Changed: TODO (1.205), "Exp", lines: +6 -1 man_term.c (1.179), "Exp", lines: +5 -2 Do not mistreat empty arguments to font alternating macros as vertical spacing requests. Bug found with xmahjongg(6). 2015-04-06 14:59 schwarze Changed: man_term.c (1.178), "Exp", lines: +2 -2 On a new RS nesting level, the saved width starts from the default width, not from the saved width of the previous level. Improves xterm(1) and XSetEventQueueOwner(3); found in transcode_filter(1). 2015-04-06 13:35 schwarze Changed: man_term.c (1.177), "Exp", lines: +4 -2 Use the default width for .RS without arguments. Reduces groff-mandoc differences in base and Xenocara by about 4%. Found while looking at wpa_supplicant(8). 2015-04-05 23:04 schwarze Changed: mdoc_macro.c (1.188), "Exp", lines: +16 -4 If a partial explicit block extending to the next input line follows the end macro of a broken block, put all of it into the breaking block. Needed for example by mutella(1). 2015-04-05 22:44 schwarze Changed: mdoc_macro.c (1.187), "Exp", lines: +45 -51 Reduce code duplication, no functional change: Both partial and full implicit blocks can break explicit blocks. Put the code to handle both cases into a common function. 2015-04-05 14:43 schwarze Changed: mdoc_macro.c (1.186), "Exp", lines: +8 -10 Arguments to end macros of broken partial explicit blocks must go inside the breaking block. For example, in .It Ic cmd Oo .Ar optional_arg Oc Ar mandatory_arg the mandatory_arg is still inside the .It block. Used for example by mutella(1). 2015-04-05 09:30 schwarze Changed: gmdiff (1.4), "Exp", lines: +2 -1 allow using an alternate mandoc binary 2015-04-04 18:52 schwarze Changed: man_term.c (1.176), "Exp", lines: +13 -1 Give man(7) section and subsection headers hanging indentation. Reduces groff-mandoc differences in base by about 2.5% due to various Perl manuals having long section titles. Quirk found in argtable2(3). 2015-04-04 17:47 schwarze Changed: man_term.c (1.175), "Exp", lines: +6 -6 mdoc_term.c (1.317), "Exp", lines: +2 -2 term.c (1.247), "Exp", lines: +6 -6 term.h (1.113), "Exp", lines: +3 -3 term_ascii.c (1.45), "Exp", lines: +19 -25 term_ps.c (1.74), "Exp", lines: +8 -8 Rounding rules for horizontal scaling widths are more complicated. There is a first rounding to basic units on the input side. After that, rounding rules differ between requests and macros. Requests round to the nearest possible character position. Macros round to the next character position to the left. Implement that by changing the return value of term_hspan() to basic units and leaving the second scaling and rounding stage to the formatters instead of doing it in the terminal handler. Improves for example argtable2(3). 2015-04-04 13:53 schwarze Changed: roff.c (1.264), "Exp", lines: +3 -1 Don't allow breaking the output line after hyphens following escape sequences. Improves tic(1), sxpm(1), and a few Perl manuals. Quirk found by naddy@ in milter-greylist(8). 2015-04-04 11:44 schwarze Changed: man_term.c (1.174), "Exp", lines: +12 -1 Fix a quirk with respect to empty .HP. Found while writing a regression test for man_macro.c rev. 1.66. Incidentally, this brings rendering of XFreeEventData(3) closer to groff. 2015-04-03 23:19 schwarze Changed: man_macro.c (1.104), "Exp", lines: +34 -119 Vastly simplify man(7) block unwinding, similar to mdoc_macro.c 1.171. Drop one enum type, two static functions, 70 lines of code. Also fixes the mpeg_encode(1) manual reported broken by naddy@. 2015-04-03 17:00 schwarze Changed: man_macro.c (1.103), "Exp", lines: +2 -2 It turns out the man(7) parser suffers from unintelligible handling of block rewinding, just like then mdoc(7) parser did. First step in getting rid of rew_scope(): Replace the only call where the target block is known. This commit is analogous to mdoc_macro.c rev. 1.167. One down, three to go. 2015-04-03 12:41 schwarze Changed: TODO (1.204), "Exp", lines: +9 -1 portability: word boundaries in regular expressions 2015-04-03 08:46 schwarze Changed: apropos.1 (1.39), "Exp", lines: +4 -3 main.c (1.232), "Exp", lines: +2 -2 man.1 (1.14), "Exp", lines: +4 -3 mandoc.1 (1.159), "Exp", lines: +4 -3 No need to hardcode /usr/bin/ as the path to more(1); helps portability. We don't hardcode the paths to gunzip(1) and cmp(1) either. Discussed with ajacoutot@. 2015-04-02 23:48 schwarze Changed: libman.h (1.70), "Exp", lines: +2 -2 libmdoc.h (1.99), "Exp", lines: +2 -2 man.c (1.152), "Exp", lines: +4 -4 man.h (1.72), "Exp", lines: +2 -11 man_html.c (1.115), "Exp", lines: +4 -4 man_term.c (1.173), "Exp", lines: +16 -18 man_validate.c (1.116), "Exp", lines: +13 -13 mandoc_headers.3 (1.6), "Exp", lines: +17 -8 mandocdb.c (1.190), "Exp", lines: +24 -24 mdoc.c (1.241), "Exp", lines: +5 -5 mdoc.h (1.139), "Exp", lines: +2 -12 mdoc_html.c (1.229), "Exp", lines: +2 -2 mdoc_man.c (1.91), "Exp", lines: +3 -3 mdoc_term.c (1.316), "Exp", lines: +7 -13 roff.h (1.30), "Exp", lines: +11 -0 term.c (1.246), "Exp", lines: +4 -4 term.h (1.112), "Exp", lines: +7 -6 Third step towards parser unification: Replace struct mdoc_meta and struct man_meta by a unified struct roff_meta. Written of the train from London to Exeter on the way to p2k15. 2015-04-02 22:48 schwarze Changed: demandoc.c (1.17), "Exp", lines: +5 -5 libman.h (1.69), "Exp", lines: +13 -13 libmdoc.h (1.98), "Exp", lines: +24 -24 man.c (1.151), "Exp", lines: +34 -35 man.h (1.71), "Exp", lines: +46 -71 man_hash.c (1.31), "Exp", lines: +4 -4 man_html.c (1.114), "Exp", lines: +9 -9 man_macro.c (1.102), "Exp", lines: +17 -18 man_term.c (1.172), "Exp", lines: +9 -9 man_validate.c (1.115), "Exp", lines: +4 -4 mandoc_headers.3 (1.5), "Exp", lines: +17 -14 mandocdb.c (1.189), "Exp", lines: +29 -29 mdoc.c (1.240), "Exp", lines: +42 -42 mdoc.h (1.138), "Exp", lines: +129 -211 mdoc_argv.c (1.102), "Exp", lines: +4 -4 mdoc_hash.c (1.23), "Exp", lines: +3 -3 mdoc_html.c (1.228), "Exp", lines: +7 -7 mdoc_macro.c (1.185), "Exp", lines: +38 -40 mdoc_man.c (1.90), "Exp", lines: +11 -11 mdoc_term.c (1.315), "Exp", lines: +14 -14 mdoc_validate.c (1.285), "Exp", lines: +56 -56 roff.h (1.29), "Exp", lines: +77 -0 tree.c (1.64), "Exp", lines: +5 -5 Second step towards parser unification: Replace struct mdoc_node and struct man_node by a unified struct roff_node. To be able to use the tok member for both mdoc(7) and man(7) without defining all the macros in roff.h, sacrifice a tiny bit of type safety and make tok an int rather than an enum. Almost mechanical, no functional change. Written on the Eurostar from Bruxelles to London on the way to p2k15. 2015-04-02 21:36 schwarze Changed: Makefile (1.461), "Exp", lines: +5 -3 Makefile.depend (1.11), "Exp", lines: +25 -25 att.c (1.14), "Exp", lines: +2 -1 demandoc.c (1.16), "Exp", lines: +4 -3 lib.c (1.12), "Exp", lines: +2 -1 main.c (1.231), "Exp", lines: +4 -3 man.c (1.150), "Exp", lines: +32 -31 man.h (1.70), "Exp", lines: +2 -13 man_hash.c (1.30), "Exp", lines: +2 -1 man_html.c (1.113), "Exp", lines: +28 -27 man_macro.c (1.101), "Exp", lines: +30 -29 man_term.c (1.171), "Exp", lines: +48 -47 man_validate.c (1.114), "Exp", lines: +22 -19 mandoc_headers.3 (1.4), "Exp", lines: +20 -4 mandocdb.c (1.188), "Exp", lines: +24 -23 mdoc.c (1.239), "Exp", lines: +38 -37 mdoc.h (1.137), "Exp", lines: +4 -16 mdoc_argv.c (1.101), "Exp", lines: +7 -6 mdoc_hash.c (1.22), "Exp", lines: +2 -1 mdoc_html.c (1.227), "Exp", lines: +55 -54 mdoc_macro.c (1.184), "Exp", lines: +21 -20 mdoc_man.c (1.89), "Exp", lines: +35 -34 mdoc_term.c (1.314), "Exp", lines: +82 -81 mdoc_validate.c (1.284), "Exp", lines: +50 -49 read.c (1.133), "Exp", lines: +6 -5 roff.h (1.28), "Exp", lines: +16 -11 st.c (1.12), "Exp", lines: +2 -1 tree.c (1.63), "Exp", lines: +40 -39 First step towards parser unification: Replace enum mdoc_type and enum man_type by a unified enum roff_type. Almost mechanical, no functional change. Written on the ICE train from Frankfurt to Bruxelles on the way to p2k15. 2015-04-01 12:48 schwarze Changed: mansearch.c (1.57), "Exp", lines: +34 -36 Let man(1) and apropos(1) work even when the current directory is unusable: Only change back to the current directory when the directory was changed before and the next path is relative. This is now more similar to what makewhatis(8) does. Issue reported by espie@. 2015-03-30 16:06 schwarze Changed: apropos.1 (1.38), "Exp", lines: +8 -8 eqn.7 (1.35), "Exp", lines: +5 -5 mandoc.1 (1.158), "Exp", lines: +2 -2 mandoc_char.7 (1.62), "Exp", lines: +37 -41 Escape punctuation characters that have a different meaning in -Tpdf. ~, `, and ' get translated to non-ASCII characters by most troff implementations when generating PostScript/PDF output. When the original ASCII character is meant, it needs to be manually escaped. Patch from bentley@. 2015-03-27 21:40 schwarze Changed: mandoc.1 (1.157), "Exp", lines: +3 -3 refering -> referring; patch from jmc@ 2015-03-27 21:33 schwarze Changed: cgi.c (1.106), "Exp", lines: +8 -7 html.c (1.186), "Exp", lines: +10 -29 main.c (1.230), "Exp", lines: +10 -9 main.h (1.21), "Exp", lines: +17 -10 man.conf.5 (1.3), "Exp", lines: +21 -1 term_ascii.c (1.44), "Exp", lines: +22 -49 term_ps.c (1.73), "Exp", lines: +10 -23 Actually use the new man.conf(5) "output" directive. Additional functionality, yet minus 45 lines of code. 2015-03-27 17:37 schwarze Deleted: manpath.h (1.8) Added: manconf.h (1.1) Changed: Makefile (1.460), "Exp", lines: +3 -3 Makefile.depend (1.10), "Exp", lines: +6 -6 cgi.c (1.105), "Exp", lines: +4 -4 main.c (1.229), "Exp", lines: +13 -11 mandoc_headers.3 (1.3), "Exp", lines: +10 -18 mandocdb.c (1.187), "Exp", lines: +23 -23 manpage.c (1.11), "Exp", lines: +7 -7 manpath.c (1.23), "Exp", lines: +96 -27 mansearch.3 (1.4), "Exp", lines: +4 -4 mansearch.c (1.56), "Exp", lines: +4 -4 Parse the new man.conf(5) "output" directive. The next step will be to actually use the parsed data. 2015-03-27 16:36 schwarze Changed: main.c (1.228), "Exp", lines: +4 -4 mandoc.1 (1.156), "Exp", lines: +55 -58 Modernize documentation by inserting blanks between option letters and option arguments, except for -m because "-m an" and "-m andoc" look just too weird. Of course, the traditional form without the blank will continue to work. 2015-03-27 16:28 schwarze Changed: man.conf.5 (1.2), "Exp", lines: +19 -26 various tweaks from jmc@ 2015-03-27 01:01 schwarze Changed: mandoc_char.7 (1.61), "Exp", lines: +24 -2 oops, forgot to apply the actual patch... 2015-03-27 00:57 schwarze Changed: mandoc_char.7 (1.60), "Exp", lines: +3 -3 Document that certain stand-alone accents need escaping in rare cases to prevent them from being converted to Unicode replacements in PDF output. Issue found by bentley@, OK jmc@ bentley@. 2015-03-27 00:18 schwarze Added: man.conf.5 (1.1) Changed: Makefile (1.459), "Exp", lines: +5 -1 configure (1.25), "Exp", lines: +3 -0 configure.local.example (1.8), "Exp", lines: +6 -1 Add man.conf(5). After adding some additional functionality, one of the next steps will be to use it in addition to manpath(1) rather than as an alternative to it. 2015-03-26 22:42 schwarze Changed: manpath.c (1.22), "Exp", lines: +42 -26 Add a new directive "manpath path" to replace the legacy "_whatdb path/whatis.db". Keep _whatdb support for backward compat, for now. Discussed with many, jmc@ and ajacoutot@ agree with the general direction. 2015-03-22 18:14 schwarze Changed: configure (1.24), "Exp", lines: +2 -0 configure.local.example (1.7), "Exp", lines: +8 -1 manpath.c (1.21), "Exp", lines: +1 -2 make MANPATH_DEFAULT compile-time configurable 2015-03-21 17:19 schwarze Changed: manpath.c (1.20), "Exp", lines: +6 -2 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 2015-03-20 15:32 schwarze Changed: test-vasprintf.c (1.2), "Exp", lines: +5 -1 vasprintf(3) needs _GNU_SOURCE on Linux; pointed out by Christian Neukirchen <chneukirchen at gmail dot com>. 2015-03-20 15:25 schwarze Changed: compat_vasprintf.c (1.2), "Exp", lines: +7 -3 Patch from Christian Neukirchen <chneukirchen at gmail dot com>: He reports that on some platforms, it is not possible to use the same va_list twice. So use va_copy(3) for additional safety. 2015-03-20 14:47 schwarze Changed: man_macro.c (1.100), "Exp", lines: +2 -2 The .PD macro can occur in next-line scope. Fixes zshmisc(1). Issue reported by Christian Neukirchen <chneukirchen at gmail dot com>. 2015-03-20 12:54 schwarze Changed: libman.h (1.68), "Exp", lines: +6 -9 man_macro.c (1.99), "Exp", lines: +18 -16 Simplify by almost halving the number of macro flags: 1. MAN_EXPLICIT was used iff fp == blk_exp, so just test fp. 2. MAN_FSCOPED was used only for TP, so just test for TP. 3. MAN_NOCLOSE was completely unused. No functional change. 2015-03-19 14:57 schwarze Added: compat_isblank.c (1.1) compat_mkdtemp.c (1.1) compat_vasprintf.c (1.1) test-isblank.c (1.1) test-mkdtemp.c (1.1) test-vasprintf.c (1.1) Changed: INSTALL (1.11), "Exp", lines: +3 -1 Makefile (1.458), "Exp", lines: +11 -2 Makefile.depend (1.9), "Exp", lines: +6 -0 configure (1.23), "Exp", lines: +19 -0 Compat glue needed for Solaris 9 and 10. Thanks to Sevan Janiyan <venture37 at geeklan dot co dot uk> for reporting the Solaris 10 issues, to Jan Holzhueter <jh at opencsw dot org> for some additional insight, and to OpenCSW in general for providing me with a Solaris 9/10/11 testing environment. 2015-03-18 19:29 schwarze Changed: compat_fts.c (1.9), "Exp", lines: +15 -166 compat_fts.h (1.2), "Exp", lines: +1 -5 We always use FTS_NOCHDIR, so delete the directory changing code. This not only simplifies matters, but also helps operating systems lacking dirfd(3), for example Solaris 10. Solaris dirfd issue reported by Sevan Janiyan <venture37 at geeklan dot co dot uk>. 2015-03-18 17:13 schwarze Changed: configure (1.22), "Exp", lines: +1 -0 Pass the CC set in configure.local to Makefile.local. Issue found while testing on opencsw.org. 2015-03-17 13:35 schwarze Changed: main.c (1.227), "Exp", lines: +20 -27 Simplify: Now that rc is global anyway, no need to pass it around as an argument. No functional change. 2015-03-17 07:33 schwarze Changed: main.c (1.226), "Exp", lines: +13 -2 read.c (1.132), "Exp", lines: +3 -1 When the user exits the pager before the pager has drained all input from man(1), man(1) dies from SIGPIPE. Exiting man(1) is fine in this case, generating more output would be pointless, but without handling SIGPIPE, the exit code from man(1) was wrong and csh(1) printed an ugly message "Broken pipe". Fix this by handling SIGPIPE explicitly. Issue noticed by deraadt@. 2015-03-16 14:51 schwarze Changed: TODO (1.203), "Exp", lines: +14 -1 naddy@ found a tough problem - fittingly, in cobfusc(1)... 2015-03-15 16:53 schwarze Changed: man_term.c (1.170), "Exp", lines: +3 -2 Avoid off-by-one read access to the termacts array, which could sometimes result in missing line breaks before subsection headers. Found by carsten dot kunze at arcor dot de on SuSE 13.2. 2015-03-13 20:20 schwarze Changed: mdoc.7 (1.253), "Exp", lines: +3 -3 Remove the first comma from constructs like ", and," and ", or,": You can use "and" and "or" to join sentence clauses, and you can use commas, but both hinders reading; patch from jmc@. 2015-03-13 12:35 tag VERSION_1_13_3 2015-03-13 12:35 schwarze Changed: Makefile (1.457), "Exp", lines: +3 -3 NEWS (1.9), "Exp", lines: +116 -1 release 1.13.3 2015-03-13 00:19 schwarze Changed: mandocdb.c (1.186), "Exp", lines: +2 -1 Fix hardlink detection on platforms having padding in struct inodev, typically 64bit platforms. This was basically broken since forever. Not only is the padding used, but it was used uninitialized. Problem reported by jmc@. 2015-03-11 13:15 schwarze Changed: configure (1.21), "Exp", lines: +1 -3 When manpath(1) is available, enable HAVE_MANPATH even when building without database support. Required now that we have man(1) even without database support. 2015-03-11 13:11 schwarze Changed: TODO (1.202), "Exp", lines: +6 -1 mansearch.c (1.55), "Exp", lines: +4 -3 When interpreting the -O argument as a macro name fails, fall back to showing Nd rather than not showing anything. Issue reported by jmc@. 2015-03-11 13:05 schwarze Changed: read.c (1.131), "Exp", lines: +2 -2 Fix previous: size_t is often narrower than off_t. Cluestick applied by joerg at NetBSD. 2015-03-10 14:17 schwarze Changed: read.c (1.130), "Exp", lines: +2 -2 The st_size member of struct stat is off_t, which is signed, all required by POSIX. So don't compare it against against an unsigned constant. 2015-03-10 13:50 schwarze Changed: main.c (1.225), "Exp", lines: +23 -27 We can keep track of the pager PID without additional complexity. No functional change for now, but more robust in case anybody should ever add additional child processes. 2015-03-10 03:02 schwarze Changed: main.c (1.224), "Exp", lines: +22 -4 Fix a regression caused in rev. 1.212, reported by kristaps@: When using a pager and the first manual shown is gzip'ed, the gunzip(1) process ended up as a child of the pager process such that the man(1) process couldn't wait for it, preventing proper display of the manual. Solve this by making the pager a child of the man(1) process (instead of the other way round), which requires being a bit more careful about properly closing file descriptors after use and waiting for the pager before exiting man(1). 2015-03-09 21:00 schwarze Changed: INSTALL (1.10), "Exp", lines: +27 -92 update for 1.13.3 2015-03-09 20:17 schwarze Changed: eqn.7 (1.34), "Exp", lines: +24 -24 use \(dq rather than \*q; patch from bentley@ 2015-03-06 15:48 schwarze Changed: man_term.c (1.169), "Exp", lines: +3 -7 mdoc_term.c (1.313), "Exp", lines: +3 -1 tbl_term.c (1.40), "Exp", lines: +1 -4 Fix vertical spacing at the beginning of tables. man(7) always prints a blank line, mdoc(7) doesn't. Problem in mdoc(7) reported by kristaps@. mdoc(7) part of the patch tested by kristaps@. 2015-03-06 13:09 schwarze Changed: mdoc_term.c (1.312), "Exp", lines: +7 -4 In mdoc(7), don't mistreat negative .sp arguments as large positive ones. Instead, use the same logic as for man(7). 2015-03-06 13:02 schwarze Changed: term.c (1.245), "Exp", lines: +2 -1 prevent the skipvsp flag from creeping past actual text 2015-03-06 11:03 schwarze Changed: tbl_term.c (1.39), "Exp", lines: +4 -3 Flush the line preceding a table before clearing the right margin, such that that line isn't output with unlimited width. Problem reported and fix OK by kristaps@. 2015-03-06 09:24 kristaps Changed: main.c (1.223), "Exp", lines: +5 -3 preconv.c (1.14), "Exp", lines: +2 -2 Allow compilation on Mac OS X, which doesn't have MACHINE defined. While there, specify some casts to satisfy the compiler warnings. OK schwarze@ 2015-03-04 12:19 schwarze Changed: eqn.c (1.58), "Exp", lines: +4 -2 in eqn, "prime" is equivalent to \(fm, and - is equivalent to \(mi; patch from bentley@ 2015-03-03 21:11 schwarze Changed: man_html.c (1.112), "Exp", lines: +3 -1 mdoc_html.c (1.226), "Exp", lines: +3 -1 If an eqn(7) starts on a new input line, be sure to output whitespace in front of it. Issue found by tedu@ in glOrtho(3). There are also cases of excessive whitespace before and after equations. This patch neither fixes them nor makes them worse. 2015-03-02 14:50 schwarze Changed: read.c (1.129), "Exp", lines: +2 -1 If a non-gz manual is read after a gzipped manual, refrain from throwing a bogus error "wait: No child processes". As reported by Baptiste Daroussin <bapt at FreeBSD dot org>, clearing the state variable curp->child after use was forgotten. 2015-02-27 16:22 schwarze Changed: mandocdb.c (1.185), "Exp", lines: +3 -2 When makewhatis(8) scans a tree, ignore trailing garbage on filenames. This is relevant because some ports install files like man1/xsel.1x, as reported by patrick keshishian <pkeshish at gmail dot com> on misc@. We can probably improve functionality and simplify the code by ignoring file name extensions altogether; we already know the section number from the name of the directory. But so close to lock, i'm keeping the fix minimal. 2015-02-27 16:02 schwarze Changed: main.c (1.222), "Exp", lines: +20 -9 mansearch.c (1.54), "Exp", lines: +29 -4 When man(1) and apropos(1) look for a file man1/foo.1 but it's unavailable, fall back to glob(man1/foo.*), which is more like what old man(1) did. Do this both for file names from the database and for fs_lookup(). This is relevant because some ports install files like man1/xset.1x. Regression reported by patrick keshishian <pkeshish at gmail dot com>. 2015-02-23 13:55 schwarze Changed: mdoc_validate.c (1.283), "Exp", lines: +5 -1 oops, in NAME, don't nag about the comma after .Nm 2015-02-23 13:31 schwarze Changed: mandoc.1 (1.155), "Exp", lines: +19 -9 mandoc.h (1.201), "Exp", lines: +5 -2 mdoc.7 (1.252), "Exp", lines: +5 -7 mdoc_validate.c (1.282), "Exp", lines: +25 -25 read.c (1.128), "Exp", lines: +5 -2 improve NAME section diagnostics; confusing messages reported by Jan Stary <hans at stare dot cz> 2015-02-21 14:46 schwarze Changed: roff.c (1.263), "Exp", lines: +77 -17 Escape quotes when expanding macro arguments. This fixes a bug naddy@ found in plan9/rc(1). 2015-02-20 23:55 schwarze Changed: mandoc.c (1.92), "Exp", lines: +9 -1 For selecting a two-digit font size, support the historic syntax \s12 in addition to the classic syntax \s(12, the modern syntax \s[12], and the alternative syntax \s'12'. The historic syntax only works for the font sizes 10-39. Real-world usage found by naddy@ in plan9/rc. 2015-02-20 22:40 schwarze Changed: read.c (1.127), "Exp", lines: +3 -2 Completely delete all carriage return characters from the input. No change to messages about them (ignore them right before line feeds, report errors elsewhere). naddy@ found a manual in the wild containing lots of these (ysm(1)), and i can't imagine a situation where dropping them could be problematic. 2015-02-20 13:47 schwarze Changed: TODO (1.201), "Exp", lines: +5 -1 \n(.$ 2015-02-17 20:41 schwarze Changed: TODO (1.200), "Exp", lines: +7 -5 naddy@ scoured the ports tree for remaining mandoc issues and identified two top priority issues 2015-02-17 20:37 schwarze Changed: chars.c (1.66), "Exp", lines: +2 -2 chars.in (1.52), "Exp", lines: +5 -3 mdoc_man.c (1.88), "Exp", lines: +3 -3 mdoc_term.c (1.311), "Exp", lines: +3 -3 mdoc_validate.c (1.281), "Exp", lines: +2 -2 st.in (1.28), "Exp", lines: +45 -45 Render \(lq and \(rq as '"' in -Tascii mode but leave the rendering of .Do/.Dc, .Dq, .Lb, and .St untouched. Reduces groff-mandoc differences in OpenBSD base by about 7%. Reminded of the issue by naddy@. 2015-02-17 18:09 schwarze Changed: roff.c (1.262), "Exp", lines: +12 -3 Cope with another one of the many kinds of DocBook stupidity: Instead of just using .br, DocBook sometimes fiddles with the utterly unportable internal register \n[an-break-flag] that is only available in the GNU implementation of man(7) and then arms an input line trap to call the equally unportable internal macro .an-trap that, in the GNU implementation, inspects that variable; all the world is GNU, isn't it? Since naddy@ reports that quite a few ports manuals suffer from this insanity, let's just translate it to the intended .br. Et ceterum censeo DocBookem esse delendam. 2015-02-17 17:16 schwarze Changed: roff.7 (1.70), "Exp", lines: +11 -6 roff.c (1.261), "Exp", lines: +42 -37 Let .it accept numerical expressions, not just numerical constants. For .it, ignore scaling units in roff_getnum(). Inside parentheses, skip whitespace after a sign in roff_getnum(). Parse and ignore unary plus in roff_getnum(). As a bonus, get rid of the only call to mandoc_strntoi() in roff.c. 2015-02-16 19:02 schwarze Changed: mandoc.1 (1.154), "Exp", lines: +5 -2 mdoc_validate.c (1.280), "Exp", lines: +41 -43 clean up post_dt() validation function; improved diagnostics, minus six lines of code 2015-02-16 16:23 schwarze Changed: Makefile (1.456), "Exp", lines: +3 -1 apropos.1 (1.37), "Exp", lines: +3 -5 configure (1.20), "Exp", lines: +0 -6 main.c (1.221), "Exp", lines: +5 -17 man.1 (1.13), "Exp", lines: +4 -6 mandoc.1 (1.153), "Exp", lines: +3 -5 Delete the -V option. It serves no purpose but keeps confusing people. Keeping track of the versions of installed software is the job of the package manager, not of the individual binaries. If individual binaries include version numbers, that tends to goad people into writing broken configuration tests that inspect version numbers instead of properly testing for features. 2015-02-16 14:56 schwarze Added: compat_strtonum.c (1.1) test-strtonum.c (1.1) Changed: LICENSE (1.7), "Exp", lines: +3 -2 Makefile (1.455), "Exp", lines: +5 -2 Makefile.depend (1.8), "Exp", lines: +3 -1 configure (1.19), "Exp", lines: +6 -0 configure.local.example (1.6), "Exp", lines: +2 -1 strtonum(3) compat glue 2015-02-16 14:11 schwarze Changed: term_ascii.c (1.43), "Exp", lines: +9 -3 Clamp width and indent settings to sensible values. Ignore errors for now. Patch from tedu@. 2015-02-15 17:57 schwarze Changed: mdoc.7 (1.251), "Exp", lines: +8 -7 Tweak the wording to avoid the possible misunderstanding that .In could only be used in the SYNOPSIS section. It is fine anywhere. Issue noticed by bentley@. 2015-02-14 13:23 schwarze Changed: mdoc_validate.c (1.279), "Exp", lines: +3 -2 shut up about tabs in SYNOPSIS .Fd lines, there is no good way to avoid them 2015-02-12 13:54 schwarze Changed: TODO (1.199), "Exp", lines: +1 -5 After almost five years and 99 revisions, mdoc_macro.c rev. 1.182 finally fixed the four issues explained in the mdoc_macro.c rev. 1.83 commit message. 2015-02-12 13:00 schwarze Changed: mdoc.c (1.238), "Exp", lines: +5 -5 Do not confuse .Bl -column lists that just broken another block with newly opened .Bl -column lists; fixing an assertion failure jsg@ found with afl: test case #481, Bl It Bl -column It Bd El text text El 2015-02-12 12:24 schwarze Changed: mdoc.c (1.237), "Exp", lines: +5 -3 mdoc.h (1.136), "Exp", lines: +5 -5 mdoc_html.c (1.225), "Exp", lines: +6 -5 mdoc_macro.c (1.183), "Exp", lines: +78 -110 mdoc_man.c (1.87), "Exp", lines: +11 -8 mdoc_term.c (1.310), "Exp", lines: +4 -3 mdoc_validate.c (1.278), "Exp", lines: +6 -40 Delete the mdoc_node.pending pointer and the function calculating it, make_pending(), which was the most difficult function of the whole mdoc(7) parser. After almost five years of maintaining this hellhole, i just noticed the pointer isn't needed after all. Blocks are always rewound in the reverse order they were opened; that even holds for broken blocks. Consequently, it is sufficient to just mark broken blogs with the flag MDOC_BROKEN and breaking blocks with the flag MDOC_ENDED. When rewinding, instead of iterating the pending pointers, just iterate from each broken block to its parents, rewinding all that are MDOC_ENDED and stopping after processing the first ancestor that it not MDOC_BROKEN. For ENDBODY markers, use the mdoc_node.body pointer in place of the former mdoc_node.pending. This also fixes an assertion failure found by jsg@ with afl, test case #467 (Bo Bl It Bd Bc It), where (surprise surprise) the pending pointer got corrupted. Improved functionality, minus one function, minus one struct field, minus 50 lines of code. 2015-02-11 14:15 schwarze Changed: mdoc_html.c (1.224), "Exp", lines: +3 -4 mdoc_man.c (1.86), "Exp", lines: +3 -4 mdoc_term.c (1.309), "Exp", lines: +3 -4 do not access a NULL pointer if an .Eo block lacks a tail; found by jsg@ with afl, test case #16 2015-02-11 13:37 schwarze Changed: mdoc_macro.c (1.182), "Exp", lines: +8 -1 explicit blocks close out .Nd; fixing data structure corruption eventually leading to NULL pointer access; found by jsg@ with afl, text case #455. 2015-02-10 17:47 schwarze Changed: mdoc_macro.c (1.181), "Exp", lines: +44 -34 Be more careful to not generate empty .In, .St, and .Xr nodes. That could happen when their first argument was another called macro, causing a NULL pointer access in .St validation found by jsg@ with afl. Make in_line_argn() easier to understand by using one state variable rather than two. 2015-02-10 11:03 schwarze Changed: tbl_layout.c (1.38), "Exp", lines: +27 -11 Do not read past the end of the buffer if an "f" layout font modifier is followed by the end of the input line instead of a font specifier. Found by jsg@ with afl, test case #591. While here, improve functionality as well: * There is no "r" font modifier. * Font specifiers (as opposed to font modifiers) are case sensitive. * One-character font specifiers require trailing whitespace. * Ignore parenthised and two-letter font specifiers. 2015-02-10 08:05 schwarze Changed: TODO (1.198), "Exp", lines: +7 -7 cgi.c (1.104), "Exp", lines: +12 -12 demandoc.c (1.15), "Exp", lines: +7 -7 example.style.css (1.55), "Exp", lines: +4 -4 main.c (1.220), "Exp", lines: +2 -2 man-cgi.css (1.7), "Exp", lines: +3 -3 man_html.c (1.111), "Exp", lines: +2 -2 manpage.c (1.10), "Exp", lines: +6 -6 mdoc_validate.c (1.277), "Exp", lines: +2 -2 style.css (1.31), "Exp", lines: +2 -2 trim trailing white space, no code change; from Svyatoslav Mishyn <juef at openmailboxd dot org>, Crux Linux 2015-02-07 16:42 schwarze Changed: mdoc_macro.c (1.180), "Exp", lines: +2 -1 Closing a block validates it, which may end up deleting it, so if we are in a loop over blocks, cleanly restart the loop rather than risking use after free; found by jsg@ with afl. 2015-02-07 15:15 schwarze Changed: mandoc.1 (1.152), "Exp", lines: +10 -13 some tweaks to the DIAGNOSTICS section 2015-02-07 07:53 schwarze Changed: compat_fts.c (1.8), "Exp", lines: +4 -1 ignore O_CLOEXEC when the operating system doesn't provide it; needed for some older versions of SunOS; from jperkin@ via wiz@, both at NetBSD 2015-02-07 07:42 schwarze Changed: compat_fts.c (1.7), "Exp", lines: +5 -5 trivial sync to OpenBSD: <sys/param.h> no longer needed 2015-02-07 06:28 schwarze Changed: demandoc.c (1.14), "Exp", lines: +5 -4 main.c (1.219), "Exp", lines: +10 -7 be more careful about argc == 0 2015-02-06 16:06 schwarze Changed: mandoc.1 (1.151), "Exp", lines: +16 -7 mandoc.h (1.200), "Exp", lines: +3 -2 mdoc_validate.c (1.276), "Exp", lines: +3 -3 read.c (1.126), "Exp", lines: +3 -2 roff.c (1.260), "Exp", lines: +6 -5 replace the last legacy generic message type, "argument count wrong", by more specific messages, improving diagnostics for .cc .tr .Bl -column 2015-02-06 11:54 schwarze Changed: man_macro.c (1.98), "Exp", lines: +11 -17 man_validate.c (1.113), "Exp", lines: +22 -21 mandoc.1 (1.150), "Exp", lines: +41 -18 mandoc.h (1.199), "Exp", lines: +3 -1 read.c (1.125), "Exp", lines: +3 -1 better error reporting regarding .OP .RS .UR .TH arguments 2015-02-06 09:38 schwarze Changed: man_macro.c (1.97), "Exp", lines: +8 -1 man_validate.c (1.112), "Exp", lines: +1 -10 mandoc.1 (1.149), "Exp", lines: +5 -1 better diagnostics about excess arguments to .PD .ft .sp 2015-02-06 08:28 schwarze Changed: man_macro.c (1.96), "Exp", lines: +8 -1 man_validate.c (1.111), "Exp", lines: +2 -10 mandoc.1 (1.148), "Exp", lines: +5 -2 better error reporting for .br .fi .nf with arguments 2015-02-06 07:13 schwarze Changed: man_validate.c (1.110), "Exp", lines: +3 -3 mandoc.1 (1.147), "Exp", lines: +15 -10 mandoc.h (1.198), "Exp", lines: +2 -2 mdoc_macro.c (1.179), "Exp", lines: +4 -3 mdoc_validate.c (1.275), "Exp", lines: +19 -81 read.c (1.124), "Exp", lines: +2 -2 Delete the legacy generic warning type MANDOCERR_ARGCWARN, replacing the last instances by more specific warnings. Improved functionality, minus 50 lines of code. 2015-02-06 03:38 schwarze Changed: mandoc.1 (1.146), "Exp", lines: +9 -1 mandoc.h (1.197), "Exp", lines: +2 -1 mdoc_macro.c (1.178), "Exp", lines: +7 -1 mdoc_man.c (1.85), "Exp", lines: +6 -3 mdoc_validate.c (1.274), "Exp", lines: +22 -13 read.c (1.123), "Exp", lines: +2 -1 better handle .Fo and .Fd without argument better handle .Fo with more than one argument 2015-02-06 02:04 schwarze Changed: mdoc_validate.c (1.273), "Exp", lines: +45 -39 better handle empty .Bd .Bl .D1 .Dl blocks 2015-02-06 01:07 schwarze Changed: mdoc_macro.c (1.177), "Exp", lines: +12 -1 mdoc_validate.c (1.272), "Exp", lines: +3 -11 better handle .In .Sh .Ss .St .Xr without arguments 2015-02-05 01:46 schwarze Changed: mdoc_html.c (1.223), "Exp", lines: +1 -4 mdoc_macro.c (1.176), "Exp", lines: +2 -2 mdoc_term.c (1.308), "Exp", lines: +1 -4 mdoc_validate.c (1.271), "Exp", lines: +7 -5 fix handling of empty .An macros 2015-02-05 00:14 schwarze Changed: mdoc.c (1.236), "Exp", lines: +1 -2 mdoc.h (1.135), "Exp", lines: +1 -2 mdoc_html.c (1.222), "Exp", lines: +4 -7 mdoc_macro.c (1.175), "Exp", lines: +2 -8 mdoc_term.c (1.307), "Exp", lines: +4 -7 tree.c (1.62), "Exp", lines: +2 -5 Simplify by deleting the "lastline" member of struct mdoc_node. Minus one struct member, minus 17 lines of code, no functional change. 2015-02-04 22:30 schwarze Changed: mandoc.1 (1.145), "Exp", lines: +11 -8 mdoc_macro.c (1.174), "Exp", lines: +8 -2 mdoc_validate.c (1.270), "Exp", lines: +37 -36 Discard excess head arguments for .Bd .Bl .Bk and delete hwarn_eq0(). Discard empty .Bk blocks. Improve related diagnostics. 2015-02-04 19:20 schwarze Changed: mandoc.1 (1.144), "Exp", lines: +14 -2 mdoc_validate.c (1.269), "Exp", lines: +15 -11 improve diagnostics regarding arguments of .An .Pp .Lp .br .sp in particular, get rid of check_count(..., CHECK_EQ, 0) 2015-02-04 18:59 schwarze Changed: mdoc_argv.c (1.100), "Exp", lines: +2 -2 fix column numbers of macro arguments in messages 2015-02-04 18:03 schwarze Changed: mandoc.1 (1.143), "Exp", lines: +11 -2 mandoc.h (1.196), "Exp", lines: +2 -1 mdoc_macro.c (1.173), "Exp", lines: +9 -4 mdoc_validate.c (1.268), "Exp", lines: +34 -36 read.c (1.122), "Exp", lines: +2 -1 discard .Rs head arguments and improve .Rs diagnostics 2015-02-04 16:38 schwarze Changed: mandoc.1 (1.142), "Exp", lines: +8 -2 mandoc.h (1.195), "Exp", lines: +2 -1 mdoc_validate.c (1.267), "Exp", lines: +27 -25 read.c (1.121), "Exp", lines: +2 -1 more specific .Nd diagnostics, allowing to get rid of enum check_lvl and the respective argument of check_count() 2015-02-03 21:16 schwarze Changed: Makefile (1.454), "Exp", lines: +5 -5 configure.local.example (1.5), "Exp", lines: +28 -22 main.c (1.218), "Exp", lines: +15 -41 Enable the integrated man(1) even when database support is disabled, using the file system lookup fallback code, also reducing the number of preprocessor conditional directives. Hopefully, it will make some small Linux distros happy. 2015-02-03 18:37 schwarze Changed: tree.c (1.61), "Exp", lines: +21 -13 reduce indentation for better readability 2015-02-03 18:22 schwarze Changed: mdoc_macro.c (1.172), "Exp", lines: +2 -1 Avoid closing out an explicit block twice when broken by .It (assertion failure); regression found in jsg@'s afl test case 847. 2015-02-03 15:52 schwarze Changed: gmdiff (1.3), "Exp", lines: +17 -5 minimal support for Heirloom nroff 2015-02-03 01:14 schwarze Changed: mdoc_macro.c (1.171), "Exp", lines: +75 -160 Finally delete the kitchensink functions rew_sub() and rew_dohalt(). They were a maintenance and auditing nightmare because if you changed one bit in there, stuff tended to break at seemingly unrelated places. No functional change except getting rid of one bogus error message, but minus 80 lines of code. 2015-02-03 00:48 schwarze Changed: mdoc_macro.c (1.170), "Exp", lines: +11 -4 mdoc_validate.c (1.266), "Exp", lines: +12 -4 Bring .Pp/.Lp handling inside .Nm blocks closer to groff; as a bonus, get rid of another call to rew_sub(). 2015-02-02 19:23 schwarze Changed: mdoc_macro.c (1.169), "Exp", lines: +50 -57 Simplify and reindent make_pending(). No functional change except that some error messages become less confusing. Now the function is almost readable (but still requires nineteen lines of comments for fourteen lines of code). 2015-02-02 18:26 schwarze Changed: mdoc_macro.c (1.168), "Exp", lines: +21 -31 Simplify: Do not call rew_dohalt() from make_pending(), the calling macro handler already found the breaking block. No functional change except tiny variations in error messages. 2015-02-02 15:02 schwarze Changed: mdoc_macro.c (1.167), "Exp", lines: +37 -66 Get rid of all remaining calls to rew_sub() where the target block is known. This only leaves three that do actual searching. No functional change, minus 30 lines of code. 2015-02-02 04:26 schwarze Changed: libmdoc.h (1.97), "Exp", lines: +2 -2 mdoc.c (1.235), "Exp", lines: +3 -2 mdoc_macro.c (1.166), "Exp", lines: +67 -65 Get rid of all calls to rew_sub() in blk_exp_close(); only ten calls remain in other functions. As a bonus, this fixes an assertion failure jsg@ found some time ago with afl (test case 982) and improves minor details in error reporting. 2015-02-02 04:04 schwarze Changed: mdoc_macro.c (1.165), "Exp", lines: +7 -4 When a full block macro gets closed out by a mismatching block closure macro it calls, do not attempt to open its body. This can for example happen for (nonsensical) constructions like .Fo .Nm Fc in the SYNOPSIS. Fixing an assertion failure jsg@ found with afl some time ago (test case number 731). 2015-02-01 23:56 schwarze Changed: mdoc_macro.c (1.164), "Exp", lines: +14 -3 get rid of rew_sub() in blk_part_imp(); no functional change 2015-02-01 23:10 schwarze Changed: mdoc_html.c (1.221), "Exp", lines: +52 -14 mdoc_man.c (1.84), "Exp", lines: +25 -3 mdoc_term.c (1.306), "Exp", lines: +55 -14 fix .Eo/.Ec spacing 2015-02-01 17:30 schwarze Changed: mdoc_macro.c (1.163), "Exp", lines: +8 -24 Simplify blk_part_exp(), no functional change. * Replace calls to rew_sub() with rew_last() - two less out of 18. * No need to keep track of the body, it's always opened right after the head and never used for anything in this function. 2015-02-01 16:47 schwarze Changed: mdoc_macro.c (1.162), "Exp", lines: +4 -5 The function rew_sub() tries to rewind any all all kinds of blocks and elements under any and all circumstances, even handling some bad block nesting now and then. Little surprisingly, this ends up in excessive complexity and has caused many bugs in the past. Start to slowly disentangle this mess by replacing calls to rew_sub() immediately following mdoc_head_alloc() by the much simpler rew_last(). Gets rid of the first two rew_sub() calls out of twenty. No functional change. 2015-01-31 00:12 schwarze Changed: mdoc.h (1.134), "Exp", lines: +2 -2 mdoc_term.c (1.305), "Exp", lines: +2 -2 tbl_term.c (1.38), "Exp", lines: +3 -3 term.c (1.244), "Exp", lines: +7 -15 term.h (1.111), "Exp", lines: +2 -3 Use relative offsets instead of absolute pointers for the terminal font stack. The latter fail after the stack is grown with realloc(). Fixing an assertion failure found by jsg@ with afl some time ago (test case number 51). 2015-01-30 22:04 schwarze Changed: man_html.c (1.110), "Exp", lines: +6 -5 man_term.c (1.168), "Exp", lines: +6 -6 mdoc_html.c (1.220), "Exp", lines: +5 -4 mdoc_term.c (1.304), "Exp", lines: +5 -4 Have pity on the poor stack. Replace tail recursion by iteration when walking the syntax trees. No functional change. 2015-01-30 21:28 schwarze Changed: man.c (1.149), "Exp", lines: +66 -59 starting a tbl(7) breaks man(7) next-line scope; triggered by a bug report from jsg@ 2015-01-30 17:32 schwarze Changed: man_term.c (1.167), "Exp", lines: +2 -2 mandoc.h (1.194), "Exp", lines: +1 -4 tbl.c (1.39), "Exp", lines: +1 -5 tbl_data.c (1.39), "Exp", lines: +1 -2 tbl_html.c (1.16), "Exp", lines: +3 -3 tbl_term.c (1.37), "Exp", lines: +3 -3 Delete the redundant tbl span flags, just inspect the actual data where needed, which is less fragile. This fixes a subtle NULL pointer access to tp->tbl.cols: Due to a bug in the man(7) parser, the first span of a table can end up in a .TP head, in which case tblcalc() was never called. Found by jsg@ with afl. 2015-01-30 04:11 schwarze Changed: libroff.h (1.38), "Exp", lines: +1 -3 mandoc.h (1.193), "Exp", lines: +2 -14 out.c (1.59), "Exp", lines: +2 -2 tbl.3 (1.2), "Exp", lines: +94 -35 tbl.c (1.38), "Exp", lines: +1 -7 tbl_data.c (1.38), "Exp", lines: +3 -8 tbl_html.c (1.15), "Exp", lines: +8 -8 tbl_layout.c (1.37), "Exp", lines: +7 -26 tbl_term.c (1.36), "Exp", lines: +16 -21 Abolish struct tbl_head and replace it by an "int col" member in struct tbl_cell. No functional change, minus 40 lines of code. 2015-01-30 02:09 schwarze Changed: tbl.c (1.37), "Exp", lines: +8 -9 tbl_data.c (1.37), "Exp", lines: +31 -45 tbl_html.c (1.14), "Exp", lines: +7 -7 tbl_layout.c (1.36), "Exp", lines: +6 -6 tbl_term.c (1.35), "Exp", lines: +3 -5 Auditing the tbl(7) code for more NULL pointer accesses, i came out empty-handed; so this is just KNF and some code simplifications, no functional change. 2015-01-30 00:29 schwarze Changed: tbl_layout.c (1.35), "Exp", lines: +31 -11 Make sure every layout line contains at least one cell; fixing a NULL pointer access in term_tbl() that jsg@ found with afl. 2015-01-30 00:19 schwarze Changed: roff.c (1.259), "Exp", lines: +2 -2 correctly handle table layout lines starting with a dot 2015-01-29 00:33 schwarze Changed: eqn.7 (1.33), "Exp", lines: +2 -7 man.7 (1.132), "Exp", lines: +1 -48 mandoc.1 (1.141), "Exp", lines: +9 -108 mdoc.7 (1.250), "Exp", lines: +19 -102 roff.7 (1.69), "Exp", lines: +47 -31 tbl.7 (1.26), "Exp", lines: +11 -12 Radical cleanup of COMPATIBILITY sections: Remove lots of lies, dozens of irrelevant implementation details, and all references to groff versions older than 1.17. Move relevant information to the pages where it belongs, and out of mandoc(1) in particular. Add some missing general remarks to roff(7), where it fits the character and purpose of the page much better. 2015-01-28 21:11 schwarze Changed: eqn.c (1.57), "Exp", lines: +73 -52 mandoc.1 (1.140), "Exp", lines: +2 -9 mandoc.h (1.192), "Exp", lines: +1 -7 read.c (1.120), "Exp", lines: +1 -7 Clean up eqn(7) error handling: * When "define" fails, do not drop the whole equation. * Free memory after "undef". * Use standard mandoc error types instead of rolling our own. * Delete obfuscating EQN_MSG() macro. * Add function prototypes while here. 2015-01-28 17:32 schwarze Changed: libroff.h (1.37), "Exp", lines: +2 -2 mandoc.1 (1.139), "Exp", lines: +38 -13 mandoc.h (1.191), "Exp", lines: +8 -8 mdoc_man.c (1.83), "Exp", lines: +9 -6 read.c (1.119), "Exp", lines: +6 -6 roff.c (1.258), "Exp", lines: +7 -4 tbl.c (1.36), "Exp", lines: +15 -15 tbl_data.c (1.36), "Exp", lines: +10 -10 tbl_opts.c (1.20), "Exp", lines: +3 -2 * Polish tbl(7) error reporting. * Do not print out macro names in tbl(7) data blocks. * Like with GNU tbl, let empty tables cause a blank line. * Avoid producing empty tables in -Tman. 2015-01-28 15:03 schwarze Changed: libroff.h (1.36), "Exp", lines: +6 -6 roff.c (1.257), "Exp", lines: +8 -2 tbl.c (1.35), "Exp", lines: +8 -8 tbl_data.c (1.35), "Exp", lines: +3 -8 tbl_layout.c (1.34), "Exp", lines: +2 -5 tbl_opts.c (1.19), "Exp", lines: +6 -4 For now, it can't be helped that mandoc tbl(7) ignores high-level macros, but stop throwing away their arguments. This fixes information loss in a handful of Xenocara manuals, at the price of a small amount of formatting noise creeping through. 2015-01-28 04:19 schwarze Changed: tbl.7 (1.25), "Exp", lines: +1 -2 tbl_term.c (1.34), "Exp", lines: +19 -3 implement the tbl(7) "center" layout option 2015-01-28 02:23 schwarze Changed: out.c (1.58), "Exp", lines: +31 -7 adjust formatting for the tbl(7) layout 'x' modifier (maximize column) to match groff for up to six maximized columns 2015-01-27 05:21 schwarze Changed: mandoc.h (1.190), "Exp", lines: +7 -5 tbl.c (1.34), "Exp", lines: +6 -2 tbl_data.c (1.34), "Exp", lines: +8 -8 tbl_layout.c (1.33), "Exp", lines: +47 -24 tbl_term.c (1.33), "Exp", lines: +97 -124 Multiple parser and formatter fixes for line drawing in tbl(7). * Allow mixing vertical line bars with the layout options of the preceding layout cell. * Correctly combine box options with layout lines. * Correctly print vertical lines in data rows, with the right spacing. * Correctly print cross markers and left and right ends of horizontal lines even if vertical lines differ above and below. * Avoid the bogus error message "no table data cells" when a table data section starts with a horizontal line. No increase in code size. 2015-01-26 18:42 schwarze Changed: mandoc.1 (1.138), "Exp", lines: +41 -3 mandoc.h (1.189), "Exp", lines: +10 -3 read.c (1.118), "Exp", lines: +10 -3 tbl.7 (1.24), "Exp", lines: +26 -11 tbl_layout.c (1.32), "Exp", lines: +83 -155 Rework tbl(7) layout parsing: * Continue parsing even if part of the input is invalid. * Do not require whitespace between cell specifications. * Allow tabs as well as blanks between modifiers. * Mark the 'm' modifier as unsupported. * Parse and ignore the 'p' and 'v' modifiers. * Better warning and error messages. * Get rid of a static buffer. Improved functionality but minus 50 lines of code. 2015-01-26 13:03 schwarze Changed: mandoc.1 (1.137), "Exp", lines: +6 -2 mandoc.h (1.188), "Exp", lines: +3 -1 read.c (1.117), "Exp", lines: +2 -1 tbl.7 (1.23), "Exp", lines: +42 -40 tbl_opts.c (1.18), "Exp", lines: +32 -50 More improvements regarding tbl(7) options. * Treat "allbox" as an alias for "box" for now. * Parse and ignore the GNU tbl "nowarn" option. * For separation, allow spaces, tabs, and commas only. * Mark eqn(7) within tbl(7) as unsupported. * Simplify the option table. * Improve and sort documentation. 2015-01-26 00:57 schwarze Changed: mandoc.1 (1.136), "Exp", lines: +39 -10 mandoc.h (1.187), "Exp", lines: +5 -4 read.c (1.116), "Exp", lines: +5 -3 tbl.c (1.33), "Exp", lines: +33 -18 tbl_opts.c (1.17), "Exp", lines: +78 -157 Improve (or rather, rewrite) tbl(7) option parsing. * Allow the layout to start after the semicolon on the options line. * Ignore leading commas. * Option arguments cannot contain closing parentheses. * Avoid needless UNSUPP messages. * Better ERROR reporting. * Delete unused "linesize" field in struct tbl_opts. * No need for static buffers. * Garbage collect one almost empty wrapper function. Improved functionality, but minus 40 lines of code. 2015-01-24 10:08 schwarze Changed: man_macro.c (1.95), "Exp", lines: +13 -2 preserve .PP before .RE; effect found in audio/pms(1) 2015-01-24 02:41 schwarze Changed: man.7 (1.131), "Exp", lines: +3 -7 man.c (1.148), "Exp", lines: +2 -2 man.h (1.69), "Exp", lines: +1 -2 man_html.c (1.109), "Exp", lines: +1 -2 man_macro.c (1.94), "Exp", lines: +1 -2 man_term.c (1.166), "Exp", lines: +1 -2 man_validate.c (1.109), "Exp", lines: +0 -1 roff.c (1.256), "Exp", lines: +3 -2 Strangely, ignoring the roff(7) .na request was implemented in the man(7) parser. Simplify the code by moving it into the roff(7) parser, also making it work for mdoc(7). 2015-01-24 02:14 schwarze Changed: man.7 (1.130), "Exp", lines: +20 -20 change .Cm to .Ar for macro arguments 2015-01-24 01:58 schwarze Changed: man.7 (1.129), "Exp", lines: +24 -4 man_macro.c (1.93), "Exp", lines: +23 -3 mandoc.1 (1.135), "Exp", lines: +16 -3 mandoc.h (1.186), "Exp", lines: +2 -1 read.c (1.115), "Exp", lines: +2 -1 Support .RE with an argument; needed for audio/pms(1). 2015-01-24 01:45 schwarze Changed: TODO (1.197), "Exp", lines: +6 -2 new task: escape blank at the beginning of a line 2015-01-23 21:59 schwarze Changed: configure.local.example (1.4), "Exp", lines: +3 -2 improve homebrew cellar config example 2015-01-23 20:18 schwarze Changed: roff.7 (1.68), "Exp", lines: +6 -6 roff.c (1.255), "Exp", lines: +4 -4 While ignoring the .ta (set tab stops) and .ti (temp indent) requests is sometimes harmless, it often causes seriously ugly output, so flag these requests as unsupported rather than ignoring them. Discussed with naddy@. 2015-01-23 14:21 schwarze Changed: mdoc_html.c (1.219), "Exp", lines: +6 -6 mdoc_man.c (1.82), "Exp", lines: +6 -6 mdoc_term.c (1.303), "Exp", lines: +6 -6 Let .Aq/.Ao/.Ac print "<>" instead of the normal "\(la\(ra" when the only child is .Mt, not when the preceding node is .An, to improve robustness. Triggered by a question from Svyatoslav Mishyn <juef at openmailbox dot org> (Crux Linux). 2015-01-23 00:42 schwarze Changed: roff.7 (1.67), "Exp", lines: +10 -2 roff.c (1.254), "Exp", lines: +41 -3 Wonders of roff(7): Integer numbers in numerical expressions can carry scaling units, and some manuals (e.g. in devel/grcs) actually use that, so let's support it. Missing feature reported by naddy@. 2015-01-22 22:51 schwarze Changed: roff.c (1.253), "Exp", lines: +20 -2 Slightly improve \w width measurements: Count special characters with the same width as ASCII characters and treat all other escape sequences as if they had a width of 0. Certainly not perfect, but a bit better. For example, GNU RCS ci(1) needs this; reported by naddy@. 2015-01-22 21:38 schwarze Changed: mandoc.h (1.185), "Exp", lines: +3 -2 read.c (1.114), "Exp", lines: +9 -7 Traditional roff(7) explicitly allows certain control characters in the input stream (SOH, STX, ETX, ENQ, ACK, BEL, BS) for specific purposes (leaders, backspace, delimiters, .tr), but making sure these don't leak through to the output is tricky, so mark them as unsupported for now. 2015-01-22 19:26 schwarze Changed: read.c (1.113), "Exp", lines: +7 -3 Don't let a failing mparse_open() clobber the filename pointer; fixes error message content and a use after free for .so with non-existent target when -Wall or -Tlint is given. 2015-01-22 00:09 schwarze Changed: roff.7 (1.66), "Exp", lines: +3 -3 improve wording; patch from jmc@ 2015-01-21 22:41 schwarze Changed: configure (1.18), "Exp", lines: +3 -1 configure.local.example (1.3), "Exp", lines: +10 -2 mandocdb.c (1.184), "Exp", lines: +10 -2 Support homebrew-style linking on Mac OS X. Idea found together with Alexis Hildebrandt <surryhill at gmail dot com>. 2015-01-21 20:33 schwarze Changed: html.c (1.185), "Exp", lines: +9 -2 mandoc.c (1.91), "Exp", lines: +7 -5 mandoc.h (1.184), "Exp", lines: +3 -2 mandoc_escape.3 (1.3), "Exp", lines: +8 -7 roff.7 (1.65), "Exp", lines: +6 -5 term.c (1.243), "Exp", lines: +27 -2 Rudimentary implementation of the roff(7) \o escape sequence (overstrike). This is of some relevance because the pod2man(1) preamble abuses it for the icelandic letter Thorn, instead of simply using \(TP and \(Tp. Missing feature found by sthen@ in DateTime::Locale::is_IS(3p). 2015-01-21 19:40 schwarze Changed: term_ps.c (1.72), "Exp", lines: +34 -4 Improve overstriking. When overstriking a wider character with a narrower one, center the latter horizontally. After a group of characters printed in the same position, advance by the width of the widest one among them. 2015-01-21 02:16 schwarze Changed: roff.c (1.252), "Exp", lines: +10 -11 pass empty request lines through to tbl(7); sometimes, they end a layout 2015-01-21 00:47 schwarze Changed: libroff.h (1.35), "Exp", lines: +2 -2 tbl.c (1.32), "Exp", lines: +3 -6 tbl_data.c (1.33), "Exp", lines: +13 -23 blank lines in tables do not need special handling; simplifies code and reduces groff/mandoc differences in OpenBSD base by about 1% 2015-01-20 22:45 schwarze Changed: mandoc.1 (1.134), "Exp", lines: +3 -3 roff.7 (1.64), "Exp", lines: +4 -4 typo fixes from jmc@ 2015-01-20 21:16 schwarze Changed: main.c (1.217), "Exp", lines: +8 -4 man.1 (1.12), "Exp", lines: +5 -4 mandoc.1 (1.133), "Exp", lines: +62 -24 mandoc.h (1.183), "Exp", lines: +13 -8 read.c (1.112), "Exp", lines: +13 -9 roff.7 (1.63), "Exp", lines: +725 -55 roff.c (1.251), "Exp", lines: +457 -19 Split the -Werror message level into -Werror (broken manual, probably using mandoc is better than using groff) and -Wunsupp (manual using unsupported low-level roff(7) feature, probably using groff is better than using mandoc). Once this feature is complete, it is intended to help porting, making the decision whether to USE_GROFF easier. As a first step, distinguish four classes of roff(7) requests: 1. Supported (currently 24 requests) 2. Currently ignored because unimportant (120) -> no message 3. Ignored for good because insecure (14) -> -Werror 4. Currently unsupported (68) -> these trigger the new -Wunsupp messages 2015-01-20 19:39 schwarze Changed: eqn.7 (1.32), "Exp", lines: +3 -3 mandoc_char.7 (1.59), "Exp", lines: +3 -3 mdoc.7 (1.249), "Exp", lines: +5 -5 roff.7 (1.62), "Exp", lines: +3 -3 tbl.7 (1.22), "Exp", lines: +5 -5 change spelling of centre to center: consistent with other man pages and the name of the syntax elements being described; from tedu@ 2015-01-20 18:21 schwarze Changed: mansearch.c (1.53), "Exp", lines: +23 -49 Make the man(1) and apropos(1) options -s and -S much less expensive: Do not append an SQL clause looking into the large "keys" table. Instead, filter the result of the SQL query in buildnames() where equivalent data from the much smaller "mlinks" table is already available for free. This is relevant because man(1) uses the equivalent of "-S ${MACHINE}" by default since main.c rev. 1.216, to make sure that manuals for the current architecture are shown. With many ports installed, this patch can speed up man(1) by a factor of more than a hundred. Slowness reported by Theo Buehler <theo at math dot ethz dot ch>, thanks! 2015-01-16 21:15 schwarze Changed: main.c (1.216), "Exp", lines: +6 -1 Let man(1) show manuals for the current architecture by default, and support the MACHINE environment variable as documented in man(1). Missing feature reported by pascal@. 2015-01-16 16:53 schwarze Changed: roff.c (1.250), "Exp", lines: +3 -1 Parse and ignore .IX (generate index entry) macros because pod2man(1) emits them, by default without defining them, relying on the roff(7) quirk that undefined macros have no effect. 2015-01-15 04:26 schwarze Changed: cgi.c (1.103), "Exp", lines: +3 -11 demandoc.c (1.13), "Exp", lines: +9 -9 libmandoc.h (1.55), "Exp", lines: +3 -3 main.c (1.215), "Exp", lines: +3 -8 man.1 (1.11), "Exp", lines: +8 -8 man.c (1.147), "Exp", lines: +2 -3 mandoc.1 (1.132), "Exp", lines: +41 -53 mandoc.3 (1.31), "Exp", lines: +15 -20 mandoc.h (1.182), "Exp", lines: +2 -5 mandocdb.c (1.183), "Exp", lines: +6 -9 mdoc.c (1.234), "Exp", lines: +2 -3 read.c (1.111), "Exp", lines: +12 -41 Fatal errors no longer exist. If a file can be opened, mandoc will produce some output; at worst, the output may be almost empty. Simplifies error handling and frees a message type for future use. 2015-01-15 02:29 schwarze Changed: mandoc.3 (1.30), "Exp", lines: +9 -12 mandoc.h (1.181), "Exp", lines: +2 -2 read.c (1.110), "Exp", lines: +18 -16 downgrade .so failure from FATAL to ERROR 2015-01-14 22:58 schwarze Changed: libmandoc.h (1.54), "Exp", lines: +2 -3 mandoc.h (1.180), "Exp", lines: +2 -2 read.c (1.109), "Exp", lines: +2 -5 roff.c (1.249), "Exp", lines: +8 -3 downgrade ".so with absolute path" from FATAL to ERROR; allows to get rid of ROFF_ERR 2015-01-14 22:44 schwarze Changed: libroff.h (1.34), "Exp", lines: +3 -3 tbl.c (1.31), "Exp", lines: +5 -3 tbl_layout.c (1.31), "Exp", lines: +6 -6 tbl_opts.c (1.16), "Exp", lines: +2 -5 simplify by getting rid of ROFF_ERR in tbl(7) parsing; no functional change 2015-01-14 22:02 schwarze Changed: mandoc.1 (1.131), "Exp", lines: +13 -9 mandoc.h (1.179), "Exp", lines: +2 -7 read.c (1.108), "Exp", lines: +15 -32 To get rid of SYSERR entries in enum mandocerr, downgrade problems with missing and unreadable files from SYSERR to ERROR. Needed for upcoming work. As a bonus, this minimally simplifies code and documentation. 2015-01-14 21:27 schwarze Changed: main.c (1.214), "Exp", lines: +13 -7 if earlier files set a non-zero exit status, do not allow later files to reset it to zero 2015-01-14 17:49 schwarze Changed: mandoc.h (1.178), "Exp", lines: +1 -8 read.c (1.107), "Exp", lines: +16 -35 Simplify handling of system errors: just exit(3). We already do the same for malloc(3) failure. The is no virtue in trying to survive failure of fork(2) and the like. 2015-01-13 23:17 schwarze Changed: main.c (1.213), "Exp", lines: +106 -5 Be developer-friendly, 'cause OpenBSD devs like to: cd /usr/src/share/man/man4; vi newdev.4 Makefile; make install; man newdev When a manual is missing from an outdated database, let man(1) show it anyway, using a KISS file system lookup as a fallback. Requested by deraadt@. 87 new lines of code doesn't seem too much bloat to me. Of course, keeping your mandoc.db(5) files up to date with makewhatis(8) or weekly(8) is still required for apropos(1) to find your new pages. 2015-01-13 13:22 schwarze Changed: main.c (1.212), "Exp", lines: +36 -25 do not spawn a pager when there is no output; issue pointed out by deraadt@ 2015-01-07 12:19 schwarze Changed: roff.c (1.248), "Exp", lines: +2 -1 Bugfix: When the invocation of a user-defined macro follows a roff conditional request on the same input line, don't skip the first few bytes of its content. 2015-01-03 12:55 schwarze Changed: mandocdb.c (1.182), "Exp", lines: +16 -23 Fix a potential NULL pointer access in an error message after waitpid() failure; found using detailed information provided by Ulrich Spoerlein <uqs at FreeBSD> about FreeBSD Coverity CID 1261304. 2015-01-03 00:59 schwarze Changed: mdoc.7 (1.248), "Exp", lines: +17 -8 Given the excessively technical description in the old mdoc_samples(7) manual and its successor groff_mdoc(7), i always considered .Ql as purely physical markup, but it turns out describing it better allows to give it a semantic meaning (in-line literal display) that doesn't contradict existing usage. One less physical, one more semantic macro, yay! Found in a discussion with Steffen Nurpmeso <sdaoden at yandex dot com>. 2015-01-02 17:02 schwarze Changed: mandocdb.c (1.181), "Exp", lines: +4 -2 Explicitly set the *data member of struct ohash_info to NULL. It is never dereferenced, but it gets copied around, which worries static analysis tools and might also confuse human auditors. FreeBSD Coverity CID 1261298, 1261299, 1261300, reported by Pedro Giffuni and Ulrich Spörlein <pfg@ and uqs@ at FreeBSD>. 2015-01-01 19:28 schwarze Changed: roff.c (1.247), "Exp", lines: +7 -5 Fix a buffer overrun triggered by a trailing backslash at EOF in an unclosed conditional body. If the memory contained the byte sequence "\}" after the end of the buffer before the next NUL, this could even write beyond the end of the buffer, specifically '&' to the location of the '}'. Found by jsg@ with afl. 2015-01-01 18:11 schwarze Changed: mandoc.c (1.90), "Exp", lines: +4 -4 Fix a read buffer overrun triggered by trailing \s- or trailing \s+ without the required subsequent argument; found by jsg@ with afl. 2015-01-01 15:36 schwarze Changed: LICENSE (1.6), "Exp", lines: +2 -2 eqn_term.c (1.8), "Exp", lines: +12 -9 Don't dereference NULL pointers when formatting missing denominators, subscripts, superscripts, or "from" or "to" arguments. Found by jsg@ with afl. 2015-01-01 13:20 schwarze Changed: main.c (1.211), "Exp", lines: +3 -2 If man(1) only has one single argument, always interpret it as a name, never as a section. Who would have thought that people call their manual pages 7z(1), 9c(1), 9p(1), and 9p(3)... Patch from Sebastien Marie <semarie dash openbsd at latrappe dot fr>. 2014-12-31 20:42 schwarze Changed: mdoc.7 (1.247), "Exp", lines: +7 -4 describe .Ql more precisely; defect pointed out by Steffen Nurpmeso <sdaoden at yandex dot com> 2014-12-31 16:52 schwarze Changed: main.c (1.210), "Exp", lines: +6 -2 main.h (1.20), "Exp", lines: +3 -1 term_ascii.c (1.42), "Exp", lines: +15 -1 When showing more than one formatted manual page, insert horizontal lines between pages. Suggested by Theo Buehler <theo at math dot ethz dot ch>. Even in UTF-8 output mode, do not use fancy line drawing characters such that you can easily use /^--- to skip to the next manual in your pager. 2014-12-30 21:34 schwarze Changed: mandoc.db.5 (1.3), "Exp", lines: +6 -6 fix wrong paths below FILES; from Theo Buehler <theo at math dot ethz dot ch> 2014-12-30 20:41 schwarze Changed: mandocdb.c (1.180), "Exp", lines: +2 -1 When a file is given on the command line, actually exists, and its name relative to the respective manual tree is longer than PATH_MAX, do not leak the memory allocated to hold the name. Not sure that can actually happen, but better safe than sorry. FreeBSD Coverity Scan CID 1261303, reported by Pedro Giffuni <pfg@>. 2014-12-28 15:23 schwarze Changed: man.7 (1.128), "Exp", lines: +9 -3 mdoc.7 (1.246), "Exp", lines: +23 -27 Improve documentation of the header/footer macros .Dt, .Os, .TH: * State the defaults for .Os and the fourth .TH argument. * Sync the section titles, and stop advertising obscure sections that aren't actually fully supported and certainly not recommended for use. 2014-12-28 14:42 schwarze Changed: libman.h (1.67), "Exp", lines: +2 -1 libmandoc.h (1.53), "Exp", lines: +3 -2 man.1 (1.10), "Exp", lines: +5 -2 man.c (1.146), "Exp", lines: +4 -2 man_validate.c (1.108), "Exp", lines: +2 -0 mandoc.1 (1.130), "Exp", lines: +5 -2 read.c (1.106), "Exp", lines: +7 -4 mdoc(7) already uses the mandoc(1) -Ios argument in the footer line when .Os has no argument, so do the same for man(7) when .TH has less than four arguments; there is no reason to treat both differently. Issue found following a question from Thomas Klausner <wiz at NetBSD>. 2014-12-28 14:16 schwarze Changed: roff.c (1.246), "Exp", lines: +5 -7 improve previous: do the size check up front to avoid leaking memory 2014-12-25 17:23 schwarze Changed: roff.7 (1.61), "Exp", lines: +6 -4 roff.c (1.245), "Exp", lines: +8 -1 Reduce memory and time consumption on certain malformed input files by limiting the length of expanded input lines during the (usually recursive) expansion of user defined strings. Resource hogging found by jsg@ with afl. 2014-12-24 23:32 schwarze Changed: mdoc_man.c (1.81), "Exp", lines: +28 -29 mdoc_term.c (1.302), "Exp", lines: +57 -50 term.c (1.242), "Exp", lines: +2 -2 Support negative indentations for mdoc(7) displays and lists. Not exactly recommended for use, rather for groff compatibility. While here, introduce similar SHRT_MAX limits as in man(7), fixing a few cases of infinite output found by jsg@ with afl. 2014-12-24 18:04 schwarze Changed: man.h (1.68), "Exp", lines: +2 -1 man_term.c (1.165), "Exp", lines: +14 -28 For .RS, we need to save the information how much we actually indented because negative indents can get truncated, in which case we no longer know how to restore the original indent at the end of the block. This also solves another case of effectively infinite output found by jsg@ with afl, triggered by very large negative indents. 2014-12-24 15:38 schwarze Changed: tbl_term.c (1.32), "Exp", lines: +8 -4 Prevent unsigned integer underflow when a number is too wide for a table cell with an "nz" layout specification, causing essentially infinite output as found by jsg@ with afl. 2014-12-24 09:58 schwarze Changed: man_term.c (1.164), "Exp", lines: +19 -10 term.c (1.241), "Exp", lines: +4 -2 When a man(7) document contains unreasonably large numbers for indentations or paragraph distances, large output may be generated, which is practically the same as an endless loop; found by jsg@ with afl. Reject such unreasonably large numbers beyond arbitrary limits similar to those used by groff (max. 65 blank lines between paragraphs and max. SHRT_MAX characters per output line) and fall back to defaults when exceeded. Having the limits behave in exactly the same way is not relevant. 2014-12-23 13:48 schwarze Changed: man_term.c (1.163), "Exp", lines: +72 -106 mdoc_html.c (1.218), "Exp", lines: +7 -3 mdoc_man.c (1.80), "Exp", lines: +5 -1 mdoc_term.c (1.301), "Exp", lines: +3 -2 out.c (1.57), "Exp", lines: +1 -4 term.c (1.240), "Exp", lines: +9 -15 term.h (1.110), "Exp", lines: +3 -5 support negative horizontal widths in man(7); minus twenty lines of code in spite of enhanced functionality 2014-12-23 10:09 schwarze Changed: mdoc_man.c (1.79), "Exp", lines: +3 -3 fix typo in previous 2014-12-23 09:31 schwarze Changed: man_html.c (1.108), "Exp", lines: +2 -2 man_term.c (1.162), "Exp", lines: +5 -15 mdoc_html.c (1.217), "Exp", lines: +3 -3 mdoc_man.c (1.78), "Exp", lines: +3 -3 mdoc_term.c (1.300), "Exp", lines: +9 -18 out.c (1.56), "Exp", lines: +33 -34 some scaling unit fixes: - .sp with an invalid argument is .sp 1v, not .sp 0v - in man(1), trailing garbage doesn't make scaling units invalid 2014-12-23 08:15 schwarze Changed: man_term.c (1.161), "Exp", lines: +3 -4 even if the second argument to .IP is invalid, don't print it 2014-12-23 06:16 schwarze Changed: term.c (1.239), "Exp", lines: +19 -8 Fix vertical scaling. Obviously, nobody ever had a serious look at this. Basic units, centimeters, points, ens, ems, and the rounding algorithm were all wrong, only inches, pica, and the default vertical span worked. 2014-12-23 03:28 schwarze Changed: out.c (1.55), "Exp", lines: +13 -44 In a2roffsu(), do not parse the number twice. Gets rid of 25 lines of code and one static buffer. No functional change for numbers shorter than BUFSIZ characters. 2014-12-23 01:57 schwarze Changed: man_term.c (1.160), "Exp", lines: +5 -3 correctly handle scaling units after .PD 2014-12-22 23:27 schwarze Changed: mdoc_macro.c (1.161), "Exp", lines: +3 -3 The code already pays attention not to close the same block twice. Similarly, avoid having the same block break two other blocks. In some situations, this could lead to an endless loop in rew_sub() found by jsg@ with afl. Minimal example: .Po Ao Pc Bo Pc Ac Bc 2014-12-21 14:49 schwarze Changed: main.c (1.209), "Exp", lines: +8 -8 Use -m for macro set selection in mandoc(1) mode only, not in man(1) and apropos(1) mode. While here, put a space character between options and option arguments in error messages. Both reported by Alessandro DE LAURENZIS <just22 dot adl at gmail dot com>. 2014-12-21 14:14 schwarze Changed: libmandoc.h (1.52), "Exp", lines: +1 -2 mandoc_headers.3 (1.2), "Exp", lines: +7 -4 msec.c (1.14), "Exp", lines: +2 -1 ISO C99 explicitly forbids forward references to enum types (6.7.2.3.3.); patch from daniel@ 2014-12-20 02:26 schwarze Changed: mdoc_macro.c (1.160), "Exp", lines: +20 -9 Fix two issues causing a class of assertion failures found by jsg@ with afl. 1) rew_sub(): Make sure REWIND_MORE is acted upon even when followed by REWIND_NONE. This prevents .It from ending up inside other children of .Bl. 2) blk_exp_close(): Only allow extension of .Bl when it has at least one .It. Otherwise, a broken child block could be moved in front of the .Bl, effectively resulting in a .Bl that ended before it began. 2014-12-20 00:20 schwarze Changed: html.c (1.184), "Exp", lines: +19 -27 resolve some code duplication; no functional change 2014-12-19 17:12 schwarze Changed: term.c (1.238), "Exp", lines: +19 -15 term.h (1.109), "Exp", lines: +5 -5 term_ascii.c (1.41), "Exp", lines: +4 -1 term_ps.c (1.71), "Exp", lines: +4 -1 Enforcing an arbitrary, implementation dependent, undocumented limit by calling assert() when valid user input exceeds it is a bad idea. Allocate the terminal font stack dynamically instead of crashing above 10 entries. Issue found by jsg@ with afl. 2014-12-19 04:58 schwarze Changed: preconv.c (1.13), "Exp", lines: +58 -75 Rewrite the low-level UTF-8 parser from scratch. It accepted invalid byte sequences like 0xc080-c1bf, 0xe08080-e09fbf, 0xeda080-edbfbf, and 0xf0808080-f08fbfbf, produced valid roff Unicode escape sequences from them, and the algorithm contained strong defenses against any attempt to fix it. This cures an assertion failure in the terminal formatter caused by sneaking in ASCII 0x08 (backspace) by "encoding" it as an (invalid) multibyte UTF-8 sequence, found by jsg@ with afl. As a bonus, the new algorithm also reduces the code in the function by about 20%. 2014-12-18 21:11 schwarze Changed: main.c (1.208), "Exp", lines: +5 -3 man.1 (1.9), "Exp", lines: +3 -3 update usage() and the list of non-standard (i.e. non-posix) options; from jmc@ 2014-12-18 20:58 schwarze Changed: mdoc_macro.c (1.159), "Exp", lines: +3 -2 Don't let .Ta creep into an already-closed list; same as for .It. Fixes an assertion found by jsg@ with afl. 2014-12-18 20:15 schwarze Changed: mdoc_validate.c (1.265), "Exp", lines: +5 -2 Only keep leading .Sm inside a list when it immediately precedes the first .It. Otherwise, move it out together with whatever follows. Fixing an assertion failure found by jsg@ with afl. 2014-12-18 19:23 schwarze Changed: mdoc_validate.c (1.264), "Exp", lines: +7 -7 When the head of a list item is extended with a partial explicit macro (for example .Xo) and never closed again, the item ends up without a body block. This can even happen for list types that usually don't have heads in the first place. So even in this case, check for the existence of the body before accessing it. NULL pointer access found by jsg@ with afl. 2014-12-18 17:43 schwarze Changed: roff.c (1.244), "Exp", lines: +8 -2 Don't let the modulo operator divide by zero. Found by jsg@ with afl. 2014-12-18 03:10 schwarze Changed: mdoc.h (1.133), "Exp", lines: +2 -1 mdoc_macro.c (1.158), "Exp", lines: +32 -21 The code is already careful to not add items to lists that were already closed. In this respect, also consider lists closed that have broken another block, their closure pending until the end of the broken block. This avoids syntax tree corruption leading to a NULL pointer access found by jsg@ with afl. 2014-12-17 20:31 schwarze Changed: TODO (1.196), "Exp", lines: +5 -1 [[:<:]] is not POSIX 2014-12-17 20:04 schwarze Changed: man.1 (1.8), "Exp", lines: +67 -10 minimally document -IOKTW; requested by naddy@ 2014-12-17 18:45 schwarze Changed: main.c (1.207), "Exp", lines: +7 -6 Be a bit more lenient in what to accept for section names given as the first man(1) command line argument without -s: Accept digits like "1", "2"; digit+letter like "3p", "1X"; and "n". Issue reported by Svyatoslav Mishyn <juef at openmailbox dot org> (Crux Linux). 2014-12-16 23:44 schwarze Changed: mandoc.1 (1.129), "Exp", lines: +3 -2 mandoc.h (1.177), "Exp", lines: +2 -1 read.c (1.105), "Exp", lines: +2 -1 roff.c (1.243), "Exp", lines: +20 -5 Ignore mdoc(7) and man(7) macros inside tbl(7) code because they would abort the table in an unclean way, causing assertion failures found by jsg@. 2014-12-16 19:50 schwarze Changed: chars.in (1.51), "Exp", lines: +3 -3 mandoc_char.7 (1.58), "Exp", lines: +7 -7 correct -Tutf8 and -Thtml rendering of \(~= and change the name of \(-~ to \(|= to agree with groff; difference found by Carsten dot Kunze at arcor dot de 2014-12-16 17:26 schwarze Changed: man_macro.c (1.92), "Exp", lines: +3 -3 Explicit block closure macros clobber next-line block head scope, just like explicit block macros themselves. Fixing an assertion failure jsg@ found with afl. 2014-12-16 03:53 schwarze Changed: roff.c (1.242), "Exp", lines: +2 -2 When a string comparison condition contains no mismatching character but ends without the final delimiter, the parse point was advanced one character too far and the invalid pointer returned to the caller of roff_parseln(). Later use could potentially advance the pointer even further and maybe even write to it. Fixing a buffer overrun found by jsg@ with afl (the most severe so far). 2014-12-16 01:22 schwarze Changed: roff.c (1.241), "Exp", lines: +6 -3 When a numerical condition errors out after consuming at least one character of input, treat it as false, do not retry it as a string comparison condition. This also fixes a read buffer overrun that happened when the numerical condition advanced to the end of the input line before erroring out, found by jsg@ with afl. 2014-12-15 23:43 schwarze Changed: roff.c (1.240), "Exp", lines: +3 -1 Empty conditions count as false. When negated, they still count as false. Found when investigating crashes jsg@ found with afl. Not completely fixing the crashes yet. 2014-12-15 19:42 schwarze Changed: chars.in (1.50), "Exp", lines: +8 -8 mandoc_char.7 (1.57), "Exp", lines: +10 -10 correct some character names to match groff; reported by Carsten dot Kunze at arcor dot de 2014-12-15 18:05 schwarze Changed: main.c (1.206), "Exp", lines: +5 -4 Let "man n open" do the same as "man -s n open" again, that is, show the open(n) Tcl manual, as documented in man(1). Issue reported by Svyatoslav Mishyn <juef at openmailbox dot org> (Crux Linux). 2014-12-15 17:30 schwarze Changed: mandoc.c (1.89), "Exp", lines: +3 -1 Catch localtime() failure for additional safety; patch from Jan Stary <hans at stare dot cz> some time ago. 2014-12-13 13:43 tag VERSION_1_13_2 2014-12-13 13:43 schwarze Changed: NEWS (1.8), "Exp", lines: +2 -2 configure (1.17), "Exp", lines: +1 -1 version 1.13.2 2014-12-13 13:14 schwarze Changed: TODO (1.195), "Exp", lines: +11 -2 mdoc_macro.c (1.157), "Exp", lines: +3 -5 Fix a regression found by Carsten dot Kunze at arcor dot de: Do not show bogus quotes when .Bl -column phrases are quoted. 2014-12-12 21:44 schwarze Changed: mansearch.3 (1.3), "Exp", lines: +3 -3 escape Nd on a macro line 2014-12-11 19:19 schwarze Changed: main.c (1.205), "Exp", lines: +20 -5 Guard some come needed for database support only by #if HAVE_SQLITE3. Compiler warnings about unused code reported by wiz@NetBSD. 2014-12-11 18:20 schwarze Changed: compat_fts.c (1.6), "Exp", lines: +9 -31 Make this work on illumos: * define MAX() * ignore O_DIRECTORY if it isn't defined * garbage collect two unused variables Issues reported and fix tested by wiz@NetBSD. 2014-12-11 09:19 schwarze Changed: compat_strcasestr.c (1.4), "Exp", lines: +2 -1 fix RCS IDs 2014-12-11 09:05 schwarze Changed: compat_fts.c (1.5), "Exp", lines: +5 -4 compat_reallocarray.c (1.4), "Exp", lines: +8 -2 compat_strsep.c (1.4), "Exp", lines: +2 -1 sync to OpenBSD 2014-12-11 07:56 schwarze Changed: LICENSE (1.5), "Exp", lines: +3 -3 new Copyright years 2014-12-11 07:44 schwarze Changed: INSTALL (1.9), "Exp", lines: +4 -3 link to EuroBSDCon 2014 2014-12-10 22:19 schwarze Changed: example.style.css (1.54), "Exp", lines: +7 -4 correctly align document header and footer; suggested by kristaps@ 2014-12-10 21:54 schwarze Changed: TODO (1.194), "Exp", lines: +4 -3 the asciidoc/docbook toolchain uses braindead \h for indentation 2014-12-09 12:05 schwarze Changed: INSTALL (1.8), "Exp", lines: +6 -3 NEWS (1.7), "Exp", lines: +70 -1 more release preparations 2014-12-09 09:19 schwarze Changed: INSTALL (1.7), "Exp", lines: +43 -18 first cut at updating for the next release 2014-12-09 09:14 schwarze Changed: Makefile (1.453), "Exp", lines: +18 -11 configure (1.16), "Exp", lines: +24 -0 configure.local.example (1.2), "Exp", lines: +30 -2 main.c (1.204), "Exp", lines: +5 -6 Support choosing alternative binary and manual names from configure.local, to help downstream distributions avoid naming conflicts. 2014-12-09 07:29 schwarze Changed: Makefile (1.452), "Exp", lines: +12 -19 configure (1.15), "Exp", lines: +5 -2 main.c (1.203), "Exp", lines: +10 -1 mandocdb.c (1.179), "Exp", lines: +2 -2 Integrate the makewhatis binary into the mandoc binary just like we do it on OpenBSD. Smaller and neater. While here, let ./configure set INSTALL_TARGETS. 2014-12-09 06:31 schwarze Changed: Makefile (1.451), "Exp", lines: +28 -19 Some sorting and some more comments. Drop DISTDIR from www-install target. 2014-12-09 06:11 schwarze Changed: Makefile (1.450), "Exp", lines: +8 -12 Install "man" as a hardlink to "mandoc" during db-install. Install man(1) manual in db-install, not base-install. Get rid of the useless variables BASEBIN, DBBIN, CGIBIN. 2014-12-06 01:23 schwarze Changed: mansearch.c (1.52), "Exp", lines: +4 -2 When opening mandoc.db fails, tell the user in which directory. Improving an unhelpful error message reported by millert@. 2014-12-05 21:55 schwarze Changed: main.c (1.202), "Exp", lines: +23 -10 implement help(1) 2014-12-05 16:18 schwarze Changed: mandocdb.c (1.178), "Exp", lines: +28 -25 Improve parsing of function names. This gets rid of the last bogus entries in base and Xenocara. 2014-12-05 15:16 schwarze Changed: mandocdb.c (1.177), "Exp", lines: +4 -1 Do not misinterpret function arguments as function names; improves semantic analysis of more than 300 manuals. 2014-12-05 14:26 schwarze Changed: mandocdb.c (1.176), "Exp", lines: +113 -122 Render text before, not after accumulating flag bits, such that flags for different representations of the same string end up in the same database entry. Improves name classification for 500 manuals. 2014-12-04 21:48 schwarze Changed: mandocdb.c (1.175), "Exp", lines: +17 -4 When finding a .so link after the page was already processed, do not clobber the existing names flags; instead, OR the additional flags into them. 2014-12-04 20:13 schwarze Changed: mandocdb.c (1.174), "Exp", lines: +28 -11 correctly store .Dt and .TH information in the names table 2014-12-04 18:31 schwarze Changed: mandocdb.c (1.173), "Exp", lines: +17 -2 in the SYNOPSIS, add .Fo and first .Fn arguments to the names table 2014-12-04 17:36 schwarze Changed: mandocdb.c (1.172), "Exp", lines: +48 -25 In the SYNOPSIS, if .Nm occurs without argument, give the first .Nm that occurred in the document a NAME_SYN entry in the names table. 2014-12-04 02:05 schwarze Changed: man_html.c (1.107), "Exp", lines: +2 -2 man_term.c (1.159), "Exp", lines: +2 -2 out.c (1.54), "Exp", lines: +2 -2 fix handling of roff requests having a default scale other than "n", in particular .sp which uses "v", when the scale is not specified; cures groff-mandoc differences in about a dozen Xenocara manuals 2014-12-04 01:33 schwarze Changed: man_term.c (1.158), "Exp", lines: +24 -13 Ignore macros that never produce any text when deciding whether vertical whitespace is needed before a section or subsection. Cures groff-mandoc differences in more than 300 manuals, mostly Xenocara, some curses, a few GNU. 2014-12-03 01:46 schwarze Changed: TODO (1.193), "Exp", lines: +1 -24 delete five entries that were already fixed 2014-12-02 11:31 schwarze Changed: main.c (1.201), "Exp", lines: +2 -2 mandoc.1 (1.128), "Exp", lines: +8 -6 Switch the default output mode from -Tascii to -Tlocale. This doesn't change anything unless LC_CTYPE is set, but it helps when running with LC_TYPE=something.UTF-8. OK tedu@ and earlier positive feedback from: bentley@ deraadt@ naddy@ stsp@ uqs@freebsd wiz@netbsd 2014-12-02 11:13 schwarze Changed: TODO (1.192), "Exp", lines: +7 -1 note to self to not forget about groff 2014-12-02 10:41 schwarze Changed: TODO (1.191), "Exp", lines: +3 -2 we really need .ta 2014-12-02 10:08 schwarze Changed: TODO (1.190), "Exp", lines: +1 -6 html.c (1.183), "Exp", lines: +3 -2 html.h (1.70), "Exp", lines: +2 -1 man_html.c (1.106), "Exp", lines: +4 -11 man_term.c (1.157), "Exp", lines: +5 -4 mdoc_html.c (1.216), "Exp", lines: +3 -2 mdoc_term.c (1.299), "Exp", lines: +3 -2 roff.7 (1.60), "Exp", lines: +6 -4 term.c (1.237), "Exp", lines: +3 -3 term.h (1.108), "Exp", lines: +2 -1 Fix the implementation and documentation of \c (continue text input line). In particular, make it work in no-fill mode, too. Reminded by Carsten dot Kunze at arcor dot de (Heirloom roff). 2014-12-01 08:09 schwarze Added: mandoc_headers.3 (1.1) Changed: Makefile (1.449), "Exp", lines: +3 -1 developer documentation regarding header files 2014-12-01 08:05 schwarze Changed: Makefile.depend (1.7), "Exp", lines: +8 -8 html.h (1.69), "Exp", lines: +6 -3 libmandoc.h (1.51), "Exp", lines: +6 -1 libroff.h (1.33), "Exp", lines: +3 -3 main.h (1.19), "Exp", lines: +4 -4 man_hash.c (1.29), "Exp", lines: +1 -2 man_html.c (1.105), "Exp", lines: +2 -3 mandoc.h (1.176), "Exp", lines: +3 -3 mansearch.h (1.23), "Exp", lines: +3 -1 mansearch_const.c (1.7), "Exp", lines: +1 -2 mdoc_html.c (1.215), "Exp", lines: +2 -3 msec.c (1.13), "Exp", lines: +1 -2 out.h (1.26), "Exp", lines: +5 -3 term.h (1.107), "Exp", lines: +8 -5 term_ps.c (1.70), "Exp", lines: +2 -3 header cleanup: * add missing forward declarations * remove needless header inclusions * some style unification 2014-12-01 04:34 schwarze Changed: html.c (1.182), "Exp", lines: +1 -2 The header libmandoc.h is part of the internal parser interface, but html.c is not part of the parser at all, so it cannot include that header, and actually, it doesn't need it. Found while auditing includes after Theo's recent *.h commit. 2014-12-01 04:14 schwarze Changed: mandoc.h (1.175), "Exp", lines: +2 -2 read.c (1.104), "Exp", lines: +3 -4 The file read.c is part of the parser, so it cannot include main.h, which is not part of the parser. Besides, the parser *does* modify the input buffer, so marking it "const" in the mparse_readmem() interface is an outright lie. Fix all this by killing the const, the UNCONST, and the bogus inclusion. 2014-12-01 04:05 schwarze Changed: html.h (1.68), "Exp", lines: +1 -5 libman.h (1.66), "Exp", lines: +1 -5 libmandoc.h (1.50), "Exp", lines: +1 -5 libmdoc.h (1.96), "Exp", lines: +1 -5 libroff.h (1.32), "Exp", lines: +1 -5 main.h (1.18), "Exp", lines: +1 -5 man.h (1.67), "Exp", lines: +1 -5 mandoc.h (1.174), "Exp", lines: +1 -5 mandoc_aux.h (1.3), "Exp", lines: +1 -5 manpath.h (1.7), "Exp", lines: +1 -5 mansearch.h (1.22), "Exp", lines: +1 -5 mdoc.h (1.132), "Exp", lines: +1 -5 out.h (1.25), "Exp", lines: +1 -5 term.h (1.106), "Exp", lines: +1 -5 remove unneccessary inclusion protection; patch from deraadt@ 2014-11-30 22:47 schwarze Changed: INSTALL (1.6), "Exp", lines: +2 -2 typo; Svyatoslav Mishyn <juef at openmailbox dot org> (Crux Linux) 2014-11-30 21:56 schwarze Changed: mdoc.7 (1.245), "Exp", lines: +3 -13 st.in (1.27), "Exp", lines: +1 -4 delete three standard abbreviations that are * no longer used in OpenBSD * not used in any of NetBSD, FreeBSD, or DragonFly * not supported by groff 2014-11-30 05:29 schwarze Changed: mandoc.1 (1.127), "Exp", lines: +10 -2 mandoc.h (1.173), "Exp", lines: +2 -1 mdoc_html.c (1.214), "Exp", lines: +3 -2 mdoc_macro.c (1.156), "Exp", lines: +17 -7 mdoc_man.c (1.77), "Exp", lines: +3 -2 mdoc_term.c (1.298), "Exp", lines: +3 -2 mdoc_validate.c (1.263), "Exp", lines: +2 -2 read.c (1.103), "Exp", lines: +2 -1 Multiple fixes with respect to .Pf: * The first argument of .Pf is not parsed. * Normal delimiter handling does not apply to the first argument of .Pf. * Warn if nothing follows a prefix (inspired by groff_mdoc(7)). * In that case, do not suppress spacing. 2014-11-30 02:36 schwarze Changed: mandoc.1 (1.126), "Exp", lines: +9 -2 mandoc.h (1.172), "Exp", lines: +2 -1 mdoc_macro.c (1.155), "Exp", lines: +17 -9 read.c (1.102), "Exp", lines: +2 -1 warn about attempts to call non-callable macros; inspired by a similar warning in the groff_mdoc(7) macros 2014-11-29 04:31 schwarze Changed: mdoc_macro.c (1.154), "Exp", lines: +21 -19 Reduce code duplication by reusing the same argument parser for in_line_eoln() macros and .Bl -column phrases. No functional change. 2014-11-29 03:37 schwarze Changed: libmdoc.h (1.95), "Exp", lines: +1 -3 mdoc_argv.c (1.99), "Exp", lines: +6 -11 mdoc_macro.c (1.153), "Exp", lines: +63 -116 Provide a helper function macro_or_word() and use it to prune the same chunk of argument parsing code out of five of the eight callback functions. The other three have too much special handling to participate. As a bonus, let lookup() and mdoc_args() deal with line macros and retire the lookup_raw() helper and the mdoc_zargs() internal interface function. No functional change, minus 40 lines of code. 2014-11-28 23:21 schwarze Changed: libmdoc.h (1.94), "Exp", lines: +2 -9 mdoc_argv.c (1.98), "Exp", lines: +81 -74 mdoc_macro.c (1.152), "Exp", lines: +5 -47 Fold the loop around mdoc_argv() into the function itself, it was the same in all four cases. As a bonus, get rid of one enum type that was used for internal communication. No functional change, minus 40 lines of code. 2014-11-28 18:57 schwarze Deleted: att.in (1.9) Changed: Makefile (1.448), "Exp", lines: +1 -2 Makefile.depend (1.6), "Exp", lines: +3 -5 att.c (1.13), "Exp", lines: +16 -4 AT&T is unlikely to release an new version of Research UNIX any time soon. So, it's pointless to make adding version strings easy for downstream. One source file less to maintain. 2014-11-28 18:36 schwarze Deleted: vol.c (1.12) vol.in (1.7) Changed: Makefile (1.447), "Exp", lines: +2 -5 libmdoc.h (1.93), "Exp", lines: +1 -2 mdoc.7 (1.244), "Exp", lines: +4 -34 mdoc_validate.c (1.262), "Exp", lines: +3 -13 Retire support for CSRG supplementary document titles. These are long obsolete and were never written in mdoc(7) in the first place. Removes 100 lines from source files. 2014-11-28 18:09 schwarze Deleted: arch.c (1.13) arch.in (1.16) Changed: Makefile (1.446), "Exp", lines: +3 -6 mandoc.1 (1.125), "Exp", lines: +2 -8 mandoc.h (1.171), "Exp", lines: +1 -2 mdoc.7 (1.243), "Exp", lines: +3 -8 mdoc_validate.c (1.261), "Exp", lines: +7 -14 read.c (1.101), "Exp", lines: +1 -2 Drop useless architecture table. Validating architecture names is a job for makewhatis(8)/mandoc.db(5), not for the parser. Removes 150 lines from source files and 4k (1%) from the binary. Bloat found by deraadt@. 2014-11-28 17:24 schwarze Changed: mdoc_validate.c (1.260), "Exp", lines: +1 -4 kill a pointless assert 2014-11-28 16:54 schwarze Changed: mdoc_term.c (1.297), "Exp", lines: +3 -9 mop up an #ifdef turd deraadt@ stepped into 2014-11-28 16:02 schwarze Changed: mdoc_term.c (1.296), "Exp", lines: +11 -7 Be more careful about meta->name. For weird input, it can be NULL. Fixing a NULL access jsg@ found with afl. 2014-11-28 06:27 schwarze Changed: libmandoc.h (1.49), "Exp", lines: +5 -5 man.c (1.145), "Exp", lines: +3 -5 mdoc.c (1.233), "Exp", lines: +3 -5 read.c (1.100), "Exp", lines: +17 -30 Simplify by making the eqn and tbl steering functions void; no functional change, minus 15 lines of code. 2014-11-28 05:51 schwarze Changed: libman.h (1.65), "Exp", lines: +10 -11 man.c (1.144), "Exp", lines: +70 -118 man.h (1.66), "Exp", lines: +1 -2 man_macro.c (1.91), "Exp", lines: +54 -87 man_validate.c (1.107), "Exp", lines: +49 -64 tree.c (1.60), "Exp", lines: +1 -6 Simplify by making many functions in the man(7) parser void, and some cleanup; no functional change, minus 70 lines. 2014-11-28 04:47 schwarze Changed: libmdoc.h (1.92), "Exp", lines: +4 -4 mdoc.c (1.232), "Exp", lines: +19 -15 mdoc_macro.c (1.151), "Exp", lines: +117 -199 Simplify by making the mdoc parser callbacks void, and some cleanup; no functional change, minus 50 lines of code. 2014-11-28 03:14 schwarze Changed: libmdoc.h (1.91), "Exp", lines: +9 -10 mdoc.c (1.231), "Exp", lines: +16 -26 mdoc_argv.c (1.97), "Exp", lines: +12 -22 mdoc_macro.c (1.150), "Exp", lines: +234 -376 Simplify the code by making various mdoc parser helper functions void. No functional change, minus 130 lines of code. 2014-11-28 01:05 schwarze Changed: libmdoc.h (1.90), "Exp", lines: +3 -3 mdoc.c (1.230), "Exp", lines: +18 -38 mdoc_macro.c (1.149), "Exp", lines: +45 -53 mdoc_validate.c (1.259), "Exp", lines: +222 -323 Simplify code by making mdoc validation handlers void. No functional change, minus 90 lines of code. 2014-11-27 23:40 schwarze Changed: mandoc.1 (1.124), "Exp", lines: +13 -13 mandoc.h (1.170), "Exp", lines: +2 -2 mdoc_validate.c (1.258), "Exp", lines: +2 -2 read.c (1.99), "Exp", lines: +2 -2 Downgrade .Bd -file from FATAL to ERROR. Since this was the last remaining FATAL error in this area, this change will allow major simplifications in the mdoc(7) parser. 2014-11-27 22:27 schwarze Changed: mdoc_html.c (1.213), "Exp", lines: +14 -9 mdoc_macro.c (1.148), "Exp", lines: +28 -8 mdoc_man.c (1.76), "Exp", lines: +14 -5 mdoc_term.c (1.295), "Exp", lines: +6 -4 Multiple fixes with respect to .Eo: 1. Correctly parse stray .Ec without preceding .Eo, avoiding an assertion violation found by jsg@ with afl. 2. Correctly parse .Ec arguments when breaking another block. 3. Correct spacing around closing delimiter when breaking another block. 4. Sync some related formatting control from -Tascii to -Thtml. 2014-11-27 16:20 schwarze Changed: mdoc.7 (1.242), "Exp", lines: +8 -9 mdoc_html.c (1.212), "Exp", lines: +2 -2 mdoc_man.c (1.75), "Exp", lines: +11 -11 mdoc_term.c (1.294), "Exp", lines: +5 -5 mdoc_validate.c (1.257), "Exp", lines: +13 -18 Fix the obsolete .Db (toggle debug mode) macro to ignore its arguments and not trigger an assertion when there is more than one argument; the latter found by jsg@ with afl. 2014-11-27 01:58 schwarze Changed: mandocdb.c (1.171), "Exp", lines: +19 -15 mansearch.c (1.51), "Exp", lines: +8 -13 mansearch.h (1.21), "Exp", lines: +1 -2 Make makewhatis(8) understand .so links to .gz pages. Drop the FORM_GZ annotation in the mpages table; it is conceptually wrong because it ought to be in the mlinks table: An uncompressed .so link file can point to a compressed manual page file and vice versa. Besides, it is no longer needed because mparse_open() handles it all. Sprinkle some KNF while here. 2014-11-27 00:30 schwarze Changed: manpath.c (1.19), "Exp", lines: +2 -2 fix build when HAVE_MANPATH is set; patch from <bapt at FreeBSD> 2014-11-26 23:42 schwarze Changed: mandoc.3 (1.29), "Exp", lines: +19 -8 read.c (1.98), "Exp", lines: +43 -23 Let mparse_readfd() use mparse_open() and mparse_wait() and let mparse_open() fall back to .gz files such that .so works even when the target is zipped, requested by and in part using ideas from <bapt at FreeBSD>. While here, make sure files are readable before forking, both for efficiency and for better error reporting. 2014-11-26 21:40 schwarze Changed: TODO (1.189), "Exp", lines: +4 -1 main.c (1.200), "Exp", lines: +4 -8 mandoc.3 (1.28), "Exp", lines: +2 -12 mandoc.h (1.169), "Exp", lines: +3 -4 mandocdb.c (1.170), "Exp", lines: +3 -6 read.c (1.97), "Exp", lines: +11 -8 Simplify the mparse_open()/mparse_wait() interface. Don't bother the user with the PID of the child process, store it inside the opaque mparse handle. 2014-11-26 19:24 schwarze Changed: mdoc_validate.c (1.256), "Exp", lines: +1 -3 remove an unreachable warning about .Sm arguments 2014-11-26 19:22 schwarze Changed: mdoc_macro.c (1.147), "Exp", lines: +2 -2 The .Sm macro accepts at most one argument; fixing an assertion failure found by jsg@ with afl. 2014-11-26 17:55 schwarze Changed: cgi.c (1.102), "Exp", lines: +6 -12 Make the code sipler and more robust by always assigning a value to q.manpath and dropping the (incomplete) later NULL checks. 2014-11-26 17:51 schwarze Changed: tbl.7 (1.21), "Exp", lines: +3 -2 tbl_opts.c (1.15), "Exp", lines: +3 -3 Allow comma-separated options in tbl(7) tables. Provides better groff compatibility. From bentley@. 2014-11-25 21:41 schwarze Changed: tbl_layout.c (1.30), "Exp", lines: +41 -56 Completely rewrite the top level of the layout parser. * Do not allocate lines unless there are cells. * Make the MANDOCERR_TBLNOLAYOUT message actually work. Also get rid of one static function and two goto statements. 2014-11-25 20:18 schwarze Changed: mandoc.1 (1.123), "Exp", lines: +4 -12 "Aq foo" is not the same as "<foo>". Don't use it to mark up HTML; from bentley@. 2014-11-25 20:00 schwarze Changed: mdoc_macro.c (1.146), "Exp", lines: +4 -2 mdoc_term.c (1.293), "Exp", lines: +10 -7 Do not access a NULL pointer when a section has no body, which can for example happen for .Sh Xo .Sh without .Xc. Crash found by jsg@ with afl. 2014-11-21 01:52 schwarze Changed: man_term.c (1.156), "Exp", lines: +11 -19 mdoc_term.c (1.292), "Exp", lines: +9 -11 term.c (1.236), "Exp", lines: +13 -9 We repeatedly observed assertion crashes in the low-level terminal output handler because the high level terminal formatters could be tricked into setting the left margin further to the right than the right margin. Today, jsg@ found more of these with afl. Change the internal interface between both levels, aiming for simplicity and robustness of the code. Treat both margins as *independent* settings: Now, termp.offset is the requested left margin, and termp.rmargin is the available space. Let the lower level cope with that case of insufficient space. Obviously, high level code that does centering or flush right still has to do careful checks, so i did a full audit of margin settings in the terminal formatters. Fixes crashes caused by excessively long title or date strings in the man(7) footer, operating system or date strings in the mdoc(7) footer, volume strings in the man(7) or mdoc(7) header, and a few cases related to some non-prologue macros. 2014-11-20 13:56 schwarze Changed: term_ascii.c (1.40), "Exp", lines: +6 -4 term_ps.c (1.69), "Exp", lines: +6 -4 Prevent negative arguments to the .ll request from causing integer underflow. Found while preparing an audit of termp.rmargin. Overflow can also happen, but i see no sane way to deal with it, so just let it happen. It doesn't happen for any sane input anyway, groff behaviour is undefined, and the resulting values are legal, even though they are useless. 2014-11-20 02:21 schwarze Changed: TODO (1.188), "Exp", lines: +9 -1 warn about calling non-callable macros 2014-11-20 00:31 schwarze Changed: mdoc_macro.c (1.145), "Exp", lines: +5 -2 Fix two minibugs reported by Thomas Klausner <wiz at NetBSD>: 1. The first argument of .Fn is not supposed to be parsed. 2. The .Fn macro is not supposed to reopen its scope after punctuation. 2014-11-19 22:00 schwarze Changed: mdoc_html.c (1.211), "Exp", lines: +5 -3 mdoc_man.c (1.74), "Exp", lines: +24 -3 mdoc_term.c (1.291), "Exp", lines: +5 -3 Let .Ao and .Aq render as "<>" after .An and as "\(la\(ra" elsewhere, just like groff; minibug noticed by bentley@. 2014-11-19 20:40 schwarze Changed: mandocdb.c (1.169), "Exp", lines: +14 -4 Three fixes with respect to the names table: 1. Do not mask out NAME_FIRST before its first use. 2. Avoid duplicate NAME_FILE entries. 3. Correctly mask NAME_FILE for .so links. 2014-11-19 03:08 schwarze Changed: man.c (1.143), "Exp", lines: +22 -7 mdoc.c (1.229), "Exp", lines: +18 -8 Escape sequences terminate high-level macro names, and when doing so, they are ignored, just in the same way as for request names and for low-level macro names. This also cures a warning in the pod2man(1) preamble. 2014-11-19 01:20 schwarze Changed: roff.7 (1.59), "Exp", lines: +5 -3 roff.c (1.239), "Exp", lines: +3 -1 Support the ".if v" conditional operator (vroff mode, always false) for groff compatibility because pod2man(1) uses it that way. Weirdly, groff documents it as "for compatibility with other troff versions" but neither Heirloom nor Plan 9 have it. Issue reported by giovanni@ via sthen@. 2014-11-18 19:41 schwarze Changed: manpath.c (1.18), "Exp", lines: +31 -16 Ignore invalid directories in man.conf(5) and MANPATH, even if their parent directories exist, but complain about invalid directories given on the command line. Intended to fix an oddity reported by sthen@. 2014-11-18 01:15 schwarze Changed: mansearch.c (1.50), "Exp", lines: +12 -7 mansearch.h (1.20), "Exp", lines: +6 -5 In man(1) mode, prefer file name matches over .Dt name matches over first .Nm entries over other NAME .Nm entries over SYNOPSIS .Nm entries. For example, this makes sure "man ypbind" does not return yp(8). Re-run "makewhatis" to profit from this change. 2014-11-17 06:44 schwarze Changed: libmdoc.h (1.89), "Exp", lines: +3 -2 mdoc_html.c (1.210), "Exp", lines: +13 -2 mdoc_macro.c (1.144), "Exp", lines: +51 -25 mdoc_man.c (1.73), "Exp", lines: +5 -1 mdoc_term.c (1.290), "Exp", lines: +2 -2 mdoc_validate.c (1.255), "Exp", lines: +16 -6 Multiple fixes with respect to in-line macros: * .No selects the default font; relevant e.g. in .Bf blocks * no need to force empty .Li elements * closing delimiters as leading macro arguments do not suppress space * opening delimiters at the end of a macro line do not suppress space * correctly handle delimiter spacing in -Tman As a side effect, these fixes let mandoc warn about empty .No macros as requested by bentley@. 2014-11-16 21:29 schwarze Changed: term.c (1.235), "Exp", lines: +4 -2 When a line (in the sense of term_flushln()) contains white space only, the `vbl' variable includes the left margin, but `vis' does not. Prevent a `vis' underflow that caused a bogus blank line. Bug reported by Carsten Kunze, found in less(1): .Bl -tag ... .It " " 2014-11-16 20:46 schwarze Changed: mdoc.7 (1.241), "Exp", lines: +2 -21 st.in (1.26), "Exp", lines: +1 -6 Delete five standards that are: * not supported by groff * not used in any OpenBSD, NetBSD, DragonFly or FreeBSD base manual * superseded or retracted * and more than ten years old Triggered by a question from Carsten Kunze (Heirloom troff). OK guenther@ jmc@ 2014-11-14 04:24 schwarze Changed: preconv.c (1.12), "Exp", lines: +5 -25 Remove needless and harmful byte swapping on big endian architectures. Problem found and patch provided by Martin Natano at bitrig, thanks! Tested on macppc by natano@ and on i386, amd64, and sparc64 myself. While here, sync with OpenBSD by removing some trailing whitespace. 2014-11-11 19:04 schwarze Changed: cgi.c (1.101), "Exp", lines: +2 -1 main.c (1.199), "Exp", lines: +5 -1 mansearch.c (1.49), "Exp", lines: +9 -1 mansearch.h (1.19), "Exp", lines: +2 -1 In man(1) mode without -a, stop searching after the first manual tree that contained at least one match in order to not prefer mdoc(1) from ports over mdoc(7). As a bonus, this results in a speedup. 2014-11-11 02:43 schwarze Changed: main.c (1.198), "Exp", lines: +2 -1 man.1 (1.7), "Exp", lines: +5 -3 mandoc.1 (1.122), "Exp", lines: +3 -3 Let -h imply -c (that is, not use the pager). Usually, -h output is short, so the pager is just a nuisance. Also, traditional man(1) does not use a pager for -h. Triggered by a remark of deraadt@ on ICB. 2014-11-11 02:10 schwarze Changed: main.c (1.197), "Exp", lines: +55 -15 implement -h (synopsis only) for preformatted (cat) pages; requested by tedu@ 2014-11-10 21:56 schwarze Changed: mdoc_term.c (1.289), "Exp", lines: +12 -10 add required vertical spacing before lists that begin at the beginning of the first item of an enclosing list right at the beginning of a new section or subsection; minibug reported by Steffen Nurpmeso <sdaoden at yandex dot com> 2014-11-09 00:54 schwarze Changed: TODO (1.187), "Exp", lines: +10 -1 hyperlinking in -man -Thtml punctuation in the middle of .Fn 2014-11-06 22:28 schwarze Changed: chars.in (1.49), "Exp", lines: +2 -2 mdoc_man.c (1.72), "Exp", lines: +2 -2 Let -Tascii \(bu (bullet) output agree with groff; this is now possible because -Tps now handles backspace overstriking. 2014-11-03 23:18 schwarze Changed: libman.h (1.64), "Exp", lines: +4 -1 man.c (1.142), "Exp", lines: +16 -1 man_macro.c (1.90), "Exp", lines: +11 -8 Allow the five man(7) font macros to concatenate their line arguments, the same way the mdoc(7) macros marked MDOC_JOIN do it. In -Thtml, this removes bogus <br/> when the font macros are used in no-fill mode; issue found by jsg@ in the Xcursor(3) SYNOPSIS. As a bonus, this slightly reduces the size of the syntax tree. 2014-11-01 06:03 schwarze Changed: libmandoc.h (1.48), "Exp", lines: +2 -3 read.c (1.96), "Exp", lines: +2 -3 roff.c (1.238), "Exp", lines: +165 -167 Use struct buf in libroff, it is very natural there and reduces the number of arguments of many functions. While here, sprinkle some KNF. No functional change. 2014-11-01 04:08 schwarze Changed: libmandoc.h (1.47), "Exp", lines: +4 -4 preconv.c (1.11), "Exp", lines: +12 -11 read.c (1.95), "Exp", lines: +32 -38 Refactor, no functional change: Remove the parse point from struct buf. Some functions need multiple parse points, some none at all, and it varies whether any of them need to be passed around. So better pass them as a separate argument, and only when needed. 2014-11-01 04:03 schwarze Changed: term.c (1.234), "Exp", lines: +2 -2 fix a typo causing crashes in Unicode string length measurement 2014-10-30 20:10 schwarze Changed: mdoc.7 (1.240), "Exp", lines: +7 -4 mdoc_html.c (1.209), "Exp", lines: +14 -28 mdoc_man.c (1.71), "Exp", lines: +9 -9 mdoc_term.c (1.288), "Exp", lines: +13 -26 mdoc_validate.c (1.254), "Exp", lines: +19 -43 Major bugsquashing with respect to -offset and -width: 1. Support specifying the .Bd and .Bl -offset as a macro default width; while here, simplify the code handling the same for .Bl -width. 2. Correct handling of .Bl -offset arguments: unlike .Bd -offset, the arguments "left", "indent", and "indent-two" have no special meaning. 3. Fix the scaling of string length -offset and -width arguments in -Thtml. Triggered by an incomplete documentation patch from bentley@. 2014-10-30 17:15 schwarze Changed: main.c (1.196), "Exp", lines: +3 -3 add -K to usage() and wrap nicely; from jmc@ 2014-10-30 17:14 schwarze Changed: mandoc.1 (1.121), "Exp", lines: +2 -2 fix a macro error in previous; from jmc@ 2014-10-29 03:35 schwarze Changed: chars.in (1.48), "Exp", lines: +20 -20 Some fine tuning of console rendering of named special characters. Correct ASCII rendering: \(lb \(<> \(sd Make ASCII rendering agree with groff, using backspace overstrike: \(da \(ua \(dA \(uA \(fa \(c* \(c+ \(ib \(ip \(/_ \(pp \(is \(dd \(dg 2014-10-29 00:17 schwarze Changed: chars.c (1.65), "Exp", lines: +4 -6 html.c (1.181), "Exp", lines: +7 -4 mandoc.h (1.168), "Exp", lines: +2 -2 term.c (1.233), "Exp", lines: +65 -39 In terminal output, unify handling of Unicode and numbered character escape sequences just like it was earlier implemented for -Thtml. Do not let control characters other than ASCII 9 (horizontal tab) propagate to the output, even though groff allows them; but that really doesn't look like a great idea. Let mchars_num2char() return int such that we can distinguish invalid \N syntax from \N'0'. This also reduces the danger of signed char issues popping up. 2014-10-28 18:49 schwarze Changed: term.c (1.232), "Exp", lines: +4 -10 term_ascii.c (1.39), "Exp", lines: +3 -3 In -Tascii mode, print "<?>" only for Unicode escapes of unknown representation, not for character escapes with unknown names. According to groff, the latter produce no output, and we now warn about them. 2014-10-28 17:36 schwarze Changed: cgi.c (1.100), "Exp", lines: +7 -3 chars.c (1.64), "Exp", lines: +2 -2 demandoc.c (1.12), "Exp", lines: +5 -2 html.c (1.180), "Exp", lines: +4 -22 html.h (1.67), "Exp", lines: +2 -2 libmandoc.h (1.46), "Exp", lines: +2 -2 main.c (1.195), "Exp", lines: +20 -18 main.h (1.17), "Exp", lines: +7 -8 man_term.c (1.155), "Exp", lines: +1 -4 mandoc.3 (1.27), "Exp", lines: +17 -3 mandoc.h (1.167), "Exp", lines: +2 -2 mandocdb.c (1.168), "Exp", lines: +4 -4 mdoc_term.c (1.287), "Exp", lines: +1 -4 read.c (1.94), "Exp", lines: +6 -4 roff.c (1.237), "Exp", lines: +10 -3 term.c (1.231), "Exp", lines: +2 -6 term.h (1.105), "Exp", lines: +2 -2 term_ascii.c (1.38), "Exp", lines: +11 -9 term_ps.c (1.68), "Exp", lines: +8 -7 Make the character table available to libroff so it can check the validity of character escape names and warn about unknown ones. This requires mchars_spec2cp() to report unknown names again. Fortunately, that doesn't require changing the calling code because according to groff, invalid character escapes should not produce output anyway, and now that we warn about them, that's fine. 2014-10-28 14:06 schwarze Changed: mandoc_escape.3 (1.2), "Exp", lines: +19 -15 stricter parsing of Unicode escape names 2014-10-28 13:24 schwarze Changed: chars.c (1.63), "Exp", lines: +4 -9 mandoc.c (1.88), "Exp", lines: +10 -5 Tighten Unicode escape name parsing. Accept only 0xXXXX, 0xYXXXX, 0x10XXXX with Y != 0. This simplifies mchars_num2uc(). 2014-10-28 02:43 schwarze Changed: chars.in (1.47), "Exp", lines: +95 -95 term_ascii.c (1.37), "Exp", lines: +35 -35 Refine -Tascii rendering of Unicode characters, mostly to better agree with groff, in particular in cases where groff uses backspace overstrike. In two cases, agreement is impossible because groff clobbers the previous line: \(*G \(*S In a number of cases, groff rendering is so misleading that i chose to render differently: \(Sd \(TP \(Tp \(Po \(ps \(sc \(r! \(r? \(de While here, also correct the \(la and \(ra Unicode code points. 2014-10-27 20:41 schwarze Changed: term_ps.c (1.67), "Exp", lines: +62 -16 Support overstriking by backspace in PostScript and PDF output. Of course, this is only a minor improvement; it would be much better to support non-ASCII characters in these output modes, but that would require major changes that i'm not going to work on right now. The main reason for doing this is that it allows to get ASCII output closer to groff. 2014-10-27 16:29 schwarze Changed: html.c (1.179), "Exp", lines: +11 -23 Handle output encoding for unicode, numbered and named escape sequences in one common, safe way instead of three different ways. In particular, * skip NUL, it is used to mean "no output desired" * deny 0x01-0x1F and 0x7F-0x9F, print REPLACEMENT CHARACTER instead * print 0x20-0x7E literally or name-encoded, as required * print characters above 0x9F numerically 2014-10-27 13:31 schwarze Changed: chars.c (1.62), "Exp", lines: +2 -2 html.c (1.178), "Exp", lines: +6 -5 mandocdb.c (1.167), "Exp", lines: +2 -2 term.c (1.230), "Exp", lines: +5 -7 Fix a regression in term.c rev. 1.229 reported by bentley@: In UTF-8 output, do not print anything if mchars_spec2cp() returns 0. In particular, this repairs handling of zero-width spaces (\&). While here, let mchars_spec2cp() return 0xFFFD instead of -1 if the character is not found, simplifying the using code. In HTML output, do not print obfuscated ASCII characters and do not test for one-char escapes, mchars_spec2cp() already does that. 2014-10-26 18:22 schwarze Changed: preconv.c (1.10), "Exp", lines: +4 -5 KNF: indentation and sort variables by size; no functional change 2014-10-26 18:12 schwarze Changed: term_ascii.c (1.36), "Exp", lines: +78 -78 Grrr, patch(1) merged the new function to the wrong place in this file. Resync with OpenBSD. No code change. 2014-10-26 18:07 schwarze Changed: chars.c (1.61), "Exp", lines: +12 -1 mandoc.h (1.166), "Exp", lines: +2 -1 mchars_alloc.3 (1.2), "Exp", lines: +13 -2 term_ascii.c (1.35), "Exp", lines: +5 -3 In -Tascii mode, provide approximations even for some Unicode escape sequences above codepoint 512 by doing a reverse lookup in the existing mandoc_char(7) character table. Again, groff isn't smart enough to do this and silently discards such escape sequences without printing anything. 2014-10-26 17:12 schwarze Changed: chars.c (1.60), "Exp", lines: +7 -16 html.c (1.177), "Exp", lines: +13 -3 term.c (1.229), "Exp", lines: +40 -54 term.h (1.104), "Exp", lines: +3 -1 term_ascii.c (1.34), "Exp", lines: +76 -1 Improve -Tascii output for Unicode escape sequences: For the first 512 code points, provide ASCII approximations. This is already much better than what groff does, which prints nothing for most code points. A few minor fixes while here: * Handle Unicode escape sequences in the ASCII range. * In case of errors, use the REPLACEMENT CHARACTER U+FFFD for -Tutf8 and the string "<?>" for -Tascii output. * Handle all one-character escape sequences in mchars_spec2{cp,str}() and remove the workarounds on the higher level. 2014-10-25 15:23 schwarze Changed: roff.c (1.236), "Exp", lines: +3 -2 With the current architecture, we can't support inline equations inside tables, sorry. So don't even try to parse tbl(7) blocks for eqn(7) delimiters. Broken table layout found in glPixelMap(3) while investigating a bug report by Theo Buehler <theo at math dot ethz dot ch>. 2014-10-25 15:06 schwarze Changed: eqn.c (1.56), "Exp", lines: +4 -2 Fix a NULL pointer dereference reported by Theo Buehler <theo at math dot ethz dot ch> on tech at openbsd: Do not attempt to parse empty equations. 2014-10-25 14:35 schwarze Changed: eqn.c (1.55), "Exp", lines: +2 -17 libroff.h (1.31), "Exp", lines: +2 -2 mandoc.1 (1.120), "Exp", lines: +4 -2 roff.c (1.235), "Exp", lines: +10 -21 Report arguments to .EQ as an error, and simplify the code: * drop trivial wrapper function roff_openeqn() * drop unused first arg of function eqn_alloc() * drop usused member "name" of struct eqn_node While here, sync to OpenBSD by killing some trailing blanks. 2014-10-25 01:03 schwarze Deleted: preconv.1 (1.8) Changed: Makefile (1.445), "Exp", lines: +4 -11 apropos.1 (1.36), "Exp", lines: +3 -3 libmandoc.h (1.45), "Exp", lines: +10 -1 main.c (1.194), "Exp", lines: +29 -3 man.1 (1.6), "Exp", lines: +3 -3 mandoc.1 (1.119), "Exp", lines: +28 -2 mandoc.h (1.165), "Exp", lines: +3 -1 preconv.c (1.9), "Exp", lines: +59 -368 read.c (1.93), "Exp", lines: +53 -20 integrate preconv(1) into mandoc(1); enhances functionality and reduces code and docs by more than 300 lines 2014-10-25 01:01 schwarze Changed: TODO (1.186), "Exp", lines: +13 -2 some new tasks 2014-10-20 19:04 kristaps Changed: mandoc.h (1.164), "Exp", lines: +2 -1 read.c (1.92), "Exp", lines: +2 -1 roff.c (1.234), "Exp", lines: +25 -14 Protect the roff parser from dividing by zero. ok schwarze@ 2014-10-20 17:59 schwarze Changed: mdoc.7 (1.239), "Exp", lines: +22 -10 improve documentation of .Fa, .Va, and .Vt; inspired by a discussion with matthew@ 2014-10-20 15:50 schwarze Changed: man.c (1.141), "Exp", lines: +3 -2 man_term.c (1.154), "Exp", lines: +2 -2 mdoc.c (1.228), "Exp", lines: +3 -2 mdoc_term.c (1.286), "Exp", lines: +2 -2 correct the spacing after in-line equations that start at the beginning of an input line but end before the end of an input line 2014-10-20 15:04 schwarze Changed: roff.c (1.233), "Exp", lines: +37 -6 correctly parse spacing around in-line equations at the beginning and at the end of input lines; issue reported by kristaps@ 2014-10-20 02:47 schwarze Changed: man_term.c (1.153), "Exp", lines: +3 -1 mdoc_term.c (1.285), "Exp", lines: +3 -1 correct spacing *after* inline equations (much simpler than expected) 2014-10-20 02:33 schwarze Changed: man.c (1.140), "Exp", lines: +3 -1 man_term.c (1.152), "Exp", lines: +3 -1 mdoc.c (1.227), "Exp", lines: +3 -1 mdoc_term.c (1.284), "Exp", lines: +3 -1 roff.c (1.232), "Exp", lines: +4 -12 correct spacing before inline equations 2014-10-20 01:43 schwarze Changed: tree.c (1.59), "Exp", lines: +13 -11 show the {MDOC,MAN}_EQN node, it contains interesting information, in particular line and column numbers and flags; but hide the uninteresting EQN_ROOT box 2014-10-18 15:57 schwarze Changed: main.c (1.193), "Exp", lines: +5 -4 read.c (1.91), "Exp", lines: +10 -12 plug file descriptor leaks on read or write failure; hinted at by Steffen Nurpmeso <sdaoden at yandex dot com>. 2014-10-16 01:28 schwarze Changed: roff.c (1.231), "Exp", lines: +3 -3 oops, don't escape the first token of inline equations 2014-10-16 01:11 schwarze Changed: TODO (1.185), "Exp", lines: +4 -4 eqn.c (1.54), "Exp", lines: +27 -1 libmandoc.h (1.44), "Exp", lines: +1 -7 libroff.h (1.30), "Exp", lines: +15 -11 mdoc.c (1.226), "Exp", lines: +1 -58 roff.c (1.230), "Exp", lines: +59 -12 Implement in-line equations, much needed by Xenocara manuals. Put the steering into the roff parser rather than into the mdoc parser such that it works for all macro languages and on both text and macro lines. Line breaks and blank characters generated before and after in-line equations are not perfect yet, but let's do one thing at a time. 2014-10-14 18:18 schwarze Changed: out.c (1.53), "Exp", lines: +2 -2 tbl_term.c (1.31), "Exp", lines: +2 -2 even if a table has zero columns, do not segfault in the formatter; bug reported by bentley@ 2014-10-14 15:47 schwarze Changed: TODO (1.184), "Exp", lines: +99 -9 annotate for difficulty, and some minor cleanup 2014-10-14 13:53 schwarze Changed: TODO (1.183), "Exp", lines: +4 -3 bentley@ suggests Unicode table borders; while here, remove the note about sox(1), it works now 2014-10-14 02:16 schwarze Changed: mandoc.h (1.163), "Exp", lines: +2 -1 out.c (1.52), "Exp", lines: +70 -6 out.h (1.24), "Exp", lines: +4 -2 tbl.7 (1.20), "Exp", lines: +15 -5 tbl_html.c (1.13), "Exp", lines: +2 -2 tbl_layout.c (1.29), "Exp", lines: +4 -1 tbl_term.c (1.30), "Exp", lines: +2 -2 Rudimentary implementation of the e, x, and z table layout modifiers to equalize, maximize, and ignore the width of columns. Does not yet take vertical rulers into account, and does not do line breaks within table cells. Considerably improves the lftp(1) manual; issue noticed by sthen@. 2014-10-13 23:31 schwarze Changed: tbl.7 (1.19), "Exp", lines: +25 -24 tbl_term.c (1.29), "Exp", lines: +19 -3 implement font modifiers in table layouts 2014-10-13 22:00 schwarze Changed: mdoc_term.c (1.283), "Exp", lines: +7 -3 Properly scale string length measurements for PostScript and PDF output; this doesn't change anything for ASCII and UTF-8. Problem reported by bentley@. 2014-10-13 17:17 schwarze Changed: mandoc.c (1.87), "Exp", lines: +12 -13 Stricter syntax checking of Unicode character names: Require exactly 4, 5 or 6 hex digits and allow nothing else. This avoids mishandling stuff like \[ua] and \C'uA' as Unicode and also fixes underlining in eqn(7) -Thtml output which uses \[ul]. Problem found and semantics suggested by kristaps@. 2014-10-13 14:05 schwarze Changed: mdoc_validate.c (1.253), "Exp", lines: +3 -2 sync with OpenBSD: check sorting of .Xr's case-insensitively; no idea why this was different here 2014-10-13 14:01 schwarze Changed: mdoc_validate.c (1.252), "Exp", lines: +6 -4 Do not warn about declarations of functions returning function pointers, getting rid of a false positive noticed by bentley@. 2014-10-13 12:46 schwarze Changed: mdoc.7 (1.238), "Exp", lines: +3 -3 Clarify: SEE ALSO sections are sorted case insensitively. Patch from bentley@, ok jmc@. 2014-10-12 20:32 schwarze Changed: mandocdb.c (1.166), "Exp", lines: +2 -1 add missing entry for .ll to the dispatch table; patch from Martin <Natano at natano dot net>, thanks 2014-10-12 20:08 schwarze Changed: eqn.c (1.53), "Exp", lines: +11 -1 bugfix: do not parse quoted strings for tokens; fixes glFrustum(3) 2014-10-12 19:31 schwarze Changed: eqn.c (1.52), "Exp", lines: +84 -102 eqn_html.c (1.10), "Exp", lines: +9 -5 mandoc.1 (1.118), "Exp", lines: +28 -11 mandoc.h (1.162), "Exp", lines: +2 -2 read.c (1.90), "Exp", lines: +2 -2 Improve error handling in the eqn(7) parser. Get rid of the first fatal error, MANDOCERR_EQNSYNT. In eqn(7), there is no need to be bug-compatible with groff, so there is no need to abondon the whole equation in case of a syntax error. In particular: * Skip "back", "delim", "down", "fwd", "gfont", "gsize", "left", "right", "size", and "up" without arguments. * Skip "gsize" and "size" with a non-numeric argument. * Skip closing delimiters that are not open. * Skip "above" outside piles. * For diacritic marks and binary operators without a left operand, default to an empty box. * Let piles and matrices take one argument rather than insisting on a braced list. Let HTML output handle that, too. * When rewinding, if the root box is guaranteed to match the termination condition, no error handling is needed. 2014-10-12 14:49 schwarze Changed: eqn_term.c (1.7), "Exp", lines: +66 -19 major upgrade to eqn(7) terminal output; column vectors ("piles") and matrices are not yet pretty, but everything else is now more or less readable 2014-10-12 11:57 schwarze Changed: eqn.7 (1.31), "Exp", lines: +239 -12 document the semantics of operation keywords and some other minor improvements 2014-10-11 21:34 schwarze Changed: mdoc_validate.c (1.251), "Exp", lines: +2 -2 oops, don't crash when .Fo has no argument 2014-10-11 21:14 schwarze Changed: mandoc.1 (1.117), "Exp", lines: +10 -2 mandoc.h (1.161), "Exp", lines: +2 -1 mdoc_validate.c (1.250), "Exp", lines: +29 -2 read.c (1.89), "Exp", lines: +2 -1 warn about parentheses in function names after .Fn and .Fo; particularly useful when converting from other languages to mdoc(7); feature suggested by bentley@ 2014-10-10 15:26 schwarze Changed: html.c (1.176), "Exp", lines: +2 -2 html.h (1.66), "Exp", lines: +2 -2 mandoc.h (1.160), "Exp", lines: +2 -2 mdoc_html.c (1.208), "Exp", lines: +2 -2 tree.c (1.58), "Exp", lines: +2 -2 sync Copyright years after merge to OpenBSD; no code change 2014-10-10 14:27 schwarze Changed: eqn.c (1.51), "Exp", lines: +21 -22 eqn_html.c (1.9), "Exp", lines: +10 -10 Drop trailing whitespace, adjust a few indentations, and update Copyright year while here; no code change. 2014-10-10 14:02 schwarze Changed: eqn.c (1.50), "Exp", lines: +1 -4 No need to assert() that a pointer is non-null right before dereferencing it. The assert message contains no more information than the segfault. 2014-10-10 12:19 schwarze Changed: tree.c (1.57), "Exp", lines: +28 -9 Make eqn(7) -Ttree output more useful: * Reduce noise by not printing default attributes. * Print missing "top" and "bottom" attributes. * Print mnemonics, not code numbers for expression positions. * Do not print unused "pile" attribute. 2014-10-10 10:49 schwarze Changed: TODO (1.182), "Exp", lines: +18 -6 tasks found while reading the eqn(7) User's Guide 2014-10-10 09:12 kristaps Changed: eqn.c (1.49), "Exp", lines: +2 -1 Ignore "delim" command. This fixes run-time assertions regarding "tok". 2014-10-10 08:44 kristaps Changed: TODO (1.181), "Exp", lines: +7 -1 eqn.7 (1.30), "Exp", lines: +2 -3 eqn.c (1.48), "Exp", lines: +741 -612 eqn_html.c (1.8), "Exp", lines: +112 -145 html.c (1.175), "Exp", lines: +2 -1 html.h (1.65), "Exp", lines: +2 -1 mandoc.1 (1.116), "Exp", lines: +7 -3 mandoc.h (1.159), "Exp", lines: +13 -20 tree.c (1.56), "Exp", lines: +8 -3 Re-write of eqn(7) parser and MathML output. This adds parser-level support for the grammar described by the eqn second-edition technical paper, "Typesetting Mathematics — User's Guide" (Kernighan, Cherry). The reason for this re-write is the grouping rules, which were not possible given the existing implementation. The re-write has also considerably simplified the HTML (and, if it ever is completed, terminal) front-end. 2014-10-07 18:20 schwarze Changed: cgi.c (1.99), "Exp", lines: +3 -3 be a bit more patient, 1s is sometimes insufficient for legitimate queries 2014-10-07 14:07 schwarze Changed: mandoc.1 (1.115), "Exp", lines: +9 -4 tbl_layout.c (1.28), "Exp", lines: +6 -1 If a tbl(7) layout contains unknown font modifiers, fall back to the default font rather than failing the whole table. Needed by some pages in books/man-pages-posix. Written on the plane back from EuroBSDCon in Sofia. 2014-10-06 18:35 schwarze Changed: TODO (1.180), "Exp", lines: +7 -1 note HTML max-width issue 2014-09-28 20:14 kristaps Changed: eqn_html.c (1.7), "Exp", lines: +8 -5 html.c (1.174), "Exp", lines: +4 -1 html.h (1.64), "Exp", lines: +4 -1 Change "to" and "from" commands to use munder, mover, and munderover. 2014-09-28 14:06 kristaps Changed: eqn_html.c (1.6), "Exp", lines: +10 -1 Crudely accomodate for matrices by way of adjacent tables. We don't do this nicely right now because eqn uses column ordering. Also add from/to support and to support. 2014-09-28 14:05 kristaps Changed: eqn.c (1.47), "Exp", lines: +7 -2 mandoc.h (1.158), "Exp", lines: +2 -1 Parse from/to clauses in eqn. 2014-09-28 13:34 kristaps Changed: eqn_html.c (1.5), "Exp", lines: +155 -27 Support a decent subset of eqn(7) in MathML. This has basic support for positions (under, sup, sub, sub/sup) and piles. It *does not* support right-left grouping (among many other things), e.g., a sub b over c sub d Which it will interpret, for the time being, as a sub { b over { c sub d } } instead of { a sub b } over { c sub d } However, left-right grouping works fine. 2014-09-28 11:33 kristaps Changed: html.c (1.173), "Exp", lines: +16 -1 html.h (1.63), "Exp", lines: +16 -1 Add support for some MathML elements and attributes in our HTML5. 2014-09-28 11:32 kristaps Changed: tree.c (1.55), "Exp", lines: +3 -3 Make eqn tree output a bit more useful. 2014-09-28 11:32 kristaps Changed: eqn.c (1.46), "Exp", lines: +24 -6 mandoc.h (1.157), "Exp", lines: +3 -1 Add support for EQNPOS_SUBSUP and a doubly-linked eqn_box list. 2014-09-27 11:20 kristaps Changed: Makefile (1.444), "Exp", lines: +3 -1 Have Makefile build mandoc(1) before it tries to generate the HTML. 2014-09-27 11:17 kristaps Changed: cgi.c (1.98), "Exp", lines: +3 -6 Modify man.cgi to use HTML5. 2014-09-27 11:17 kristaps Changed: html.c (1.172), "Exp", lines: +8 -15 html.h (1.62), "Exp", lines: +1 -7 man_html.c (1.104), "Exp", lines: +2 -2 mandoc.1 (1.114), "Exp", lines: +8 -17 mdoc_html.c (1.207), "Exp", lines: +2 -2 Don't pretend we have a separate XHTML and HTML mode any more. 2014-09-27 11:16 kristaps Changed: example.style.css (1.53), "Exp", lines: +2 -1 style.css (1.30), "Exp", lines: +2 -1 Specify the spacer in the overridable CSS. 2014-09-27 10:56 kristaps Changed: html.c (1.171), "Exp", lines: +15 -3 html.h (1.61), "Exp", lines: +2 -2 man_html.c (1.103), "Exp", lines: +7 -6 mdoc_html.c (1.206), "Exp", lines: +6 -6 Remove <p> in favour of <div class="spacer">. This is good because <p> is brittle: it can't appear within other block macros. This fixes a regression of the original HTML5 patch as noted by schwarze@ on the tech@ list, 14/8/2014. 2014-09-27 09:26 kristaps Changed: html.c (1.170), "Exp", lines: +4 -3 html.h (1.60), "Exp", lines: +1 -2 man_html.c (1.102), "Exp", lines: +1 -8 mdoc_html.c (1.205), "Exp", lines: +1 -8 Remove last hard-coded width attribute. 2014-09-27 09:20 kristaps Changed: example.style.css (1.52), "Exp", lines: +4 -4 html.c (1.169), "Exp", lines: +3 -3 html.h (1.59), "Exp", lines: +1 -2 man_html.c (1.101), "Exp", lines: +24 -25 mdoc_html.c (1.204), "Exp", lines: +24 -25 style.css (1.29), "Exp", lines: +2 -2 HTML5-isation: remove more alignments. 2014-09-27 09:13 kristaps Changed: html.c (1.168), "Exp", lines: +6 -2 man_html.c (1.100), "Exp", lines: +3 -5 mdoc_html.c (1.203), "Exp", lines: +3 -5 style.css (1.28), "Exp", lines: +3 -3 Continue in HTML5-ing by kicking out some hard-coded alignments. 2014-09-27 09:05 kristaps Changed: html.c (1.167), "Exp", lines: +1 -2 html.h (1.58), "Exp", lines: +1 -3 man_html.c (1.99), "Exp", lines: +5 -7 mdoc_html.c (1.202), "Exp", lines: +5 -7 Kick out "summary" attribute, which isn't HTML5. 2014-09-27 09:03 kristaps Changed: html.c (1.166), "Exp", lines: +1 -3 html.h (1.57), "Exp", lines: +1 -3 Kick out two attibutes we don't use any more in HTML5. 2014-09-27 09:02 kristaps Changed: html.c (1.165), "Exp", lines: +7 -1 html.h (1.56), "Exp", lines: +2 -1 man_html.c (1.98), "Exp", lines: +5 -7 mdoc_html.c (1.201), "Exp", lines: +5 -7 First, add space for default styling for HTML5 (non-fragment) output. This uses a <style /> block right before the <link /> for the stylesheet. Use this to kick out hardcoded header and footer table widths. 2014-09-27 08:54 kristaps Changed: html.c (1.164), "Exp", lines: +6 -39 html.h (1.55), "Exp", lines: +2 -1 First steps in HTML5: use UTF8 meta-charset and HTML5 doctype identifier. 2014-09-17 20:18 schwarze Changed: mdoc_term.c (1.282), "Exp", lines: +17 -45 term.h (1.103), "Exp", lines: +3 -4 simplify handling of .An -[no]split for terminal output: delete one static function, one flag #define, and 25 lines of code; no functional change 2014-09-17 19:55 schwarze Changed: html.h (1.54), "Exp", lines: +3 -1 mdoc_html.c (1.200), "Exp", lines: +28 -4 implement .An -[no]split for -Thtml 2014-09-17 00:43 schwarze Changed: mdoc.7 (1.237), "Exp", lines: +3 -3 Five year old typo reported by Theo Buehler at math dot ethz dot ch, thanks. I nearly asked: ``What's wrong with it? It formats as "intended".'' (However, what Kristaps intended to write was "indented".) 2014-09-14 19:44 schwarze Changed: cgi.c (1.97), "Exp", lines: +33 -34 man.cgi.8 (1.11), "Exp", lines: +8 -2 Support backslash-escaping of white space in the query expression, to be more similar to apropos(1) called from the shell. Missing feature reported by Marcus MERIGHI <mcmer dash openbsd at tor dot at> on misc@. 2014-09-12 00:54 schwarze Changed: mandoc.1 (1.113), "Exp", lines: +9 -2 mandoc.h (1.156), "Exp", lines: +2 -1 mdoc_validate.c (1.249), "Exp", lines: +26 -3 read.c (1.88), "Exp", lines: +2 -1 warn about commas in function arguments; inspired by mdoclint(1) 2014-09-12 00:10 schwarze Changed: demandoc.1 (1.8), "Exp", lines: +3 -3 mandoc.1 (1.112), "Exp", lines: +18 -2 document new SEE ALSO .Xr warnings 2014-09-11 23:53 schwarze Changed: mandoc.h (1.155), "Exp", lines: +3 -1 mdoc_validate.c (1.248), "Exp", lines: +66 -1 read.c (1.87), "Exp", lines: +3 -1 warn about botched .Xr ordering and punctuation below SEE ALSO; inspired by mdoclint(1) 2014-09-09 19:35 schwarze Changed: mandocdb.c (1.165), "Exp", lines: +16 -12 If a manpath directory (for example, a _whatdb entry from man.conf(5) or an entry in the MANPATH environment variable) does not exist, silently skip it. This brings makewhatis(8) back closer to the behaviour of espie@'s version and ought to shut up the weekly(8) whining observed by henning@ on machines not having xbase installed. Also, don't error out after the first unusable manpath entry, still try the others. Of course, still complain about non-existent directories specified on the command line and about any directories failing for other reasons than ENOENT. 2014-09-07 23:25 schwarze Changed: mandoc.1 (1.111), "Exp", lines: +8 -2 mandoc.h (1.154), "Exp", lines: +2 -1 mdoc_validate.c (1.247), "Exp", lines: +40 -9 read.c (1.86), "Exp", lines: +2 -1 warn about AUTHORS sections without .An macros, inspired by mdoclint(1) 2014-09-07 03:08 schwarze Changed: mandocdb.c (1.164), "Exp", lines: +3 -3 Do not report a page as arch=any merely because .Dt lacks the third argument. Pages found outside arch-specific dirs still get arch=any, of course. Issue reported by justinhenryhaynes at gmail dot com on misc@, thanks! 2014-09-07 03:00 schwarze Changed: mandocdb.c (1.163), "Exp", lines: +2 -2 fix debugging output 2014-09-07 02:17 schwarze Changed: read.c (1.85), "Exp", lines: +5 -2 always use the right buffer, and fix one evil typo 2014-09-07 00:21 schwarze Changed: roff.7 (1.58), "Exp", lines: +7 -2 roff.c (1.229), "Exp", lines: +3 -1 Parse and ignore the .pl (page length) request; Daniel Levai reports that Slackware Linux uses this. 2014-09-07 00:05 schwarze Changed: mdoc_macro.c (1.143), "Exp", lines: +3 -3 mdoc_validate.c (1.246), "Exp", lines: +9 -10 Allow .ll in the prologue; Daniel Levai reports Slackware Linux uses this. 2014-09-06 23:24 schwarze Changed: man.c (1.139), "Exp", lines: +1 -8 mdoc.c (1.225), "Exp", lines: +1 -10 read.c (1.84), "Exp", lines: +5 -16 roff.c (1.228), "Exp", lines: +10 -1 Simplify by handling empty request lines at the one logical place in the roff parser instead of in three other places in other parsers. No functional change. 2014-09-06 22:39 schwarze Changed: libmandoc.h (1.43), "Exp", lines: +2 -1 read.c (1.83), "Exp", lines: +42 -27 roff.c (1.227), "Exp", lines: +19 -3 Move main format autodetection from the parser dispatcher to the roff parser where .Dd and .TH are already detected, anyway. This improves robustness because it correctly handles whitespace or an alternate control character before Dd. In the parser dispatcher, provide a fallback looking ahead in the input buffer instead of always assuming man(7). This corrects autodetection when Dd is preceded by other macros or macro-like handled requests like .ll. Triggered by reports from Daniel Levai about issues on Slackware Linux. 2014-09-03 23:21 schwarze Changed: main.c (1.192), "Exp", lines: +23 -14 mandoc.3 (1.26), "Exp", lines: +64 -2 mandoc.h (1.153), "Exp", lines: +12 -2 mandocdb.c (1.162), "Exp", lines: +14 -53 read.c (1.82), "Exp", lines: +96 -3 Add *.gz support to apropos(1) -a, man(1), and even mandoc(1). Implemented by moving the zip code from makewhatis(8) to the parser lib. 2014-09-03 18:09 schwarze Changed: main.c (1.191), "Exp", lines: +2 -2 mandoc.db.5 (1.2), "Exp", lines: +17 -4 mandocdb.c (1.161), "Exp", lines: +8 -11 mansearch.c (1.48), "Exp", lines: +10 -5 mansearch.h (1.18), "Exp", lines: +6 -1 If a manual page is installed gzip(1)ed, let makewhatis(8) take note in mandoc.db(5), such that man(1) -w and apropos(1) -w can report the correct filename. This is a prerequisite for letting apropos -a and man support gzip'ed manuals in the future, which doesn't work yet. 2014-09-03 05:22 schwarze Changed: apropos.1 (1.35), "Exp", lines: +8 -3 main.c (1.190), "Exp", lines: +9 -5 man.1 (1.5), "Exp", lines: +5 -6 man_term.c (1.151), "Exp", lines: +26 -14 mandoc.1 (1.110), "Exp", lines: +7 -3 mdoc_term.c (1.281), "Exp", lines: +25 -18 term.h (1.102), "Exp", lines: +2 -1 term_ascii.c (1.33), "Exp", lines: +7 -3 Implement the traditional -h option for man(1): show the SYNOPSIS only. As usual, we get mandoc -h and apropos -h for free. Try stuff like "apropos -h In=dirent" or "apropos -h Fa=timespec". Only useful for terminal output, so -Tps, -Tpdf, -Thtml ignore -h for now. 2014-09-01 23:47 schwarze Changed: mandocdb.c (1.160), "Exp", lines: +8 -1 When makewhatis(8) finds an .so link after the manual being pointed to has already been processed, add the file names to the names table, too, not just to the mlinks table. This fixes a bug where apropos(1) and the new man(1) wouldn't find some of the Xenocara manuals via some of their .so links. After rebuilding, run "makewhatis /usr/X11R6/man" or just wait for weekly(8). 2014-09-01 22:45 schwarze Changed: main.c (1.189), "Exp", lines: +6 -4 mansearch.c (1.47), "Exp", lines: +2 -1 mansearch.h (1.17), "Exp", lines: +2 -1 In man(1) mode, change to the right directory before starting the parser, just like traditional man(1) does, such that .so links have a chance to work. After this point, we don't need the current directory for anything else before exit, so we don't need to worry about getting back and we can safely ignore failure. 2014-08-30 18:08 schwarze Changed: apropos.1 (1.34), "Exp", lines: +20 -4 main.c (1.188), "Exp", lines: +14 -9 man.1 (1.4), "Exp", lines: +34 -2 mandoc.1 (1.109), "Exp", lines: +39 -3 Introduce a man(1) -l option as an alias for mandoc -a. Basically, this does the same as man -l in Linux man-db. The point is that now all functionality of the combined tool is reachable from the man(1) command name: apropos = man -k, whatis = man -f, mandoc = man -cl. Originally suggested by Carsten dot Kunze at arcor dot de, current maintainer of the Heirloom Documentation Tools. While here, add various missing information to the usage() and to the manuals. 2014-08-28 10:38 schwarze Changed: configure (1.14), "Exp", lines: +1 -1 test-wchar.c (1.2), "Exp", lines: +6 -2 On Linux, wcwidth() needs _XOPEN_SOURCE, or just _GNU_SOURCE for simplicity. Besides, signedness of wchar_t and wint_t may differ, it i only guaranteed that each wchar_t can be represented as a wint_t. A problem report by Daniel Levai reminded me to fix this. 2014-08-28 03:51 schwarze Changed: mdoc.7 (1.236), "Exp", lines: +8 -4 st.in (1.25), "Exp", lines: +3 -1 Support .St -susv1 and .St -susv4. Illumos wants to use this, and it's illogical anyway to have -susv2 and -susv3 but not -susv4. 2014-08-28 01:37 schwarze Changed: term_ps.c (1.66), "Exp", lines: +1 -6 I just noticed that -Tps writes "%%CreationDate:" headers. That's an unwelcome leak of potentially private information. Kill it with fire. 2014-08-26 11:21 schwarze Changed: cgi.c (1.96), "Exp", lines: +7 -7 msec.in (1.7), "Exp", lines: +3 -3 Sync section titles with OpenBSD. For section 4, "Kernel Interfaces" is just too confusing, the difference from sections 2 and 9 is too hard to see. The 3p change was suggested by bluhm@; that part of the manual describes more modules than functions. Align the CGI section titles with the console section titles. 2014-08-24 23:43 schwarze Changed: term_ps.c (1.65), "Exp", lines: +140 -36 When support for bold italic font was added to the parsers and to the generic parts of the formatters some time ago, the PostScript- and PDF-specific part of the formatters was neglected. Now pascal@ reports that mandoc -Tps throws an assertion on perl(1), apparently because that manual actually uses bold italic font. So here is an overdue implementation of bold italic font support for PostScript and PDF output. 2014-08-23 22:26 schwarze Changed: main.c (1.187), "Exp", lines: +9 -1 without search results, skip the processing loops and the parser 2014-08-23 18:13 schwarze Changed: mandocdb.c (1.159), "Exp", lines: +3 -1 do not leak a file descriptor on fdopen(3) failure; from doug@ 2014-08-23 00:34 schwarze Changed: main.c (1.186), "Exp", lines: +56 -20 Let man(1) display preformatted manuals by simply reading them from the file and copying them to the standard output. This works even for mixed formats: "man -a groff mandoc" displays groff(1) [formatted], mandoc(1) [unformatted], groff(7) [formatted], and mandoc(7) [unformatted] in that order. 2014-08-22 18:07 schwarze Changed: main.c (1.185), "Exp", lines: +17 -1 implement man(1) quirk: section argument without -s 2014-08-22 15:49 schwarze Changed: man.cgi.8 (1.10), "Exp", lines: +3 -3 typo; noticed by jmc@ some time ago 2014-08-22 04:52 schwarze Changed: apropos.1 (1.33), "Exp", lines: +15 -3 main.c (1.184), "Exp", lines: +49 -11 mandoc.1 (1.108), "Exp", lines: +17 -2 implement MANPAGER and PAGER 2014-08-22 03:42 schwarze Changed: apropos.1 (1.32), "Exp", lines: +16 -3 main.c (1.183), "Exp", lines: +53 -3 mandoc.1 (1.107), "Exp", lines: +18 -3 mandoc -a, man, apropos -a, whatis -a now paginate by default but provide an option -c to not paginate; taking inspiration from manpage.c, hence adding (c) 2012 kristaps@ 2014-08-21 20:29 schwarze Changed: mansearch.c (1.46), "Exp", lines: +2 -1 Bugfix: make whatis(1) case-insensitive again. The traditional whatis(1) was case-insensitve and it's still documented that way, but that apparently got broken with or after the switch. 2014-08-21 16:05 schwarze Changed: cgi.c (1.95), "Exp", lines: +15 -1 limit CGI process execution time to make REDoS attacks less effective; attack surface pointed out by Sebastien Marie 2014-08-21 12:57 schwarze Changed: mdoc_html.c (1.199), "Exp", lines: +5 -4 mdoc_macro.c (1.142), "Exp", lines: +13 -14 mdoc_man.c (1.70), "Exp", lines: +7 -4 mdoc_term.c (1.280), "Exp", lines: +5 -4 Right after .Fl, a middle delimiter triggers an empty scope, just like a closing delimiter. This didn't work in groff-1.15, but it now works in groff-1.22. After being closed by delimiters, .Nm scopes do not reopen. Do not suppress white space after .Fl if the next node is a text node on the same input line; that can happen for middle delimiters. Fixing an issue reported by jmc@. 2014-08-21 02:38 schwarze Changed: man.1 (1.3), "Exp", lines: +9 -1 man -I -O -T -W now work, too 2014-08-21 02:28 schwarze Changed: apropos.1 (1.31), "Exp", lines: +44 -9 Describe the new options -afkw. Clean up the description of whatis(1). 2014-08-21 01:52 schwarze Changed: apropos.1 (1.30), "Exp", lines: +26 -8 Complete the whatis.1 -> apropos.1 merge, in particular regarding HISTORY and AUTHORS. 2014-08-21 01:35 schwarze Changed: man.1 (1.2), "Exp", lines: +18 -51 * remove pointless separate -f and -k synopses, they take almost all args * fix up descriptions of -f and -k * remove excessive example for -k * remove explicit BSD references * add CVS Id 2014-08-21 00:42 schwarze Added: man.1 (1.1) Changed: LICENSE (1.4), "Exp", lines: +3 -2 Makefile (1.443), "Exp", lines: +5 -2 Now that we have man(1) functionality, add a man(1) manual page. I'm importing the totally unchanged OpenBSD version such that all changes can easily be tracked in CVS. 2014-08-21 00:32 schwarze Changed: main.c (1.182), "Exp", lines: +69 -8 Implement classic man(1) output mode showing only one manual even if there is more than one match, using traditional section priorities, and implement man(1) -a (show all) output mode, not just for man(1), but also for apropos(1) and whatis(1). 2014-08-20 21:04 schwarze Changed: main.c (1.181), "Exp", lines: +44 -5 Parse the new -a, -i, and -w options. Implement -w (list manual page filenames). 2014-08-20 01:09 tag VERSION_1_12_4 2014-08-20 01:09 schwarze Changed: NEWS (1.6.2.1), "Exp", lines: +22 -3 1.12.4 release notes 2014-08-19 17:31 schwarze Changed: mdoc_validate.c (1.245), "Exp", lines: +2 -2 Do not dereference a NULL pointer if a .Bl macro has no -type, -width, -offset or -compact arguments whatsoever; this got broken in rev. 1.238. 2014-08-19 16:52 schwarze Changed: roff.c (1.226), "Exp", lines: +2 -2 libroff depends on libmandoc and so libmandoc should be included first; merge from OpenBSD, patch by daniel@ 2014-08-18 21:07 kristaps Changed: term.c (1.228), "Exp", lines: +2 -2 Control reading off the edge of our buffer in term_flushln(). This happens in specific conditions (trailing whitespace in certain terminal modes), but in practise, it happens quite often (as reported by valgrind). In short, "Nothing about term_flushln() is simple. Srsly!" (schwarze@) Discussed on tech@, ok schwarze@. 2014-08-18 16:36 schwarze Changed: man_macro.c (1.89), "Exp", lines: +13 -2 When the first child of the node being validated gets deleted during validation, man_node_unlink() switches to MAN_NEXT_CHILD. After that, we have to switch back to MAN_NEXT_SIBLING after completing validation, or subsequent parsing would add content into an already closed node, clobbering potentially existing children, causing information loss and a memory leak. Bug found by kristaps@ with valgrind in groff(7) on Mac OS X. Note that the switch back must be conditional, for if the node being validated itself gets deleted, we must *not* go to MAN_NEXT_SIBLING, which would not only yield wrong results in general but also crash in malformed manuals having an empty paragraph before the first .SH, for example OpenBSD c++filt(1). 2014-08-18 13:27 kristaps Changed: INSTALL (1.5), "Exp", lines: +3 -2 TODO (1.179), "Exp", lines: +14 -1 Notes on CGI: installation (readying cgi.h) and future plans. 2014-08-18 13:16 schwarze Changed: mandoc.c (1.84.2.1), "Exp", lines: +3 -2 merge kristaps@' bugfix from HEAD: Fix a corner case where \H<nil> (where <nil> is the \0 character) would cause mandoc_escape() to read past the end of an allocated string. Found when a script scanning of all Mac OSX manual accidentally also scanned binary (gzip'd) files, discussed with schwarze@ on tech@. 2014-08-18 09:11 kristaps Changed: mandoc.c (1.86), "Exp", lines: +3 -2 Fix a corner case where \H<nil> (where <nil> is the \0 character) would cause mandoc_escape() to read past the end of an allocated string. Found when a script scanning of all Mac OSX manual accidentally also scanned binary (gzip'd) files, discussed with schwarze@ on tech@. 2014-08-17 22:14 schwarze Changed: term_ascii.c (1.30.2.1), "Exp", lines: +2 -2 While all current callers pass valid data to ascii_hspan() only, it's safer to assume incoming enum data might be invalid and catch it instead of happily returning an unitialized int. No functional change right now. 2014-08-17 22:10 schwarze Changed: term_ascii.c (1.32), "Exp", lines: +2 -2 While all current callers pass valid data to ascii_hspan() only, it's safer to assume incoming enum data might be invalid and catch it instead of happily returning an unitialized int. No functional change right now. 2014-08-17 21:03 schwarze Changed: makewhatis.8 (1.3), "Exp", lines: +3 -3 typo; Steven Honeyman <stevenhoneyman at gmail dot com> 2014-08-17 20:53 schwarze Changed: compat_getsubopt.c (1.5), "Exp", lines: +2 -8 configure (1.13), "Exp", lines: +1 -3 test-getsubopt.c (1.3), "Exp", lines: +19 -4 Do not require getsubopt() to provide extern char *suboptarg. We don't use it anyway in mandoc. Like this, fewer systems need the compat implementation. In particular, we can now use the stock getsubopt() on glibc and musl. Besides, the comment in the BSD getsubopt.c that error messages are tricky without *suboptarg is massively overblown. If you simply save a copy of the pointer you pass into getsubopt(), that's quite usable for an error message. People start campaigning for the addition of *suboptarg to C libraries on the grounds that mandoc wants it, but actually, i consider library functions manipulating global data quite ugly, so stop pushing people into that questionable direction. While here, add an explicit Copyright header to the test file. While it's obviously to me what Kristaps intended, others might consider this file copyrightable and wonder what's up. 2014-08-17 20:45 schwarze Changed: compat_fts.c (1.4), "Exp", lines: +2 -1 one forgotten #ifdef -> #if conversion 2014-08-17 16:51 schwarze Changed: mdoc_term.c (1.279), "Exp", lines: +6 -6 ... and remove the trailing spaces (duh. i should pay more attention) 2014-08-17 16:44 schwarze Changed: mdoc_term.c (1.278), "Exp", lines: +10 -10 KNF: fix indentation of previous commit, see style(9): "Indentation is an 8 character tab. Second level indents are four spaces." All the rest of this file already conforms. 2014-08-17 08:37 kristaps Changed: mdoc_term.c (1.277), "Exp", lines: +14 -9 Protect against accessing "n->next->child" by first checking "n->next". Noticed in a crash against ".It Nm Fo" with no closing "Fc". Original patch expanded by schwarze@ then extended even more. 2014-08-17 03:24 schwarze Deleted: apropos.c (1.42) Changed: Makefile (1.442), "Exp", lines: +5 -5 Makefile.depend (1.5), "Exp", lines: +20 -17 cgi.c (1.94), "Exp", lines: +4 -4 main.c (1.180), "Exp", lines: +120 -37 manpage.c (1.9), "Exp", lines: +4 -3 mansearch.c (1.45), "Exp", lines: +29 -28 mansearch.h (1.16), "Exp", lines: +13 -8 Fully integrate apropos(1) into mandoc(1). Switch the argmode on the progname, including man(1). Provide -f and -k options to switch the argmode. Store the argmode inside struct search, generalizing the flags. Derive the deftype from the argmode when needed instead of storing it. Store the outkey inside struct search instead of passing it alone. While here, get rid of the trailing blanks in Makefile.depend. 2014-08-16 23:04 schwarze Changed: Makefile (1.441), "Exp", lines: +9 -11 apropos.c (1.41), "Exp", lines: +2 -2 configure (1.12), "Exp", lines: +4 -0 main.c (1.179), "Exp", lines: +11 -1 When BUILD_DB is active, link apropos(1) into the mandoc binary. This is the first step on the way to a man(1) implementation. The new ./configure is flexible enough to make this step quite easy. 2014-08-16 19:50 schwarze Changed: mdoc_macro.c (1.141), "Exp", lines: +3 -2 If a stray .It follows .El, we are no longer in the list, even though the list is still the last processed macro. This fixes a regression introduced in mdoc_macro.c rev. 1.138: Ulrich Spoerlein <uqs at FreeBSD> reports that various of their kernel manuals trigger assertions. 2014-08-16 19:00 schwarze Deleted: config.h.post (1.12) config.h.pre (1.7) Added: configure.local.example (1.1) test-sqlite3.c (1.1) test-wchar.c (1.1) Changed: INSTALL (1.4), "Exp", lines: +44 -42 Makefile (1.440), "Exp", lines: +20 -110 compat_fgetln.c (1.4), "Exp", lines: +1 -1 compat_fts.c (1.3), "Exp", lines: +1 -1 compat_getsubopt.c (1.4), "Exp", lines: +1 -1 compat_ohash.c (1.6), "Exp", lines: +1 -1 compat_reallocarray.c (1.3), "Exp", lines: +1 -1 compat_sqlite3_errstr.c (1.3), "Exp", lines: +1 -1 compat_strcasestr.c (1.3), "Exp", lines: +1 -1 compat_strlcat.c (1.4), "Exp", lines: +1 -1 compat_strlcpy.c (1.4), "Exp", lines: +1 -1 compat_strsep.c (1.3), "Exp", lines: +1 -1 configure (1.11), "Exp", lines: +364 -24 mandoc.c (1.85), "Exp", lines: +2 -2 mandocdb.c (1.158), "Exp", lines: +3 -3 manpath.c (1.17), "Exp", lines: +2 -2 mansearch.c (1.44), "Exp", lines: +2 -2 preconv.c (1.8), "Exp", lines: +4 -4 read.c (1.81), "Exp", lines: +4 -4 term_ascii.c (1.31), "Exp", lines: +6 -17 Improve build system and autodetection. * Make ./configure standalone, that's what people expect. * Let people write a ./configure.local from scratch, not edit existing files. * Autodetect wchar, sqlite3, and manpath and act accordingly. * Autodetect the need for -L/usr/local/lib and -lutil. * Get rid of config.h.p{re,ost}, let ./configure only write what's needed. * Let ./configure write a Makefile.local snippet, that's quite flexible. 2014-08-14 22:33 schwarze Changed: term_ascii.c (1.30), "Exp", lines: +3 -2 Some compilers apparently worry that abort() might return and then throw a "may be used uninitialized" warning, so sprinkle some /* NOTREACHED */. No functional change. Noticed by Thomas Klausner <wiz at NetBSD dot org>. 2014-08-14 20:57 schwarze Changed: mdoc.7 (1.235), "Exp", lines: +40 -13 Clarify that .Em and .Sy are physical, not semantic markup, explain appropriate usage, and provide some examples. ok jmc@ 2014-08-14 20:43 schwarze Changed: INSTALL (1.3.2.1), "Exp", lines: +21 -36 Makefile (1.395.2.29), "Exp", lines: +6 -50 Add INSTALL, and remove WWW gunk from the Makefile, we are not going to rebuild the website from this version. 2014-08-14 20:33 schwarze Changed: configure (1.1.2.5), "Exp", lines: +2 -0 Standard output reminder to run ./configure from make, suggested by Paul Onyschuk <ptmelville at gmail dot com> (Alpine Linux) 2014-08-14 20:27 schwarze Changed: roff.7 (1.57), "Exp", lines: +3 -3 remove double word; from jmc@ 2014-08-14 04:13 schwarze Changed: apropos_db.c (1.32.2.8), "Exp", lines: +3 -3 mandocdb.c (1.49.2.18), "Exp", lines: +3 -3 test-betoh64.c (1.1.2.3), "Exp", lines: +1 -1 Cygwin support; from Yaakov Selkowitz, https://sourceforge.net/p/cygwin-ports/mdocml/ci/master/tree/ 2014-08-14 00:31 schwarze Changed: example.style.css (1.51), "Exp", lines: +2 -2 html.c (1.163), "Exp", lines: +1 -2 html.h (1.53), "Exp", lines: +1 -2 mdoc_html.c (1.198), "Exp", lines: +7 -5 style.css (1.27), "Exp", lines: +2 -2 Revert previous, as requested by kristaps@. The .Bf block can contain subblocks, so it has to render as an element that can contain flow content. But <em> cannot contain flow content, only phrasing content. Rendering .Em and .Bf differently would by unfortunate, and closing out .Bf before subblocks and re-opening it afterwards would merely complicate both the C code of the program and the generated HTML code. Besides, converting .Em to semantic HTML markup would require some content to be put into <em> and some into <i>, but we cannot automatically distinguish which is which, so strictly speaking, we can't use semantic HTML here but have to fall back to physical markup. Wonders of HTML... 2014-08-13 22:17 schwarze Changed: TODO (1.178), "Exp", lines: +5 -1 note about AT&T documenters workbench 2014-08-13 21:30 schwarze Changed: TODO (1.177), "Exp", lines: +4 -1 note about <var> 2014-08-13 20:34 kristaps Changed: html.c (1.162), "Exp", lines: +3 -1 roff.7 (1.56), "Exp", lines: +11 -5 term_ascii.c (1.29), "Exp", lines: +21 -11 term_ps.c (1.64), "Exp", lines: +25 -15 Begin cleaning up scaling units. Start with the horizontal terminal specifiers, making sure that they match up with troff. Then move on to PS, PDF, and HTML, noting that we stick to the terminal default width for "u". Lastly, fix some completely-wrong documentation and note that we diverge from troff w/r/t "u". 2014-08-13 15:25 schwarze Changed: example.style.css (1.50), "Exp", lines: +2 -2 html.c (1.161), "Exp", lines: +2 -1 html.h (1.52), "Exp", lines: +2 -1 mdoc_html.c (1.197), "Exp", lines: +5 -7 style.css (1.26), "Exp", lines: +2 -2 Use <em> for .Em and .Bf -emphasis. The vast majority of .Em in real-world manuals is stress emphasis, for which <em> is the correct markup. Admittedly, there are some instances of .Em usage for alternate quality, for which <i> would be a better match. Most of these are technical terms that neither allow semantic markup nor are keywords - for the latter, .Sy would be preferable. A typical example is that the shell breaks input into .Em words . Alternate voice or mood, which would also require <i>, is almost absent from manuals. We cannot satisfy both stress emphasis and alternate quality, so pick the one that fits more often and looks less wrong when off. Patch from Guy Harris <guy at alum dot mit dot edu>. ok joerg@ bentley@ 2014-08-12 21:35 schwarze Changed: Makefile (1.439), "Exp", lines: +2 -2 Makefile (1.395.2.28), "Exp", lines: +2 -2 typo in comment; Guy Harris <guy at alum dot mit dot edu> 2014-08-12 19:28 schwarze Changed: out.c (1.51), "Exp", lines: +2 -2 In mdoc(7) and man(7), if a width is given as a bare number without specifying a unit, the implied unit is 'n' (on the terminal, one character position; in PostScript, half of the current font size in points), not 'u' (roff output device basic unit). No functional change right now, but important for the upcoming scaling unit fixes. 2014-08-12 19:28 schwarze Changed: out.h (1.23), "Exp", lines: +2 -2 The macro SCALE_HS_INIT() is always passed the result of strlen() or an equivalent number as its argument, and strlen() measures the width of a string in characters, not in basic units. No functional change right now, but important for the upcoming scaling unit fixes. 2014-08-11 03:19 schwarze Added: test-dirent-namlen.c (1.1) Changed: Makefile (1.438), "Exp", lines: +4 -2 compat_fts.c (1.2), "Exp", lines: +16 -15 configure (1.10), "Exp", lines: +1 -0 work around lack of d_namlen and ALIGN/ALIGNBYTES on Linux 2014-08-11 02:21 schwarze Changed: config.h.pre (1.6), "Exp", lines: +3 -0 revert previous; i missed that config.h needs sys/types.h and stdio.h for itself because it uses size_t and FILE... 2014-08-11 02:05 schwarze Changed: test-fts.c (1.2), "Exp", lines: +1 -1 typo 2014-08-11 01:39 schwarze Added: compat_fts.c (1.1) compat_fts.h (1.1) test-fts.c (1.1) Changed: INSTALL (1.3), "Exp", lines: +3 -5 LICENSE (1.3), "Exp", lines: +3 -2 Makefile (1.437), "Exp", lines: +6 -5 Makefile.depend (1.4), "Exp", lines: +11 -10 NEWS (1.6), "Exp", lines: +1 -4 configure (1.9), "Exp", lines: +1 -0 mandocdb.c (1.157), "Exp", lines: +5 -1 Provide a fallback version of fts(3) for systems lacking it. I chose the OpenBSD version because it apparently contains various bugfixes that never made it into libnbcompat. To reduce size and complexity, i stripped out the features we don't need. 2014-08-11 00:31 schwarze Changed: Makefile (1.395.2.27), "Exp", lines: +3 -3 apropos.c (1.27.2.2), "Exp", lines: +3 -3 apropos_db.c (1.32.2.7), "Exp", lines: +2 -3 mandocdb.c (1.49.2.17), "Exp", lines: +1 -3 Get rid of HAVE_CONFIG_H, it is always defined; idea from libnbcompat. Include <sys/types.h> where needed, it does not belong in config.h. 2014-08-10 23:54 schwarze Changed: Makefile (1.436), "Exp", lines: +3 -3 apropos.c (1.40), "Exp", lines: +3 -3 arch.c (1.12), "Exp", lines: +3 -3 att.c (1.12), "Exp", lines: +3 -3 cgi.c (1.93), "Exp", lines: +3 -3 chars.c (1.59), "Exp", lines: +3 -3 compat_fgetln.c (1.3), "Exp", lines: +3 -2 compat_getsubopt.c (1.3), "Exp", lines: +0 -2 compat_ohash.c (1.5), "Exp", lines: +2 -2 compat_reallocarray.c (1.2), "Exp", lines: +0 -2 compat_sqlite3_errstr.c (1.2), "Exp", lines: +0 -2 compat_strcasestr.c (1.2), "Exp", lines: +0 -2 compat_strlcat.c (1.3), "Exp", lines: +0 -2 compat_strlcpy.c (1.3), "Exp", lines: +0 -2 compat_strsep.c (1.2), "Exp", lines: +0 -2 config.h.pre (1.5), "Exp", lines: +0 -3 demandoc.c (1.11), "Exp", lines: +3 -3 eqn.c (1.45), "Exp", lines: +3 -3 eqn_html.c (1.4), "Exp", lines: +3 -3 eqn_term.c (1.6), "Exp", lines: +3 -3 html.c (1.160), "Exp", lines: +1 -3 lib.c (1.11), "Exp", lines: +3 -3 main.c (1.178), "Exp", lines: +3 -3 man.c (1.138), "Exp", lines: +1 -3 man_hash.c (1.28), "Exp", lines: +1 -3 man_html.c (1.97), "Exp", lines: +1 -3 man_macro.c (1.88), "Exp", lines: +3 -3 man_term.c (1.150), "Exp", lines: +1 -3 man_validate.c (1.106), "Exp", lines: +1 -3 mandoc.c (1.84), "Exp", lines: +1 -3 mandoc_aux.c (1.4), "Exp", lines: +1 -3 mandocdb.c (1.156), "Exp", lines: +2 -3 manpage.c (1.8), "Exp", lines: +3 -3 manpath.c (1.16), "Exp", lines: +3 -3 mansearch.c (1.43), "Exp", lines: +3 -3 mansearch_const.c (1.6), "Exp", lines: +2 -3 mdoc.c (1.224), "Exp", lines: +1 -3 mdoc_argv.c (1.96), "Exp", lines: +1 -3 mdoc_hash.c (1.21), "Exp", lines: +1 -3 mdoc_html.c (1.196), "Exp", lines: +1 -3 mdoc_macro.c (1.140), "Exp", lines: +3 -3 mdoc_man.c (1.69), "Exp", lines: +3 -3 mdoc_term.c (1.276), "Exp", lines: +1 -3 mdoc_validate.c (1.244), "Exp", lines: +2 -5 msec.c (1.12), "Exp", lines: +3 -3 out.c (1.50), "Exp", lines: +1 -3 preconv.c (1.7), "Exp", lines: +2 -3 read.c (1.80), "Exp", lines: +4 -5 roff.c (1.225), "Exp", lines: +3 -3 st.c (1.11), "Exp", lines: +3 -3 tbl.c (1.30), "Exp", lines: +3 -3 tbl_data.c (1.32), "Exp", lines: +3 -3 tbl_html.c (1.12), "Exp", lines: +3 -3 tbl_layout.c (1.27), "Exp", lines: +3 -3 tbl_opts.c (1.14), "Exp", lines: +3 -3 tbl_term.c (1.28), "Exp", lines: +3 -3 term.c (1.227), "Exp", lines: +1 -3 term_ascii.c (1.28), "Exp", lines: +3 -5 term_ps.c (1.63), "Exp", lines: +1 -3 tree.c (1.54), "Exp", lines: +3 -3 vol.c (1.11), "Exp", lines: +3 -3 Get rid of HAVE_CONFIG_H, it is always defined; idea from libnbcompat. Include <sys/types.h> where needed, it does not belong in config.h. Remove <stdio.h> from config.h; if it is missing somewhere, it should be added, but i cannot find a *.c file where it is missing. 2014-08-10 17:22 tag VERSION_1_13_1 2014-08-10 17:22 schwarze Changed: INSTALL (1.2), "Exp", lines: +107 -39 New section about deployment by Kristaps. New paragraph about fts(3) by me. And various minor tweaks, some by Kristaps and some by me. 2014-08-10 16:32 schwarze Changed: NEWS (1.5), "Exp", lines: +81 -1 1.13.1 release notes 2014-08-10 16:21 schwarze Changed: Makefile.depend (1.3), "Exp", lines: +1 -1 sync after adding config.h to mansearch_const.c; committing on behalf of kristaps@ because i want to release now 2014-08-10 02:45 schwarze Changed: Makefile (1.435), "Exp", lines: +5 -4 configure (1.8), "Exp", lines: +2 -0 Clarifications in comments and standard output suggested by Paul Onyschuk <ptmelville at gmail dot com> (Alpine Linux) 2014-08-09 14:24 schwarze Changed: TODO (1.176), "Exp", lines: +5 -1 mansearch.c (1.42), "Exp", lines: +3 -2 mmap(2) requires MAP_PRIVATE ^ MAP_SHARED for flags; found by kristaps@ on Mac OS X 2014-08-09 14:05 schwarze Changed: mansearch_const.c (1.5), "Exp", lines: +5 -1 missing #include "config.h", hence missing definition of __BEGIN_DECLS; found by Thomas Klausner <wiz at NetBSD> on SunOS 5.11 2014-08-08 23:47 schwarze Changed: Makefile (1.434), "Exp", lines: +3 -2 configure (1.7), "Exp", lines: +2 -3 Do not hardcode stuff in ./configure that is actually user-configurable in the Makefile; instead, pass it down via the environment just like CFLAGS. Nice suggestion from kristaps@ hoping to make MacOS X happier. 2014-08-08 23:43 schwarze Changed: compat_ohash.h (1.5), "Exp", lines: +1 -2 Delete the __attribute__((__bounded__(...))) annotation. That's an OpenBSD-specific gcc-4.2.1 security extension. It's certainly a bad idea to use such stuff in a compatibility header, as other operating systems just won't understand it. 2014-08-08 20:34 schwarze Changed: Makefile (1.433), "Exp", lines: +4 -3 add INSTALL and bump VERSION 2014-08-08 20:04 schwarze Changed: TODO (1.175), "Exp", lines: +3 -2 mention neatroff 2014-08-08 16:45 schwarze Added: INSTALL (1.1) provide some instructions for manual installation 2014-08-08 16:38 schwarze Changed: mdoc.7 (1.234), "Exp", lines: +10 -5 When .Sm is called without an argument, groff toggles the spacing mode, so let us do the same for compatibility. Using this feature is of course not recommended except in manual page obfuscation contests. 2014-08-08 01:52 schwarze Changed: mdoc.7 (1.233), "Exp", lines: +18 -20 some corrections and improvements with respect to prologue macros; found while working on mandoc(1) messages 2014-08-08 01:50 schwarze Changed: mandoc.1 (1.106), "Exp", lines: +843 -28 document warning and error messages, using quite some feedback from jmc@; more cleanup is likely to happen when it's in 2014-08-06 15:09 schwarze Changed: man_validate.c (1.105), "Exp", lines: +12 -9 mandoc.h (1.152), "Exp", lines: +8 -5 mandocdb.c (1.155), "Exp", lines: +4 -3 mdoc.c (1.223), "Exp", lines: +22 -39 mdoc_html.c (1.195), "Exp", lines: +9 -4 mdoc_man.c (1.68), "Exp", lines: +4 -3 mdoc_term.c (1.275), "Exp", lines: +6 -2 mdoc_validate.c (1.243), "Exp", lines: +74 -82 read.c (1.79), "Exp", lines: +8 -5 Bring the handling of defective prologues even closer to groff, in particular relaxing the distinction between prologue and body and further improving messages. * The last .Dd wins and the last .Os wins, even in the body. * The last .Dt before the first body macro wins. * Missing title in .Dt defaults to UNTITLED. Warn about it. * Missing section in .Dt does not default to 1. But warn about it. * Do not warn multiple times about the same mdoc(7) prologue macro. * Warn about missing .Os. * Incomplete .TH defaults to empty strings. Warn about it. 2014-08-05 17:07 schwarze Deleted: man.cgi.7 (1.12.2.1) remove another leftover file 2014-08-05 16:12 schwarze Changed: Makefile.depend (1.2), "Exp", lines: +2 -0 sync after sqlite3_errstr() compat addition 2014-08-05 16:03 schwarze Changed: config.h.pre (1.4), "Exp", lines: +1 -1 test-strcasestr.c (1.2), "Exp", lines: +4 -0 strcasestr() wants _GNU_SOURCE on Linux 2014-08-05 16:00 schwarze Changed: test-mmap.c (1.5), "Exp", lines: +1 -0 NULL is in <stddef.h>; found on Linux 2014-08-05 15:29 schwarze Changed: cgi.c (1.92), "Exp", lines: +2 -1 mansearch.3 (1.2), "Exp", lines: +2 -1 mansearch.h uses uint64_t, so it needs stdint.h; found on Linux 2014-08-05 14:43 schwarze Changed: mandocdb.c (1.154), "Exp", lines: +5 -5 mansearch.c (1.41), "Exp", lines: +6 -6 Absurdly, the return value of sqlite3_column_text() is "const unsigned char *", which causes warnings with GCC on Linux. Explicitly cast to "const char *" to avoid this. Issue noticed by kristaps@. 2014-08-05 12:50 schwarze Added: compat_sqlite3_errstr.c (1.1) test-sqlite3_errstr.c (1.1) Changed: Makefile (1.432), "Exp", lines: +4 -1 config.h.post (1.11), "Exp", lines: +3 -0 configure (1.6), "Exp", lines: +2 -0 Since old SQLite versions do not have sqlite3_errstr(), provide a dummy fallback implementation. Do not bother to decode the error, SQLite error codes are not useful enough for that to be worthwhile. Note that using sqlite3_errmsg(db) would be a bad idea: On malloc() failure, db is NULL, which would cause a segfault. Issue noticed by kristaps@. 2014-08-05 12:34 schwarze Changed: mansearch.c (1.40), "Exp", lines: +4 -1 If an old SQLite version doesn't provide SQLITE_DETERMINISTIC, simply ignore it, as using it is merely an optimization. Issue noticed by kristaps@. 2014-08-05 11:19 schwarze Changed: Makefile (1.395.2.26), "Exp", lines: +5 -4 merge portability fix from HEAD 2014-08-05 11:19 schwarze Changed: Makefile (1.431), "Exp", lines: +5 -4 Portability fix: * POSIX syntax is 'include Makefile.depend', not '.include "Makefile.depend"' * gmake(1) runs the build rule for the included file (duh), so delete the rule * consequently, we have to mark the 'depend' maintainer target .PHONY * as it's now .PHONY anyway, drop some prerequisites that are now useless Issue noticed by kristaps@. 2014-08-05 05:51 schwarze Changed: Makefile (1.395.2.25), "Exp", lines: +9 -2 Split mandoc_escape(3), mandoc_malloc(3), and mchars_alloc(3) out of mandoc(3), adding lots of new information. 2014-08-05 05:48 schwarze Added: mandoc_escape.3 (1.1) mandoc_malloc.3 (1.1) mchars_alloc.3 (1.1) Changed: Makefile (1.430), "Exp", lines: +9 -2 mandoc.3 (1.25), "Exp", lines: +93 -181 Sync library documentation with reality. Split mandoc_escape(3), mandoc_malloc(3), and mchars_alloc(3) out of mandoc(3), adding lots of new information. 2014-08-05 05:27 schwarze Added: Makefile.depend (1.1) Changed: Makefile (1.429), "Exp", lines: +79 -95 Makefile (1.395.2.24), "Exp", lines: +72 -85 Makefile.depend (1.1.2.1), "Exp", lines: +4 -8 Switch to autogenerated dependency rules; they are less error-prone. Provide a maintainer target to regenerate them. 2014-08-05 03:15 schwarze Changed: Makefile (1.395.2.23), "Exp", lines: +34 -13 Properly partition the build system and install some missing stuff: * Introduce targets base-build and db-build. * Introduce targets base-install and db-install. * Introduce a BUILD_TARGETS variable to contain db-build. * Introduce an INSTALL_TARGETS variable and fill it using BUILD_TARGETS. * Install the apropos(1) and mandocdb(8) binaries. * Install whatis(1) as a hard link to apropos(1). * Install the apropos(1), whatis(1), and mandocdb(8) manuals. * Install mandoc_aux.h. 2014-08-05 03:02 schwarze Changed: Makefile (1.428), "Exp", lines: +56 -15 Properly partition the build system and install some missing stuff: * Introduce targets base-build, db-build, cgi-build. * Introduce targets base-install, db-install, cgi-install. * Introduce a BUILD_TARGETS variable to contain db-build and cgi-build. * Introduce an INSTALL_TARGETS variable and fill it using BUILD_TARGETS. * Install the whatis(1) and makewhatis(8) binaries. * Install the apropos(1), whatis(1), and makewhatis(8) manuals. * Install mandoc_aux.h. * Do not build manpage(1) by default. 2014-08-05 01:46 schwarze Changed: Makefile (1.395.2.22), "Exp", lines: +8 -4 Various minor corrections: * Do not install programs and libs root-writeable. * Add missing test-strcasestr.c and test-strsep.c to TESTSRCS. * Add missing mandoc_html.3 to SRCS. * Add missing mandoc_html.3.html to WWW_MANS. 2014-08-05 01:45 schwarze Changed: Makefile (1.427), "Exp", lines: +17 -6 Various minor corrections: * Do not unconditionally use -I/usr/local/include and -L/usr/local/lib. * Do not install programs and libs root-writeable. * Add missing test-strcasestr.c and test-strsep.c to TESTSRCS. * Add missing cgi.h.example and mandoc_html.3 to SRCS. * Add missing mandoc_html.3.html to WWW_MANS. 2014-08-05 01:07 schwarze Changed: Makefile (1.426), "Exp", lines: +35 -20 Makefile (1.395.2.21), "Exp", lines: +20 -12 sort user settings; no functional change 2014-08-05 00:42 schwarze Deleted: catman.8 (1.5.2.1) catman.c (1.11.2.3) cgi.c (1.51.2.1) man-cgi.css (1.6.2.1) Changed: Makefile (1.395.2.20), "Exp", lines: +4 -47 Remove the old man.cgi. Running that would not be a responsible thing to do, nowadays. 2014-08-04 23:44 schwarze Deleted: compat_strnlen.c (1.2) test-strnlen.c (1.2) compat_strnlen.c (1.1.2.1) test-strnlen.c (1.1.2.1) Changed: Makefile (1.425), "Exp", lines: +1 -4 config.h.post (1.10), "Exp", lines: +0 -3 configure (1.5), "Exp", lines: +0 -1 Makefile (1.395.2.19), "Exp", lines: +1 -4 config.h.post (1.6.2.7), "Exp", lines: +0 -3 configure (1.1.2.4), "Exp", lines: +0 -1 remove strnlen(3) compat, we no longer use it 2014-08-02 00:02 schwarze Changed: mdoc_validate.c (1.242), "Exp", lines: +150 -128 Simplify by allowing only one post-handler. Saves 36 static arrays and 10 lines of code at the expense of only five new trivial static functions. No functional change. 2014-08-01 22:22 schwarze Changed: mdoc_validate.c (1.241), "Exp", lines: +29 -47 Simplify by allowing only one pre-handler. Saves 12 static arrays and 19 lines of code. No functional change. 2014-08-01 21:24 schwarze Changed: libman.h (1.63), "Exp", lines: +1 -2 man.c (1.137), "Exp", lines: +5 -4 man_validate.c (1.104), "Exp", lines: +69 -120 Simplify man(7) validation: Drop pre-handlers, they were almost unused. Drop the needless complexity of allowing more than one post-handler. This saves one internal interface function, one static function, one private struct definition, sixteen static arrays, and 45 lines of code. No functional change. 2014-08-01 19:38 schwarze Changed: term.c (1.226), "Exp", lines: +3 -3 Fix floating point handling: When converting double to size_t, properly round to the nearest M (=0.001m), which is the smallest available unit. This avoids weirdness like (size_t)(0.6 * 10.0) == 5 by instead calculating (size_t)(0.6 * 10.0 + 0.0005) == 6, and so it fixes the indentation of the readline(3) manual. 2014-08-01 19:25 schwarze Changed: man_html.c (1.96), "Exp", lines: +2 -2 mdoc_html.c (1.194), "Exp", lines: +3 -3 out.c (1.49), "Exp", lines: +3 -3 term.c (1.225), "Exp", lines: +7 -7 term_ascii.c (1.27), "Exp", lines: +7 -7 term_ps.c (1.62), "Exp", lines: +4 -4 Clarity with respect to floating point handling: Write double constants as double rather than integer literals. Remove useless explicit (double) cast done at one place and nowhere else. No functional change. 2014-08-01 17:40 schwarze Changed: libman.h (1.62), "Exp", lines: +1 -5 libmdoc.h (1.88), "Exp", lines: +1 -5 man_validate.c (1.103), "Exp", lines: +5 -3 mdoc_validate.c (1.240), "Exp", lines: +5 -3 demacrify: get rid of man_nmsg(), man_pmsg(), mdoc_nmsg(), mdoc_pmsg() 2014-08-01 17:27 schwarze Changed: man.c (1.136), "Exp", lines: +3 -3 man_validate.c (1.102), "Exp", lines: +10 -6 mandoc.h (1.151), "Exp", lines: +30 -30 mdoc.c (1.222), "Exp", lines: +3 -3 mdoc_macro.c (1.139), "Exp", lines: +2 -2 mdoc_validate.c (1.239), "Exp", lines: +45 -33 read.c (1.78), "Exp", lines: +9 -9 roff.c (1.224), "Exp", lines: +4 -3 mention requests and macros in more messages 2014-08-01 15:08 schwarze Changed: mandoc.h (1.150), "Exp", lines: +1 -2 read.c (1.77), "Exp", lines: +1 -2 roff.c (1.223), "Exp", lines: +18 -17 Dynamically allocate the stack of roff(7) .ie condition values and thus get rid of the last useless fatal error. 2014-07-31 09:22 schwarze Changed: mandoc.h (1.149), "Exp", lines: +3 -2 mdoc_validate.c (1.238), "Exp", lines: +22 -10 read.c (1.76), "Exp", lines: +3 -2 Split MANDOCERR_IGNARGV into one message for .An and one for .Bl and report the macro name and argument. 2014-07-31 00:41 schwarze Changed: mandoc.h (1.148), "Exp", lines: +1 -2 mdoc_validate.c (1.237), "Exp", lines: +13 -21 read.c (1.75), "Exp", lines: +1 -2 In .Bl -column, if some of the column width declarations are given right after the -column argument and some at the very end of the argument list, after some other arguments like -compact, concatenate the column lists. This gets rid of one of the last useless FATAL errors and actually shortens the code by a few lines. This fixes an issue introduced more than five years ago, at first causing an assert() since mdoc_action.c rev. 1.14 (June 17, 2009), then later a FATAL error since mdoc_validate rev. 1.130 (Nov. 30, 2010), and marked as "TODO" ever since. 2014-07-30 23:38 schwarze Changed: mandoc.h (1.147), "Exp", lines: +1 -2 mdoc_validate.c (1.236), "Exp", lines: +6 -12 read.c (1.74), "Exp", lines: +1 -2 Remove the useless FATAL error "argument count wrong, violates syntax". The last remaining instance was .It in .Bl -column with more than one excessive .Ta. However, simply downgrading from FATAL to ERROR, it just works fine, almost the same way as in groff, without any other changes. 2014-07-30 23:01 schwarze Changed: man_macro.c (1.87), "Exp", lines: +30 -8 man_validate.c (1.101), "Exp", lines: +4 -22 Improve handling of next-line scope broken by end of file. Detect the condition earlier, report in the error message which block is broken, and delete the broken block. Consequently, empty section headers can no longer happen. 2014-07-30 21:18 schwarze Changed: libman.h (1.61), "Exp", lines: +1 -3 libmdoc.h (1.87), "Exp", lines: +1 -2 man.c (1.135), "Exp", lines: +8 -45 man_macro.c (1.86), "Exp", lines: +1 -8 mdoc.c (1.221), "Exp", lines: +7 -35 garbage collect three unused global flags; no functional change 2014-07-30 20:06 schwarze Changed: libman.h (1.60), "Exp", lines: +1 -2 man.c (1.134), "Exp", lines: +7 -12 Simplify: replace one global flag by one local variable. No functional change. 2014-07-30 17:06 schwarze Changed: mandoc.h (1.146), "Exp", lines: +2 -2 mdoc_macro.c (1.138), "Exp", lines: +19 -1 mdoc_term.c (1.274), "Exp", lines: +5 -2 mdoc_validate.c (1.235), "Exp", lines: +4 -54 read.c (1.73), "Exp", lines: +2 -2 Get rid of the useless FATAL error "child violates parent syntax". When finding items outside lists, simply skip them and throw an ERROR. Handle subsections before the first section instead of bailing out. 2014-07-30 14:50 schwarze Changed: mandoc.h (1.145), "Exp", lines: +1 -3 mdoc_validate.c (1.234), "Exp", lines: +16 -8 read.c (1.72), "Exp", lines: +22 -18 Remove two useless FATAL errors. When a file contains neither text nor macros, treat it as an empty document. When the mdoc(7) document prologue is incomplete, use some default values. 2014-07-30 12:58 schwarze Changed: mandoc.h (1.144), "Exp", lines: +4 -4 mdoc_validate.c (1.233), "Exp", lines: +3 -2 read.c (1.71), "Exp", lines: +4 -4 roff.c (1.222), "Exp", lines: +2 -2 better name and wording for the last two non-generic errors 2014-07-30 00:19 schwarze Changed: mandoc.h (1.143), "Exp", lines: +3 -2 mdoc_html.c (1.193), "Exp", lines: +31 -25 mdoc_man.c (1.67), "Exp", lines: +95 -10 mdoc_term.c (1.273), "Exp", lines: +32 -23 mdoc_validate.c (1.232), "Exp", lines: +17 -26 read.c (1.70), "Exp", lines: +3 -2 Various improvements related to .Ex and .Rv: * let .Nm fall back to the empty string, not to UNKNOWN * never let .Rv copy an argument from .Nm * avoid spurious \fR after empty .Nm in -Tman * correct handling of .Ex and .Rv in -Tman * correct the wording of the output for .Rv without arguments * use non-breaking spaces in .Ex and .Rv output where required * split MANDOCERR_NONAME into a warning for .Ex and an error for .Nm 2014-07-29 15:20 schwarze Changed: TODO (1.174), "Exp", lines: +79 -18 move some things here from my private TODO list, and remove some items that have already been taken care of 2014-07-29 13:58 schwarze Changed: mdoc.h (1.131), "Exp", lines: +2 -2 mdoc_term.c (1.272), "Exp", lines: +14 -3 mdoc_validate.c (1.231), "Exp", lines: +2 -2 Partial implementation of .Bd -centered. In groff, .Bd -centered operates in fill mode, which is relatively hard to implement, while this implementation operates in non-fill mode so far. As long as you pay attention that your lines do not overflow, it works. To make sure that rendering is the same for mandoc and groff, it is recommended to insert .br between lines for now. This implementation will need improvement later. 2014-07-27 21:53 schwarze Changed: term_ps.c (1.61), "Exp", lines: +6 -8 code readability; no functional change 2014-07-27 21:52 schwarze Changed: term_ascii.c (1.26), "Exp", lines: +7 -2 Even for UTF-8 output, a non-breaking space character has the same width as a normal space character, and not width 0. Bug reported by bentley@. 2014-07-25 21:05 schwarze Changed: cgi.c (1.91), "Exp", lines: +9 -35 Choosing the right encoding is a tricky business... Printing query strings for URIs *always* needs URI-encoding, and when embedding the URI into an HTML document, it needs replacement of the "&" separators by "&" *in addition to that*, not instead. Delete the function html_primtquery(), it was completely wrong. You can see the badness by entering "mandoc &sec=2" into the query input box before this patch and click "Submit". You come to the right page at first (...man.cgi?query=mandoc+%26sec%3D2&apropos=0&sec=0&...), but now the link to mandoc(1) is wrong: ...mandoc.1?query=mandoc &sec=2&... Clicking on that, the "&sec=2" disappears from the query input box and suddenly you have the first dropdown set to "2 - System Calls". Oops. 2014-07-25 20:09 schwarze Changed: cgi.c (1.90), "Exp", lines: +13 -8 Sort the URI keys for .Xr links in the same order used by the search form, and leave out the manpath when it is the default. For building the HTML formatter options, do not use a static buffer. 2014-07-25 19:37 schwarze Changed: cgi.c (1.89), "Exp", lines: +3 -2 oops, we must not try to validate a manpath we don't have; fixing an oversight introduced in rev. 1.77 2014-07-25 18:20 schwarze Changed: cgi.c (1.88), "Exp", lines: +19 -17 We cannot easily control the order of the QUERY_STRING keys generated by the search form, it's just the order of the fields in the form. Actually, that's not too bad; the generated URI resembles the generating form. To minimize confusion for people looking at URIs, give the keys in the same order when generating URIs for search listings and search redirections, the latter being used instead of search listings that would have only one single entry. Also, if the manpath is the default, remove it form the generated URIs. 2014-07-25 17:52 schwarze Changed: cgi.c (1.87), "Exp", lines: +3 -2 In generated .Xr links, avoid double encoding of ampersands and avoid empty arch= keys. 2014-07-25 17:34 schwarze Changed: cgi.c (1.86), "Exp", lines: +12 -12 Even though this is not XHTML yet, remove some gratuitious violations of XHTML syntax. Also add some cosmetic newlines to the HTML code. 2014-07-25 16:56 schwarze Changed: cgi.c (1.85), "Exp", lines: +17 -13 The names of all other struct query memebers match the corresponding QUERY_STRING keys, so rename "expr" to "query". Also add some missing function prototypes. No functional change. 2014-07-25 16:43 schwarze Changed: cgi.c (1.84), "Exp", lines: +20 -15 clean up pg_show() to not modify a string returned from getenv(3) 2014-07-25 16:07 schwarze Changed: cgi.c (1.83), "Exp", lines: +104 -49 Rewrite http_parse() completely: 1. Make sure the last occurrence of each key is used, even if it is empty, in which case it resets the value to the default. 2. When there is an HTTP encoding error, skip the affected key-value pair only, but not all subsequent key-value pairs. 3. Do not modify a string returned from getenv(3). 4. Do not assume the NULL pointer is all null bits. 2014-07-24 20:30 schwarze Changed: cgi.c (1.82), "Exp", lines: +1 -12 mansearch.c (1.39), "Exp", lines: +21 -1 mansearch.h (1.15), "Exp", lines: +2 -1 Sort result pages first by section number, then by name. By moving the sort from cgi.c to mansearch.c, we get two advantages: Easier access to the data needed for sorting, in particular the section number, and the apropos(1) command line utility profits as well. Feature requested by deraadt@. 2014-07-24 08:26 schwarze Changed: cgi.c (1.81), "Exp", lines: +26 -2 Provide a dropdown entry "All Architectures" and make it the default. Still, amd64 remains the default in the following sense: If a man(1) mode search returns more than one page of the same name, prefer amd64 over other architectures for immediate display. ok deraadt@ daniel@ 2014-07-24 08:26 schwarze Changed: TODO (1.173), "Exp", lines: +12 -1 improve FATAL handling in makewhatis(8) 2014-07-23 18:13 schwarze Added: mandoc_html.3 (1.1) Partially document the core of the HTML formatter. Stuff i learnt during my audit for XSS vulnerabilities. 2014-07-23 15:00 schwarze Changed: chars.c (1.58), "Exp", lines: +13 -2 html.c (1.159), "Exp", lines: +38 -27 Security fix: After decoding numeric (\N) and one-character (\<, \> etc.) character escape sequences, do not forget to HTML-encode the resulting ASCII character. Malicious manuals were able to smuggle XSS content by roff-escaping the HTML-special characters they need. That's a classic bug type in many web applications, actually... :-( Found myself while auditing the HTML formatter for safe output handling. 2014-07-22 22:41 schwarze Changed: html.c (1.158), "Exp", lines: +5 -2 Security fix: The function print_encode() is used both for plain text and for quoted attribute values. Escape the '"' character such that malicious manuals cannot pull off XSS attacks using malformed .Lk, .Mt, .%U, and .UR macros (and maybe others) to trigger the latter case. In the former case, escaping does no harm. Issue found by Sebastien Marie <semarie-openbsd at latrappe dot fr>. 2014-07-22 18:14 schwarze Changed: cgi.c (1.80), "Exp", lines: +42 -2 man.cgi.8 (1.9), "Exp", lines: +40 -2 Security fix to prevent XSS attacks: Restrict the character set of strings passed into html_alloc(), in particular architecture names that come from the QUERY_STRING, but also SCRIPT_NAME and manpath.conf content for additional safety, and bail out safely on violations. Issue reported by Sebastien Marie <semarie-openbsd at latrappe dot fr>. 2014-07-21 22:33 schwarze Changed: cgi.c (1.79), "Exp", lines: +10 -6 fix a minibug reported by kristaps@: preserve manpath and arch in .Xr links 2014-07-21 15:45 schwarze Changed: cgi.c (1.78), "Exp", lines: +3 -3 cgi.h.example (1.3), "Exp", lines: +2 -1 man.cgi.8 (1.8), "Exp", lines: +7 -2 Kristaps points out that the current HTTP/1.1 draft standard (RFC 2616) requires the Location: response-header field to be an absolute URI (14.30), and only the most recent proposed standard (RFC 7231), which is barely a month old, allows a relative Location: (7.1.2). While most modern browsers appear to support relative Location: headers, some may not, and it's maybe a bit early to rely on relative Location: headers. I'm not going back to the HTTP_HOST or SERVER_NAME CGI variables, though. While some CGI programs certainly require those, in which case both the CGI programmer and the web server admin have to be very careful to keep the system secure and reliable, man.cgi(8) does not really need them. We always know at compile time which domain we are running for, and for man.cgi(8), security and reliability are definitely much more important than flexibility. So make HTTP_HOST a compile-time definition for now. 2014-07-19 13:15 schwarze Changed: cgi.c (1.77), "Exp", lines: +34 -5 Security fix: Validate the manpath up front and report a Bad Request if it is not listed in manpath.conf, such that clients can't probe which directories exist on the server. In case of configuration errors, consistently report Internal Server Error without disclosing any further information. Partially based on a patch from Sebastien Marie <semarie-openbsd at latrappe dot fr>, but avoiding a couple of issues with that patch and approaching the issue in a somewhat more rigorous way. 2014-07-19 11:35 schwarze Changed: cgi.c (1.76), "Exp", lines: +29 -2 Security fix: Validate the name of the file to show before opening it. Only allow relative filenames starting with "man" or "cat" and containing neither "/.." nor "../". While here, correct the condition discarding an initial "./". Vulnerability found by Sebastien Marie <semarie-openbsd at latrappe dot fr>. Many thanks for sending a patch; however, i did not use it but made the checks even stricter. 2014-07-18 19:03 schwarze Changed: cgi.c (1.75), "Exp", lines: +3 -7 man.cgi.8 (1.7), "Exp", lines: +1 -6 Do not use the HTTP_HOST CGI variable, just make the HTTP redirect Location: relative. Less user input is good, it reduces the attack surface. Besides, this removes one global variable and 4 lines of code. Patch from Sebastien Marie <semarie-openbsd at latrappe dot fr>. 2014-07-18 14:46 schwarze Changed: cgi.c (1.74), "Exp", lines: +13 -3 When the MAN_DIR/manpath.conf configuration file does not exist or is empty, log the problem, hand the pg_error_internal() error page to the client, and exit(3) in a controlled way instead of stumbling on and segfaulting later. Patch from Sebastien Marie <semarie-openbsd at latrappe dot fr>, messages tweaked by me. 2014-07-13 15:38 schwarze Changed: cgi.c (1.73), "Exp", lines: +16 -5 cgi.h.example (1.2), "Exp", lines: +1 -0 man.cgi.8 (1.6), "Exp", lines: +57 -22 Compatibility hack for the old "manpath=OpenBSD<blank>" query parameter format; unfortunate, more than 400 links needing this are scattered all around the www.openbsd.org website, and CVSweb needs this as well. 2014-07-13 12:55 schwarze Changed: cgi.c (1.72), "Exp", lines: +22 -23 Make the calltree a bit easier to understand by giving the functions that call resp_begin_html() names starting with "pg_" and those called after resp_begin_html() names with "resp_". No functional change, purely renaming functions. 2014-07-13 12:45 schwarze Changed: cgi.c (1.71), "Exp", lines: +3 -1 make source vs. formatted guessing a bit more robust 2014-07-13 12:31 schwarze Changed: cgi.c (1.70), "Exp", lines: +47 -21 By popular demand, bring man.cgi default mode closer to what man(1) does: Even when there are multiple pages with the same name in different sections, show one of them, using the same priorities as in the default man.conf(5) file. 2014-07-13 10:24 schwarze Changed: mdoc.7 (1.232), "Exp", lines: +21 -9 Unconfuse .Fa documentation: You can use .Fa with just a type, without a name, but when you give both, which is the usual case, they need to go into one single .Fa argument. Observed by bentley@; ok jmc@ bentley@. 2014-07-13 09:39 schwarze Changed: Makefile (1.424), "Exp", lines: +5 -1 cgi.c (1.69), "Exp", lines: +5 -5 man.cgi.8 (1.5), "Exp", lines: +6 -2 Install the manuals of the web interface below the same directory as manpath.conf, such that we do not need to mix our own documentation into the documentation we are serving, which may not even be possible if the latter is updated automatically. Based on an idea by beck@. 2014-07-13 00:19 schwarze Changed: man.cgi.8 (1.4), "Exp", lines: +58 -58 update after recent code changes 2014-07-12 23:46 schwarze Changed: cgi.c (1.68), "Exp", lines: +97 -28 Polish the search form using feedback from beck@ and others, in particular introduce a section dropdown and an architecture dropdown. 2014-07-12 23:41 schwarze Changed: man.cgi.8 (1.3), "Exp", lines: +3 -3 Polish the search form using feedback from beck@ and others, in particular introduce a section dropdown and an architecture dropdown. 2014-07-12 18:32 schwarze Added: cgi.h.example (1.1) Changed: Makefile (1.423), "Exp", lines: +6 -2 cgi.c (1.67), "Exp", lines: +8 -18 No need for run-time configuration, add minimal compile-time configuration facilities, just two paths and two HTML strings. Show the title on all pages, not just the index page. 2014-07-12 17:21 schwarze Changed: cgi.c (1.66), "Exp", lines: +27 -100 Simplify: Delete 74 lines of code including one enum type, one global lookup table, two functions, two function arguments, one struct member, one local variable, and the "search/" and "show/" part of the URIs, all without losing functionality. 2014-07-12 16:14 schwarze Changed: cgi.c (1.65), "Exp", lines: +35 -38 Start fixing issues that beck@ helped find: Distinguish between man(1) and apropos(1) mode by adding back the classical QUERY_STRING variable "apropos=". Change the default back to "apropos=0". Control it by adding a HTML <SELECT> element for it. Rename the "expr=" QUERY_STRING variable back to its classical name "query=", i don't see how the new name is better than the classical one. While here, drop the concept of a "legacy mode". Simply continue to support the features, and use what we consider best. 2014-07-12 14:00 schwarze Changed: mansearch.c (1.38), "Exp", lines: +51 -23 mansearch.h (1.14), "Exp", lines: +3 -2 Fix whatis(1) to correctly match words instead of any substrings. While here, also provide an internal mode (MANSEARCH_MAN) to match complete names, to be used by man.cgi(8). 2014-07-12 01:55 schwarze Changed: cgi.c (1.64), "Exp", lines: +9 -8 fix the two manual links on the index page 2014-07-11 22:27 schwarze Changed: cgi.c (1.63), "Exp", lines: +9 -7 merge OpenBSD rev. 1.3 by tedu@: make http decode linear time. also remove a redundant null check. 2014-07-11 22:25 schwarze Changed: cgi.c (1.62), "Exp", lines: +10 -9 merge OpenBSD rev. 1.2 by tedu@: http headers must end lines with CRLF. 2014-07-11 21:30 schwarze Changed: man.cgi.8 (1.2), "Exp", lines: +10 -2 add HISTORY section 2014-07-10 00:52 schwarze Changed: cgi.c (1.61), "Exp", lines: +6 -3 Link to the new man.cgi(8) manual, now that we have it! :-) While here, s/satisfy/match/ when talking about queries. 2014-07-10 00:31 schwarze Deleted: man.cgi.7 (1.14) Added: man.cgi.8 (1.1) Changed: Makefile (1.422), "Exp", lines: +3 -3 Full rewrite of the man.cgi(8) manual. Almost everything in the old man.cgi(7) was outdated in one way or another - catman, catman.conf, CACHE_DIR, /cache, manroots, replacing '/' with spaces, /tmp... Instead, document the HTML and URI interfaces, the output and the setup, and complete the listings of ENVIRONMENT variables and FILES. Using section 8 instead of section 7 because that's the usual place for CGI programs, see for example bgplg(8) and slowcgi(8). 2014-07-09 17:03 schwarze Changed: cgi.c (1.60), "Exp", lines: +11 -3 some sugar for the index page 2014-07-09 16:23 schwarze Changed: cgi.c (1.59), "Exp", lines: +51 -50 Clean up error reporting: * Consistent naming and use of resp_* functions. * Split resp_noresult() out of resp_search() and reuse it. * Log information about internal errors. * And some minor fixes. 2014-07-09 14:18 schwarze Changed: cgi.c (1.58), "Exp", lines: +48 -45 namespace cleanups: CGI variable: s/CACHE_DIR/MAN_DIR/ because it's static, not a cache default MAN_DIR: /cache/man.cgi/ -> /man/ see above global variable: s/cache/mandir/ see above global variable: s/css/cssdir/ for consistency with mandir global variable: s/host/httphost/ for consistency with HTTP_HOST global variable: s/progname/scriptname/ for consistency with SCRIPT_NAME struct query: member s/manroot/manpath/ for consistency with QUERY_STRING 2014-07-09 12:09 schwarze Changed: cgi.c (1.57), "Exp", lines: +3 -10 remove obsolete __sun includes and improve some whitespace and comments 2014-07-09 11:34 schwarze Changed: cgi.c (1.56), "Exp", lines: +3 -2 set a reasonable default for .Os 2014-07-09 11:31 schwarze Changed: libmandoc.h (1.42), "Exp", lines: +3 -2 libmdoc.h (1.86), "Exp", lines: +2 -2 mandoc.h (1.142), "Exp", lines: +3 -2 mdoc.c (1.220), "Exp", lines: +2 -2 read.c (1.69), "Exp", lines: +3 -3 mark defos as const; nobody needs to change it, and it is occasionally useful to be able to pass literal strings 2014-07-09 11:28 schwarze Changed: man_macro.c (1.85), "Exp", lines: +1 -3 delete forgotten, obsolete rew_warn() prototype 2014-07-09 09:27 schwarze Changed: cgi.c (1.55), "Exp", lines: +3 -1 oops, forgot to trim the newline character 2014-07-09 09:19 schwarze Changed: cgi.c (1.54), "Exp", lines: +14 -28 Simplify pathgen() even more. Let manpath.conf be a plain text list of the directories to use. As a bonus, this makes the order configurable. Get rid of <dirent.h>, opendir(3), readdir(3), stat(2). 2014-07-09 08:53 schwarze Changed: cgi.c (1.53), "Exp", lines: +33 -13 include manpath= when printing queries, and omit empty parameters 2014-07-09 08:20 schwarze Changed: mandoc_aux.c (1.3), "Exp", lines: +5 -1 This one needs "config.h", too. 2014-07-09 07:30 schwarze Changed: Makefile (1.421), "Exp", lines: +17 -2 cgi.c (1.52), "Exp", lines: +85 -377 Switch over man.cgi to SQLite. While here: * Simplify pathgen(), just use the subdirs of the cache dir. * Simplify URI paths, just use show/<manpath>/<filename>. * Drop struct paths, just use plain strings. * Garbage collect unused headers. 2014-07-07 21:36 schwarze Changed: man.c (1.133), "Exp", lines: +3 -3 man_macro.c (1.84), "Exp", lines: +4 -3 man_validate.c (1.100), "Exp", lines: +4 -5 mandoc.h (1.141), "Exp", lines: +11 -8 mdoc_macro.c (1.137), "Exp", lines: +10 -6 read.c (1.68), "Exp", lines: +9 -6 roff.c (1.221), "Exp", lines: +25 -16 Clean up ERROR messages related to document structure and macros: Hierarchical naming and mention macro names in messages. 2014-07-07 19:18 schwarze Changed: libman.h (1.59), "Exp", lines: +2 -3 man.c (1.132), "Exp", lines: +4 -4 man_macro.c (1.83), "Exp", lines: +22 -46 Simplify man_unscope(), removing 18 lines of code, that is, removing one function argument, one function definition, three function invocations and two pointless assert()s. No functional change. 2014-07-07 16:12 schwarze Changed: mandoc.h (1.140), "Exp", lines: +2 -2 mdoc_validate.c (1.230), "Exp", lines: +12 -35 read.c (1.67), "Exp", lines: +2 -2 no need to delete any content from .Rs blocks, and downgrade the related message from ERROR to WARNING 2014-07-07 15:03 schwarze Changed: mandoc.h (1.139), "Exp", lines: +1 -2 mdoc.c (1.219), "Exp", lines: +1 -22 mdoc_term.c (1.271), "Exp", lines: +5 -2 read.c (1.66), "Exp", lines: +1 -2 no need to skip content before first section header 2014-07-07 11:35 schwarze Changed: mandoc.h (1.138), "Exp", lines: +1 -2 read.c (1.65), "Exp", lines: +1 -2 roff.7 (1.55), "Exp", lines: +15 -14 roff.c (1.220), "Exp", lines: +56 -34 implement .dei and .ami 2014-07-06 19:09 schwarze Changed: eqn.c (1.44), "Exp", lines: +2 -2 man.c (1.131), "Exp", lines: +7 -4 man_validate.c (1.99), "Exp", lines: +3 -2 mandoc.c (1.83), "Exp", lines: +3 -3 mandoc.h (1.137), "Exp", lines: +9 -8 mdoc.c (1.218), "Exp", lines: +9 -5 mdoc_argv.c (1.95), "Exp", lines: +9 -5 mdoc_validate.c (1.229), "Exp", lines: +3 -2 read.c (1.64), "Exp", lines: +7 -6 roff.c (1.219), "Exp", lines: +13 -13 Clean up messages related to plain text and to escape sequences. * Mention invalid escape sequences and string names, and fallbacks. * Hierarchical naming. 2014-07-06 18:51 schwarze Changed: term.c (1.224), "Exp", lines: +3 -3 After skipping an escape sequence with incomplete arguments, do not throw away the rest of the string to be rendered. 2014-07-06 18:46 schwarze Changed: roff.c (1.218), "Exp", lines: +15 -8 Fix expansion of escape sequences with incomplete arguments. * For \* and \n, discard the incomplete arg, expand to empty string. * For \B, discard the incomplete arg, expand to the digit 0. * For \w, use the incomplete arg (behaviour unchanged). 2014-07-06 18:37 schwarze Changed: mandoc.c (1.82), "Exp", lines: +4 -2 Fix handling of escape sequences taking numeric arguments. * Repair detection of invalid delimiters. * Discard the invalid delimiter together with the invalid sequence. Note to self: In general, strchr("\0...", c) is a thoroughly bad idea. 2014-07-05 12:34 schwarze Changed: man_validate.c (1.98), "Exp", lines: +3 -3 mandoc.h (1.136), "Exp", lines: +9 -10 mdoc_validate.c (1.228), "Exp", lines: +62 -57 read.c (1.63), "Exp", lines: +6 -7 Cleanup with respect to bad macro arguments. * Fix .Sm with invalid arg: move arg out and toggle mode. * Promote "unknown standard" from WARNING to ERROR, it loses information. * Delete MANDOCERR_BADWIDTH, it would only indicate a mandoc(1) bug. * Do not report MANDOCERR_BL_LATETYPE when there is no type at all. * Mention macro names, arguments and fallbacks. 2014-07-05 01:12 schwarze Changed: mandoc.h (1.135), "Exp", lines: +3 -2 mdoc_validate.c (1.227), "Exp", lines: +52 -56 read.c (1.62), "Exp", lines: +2 -1 Cleanup regarding -offset and -width: * Bugfix: Last one wins, not first one. * Fix .Bl -width without argument: it means 0n, so do not ignore it. * Report macro names, argument names and fallbacks in related messages. * Simplify: Garbage collect auxiliary variables in pre_bd() and pre_bl(). 2014-07-04 16:12 schwarze Changed: eqn.c (1.43), "Exp", lines: +3 -2 man_validate.c (1.97), "Exp", lines: +6 -2 mandoc.h (1.134), "Exp", lines: +5 -4 mdoc_macro.c (1.136), "Exp", lines: +7 -6 mdoc_man.c (1.66), "Exp", lines: +7 -5 mdoc_validate.c (1.226), "Exp", lines: +27 -24 read.c (1.61), "Exp", lines: +5 -4 roff.c (1.217), "Exp", lines: +5 -3 Clean up messages regarding excess arguments: * Downgrade ".Bf -emphasis Em" from FATAL to WARNING. * Mention the macros, the arguments, and the fallbacks. * Hierarchical naming. 2014-07-04 01:50 schwarze Changed: mandoc.h (1.133), "Exp", lines: +8 -9 mdoc_validate.c (1.225), "Exp", lines: +13 -17 read.c (1.60), "Exp", lines: +8 -8 Clean up messages related to missing arguments. * Do not warn about empty -column cells, they seem valid to me. * Downgrade empty item and missing -std from ERROR to WARNING. * Hierarchical naming. * Descriptive, not imperative style. * Mention macro names, argument names, and fallbacks. * Garbage collect some unreachable code in post_it(). 2014-07-03 23:24 schwarze Changed: mandoc.h (1.132), "Exp", lines: +2 -2 mdoc_term.c (1.270), "Exp", lines: +2 -2 mdoc_validate.c (1.224), "Exp", lines: +23 -25 read.c (1.59), "Exp", lines: +2 -2 Fix formatting of empty .Bl -inset item heads. Downgrade empty item heads from ERROR to WARNING. Show the list type in the error message. Choose better variable names for nodes in post_it(). 2014-07-03 21:23 schwarze Changed: mandoc.h (1.131), "Exp", lines: +4 -2 read.c (1.58), "Exp", lines: +3 -1 roff.c (1.216), "Exp", lines: +5 -3 MANDOCERR_NOARGS reported three completely unrelated classes of problems. Split the roff(7) parts out of it and report the request names for these cases. 2014-07-02 20:19 schwarze Changed: mandoc.h (1.130), "Exp", lines: +2 -2 mdoc_macro.c (1.135), "Exp", lines: +6 -4 mdoc_validate.c (1.223), "Exp", lines: +4 -2 Improve and test the messages about empty macros, in particular reporting the macro names involved. 2014-07-02 19:55 schwarze Changed: mdoc_html.c (1.192), "Exp", lines: +8 -15 mdoc_man.c (1.65), "Exp", lines: +9 -4 mdoc_term.c (1.269), "Exp", lines: +8 -6 mdoc_validate.c (1.222), "Exp", lines: +5 -4 When .Sm is called without an argument, groff toggles the spacing mode, so let us do the same for compatibility. Using this feature is of course not recommended except in manual page obfuscation contests. 2014-07-02 13:10 schwarze Changed: mandoc.h (1.129), "Exp", lines: +4 -2 mdoc_validate.c (1.221), "Exp", lines: +8 -4 read.c (1.57), "Exp", lines: +4 -2 Disentangle the MANDOCERR_CHILD message, which reported three completely different things, into three distinct messages. Also mention the macro names we are talking about. 2014-07-02 11:43 schwarze Changed: man_validate.c (1.96), "Exp", lines: +3 -3 mandoc.h (1.128), "Exp", lines: +7 -7 mdoc_macro.c (1.134), "Exp", lines: +5 -14 mdoc_validate.c (1.220), "Exp", lines: +5 -3 read.c (1.56), "Exp", lines: +3 -3 Clean up warnings related to macros and nesting. * Hierarchical naming of enum mandocerr items. * Improve the wording to make it comprehensible. * Mention the offending macro. * Garbage collect one chunk of ancient, long unreachable code. 2014-07-02 08:21 schwarze Changed: mdoc_macro.c (1.133), "Exp", lines: +3 -3 Fix the column numbers associated with in_line_argn() macros; this bug is more than four years old, introduced by kristaps@ in mdocml.bsd.lv rev. 1.46, March 30, 2010. 2014-07-02 07:10 schwarze Changed: tree.c (1.53), "Exp", lines: +4 -4 Change column display in -Ttree to be 1-based instead of 0-based such that column numbers agree between messages and -Ttree. 2014-07-02 05:52 schwarze Changed: man_validate.c (1.95), "Exp", lines: +10 -4 mandoc.h (1.127), "Exp", lines: +3 -3 mdoc_validate.c (1.219), "Exp", lines: +30 -14 Improve "skipping paragraph macro" messages, showing which macro was skipped and before or after what. 2014-07-02 03:48 schwarze Changed: libmdoc.h (1.85), "Exp", lines: +2 -1 mandoc.h (1.126), "Exp", lines: +2 -2 mdoc.7 (1.231), "Exp", lines: +31 -18 mdoc.c (1.217), "Exp", lines: +3 -1 mdoc.h (1.130), "Exp", lines: +2 -1 mdoc_argv.c (1.94), "Exp", lines: +4 -4 mdoc_html.c (1.191), "Exp", lines: +24 -9 mdoc_macro.c (1.132), "Exp", lines: +7 -14 mdoc_man.c (1.64), "Exp", lines: +42 -5 mdoc_term.c (1.268), "Exp", lines: +29 -6 mdoc_validate.c (1.218), "Exp", lines: +38 -5 read.c (1.55), "Exp", lines: +2 -2 Implement the obsolete macros .En .Es .Fr .Ot for backward compatibility, since this is hardly more complicated than explicitly ignoring them as we did in the past. Of course, do not use them! 2014-07-01 22:37 schwarze Changed: man_validate.c (1.94), "Exp", lines: +5 -2 mandoc.c (1.81), "Exp", lines: +2 -2 mandoc.h (1.125), "Exp", lines: +18 -18 mdoc.c (1.216), "Exp", lines: +3 -3 mdoc_validate.c (1.217), "Exp", lines: +48 -27 read.c (1.54), "Exp", lines: +11 -11 Clean up the warnings related to document structure. * Hierarchical naming of the related enum mandocerr items. * Mention the offending macro, section title, or string. While here, improve some wordings: * Descriptive instead of imperative style. * Uniform style for "missing" and "skipping". * Where applicable, mention the fallback used. 2014-07-01 00:32 schwarze Changed: roff.c (1.215), "Exp", lines: +4 -2 The previous commit to this file broke the control flow keywords \{ and \} when they immediately follow a request or macro name, without intervening whitespace. Minimal fix. The lesson learnt here is that, despite their appearance, \{ and \} are not escape sequences, so never skip them when parsing for names. 2014-06-30 23:45 schwarze Changed: mandoc.h (1.124), "Exp", lines: +6 -10 read.c (1.53), "Exp", lines: +1 -5 garbage collect two unused enum mandocerr items and fix a couple of comments while here 2014-06-29 23:26 schwarze Changed: roff.c (1.214), "Exp", lines: +16 -17 Use the freshly improved roff_getname() function for the main roff request parsing routine, roff_parse(). In request or macro invocations, escape sequences now terminate the request or macro name; what follows is treated as arguments. Besides, the names of user-defined macros can now contain backslashes (eek!). 2014-06-29 22:38 schwarze Changed: roff.c (1.213), "Exp", lines: +19 -39 Use the freshly improved roff_getname() function for the .de parsing routine, roff_block(), to correctly handle names terminated by escape sequences. Besides, this saves us 20 lines of code. 2014-06-29 22:14 schwarze Changed: roff.c (1.212), "Exp", lines: +52 -36 Major roff_getname() cleanup. * Return the name even if it is terminated by an escape sequence, not a blank. * Skip the full escape sequence using mandoc_escape(), not just the first byte. * Make it non-destructive, return the length instead of writing a '\0'. * Let .ds and .as cope with the above changes to the internal interface. * Fix .rm and .rr to accept an escape sequence as the end of a name. * Fix .nr and .rr to not set/delete a register with an empty name. 2014-06-29 21:20 schwarze Changed: roff.c (1.211), "Exp", lines: +3 -2 Bugfix in roff_setstrn(): Do not call strcmp() on an array of char that might not be NUL-terminated. 2014-06-25 00:20 schwarze Changed: mandoc.h (1.123), "Exp", lines: +3 -2 read.c (1.52), "Exp", lines: +7 -2 roff.c (1.210), "Exp", lines: +5 -4 Improve messages related to the roff(7) .so request. In all these messages, show the filename argument that was passed to the .so request. In case of failure, show an additional message reporting the file and the line number where the failing request was found. The existing message reporting the reason for the failure - for example, "Permission denied" - is left in place, unchanged. Inspired by a question asked by Nick@ after he saw the confusing old messages that used to be emitted in this area. 2014-06-24 21:43 schwarze Changed: mdoc.7 (1.230), "Exp", lines: +24 -48 Deprecate .Tn and .Ux, and make it clearer that .Bt and .Ud are deprecated. Do not use these macros in new documents, they provide no value. Instead, usually no macro and no markup is needed at all. Of course, they remain supported for compatibility with existing manuals. Jason McIntyre (OpenBSD), Thomas Klausner (NetBSD) and Franco Fichtner (DragonFly) are OK with this documentation change. 2014-06-23 22:03 schwarze Changed: mandoc.1 (1.105), "Exp", lines: +7 -5 Below DIAGNOSTICS, document the SYSERR message level; jmc@ wondered what it meant and agrees with this patch. 2014-06-22 17:07 schwarze Changed: mdoc.7 (1.229), "Exp", lines: +7 -36 Minimal COMPATIBILITY cleanup: * Mention that the list is incomplete. * I implemented %C for groff -current, and it was accepted. * Font family is \F, not \f. * Escapes and scaling widths are documented in roff(7), not here. * Quoting quotes by doubling them is now supported. 2014-06-22 16:39 schwarze Changed: man.7 (1.127), "Exp", lines: +11 -40 Minimal cleanup of the COMPATIBILITY section: * Mention that the list is incomplete. * Quoting quotes by doubling them is documented in the Ossanna/Kernighan/Ritter Nroff/Troff User's Manual, Section 7.3. * Our roff(7) manual documents handling of escape sequences; besides, we partially support \w and \z now. * Scaling widths are documented in roff(7) as well, and f is not \f. * Negative arguments to .sp are handled now. 2014-06-21 22:24 schwarze Changed: main.c (1.177), "Exp", lines: +6 -3 read.c (1.51), "Exp", lines: +2 -2 Reduce the verbosity of error messages caused by open(2) failures. Suggested by and ok jmc@. 2014-06-21 16:18 schwarze Changed: main.c (1.176), "Exp", lines: +11 -7 mandocdb.c (1.153), "Exp", lines: +8 -5 Prefix messages about bad command line options and arguments with "mandoc: " or "makewhatis: ", respectively, similar to what we already do for other messages. 2014-06-20 23:02 schwarze Changed: main.c (1.175), "Exp", lines: +8 -4 man.h (1.65), "Exp", lines: +2 -1 man_term.c (1.149), "Exp", lines: +7 -4 man_validate.c (1.93), "Exp", lines: +7 -5 mandoc.1 (1.104), "Exp", lines: +10 -6 mandoc.h (1.122), "Exp", lines: +3 -2 mdoc_validate.c (1.216), "Exp", lines: +10 -14 read.c (1.50), "Exp", lines: +4 -3 As suggested by jmc@, only include line and column numbers into messages when they are meaningful, to avoid confusing stuff like this: $ mandoc /dev/null mandoc: /dev/null:0:1: FATAL: not a manual Instead, just say: mandoc: /dev/null: FATAL: not a manual Another example this applies to is documents having a prologue, but lacking a body. Do not throw a FATAL error for these; instead, issue a WARNING and show the empty document, in the man(7) case with the same amount of blank lines as groff does. Also downgrade mdoc(7) documents having content before the first .Sh from FATAL to WARNING. 2014-06-20 17:24 schwarze Changed: man_validate.c (1.92), "Exp", lines: +9 -4 mandoc.c (1.80), "Exp", lines: +3 -3 mandoc.h (1.121), "Exp", lines: +11 -11 mdoc.c (1.215), "Exp", lines: +5 -3 mdoc_validate.c (1.215), "Exp", lines: +10 -10 read.c (1.49), "Exp", lines: +2 -2 Start systematic improvements of error reporting. So far, this covers all WARNINGs related to the prologue. 1) hierarchical naming of MANDOCERR_* constants 2) mention the macro name in messages where that adds clarity 3) add one missing MANDOCERR_DATE_MISSING msg 4) fix the wording of one message related to the man(7) prologue Started on the plane back from Ottawa. 2014-06-20 16:11 schwarze Changed: main.c (1.174), "Exp", lines: +3 -2 Prefix error messages from mandoc(1) with "mandoc: " just like almost all other utility programs do. Suggested by nick@ who wondered where messages came from when calling mandoc(1) from inside a Perl script. ok jmc@ nick@ 2014-06-20 02:55 schwarze Changed: Makefile (1.420), "Exp", lines: +5 -1 configure (1.4), "Exp", lines: +3 -3 test-ohash.c (1.3), "Exp", lines: +6 -4 let the build system cope with the recent ohash changes 2014-06-20 02:53 schwarze Changed: TODO (1.172), "Exp", lines: +5 -1 take a note about pandoc 2014-06-20 02:24 schwarze Changed: compat_ohash.c (1.4), "Exp", lines: +18 -14 compat_ohash.h (1.4), "Exp", lines: +2 -2 mandocdb.c (1.152), "Exp", lines: +10 -10 mansearch.c (1.37), "Exp", lines: +8 -10 Merge from OpenBSD - Marc Espie improved the ohash interface: * rename the halloc callback to calloc, provide overflow protection * rename the hfree callback to free, drop the useless size argument * prevent integer overflows in ohash_resize 2014-06-20 02:10 schwarze Changed: compat_ohash.c (1.3), "Exp", lines: +46 -48 compat_ohash.h (1.3), "Exp", lines: +6 -5 sync to OpenBSD: whitespace and comment changes, no functional change 2014-06-20 01:21 schwarze Changed: mandocdb.c (1.151), "Exp", lines: +40 -24 More tweaking of set_basedir(). 1) Do not error out when getcwd(3) fails, only fail when inaccessibility of the cwd prevents processing of relative paths given on the command line. 2) Do not uselessly call set_basedir() twice in a row. While fts_read(3) in treescan() does cause the cwd to jump around, fts_close(3) is always called at the end, putting us back where we came from. The -d/-u fallback code already relied on this. 3) Fix the man-root-dir indicator in say(). 2014-06-19 00:45 schwarze Changed: mandocdb.c (1.150), "Exp", lines: +21 -17 Some simple set_basedir() cleanup; more to come. 1) Refrain from calling set_basedir() in the -t case, and do not attempt to strip anything from the file names in that case. Testing individual files cannot reasonably have any notion of a base dir. 2) Remove the possibility of passing NULL to set_basedir(). It was dangerous because it was not idempotent, and it served no purpose except closing a file descriptor right before exit(), which is pointless. Besides, the file descriptor is likely to be removed completely, soon. 3) Make sure that /foobar isn't treated as a subdirectory of /foo; this fixes a bug reported by espie@. 2014-06-18 19:34 schwarze Changed: mandocdb.c (1.149), "Exp", lines: +3 -2 Merge OpenBSD rev. 1.108 by sthen@; original commit message: Don't display "unable to open mandoc.db" error messages (SQLITE_CANTOPEN) in the code which opens mandocdb's sqlite database when updating/deleting individual files (as used and only really useful for pkg_add/pkg_delete). 2014-06-10 21:19 schwarze Changed: TODO (1.171), "Exp", lines: +19 -1 some new things to do 2014-05-07 16:19 schwarze Changed: mandocdb.c (1.148), "Exp", lines: +11 -2 Render roff escape sequences contained in manual page descriptions before putting them into the mpages table. Issue found by bentley@ in OpenBSD::Getopt(3p). 2014-05-07 15:10 schwarze Changed: mandocdb.c (1.147), "Exp", lines: +14 -2 Fix two memory leaks in makewhatis -n: 1. As found by nigel@, names_check() requires database access. 2. Do not leak names and strings in -n mode. 2014-05-07 14:14 schwarze Changed: man.c (1.130), "Exp", lines: +7 -4 Do not segfault in makewhatis -Q if the next .SH after .SH NAME does not have any arguments. Crash found by nigel@ in kermit(1). 2014-04-27 23:08 schwarze Changed: mandocdb.c (1.146), "Exp", lines: +22 -7 Improve error handling in dbopen(). If PRAGMA SQL statements fail, report the error, close the database, and return failure from dbopen(), such that the main program can recover and rebuild the database. As noticed by stsp@, this can happen when database files are accessible, but corrupt or in the wrong format, which will now automatically be repaired. Besides, use a safer idiom after sqlite3_open*() failure that also handles out-of-memory situations correctly, and do not forget to close the database after CREATE TABLE failure. 2014-04-27 22:42 schwarze Changed: arch.in (1.15), "Exp", lines: +3 -3 OMRON used uppercase for the model names of their Motorola 88100 LUNA workstations, so show the kernel architecture names in uppercase to the user, too. Based on a patch from Kenji Aoyama@, thanks! 2014-04-25 14:11 schwarze Changed: mdoc.c (1.214), "Exp", lines: +2 -2 Fix a minor optimization i broke in rev. 1.163 on August 20, 2010: Do not bother looking into the hash table when the length of the macro already tells us it's invalid. No functional change. Noticed by jsg@, thanks! 2014-04-25 12:13 schwarze Changed: makewhatis.8 (1.2), "Exp", lines: +3 -3 mandocdb.c (1.145), "Exp", lines: +3 -1 Reduce the verbosity of makewhatis -t: In the past, it always showed the title lines of the files processed. Now, it only shows them when called with -D. That is better because pkg_create calls makewhatis -t. It is also more consistent with -D behaviour in non- -t modes. Issue reported by ajacoutot@; ok espie@ ajacoutot@ jasper@. 2014-04-24 00:36 schwarze Changed: Makefile (1.395.2.18), "Exp", lines: +53 -25 Merge from HEAD: * Use sha256 rather than md5. * Update .h dependencies for some objects. * Provide `www' target to build everything needed for the web site. * Move .SUFFIXES and .PHONY technicalities to the bottom. * State Copyright and license, just for clarity. * Bump VERSION in preparation for release. 2014-04-24 00:29 schwarze Changed: Makefile (1.419), "Exp", lines: +43 -20 Various Makefile improvements: * Use sha256 rather than md5. * Update .h dependencies for some objects. * Provide `www' target to build everything needed for the web site. * Move .SUFFIXES and .PHONY technicalities to the bottom. * State Copyright and license, just for clarity. 2014-04-24 00:28 schwarze Changed: apropos.1 (1.29), "Exp", lines: +3 -3 misplaced punctuation 2014-04-23 23:29 schwarze Changed: config.h.post (1.9), "Exp", lines: +3 -0 config.h.post (1.6.2.6), "Exp", lines: +3 -0 prototype for reallocarray() 2014-04-23 21:40 schwarze Changed: cgi.c (1.51), "Exp", lines: +4 -5 Audit malloc(3)/calloc(3)/realloc(3) usage. First committed to wrong branch, sorry. 2014-04-23 21:31 schwarze Changed: Makefile (1.395.2.17), "Exp", lines: +3 -0 apropos_db.c (1.32.2.6), "Exp", lines: +3 -3 configure (1.1.2.3), "Exp", lines: +1 -0 mandocdb.c (1.49.2.16), "Exp", lines: +3 -3 Audit malloc(3)/calloc(3)/realloc(3) in VERSION_1_12. 2014-04-23 21:06 schwarze Added: compat_reallocarray.c (1.1) test-reallocarray.c (1.1) Changed: LICENSE (1.2), "Exp", lines: +2 -1 Makefile (1.418), "Exp", lines: +3 -0 configure (1.3), "Exp", lines: +1 -0 eqn.c (1.42), "Exp", lines: +3 -3 mandoc_aux.c (1.2), "Exp", lines: +13 -1 mandoc_aux.h (1.2), "Exp", lines: +2 -1 mandocdb.c (1.144), "Exp", lines: +5 -5 manpath.c (1.15), "Exp", lines: +3 -3 mansearch.c (1.36), "Exp", lines: +4 -4 mdoc_argv.c (1.93), "Exp", lines: +5 -5 mdoc_validate.c (1.214), "Exp", lines: +5 -5 term.c (1.223), "Exp", lines: +2 -2 term_ps.c (1.60), "Exp", lines: +4 -10 Audit malloc(3)/calloc(3)/realloc(3) usage. * Change eight reallocs to reallocarray to be safe from overflows. * Change one malloc to reallocarray to be safe from overflows. * Change one calloc to reallocarray, no zeroing needed. * Change the order of arguments of three callocs (aesthetical). 2014-04-23 19:09 schwarze Changed: mandocdb.c (1.143), "Exp", lines: +23 -23 Audit strlcpy(3)/strlcat(3) usage: * Add missing truncation checks to three calls. * In four cases where we know that the distination buffer is large enough, cast the return vailue to (void). 2014-04-23 16:37 schwarze Changed: TODO (1.170), "Exp", lines: +7 -1 espie@ suggests using SQL views 2014-04-23 16:34 schwarze Changed: mandocdb.c (1.142), "Exp", lines: +3 -2 mansearch.c (1.35), "Exp", lines: +7 -5 improve SQL style: avoid "SELECT *", be explicit in what columns we want; suggested by espie@. 2014-04-23 16:08 schwarze Changed: TODO (1.169), "Exp", lines: +4 -2 html.c (1.157), "Exp", lines: +7 -1 man_html.c (1.95), "Exp", lines: +3 -7 man_term.c (1.148), "Exp", lines: +10 -14 mdoc_html.c (1.190), "Exp", lines: +22 -17 mdoc_term.c (1.267), "Exp", lines: +15 -18 mdoc_validate.c (1.213), "Exp", lines: +12 -21 roff.c (1.209), "Exp", lines: +10 -20 tbl_data.c (1.31), "Exp", lines: +3 -3 Audit strlcpy(3)/strlcat(3) usage. * Repair three instances of silent truncation, use asprintf(3). * Change two instances of strlen(3)+malloc(3)+strlcpy(3)+strlcat(3)+... to use asprintf(3) instead to make them less error prone. * Cast the return value of four instances where the destination buffer is known to be large enough to (void). * Completely remove three useless instances of strlcpy(3)/strlcat(3). * Mark two places in -Thtml with XXX that can cause information loss and crashes but are not easy to fix, requiring design changes of some internal interfaces. * The file mandocdb.c remains to be audited. 2014-04-22 22:05 schwarze Changed: Makefile (1.395.2.16), "Exp", lines: +2 -1 include the LICENSE into the distribution tarball 2014-04-22 22:03 schwarze Added: LICENSE (1.1) Changed: Makefile (1.417), "Exp", lines: +2 -1 add a LICENSE file for clarity and for the convenience of porters 2014-04-20 22:04 schwarze Changed: read.c (1.48), "Exp", lines: +2 -2 in debug messages, truncating strings of excessive lengths is actually a good thing, so cast the return value from sprintf to (void); this concludes the mandoc sprintf audit 2014-04-20 20:48 schwarze Changed: mdoc_validate.c (1.212), "Exp", lines: +14 -23 strlen+malloc+snprintf is error prone; rewrite post_lb() to use asprintf(3) instead 2014-04-20 20:18 schwarze Changed: man_html.c (1.94), "Exp", lines: +6 -3 man_term.c (1.147), "Exp", lines: +16 -11 mdoc_html.c (1.189), "Exp", lines: +7 -3 mdoc_term.c (1.266), "Exp", lines: +8 -5 fix unchecked snprintf(3) in page header printing: the length of the title is unknown, and speed doesn't matter here, so use asprintf/free rather than a static buffer 2014-04-20 19:40 schwarze Changed: eqn.c (1.41), "Exp", lines: +2 -2 mdoc_man.c (1.63), "Exp", lines: +7 -6 mdoc_term.c (1.265), "Exp", lines: +3 -3 mdoc_validate.c (1.211), "Exp", lines: +5 -7 roff.c (1.208), "Exp", lines: +4 -4 make sure static buffers for snprintf(3) are large enough and cast snprintf return value to (void) where they are 2014-04-20 16:46 schwarze Changed: apropos.c (1.39), "Exp", lines: +8 -7 arch.c (1.11), "Exp", lines: +3 -2 att.c (1.11), "Exp", lines: +3 -2 chars.c (1.57), "Exp", lines: +10 -9 chars.in (1.46), "Exp", lines: +2 -2 eqn.c (1.40), "Exp", lines: +31 -34 eqn_html.c (1.3), "Exp", lines: +5 -5 eqn_term.c (1.5), "Exp", lines: +3 -2 html.c (1.156), "Exp", lines: +59 -67 html.h (1.51), "Exp", lines: +7 -7 libman.h (1.58), "Exp", lines: +3 -3 libmandoc.h (1.41), "Exp", lines: +11 -11 libmdoc.h (1.84), "Exp", lines: +5 -5 libroff.h (1.29), "Exp", lines: +3 -3 main.c (1.173), "Exp", lines: +44 -45 main.h (1.16), "Exp", lines: +2 -2 man.c (1.129), "Exp", lines: +30 -46 man_hash.c (1.27), "Exp", lines: +3 -4 man_html.c (1.93), "Exp", lines: +23 -48 man_macro.c (1.82), "Exp", lines: +23 -37 man_term.c (1.146), "Exp", lines: +73 -117 man_validate.c (1.91), "Exp", lines: +42 -48 mandoc.c (1.79), "Exp", lines: +62 -62 mandoc.h (1.120), "Exp", lines: +6 -6 mandocdb.c (1.141), "Exp", lines: +67 -66 manpath.c (1.14), "Exp", lines: +3 -4 mansearch.c (1.34), "Exp", lines: +13 -13 mdoc.c (1.213), "Exp", lines: +67 -90 mdoc.h (1.129), "Exp", lines: +10 -10 mdoc_argv.c (1.92), "Exp", lines: +46 -46 mdoc_hash.c (1.20), "Exp", lines: +3 -2 mdoc_html.c (1.188), "Exp", lines: +185 -305 mdoc_macro.c (1.131), "Exp", lines: +130 -153 mdoc_man.c (1.62), "Exp", lines: +71 -70 mdoc_term.c (1.264), "Exp", lines: +208 -325 mdoc_validate.c (1.210), "Exp", lines: +240 -254 out.c (1.48), "Exp", lines: +27 -26 out.h (1.22), "Exp", lines: +3 -3 read.c (1.47), "Exp", lines: +49 -50 roff.c (1.207), "Exp", lines: +121 -163 st.in (1.24), "Exp", lines: +2 -2 tbl.c (1.29), "Exp", lines: +12 -12 tbl_data.c (1.30), "Exp", lines: +20 -20 tbl_html.c (1.11), "Exp", lines: +5 -6 tbl_layout.c (1.26), "Exp", lines: +50 -49 tbl_opts.c (1.13), "Exp", lines: +24 -23 tbl_term.c (1.27), "Exp", lines: +33 -33 term.c (1.222), "Exp", lines: +48 -60 term.h (1.101), "Exp", lines: +3 -3 term_ascii.c (1.25), "Exp", lines: +17 -26 term_ps.c (1.59), "Exp", lines: +65 -99 tree.c (1.52), "Exp", lines: +54 -59 KNF: case (FOO): -> case FOO:, remove /* LINTED */ and /* ARGSUSED */, remove trailing whitespace and blanks before tabs, improve some indenting; no functional change 2014-04-19 02:56 schwarze Changed: mandocdb.c (1.140), "Exp", lines: +9 -7 Two minor tweaks regarding the fallback from -u/-d to default mode: (1) Use all files found on the command line, but do *not* use all stray files found during fallback tree recursion. (2) If the fallback works, call that success, i.e. exit(0). As pointed out by naddy@, the latter is required for ports' happiness. 2014-04-19 02:30 schwarze Changed: mandocdb.c (1.139), "Exp", lines: +76 -17 Properly handle symlinks (hardlinks and .so only files were already ok): Use the file name of the symlink but the inode number of the file pointed to, such that we get multiple mlinks records but not multiple mpages records. Also make sure they do not point outside the tree we are processing. Issue found by kili@ in desktop-file-edit(1), thanks! 2014-04-18 21:55 schwarze Changed: mandocdb.c (1.138), "Exp", lines: +18 -8 In update mode, when opening the database fails, probably because it is missing or corrupt, just rebuild it from scratch. This also helps when installing the very first port on a freshly installed machine and is similar to what espie@'s classical makewhatis(8) did. Issue reported by naddy@ via kili@. 2014-04-18 10:30 schwarze Deleted: mandocdb.8 (1.26) Added: makewhatis.8 (1.1) Changed: Makefile (1.416), "Exp", lines: +9 -9 apropos.1 (1.28), "Exp", lines: +9 -9 man.cgi.7 (1.13), "Exp", lines: +3 -3 Slowly, the dust begins to settle. We are keeping the traditional name makewhatis(8). No content change. 2014-04-18 09:47 schwarze Changed: apropos.1 (1.27), "Exp", lines: +32 -25 Fix a few lies; polish wording and formatting while here. 2014-04-17 19:20 schwarze Changed: mansearch.c (1.33), "Exp", lines: +8 -8 Garbage collect one pair of needless parentheses in SQL code generation; note this doesn't affect performance, SQLite generates the same byte code. While here, make the calls to exprspec() easier to understand. 2014-04-16 21:36 schwarze Changed: mandocdb.c (1.137), "Exp", lines: +12 -12 mansearch.c (1.32), "Exp", lines: +18 -18 Rename the mpages.id column to mpages.pageid. There is no good reason to call this kid by a different name here than in all other tables. 2014-04-16 18:59 schwarze Changed: mandocdb.c (1.136), "Exp", lines: +4 -2 Give the mlinks and keys tables a pageid index, as suggested by jeremy@ and espie@. The mlinks index speeds up basic apropos(1) searches by around 30% because it speeds up the final SELECT FROM mlinks query by about 95%. For large result sets, the overall speedup gets even larger, in the extreme case of "apropos Nd~." bymore than 90%. The keys index finally makes the apropos(1) -O option usable: It no longer incurs relevant extra cost, while in the past it was embarrassingly slow. This comes at a cost: Total database build times grow by about 5%, and each index adds about 10% database size with -Q. I consider that acceptable in view of the huge apropos(1) performance gains. The -Q database for /usr/share/man still remains below 1 MB. 2014-04-16 00:33 schwarze Changed: mansearch.c (1.31), "Exp", lines: +5 -3 Pass the function flags SQLITE_UTF8 (because SQLITE_ANY is deprecated) and SQLITE_DETERMINISTIC when creating deterministic functions; best practice measure suggested by espie@ and jeremy@; as expected by jeremy@, no measurable effect on performance. 2014-04-15 23:51 schwarze Changed: mansearch.c (1.30), "Exp", lines: +7 -5 Oops, sorry, revert previous and commit the correct patch: At the end of mansearch(), fchdir() back to where we started from. 2014-04-15 23:48 schwarze Changed: mansearch.c (1.29), "Exp", lines: +2 -1 At the end of mansearch(), fchdir() back to where we started from; this is cleaner and helps to not scatter gmon.out files all over the place when profiling. 2014-04-15 23:02 schwarze Changed: apropos.1 (1.26), "Exp", lines: +1 -2 remove documentation of the former macro key "NAME"; it got deleted with mansearch.h rev. 1.12 2014-04-15 20:18 schwarze Added: mandoc.db.5 (1.1) mansearch.3 (1.1) Changed: Makefile (1.415), "Exp", lines: +12 -4 Document the database format and SQL code generation; suggested by kristaps@ and espie@. 2014-04-15 00:41 schwarze Changed: mdoc_validate.c (1.209), "Exp", lines: +8 -12 Using macros in .Sh header lines, or having .Sm off or .Bk -words open while processing .Sh, is not at all recommended, but it's not strictly a syntax violation either, and in any case, mandoc must not die in an assertion. I broke this in rev. 1.124. Crash found while trying to read the (rather broken) original 4.3BSD-Reno od(1) manual page. 2014-04-13 22:03 schwarze Changed: mandocdb.c (1.135), "Exp", lines: +4 -9 Unify description handling across all document types (mdoc, man, cat). Assert that the description is unset right before calling the parse_* handler, and assign a default if it's still unset right afterwards. Remove all stray asserts and default assignments found elsewhere. This fixes SQL_STEP failures for man(7) pages lacking descriptions. 2014-04-13 20:55 schwarze Changed: mandocdb.c (1.134), "Exp", lines: +9 -9 better error reporting in case of SQL errors: mention dir and file 2014-04-11 15:46 schwarze Changed: apropos.c (1.38), "Exp", lines: +3 -1 mansearch.c (1.28), "Exp", lines: +49 -1 mansearch.h (1.13), "Exp", lines: +2 -1 Further apropos(1) speed optimization was trickier than anticipated. Contrary to what i initially thought, almost all time is now spent inside sqlite3(3) routines, and i found no easy way calling less of them. However, sqlite(3) spends substantial time in malloc(3), and even more (twice that) in its immediate malloc wrapper, sqlite3MemMalloc(), keeping track of all individual malloc chunk sizes. Typically about 90% of the malloced memory is used for purposes of the pagecache. By providing an mmap(3) MAP_ANON SQLITE_CONFIG_PAGECACHE, execution time decreases by 20-25% for simple (Nd and/or Nm) queries, 10-20% for non-NAME queries, and even apropos(1) resident memory size as reported by top(1) decreases by 20% for simple and by 60% for non-NAME queries. The new function, mansearch_setup(), spends no measurable time. The pagesize chosen is optimal: * Substantially smaller pages yield no gain at all. * Larger pages provide no additional benefit and just waste memory. The chosen number of pages in the cache is a compromise: * For simple queries, a handful of pages would suffice to get the full speed effect, at an apropos(1) resident memory size of about 2.0 MB. * For non-NAME queries, a large pagecache with 2k pages (2.5 MB) might gain a few more percent in speed, but at the expense of doubling the apropos(1) resident memory size for *all* queries. * The chosen number of 256 pages (330 kB) allows nearly full speed gain for all queries at the price of a 15% resident memory size increase. 2014-04-10 02:46 schwarze Changed: mandocdb.c (1.133), "Exp", lines: +65 -27 mansearch.c (1.27), "Exp", lines: +27 -14 mansearch.h (1.12), "Exp", lines: +48 -42 mansearch_const.c (1.4), "Exp", lines: +8 -9 Next speed optimization step for the new apropos(1). Split manual names out of the common "keys" table into their own "names" table. This reduces standard apropos(1) search times (i.e. searching for names and descriptions only) by typically about 70% for the full /usr/share/man database. (Yes, that multiplies with the previous optimization step, so both together have reduced search times by a factor of more than six. I'm not done yet, expect more to come.) Even with the minimal databases built with makewhatis(8) -Q, this step still reduces search times by 15-20%. For both cases, database sizes and build times hardly change (+/-2%). 2014-04-09 21:50 schwarze Changed: mandocdb.c (1.132), "Exp", lines: +9 -18 mansearch.c (1.26), "Exp", lines: +43 -16 mansearch.h (1.11), "Exp", lines: +40 -40 mansearch_const.c (1.3), "Exp", lines: +7 -7 After careful gprof(1)ing of the new apropos(1), move the descriptions back from the keys table to the mpages table: I found a good way to still use them in searches, without complication of the code. On my notebook, this reduces typical apropos(1) search times by about 40%, it reduces /usr/share/man database size by 6% in makewhatis(8) -Q mode and by 2% in standard mode (less overhead storing pointers to mpages), and it doesn't measurably change database build times (may even be going down by a percent or so because less data is being copied around in ohashes). 2014-04-08 07:13 schwarze Changed: man_term.c (1.145), "Exp", lines: +4 -4 mdoc_term.c (1.263), "Exp", lines: +14 -13 term.c (1.221), "Exp", lines: +21 -28 term.h (1.100), "Exp", lines: +7 -6 Add a new term_flushln() flag TERMP_BRIND (if break, then indent) to control indentation of continuation lines in TERMP_NOBREAK mode. In the past, this was always on; continue using it for .Bl, .Nm, .Fn, .Fo, and .HP, but no longer for .IP and .TP. I looked at this because sthen@ reported the issue in a manual of a Perl module from ports, but it affects base, too: This patch reduces groff-mandoc differences in base by more than 15%. 2014-04-08 04:40 schwarze Changed: mdoc_term.c (1.262), "Exp", lines: +3 -1 If the SYNOPSIS section contains an excessively long .Nm, adjust the right margin to avoid running into an assertion; output in that case now agrees with groff, too. 2014-04-08 01:37 schwarze Changed: mandoc.c (1.78), "Exp", lines: +3 -6 roff.7 (1.54), "Exp", lines: +17 -8 roff.c (1.206), "Exp", lines: +71 -28 Fully implement the \B (validate numerical expression) and partially implement the \w (measure text width) escape sequence in a way that makes them usable in numerical expressions and in conditional requests, similar to how \n (interpolate number register) and \* (expand user-defined string) are implemented. This lets mandoc(1) handle the baroque low-level roff code found at the beginning of the ggrep(1) manual. Thanks to pascal@ for the report. 2014-04-07 21:00 schwarze Changed: roff.c (1.205), "Exp", lines: +45 -37 We already supported (outer) user-defined strings containing references to other (inner) user-defined strings in their values, such that the inner ones get expanded at expansion time of the outer ones (delayed evaluation). Now we also support specifying the name of an (outer) user-defined string to expand using the expanded values of some other (inner) user-defined strings (indirect reference). 2014-04-07 18:26 schwarze Changed: gmdiff (1.2), "Exp", lines: +6 -3 Make it clear which errors come from which tool. joint work with sthen@ 2014-04-07 17:51 schwarze Changed: mandoc.c (1.77), "Exp", lines: +5 -5 Accept arbitrary argument delimiters for various roff(7) escape sequences. Needed for example by the new Perl pod2man(1) preamble. 2014-04-07 15:07 schwarze Changed: roff.7 (1.53), "Exp", lines: +81 -18 roff.c (1.204), "Exp", lines: +208 -58 Almost complete implementation of roff(7) numerical expressions. Support all binary operators except ';' (scale conversion). Fully support chained operations and nested parentheses. Use this for the .nr, .if, and .ie requests. While here, fix parsing of integer numbers in roff_getnum(). 2014-04-05 21:18 schwarze Changed: term.c (1.220), "Exp", lines: +6 -6 bugfix: make sure all variables are properly initialized when rendering .ll (line length) requests. oops. 2014-04-05 20:34 schwarze Changed: roff.7 (1.52), "Exp", lines: +11 -7 roff.c (1.203), "Exp", lines: +29 -1 Implement the roff(7) .rr (remove register) request. As reported by sthen@, the perl-5.18 pod2man(1) preamble thinks cool kids use that in manuals. I hope *you* know better. 2014-04-04 18:23 schwarze Changed: mandocdb.c (1.131), "Exp", lines: +30 -25 In -p (picky) mode, warn unless each filename (aka mlink) appears as a name in the NAME section. While here, garbage collect two unused variables, both called "match". 2014-04-04 16:43 schwarze Changed: mandocdb.c (1.130), "Exp", lines: +41 -1 Warn about missing mlinks. This is really expensive, more than tripling database build times, so only do it when the -p (picky) option was given, but none of the following options were given: -Q (quick), -d, -u, or -t. 2014-04-04 15:55 schwarze Changed: apropos.1 (1.25), "Exp", lines: +4 -2 mandocdb.c (1.129), "Exp", lines: +9 -6 mansearch.h (1.10), "Exp", lines: +43 -42 mansearch_const.c (1.2), "Exp", lines: +9 -8 Remember which names are in the NAME section. This helps to find missing MLINKS. Database build times do not change and database growth is minimal (1.2% with -Q, 0.7% without -Q in /usr/share/man), so making this optional would be pointless. 2014-04-04 15:51 schwarze Changed: apropos.1 (1.24), "Exp", lines: +22 -4 merge OpenBSD rev. 1.20, describing new features 2014-04-04 02:31 schwarze Changed: mandocdb.8 (1.25), "Exp", lines: +3 -3 mandocdb.c (1.128), "Exp", lines: +39 -5 When the -n or -t flag is given to makewhatis(8), write names and decriptions to stdout, in a format similar to apropos(1) output. Inspired by espie@'s makewhatis. 2014-04-03 21:45 schwarze Changed: mandocdb.c (1.127), "Exp", lines: +6 -1 Instead of silently doing nothing at all, warn and return non-zero when the manpath is empty, that is, when /etc/man.conf is non-existent or unreadable AND the environment variable MANPATH is unset or empty AND no directories were given on the command line. Inspired by the error handling in espie@'s makewhatis(8), except that one doesn't know about MANPATH. 2014-04-03 16:27 schwarze Changed: mandocdb.8 (1.24), "Exp", lines: +15 -11 mandocdb.c (1.126), "Exp", lines: +11 -8 Rename the -W option to -p (mnemonics: picky, print to stderr): That letter was already chosen by espie@ for OpenBSD 2.7, so avoid being gratuitiously different more than a decade later. Accept -v for backward compatibility with espie@'s makewhatis, even though it does nothing right now. 2014-04-03 15:37 schwarze Changed: mandocdb.8 (1.23), "Exp", lines: +7 -9 mandocdb.c (1.125), "Exp", lines: +13 -13 The -v option of mandocdb(8) clashes with the -v option of espie@'s makewhatis(8), which traditionally does something different, so rename it to -D (mnemonics: Debug, Dump, Display). 2014-04-03 15:24 schwarze Changed: mandocdb.8 (1.22), "Exp", lines: +24 -8 document -Q and -T; from OpenBSD 2014-03-31 01:05 schwarze Changed: man.7 (1.126), "Exp", lines: +7 -2 mdoc.7 (1.228), "Exp", lines: +7 -2 mdoc.h (1.128), "Exp", lines: +2 -1 mdoc_validate.c (1.208), "Exp", lines: +4 -1 Support the CONTEXT section for kernel manual pages found in Solaris and OpenBSD manuals. It describes which contexts you can call functions in. from dlg@, ok jmc@ deraadt@ 2014-03-30 23:34 schwarze Changed: mdoc_man.c (1.61), "Exp", lines: +12 -3 Improve formatting of broken blocks in -Tman, somewhat similar to what mdoc_term.c already does for -Tascii. OpenBSD rev. 1.58. 2014-03-30 23:28 schwarze Changed: mdoc_validate.c (1.207), "Exp", lines: +5 -3 Allow ERRORS in section 4; OpenBSD rev. 1.121. 2014-03-30 21:28 schwarze Changed: man_term.c (1.144), "Exp", lines: +2 -2 mdoc_term.c (1.261), "Exp", lines: +2 -2 roff.7 (1.51), "Exp", lines: +5 -3 term.c (1.219), "Exp", lines: +31 -1 term.h (1.99), "Exp", lines: +3 -3 term_ascii.c (1.24), "Exp", lines: +12 -8 term_ps.c (1.58), "Exp", lines: +9 -4 Support relative arguments to .ll (increase or decrease line length). 2014-03-30 19:47 schwarze Changed: TODO (1.168), "Exp", lines: +1 -4 man.c (1.128), "Exp", lines: +2 -2 man.h (1.64), "Exp", lines: +2 -1 man_html.c (1.92), "Exp", lines: +2 -1 man_macro.c (1.81), "Exp", lines: +2 -1 man_term.c (1.143), "Exp", lines: +13 -1 man_validate.c (1.90), "Exp", lines: +2 -1 mdoc.c (1.212), "Exp", lines: +2 -2 mdoc.h (1.127), "Exp", lines: +2 -1 mdoc_argv.c (1.91), "Exp", lines: +2 -1 mdoc_html.c (1.187), "Exp", lines: +12 -2 mdoc_macro.c (1.130), "Exp", lines: +2 -1 mdoc_man.c (1.60), "Exp", lines: +11 -1 mdoc_term.c (1.260), "Exp", lines: +17 -3 mdoc_validate.c (1.206), "Exp", lines: +2 -1 roff.7 (1.50), "Exp", lines: +17 -2 term.h (1.98), "Exp", lines: +5 -2 term_ascii.c (1.23), "Exp", lines: +16 -2 term_ps.c (1.57), "Exp", lines: +17 -2 Implement the roff(7) .ll (line length) request. Found by naddy@ in the textproc/enchant(1) port. Of course, do not use this in new manuals. 2014-03-28 23:26 schwarze Changed: mandoc.h (1.119), "Exp", lines: +2 -1 tbl_layout.c (1.25), "Exp", lines: +11 -2 tbl_term.c (1.26), "Exp", lines: +6 -4 Allow leading and trailing vertical lines, and format them in the same way as groff. While here, do not require whitespace before vertical lines in layout specifications. Issues found by bentley@ in mpv(1). 2014-03-28 19:17 schwarze Changed: mansearch.c (1.25), "Exp", lines: +2 -1 Properly initialize malloc(3)ed memory. With this bug fix, partly unitialized memory could sometimes be returned, sometimes causing crashes by bogus free(3)s in apropos(1). 2014-03-26 21:39 schwarze Changed: mandocdb.c (1.124), "Exp", lines: +81 -17 Without bloating mandoc(1) itself, let mandocdb(8) support files called manN/X.N.gz and catN/X.0.gz, reading them through a pipe(2) from gunzip(1) -c. Asked for by various people in the past. 2014-03-26 20:53 schwarze Changed: mandocdb.c (1.123), "Exp", lines: +52 -34 Improve error reporting. Simplify combining a custom format string with perror(), avoiding many manual calls to strerror(errno). For low-level failures, report attempted function calls. Do not abuse the say() filename argument for files outside the basedir, and even less for other text. 2014-03-23 20:57 schwarze Changed: man.c (1.127), "Exp", lines: +11 -4 Skip leading escape sequences in man_deroff(). Helps indexing of some manuals containing overzealous escaping in their NAME section. 2014-03-23 15:14 schwarze Changed: mdoc_validate.c (1.205), "Exp", lines: +27 -78 Retire the old concat() function. For .Sh, i wasn't even needed at all. For .Dd, .Nm, and .Os, use the new mdoc_deroff() instead. This gets rid of the last limited-size static buffers in this file, hence eliminates the last explicit MANDOCERR_MEM throwers here, and it shortens the code by 50 lines. 2014-03-23 12:44 schwarze Changed: mandocdb.c (1.122), "Exp", lines: +4 -26 mdoc.c (1.211), "Exp", lines: +41 -1 mdoc.h (1.126), "Exp", lines: +2 -1 If an .Nd block contains macros, avoid fragmented entries in mandocdb(8), instead use the .Nd content recursively. 2014-03-23 12:37 schwarze Changed: mandocdb.c (1.49.2.15), "Exp", lines: +9 -46 backport man(7) .Nd improvement 2014-03-23 12:26 schwarze Changed: man.c (1.126), "Exp", lines: +41 -1 man.h (1.63), "Exp", lines: +3 -1 mandocdb.c (1.121), "Exp", lines: +8 -47 If a man(7) NAME section contains macros, avoid truncated or empty entries for .Nd in mandocdb(8), instead use the macro content recursively. This improves indexing of more than 200 manuals in Xenocara, i.e. more than 15%, in particular GL and some Xkb. 2014-03-23 12:19 schwarze Changed: cgi.c (1.50), "Exp", lines: +2 -1 needs mandoc_aux, too 2014-03-23 12:11 schwarze Changed: mandocdb.c (1.120), "Exp", lines: +2 -5 mansearch.c (1.24), "Exp", lines: +12 -30 mdoc.c (1.210), "Exp", lines: +2 -5 mdoc_validate.c (1.204), "Exp", lines: +4 -6 roff.c (1.202), "Exp", lines: +2 -6 avoid repetitive code for asprintf error handling 2014-03-23 12:04 schwarze Changed: Makefile (1.395.2.15), "Exp", lines: +9 -4 apropos_db.c (1.32.2.5), "Exp", lines: +2 -1 mandocdb.c (1.49.2.14), "Exp", lines: +2 -1 introduce mandoc_aux to 1.12 2014-03-23 11:59 schwarze Added: mandoc_aux.c (1.1) mandoc_aux.h (1.1) The files mandoc.c and mandoc.h contained both specialised low-level functions used for multiple languages (mdoc, man, roff), for example mandoc_escape(), mandoc_getarg(), mandoc_eos(), and generic auxiliary functions. Split the auxiliaries out into their own file and header. 2014-03-23 11:25 schwarze Changed: Makefile (1.414), "Exp", lines: +7 -3 arch.c (1.10), "Exp", lines: +1 -4 att.c (1.10), "Exp", lines: +1 -4 chars.c (1.56), "Exp", lines: +2 -1 eqn.c (1.39), "Exp", lines: +2 -1 html.c (1.155), "Exp", lines: +2 -1 lib.c (1.10), "Exp", lines: +1 -4 main.c (1.172), "Exp", lines: +2 -1 man.c (1.125), "Exp", lines: +2 -1 man_hash.c (1.26), "Exp", lines: +1 -2 man_validate.c (1.89), "Exp", lines: +2 -1 mandoc.3 (1.24), "Exp", lines: +57 -27 mandoc.c (1.76), "Exp", lines: +2 -69 mandoc.h (1.118), "Exp", lines: +2 -7 mandocdb.c (1.119), "Exp", lines: +2 -1 manpath.c (1.13), "Exp", lines: +2 -2 mansearch.c (1.23), "Exp", lines: +2 -1 mdoc.c (1.209), "Exp", lines: +2 -1 mdoc_argv.c (1.90), "Exp", lines: +2 -1 mdoc_hash.c (1.19), "Exp", lines: +1 -2 mdoc_man.c (1.59), "Exp", lines: +4 -3 mdoc_validate.c (1.203), "Exp", lines: +2 -1 msec.c (1.11), "Exp", lines: +1 -2 out.c (1.47), "Exp", lines: +2 -1 read.c (1.46), "Exp", lines: +2 -1 roff.c (1.201), "Exp", lines: +2 -1 st.c (1.10), "Exp", lines: +1 -4 tbl.c (1.28), "Exp", lines: +2 -1 tbl_data.c (1.29), "Exp", lines: +2 -1 tbl_layout.c (1.24), "Exp", lines: +2 -2 term.c (1.218), "Exp", lines: +2 -2 term_ascii.c (1.22), "Exp", lines: +2 -2 term_ps.c (1.56), "Exp", lines: +2 -1 vol.c (1.10), "Exp", lines: +1 -4 The files mandoc.c and mandoc.h contained both specialised low-level functions used for multiple languages (mdoc, man, roff), for example mandoc_escape(), mandoc_getarg(), mandoc_eos(), and generic auxiliary functions. Split the auxiliaries out into their own file and header. While here, do some #include cleanup. 2014-03-20 02:57 schwarze Changed: roff.c (1.200), "Exp", lines: +17 -15 Remove currently unimplemented macros from the lists of used-defined macros to be cleared during .Dd and .TH because clearing them at that point defeats the purpose of backup implementations provided in the manual page itself, some of which _do_ work with mandoc(1). While here, add the new .%C macro to the list to be cleared. 2014-03-19 22:33 schwarze Changed: mandocdb.c (1.118), "Exp", lines: +68 -20 Register pure .so pages as mlinks, not as mpages. This doesn't affect /usr/share/man, but improves /usr/X11R6/man: * Eliminates multiple apropos(1) output for such pages. * Reduces X11R6 database size from 450 kB to 240 kB (-47%). * Reduces X11R6 database build time from 1.68s to 1.00s (-40%). 2014-03-19 22:24 schwarze Changed: mandocdb.c (1.49.2.13), "Exp", lines: +2 -2 cope with the mparse_result() interface change 2014-03-19 22:20 schwarze Changed: cgi.c (1.49), "Exp", lines: +2 -2 demandoc.c (1.10), "Exp", lines: +2 -2 main.c (1.171), "Exp", lines: +2 -2 mandoc.h (1.117), "Exp", lines: +2 -2 mandocdb.c (1.117), "Exp", lines: +2 -2 read.c (1.45), "Exp", lines: +20 -3 Without the MPARSE_SO option, if the file contains nothing but a single .so request, do not read the file pointed to, but instead let mparse_result() provide the file name pointed to as a return value. To be used by makewhatis(8) in the future. 2014-03-19 22:09 schwarze Changed: mandocdb.c (1.49.2.12), "Exp", lines: +5 -5 cope with mparse_alloc() interface change 2014-03-19 22:05 schwarze Changed: cgi.c (1.48), "Exp", lines: +2 -2 demandoc.c (1.9), "Exp", lines: +2 -2 cope with mparse_alloc() interface change 2014-03-19 21:51 schwarze Changed: libmandoc.h (1.40), "Exp", lines: +3 -3 main.c (1.170), "Exp", lines: +11 -11 mandoc.h (1.116), "Exp", lines: +8 -12 mandocdb.c (1.116), "Exp", lines: +6 -6 read.c (1.44), "Exp", lines: +17 -19 roff.c (1.199), "Exp", lines: +6 -8 Generalize the mparse_alloc() and roff_alloc() functions by giving them an "options" argument, replacing the existing "inttype" and "quick" arguments, preparing for a future MPARSE_SO option. Store this argument in struct mparse and struct roff, replacing the existing "inttype", "parsetype", and "quick" members. No functional change except one tiny cosmetic fix in roff_TH(). 2014-03-18 16:56 schwarze Changed: mandocdb.c (1.115), "Exp", lines: +95 -21 Allow checking that databases are up to date even when you have no write permission on the databases, as requested by espie@ quite some time ago. But make sure to not slow database generation down when you do have write permission, and to not delay error reporting in -Q mode. 2014-03-17 16:31 schwarze Changed: mansearch.c (1.22), "Exp", lines: +55 -7 in apropos(1) output, sort names and avoid multiple section numbers 2014-03-17 09:52 schwarze Changed: apropos.1 (1.16.2.4), "Exp", lines: +79 -35 merge the applicable parts from HEAD 2014-03-17 09:43 schwarze Changed: apropos.1 (1.23), "Exp", lines: +153 -57 Sync to OpenBSD: * do not talk about shell globbing * describe logical operations * improve examples * add HISTORY * some wording improvements for clarity 2014-03-17 09:04 schwarze Changed: mandocdb.8 (1.17.2.2), "Exp", lines: +12 -7 minor sync with HEAD, but keep the Berkeley DB parts 2014-03-17 08:34 schwarze Changed: mandocdb.8 (1.21), "Exp", lines: +28 -6 minor sync to OpenBSD 2014-03-17 06:57 schwarze Changed: man.7 (1.125), "Exp", lines: +2 -8 roff.7 (1.49), "Exp", lines: +30 -2 sync to OpenBSD: .ft is a roff(7) request, not a man(7) macro, and it is not even used frequently in man(7) 2014-03-13 19:23 schwarze Changed: term.c (1.217), "Exp", lines: +8 -7 In -Tutf8 mode, make sure that hyphens get counted against the output line length even when they are breakable. Before this, a line containing N breakable hyphens could get up to N characters wider than the right margin in -Tutf8 output mode. Issue reported by tedu@ on <bugs at OpenBSD>. 2014-03-08 21:54 schwarze Changed: TODO (1.167), "Exp", lines: +11 -1 new bug report from wiz@ regarding Tcl*(3) 2014-03-08 16:22 schwarze Changed: man_term.c (1.142), "Exp", lines: +2 -2 In .nf mode, use the MAN_LINE flag to detect input line breaks instead of the man_node line member. This is required to preserve line breaks contained in user-defined macros called in .nf mode. Found in a code audit triggered by fixing a similar issue in .TP. 2014-03-08 15:50 schwarze Changed: man_html.c (1.91), "Exp", lines: +11 -6 man_term.c (1.141), "Exp", lines: +10 -5 tree.c (1.51), "Exp", lines: +6 -3 To find out whether .TP head arguments are same-line or next-line arguments, use the MAN_LINE flag instead of the man_node line member. This is required such that user-defined macros wrapping .TP work correctly. Issue found by Havard Eidnes in Tcl_NewStringObj(3), reported via the NetBSD bug tracking system and Thomas Klausner <wiz at NetBSD>. 2014-03-08 04:43 schwarze Changed: roff.7 (1.48), "Exp", lines: +72 -41 roff.c (1.198), "Exp", lines: +87 -56 Improve .if/.ie condition handling. * Support string comparisons. * Support negation not only for numerical, but for all conditions. * Switch the `o' condition from false to true. * Handle the `c', `d', and `r' conditions as false for now. * Use int for boolean data instead of rolling our own "enum roffrule"; needed such that we can use the standard ! and == operators. Havard Eidnes reported via the NetBSD bug tracking system that some Tcl*(3) manuals need this, and Thomas Klausner <wiz at NetBSD> forwarded the report to me. This doesn't make the crazy Tcl*(3) macrology maze happy yet, but brings us a bit closer. 2014-03-07 18:37 schwarze Changed: roff.c (1.197), "Exp", lines: +13 -12 In roff_cond_sub(), make sure that the incorrect input sequence `\\}', when found on a macro line, does not close a conditional block. The companion function roff_cond_text() already did this correctly, but make the code more readable without functional change. While here, report the correct column number in related error messages. 2014-03-07 18:30 schwarze Changed: roff.c (1.196), "Exp", lines: +11 -15 Even on macro lines, \} must not cause whitespace. 2014-03-07 02:22 schwarze Changed: roff.c (1.195), "Exp", lines: +13 -26 Three bugfixes related to the closing of conditional blocks: 1. Handle more than one `\}' on macro lines, as it was already done for text lines. 2. Do not treat `\}' as a macro invocation after a dot at the beginning of a line. That allows more than one `\}' to work on lines starting with `.\}'. It also simplifies the code. 3. Do not complain about characters following `\}'. Those are not lost, but handled normally both on text and macro lines. 2014-03-05 23:14 schwarze Changed: chars.in (1.45), "Exp", lines: +12 -12 In -Tutf8 mode, mandoc_char(7) named accent character escape sequences have to render as non-combining accents; if you want combining accents, you have to explicitly specify them using the Unicode character numbers for combining accents, or you can use character escape sequences for accented characters. This lets mandoc behave like groff. Additionally, both the Ossanna/Kernighan/Ritter troff manual and the GNU troff manual say that \' and \` are equivalent to \(aa and \(ga, respectively, so do the same for these. This mitigates issues with man(7) code autogenerated by texinfo2man(1), which mistranslates TeX ` and ' to \` and \' instead of \(oq and \(cq as reported by sthen@ and as analyzed by bentley@. 2014-03-03 19:09 schwarze Deleted: external.png (1.1.2.1) index.css (1.11.2.1) index.sgml (1.154.2.17) Changed: Makefile (1.395.2.14), "Exp", lines: +22 -36 - remove index.html, is now part of the website repo - and some general cleanup (installcgi is .PHONY) 2014-03-03 18:53 schwarze Deleted: external.png (1.2) index.css (1.12) index.sgml (1.167) Changed: Makefile (1.413), "Exp", lines: +30 -38 - remove index.html, it is now part of the website repo - install mandocdb, manpage, and apropos - and some general cleanup (e.g., installcgi is .PHONY) 2014-03-03 18:37 schwarze Changed: TODO (1.166), "Exp", lines: +12 -6 MANDOCERR_BADTAB needs checking, but .UR/.UE is done 2014-03-03 17:08 schwarze Deleted: regress/regress.sh (1.7) regress/man/RS/nesting.in (1.2) regress/man/SH/blank.in (1.4) regress/man/SH/blank2.in (1.2) regress/mdoc/Ar/empty.in (1.2) regress/mdoc/Ar/empty2.in (1.2) regress/mdoc/Bd/bd-compact.in (1.2) regress/mdoc/Bd/bd-empty-offset.in (1.2) regress/mdoc/Bd/bd0.in (1.2) regress/mdoc/Bl/bullet-basic.in (1.2) regress/mdoc/Bl/empty-offset.in (1.2) regress/mdoc/Cd/cd.in (1.3) regress/mdoc/Fl/empty.in (1.2) regress/mdoc/Ft/before-fn.in (1.2) regress/mdoc/Ft/before-fo.in (1.2) regress/mdoc/Lb/blank.in (1.2) regress/mdoc/Lb/body.in (1.2) regress/mdoc/Lb/custom.in (1.2) regress/mdoc/Lb/prolog.in (1.2) regress/mdoc/Li/empty.in (1.2) regress/mdoc/Li/empty2.in (1.2) regress/mdoc/Rs/one_author.in (1.2) regress/mdoc/Rs/three_authors.in (1.2) regress/mdoc/Rs/two_authors.in (1.2) regress/mdoc/Ud/ud.in (1.2) regress/roff/ig/cond0.in (1.3) regress/roff/ig/end0.in (1.2) regress/roff/ig/end1.in (1.2) regress/roff/ig/override0.in (1.2) regress/roff/ig/redef0.in (1.3) regress/roff/ig/simple0.in (1.3) regress/roff/ig/simple1.in (1.2) regress/roff/ig/simple2.in (1.3) Move the regression suite to the attic. It has not been used or maintained for several years, and we won't start using it now. Devlopment regression testing is done in OpenBSD, and there is no value in maintaining two regression suites in parallel. 2014-02-16 14:26 schwarze Changed: man.7 (1.124), "Exp", lines: +20 -14 mdoc.7 (1.227), "Exp", lines: +17 -11 After Werner Lemberg accepted and committed some updates to the manual page template contained in groff_mdoc(7), catch up with our own stuff. In particular, allow ERRORS in section 4 and DIAGNOSTICS in section 9. ok jmc@ 2014-02-16 12:33 schwarze Changed: man_term.c (1.140), "Exp", lines: +9 -6 mdoc_term.c (1.259), "Exp", lines: +6 -3 when indenting, extend the right margin accordingly, when needed; fixes a crash reported by blambert@ and a few other, similar ones 2014-02-14 23:50 schwarze Changed: roff.7 (1.47), "Exp", lines: +15 -3 document .as and .ce 2014-02-14 23:24 schwarze Changed: TODO (1.165), "Exp", lines: +1 -6 roff.c (1.194), "Exp", lines: +3 -1 Parse and ignore the roff(7) .ce request (center some lines). We even parse and ignore the .ad request (adjustment mode), and it doesn't make sense to more prominently warn about temporary than about permanent adjustment changes. Request found by naddy@ in xloadimage(1) and by juanfra@ in racket(1). 2014-02-14 23:05 schwarze Changed: TODO (1.164), "Exp", lines: +1 -4 roff.c (1.193), "Exp", lines: +16 -14 Implement the roff(7) .as request (append to user-defined string). Missing feature found by jca@ in ratpoison(1). The ratpoison(1) manual still doesn't work because it uses .shift and .while, too (apparently, ratpoison is so complex that it needs a Turing-complete language to even format its manual :-). Written at Christchurch International Airport. 2014-02-14 22:27 schwarze Changed: TODO (1.163), "Exp", lines: +1 -6 roff.c (1.192), "Exp", lines: +44 -1 Handle some predefined read-only number registers, e.g. .H and .V. In particular, this improves handling of the pod2man(1) preamble; for examples of the effect, see some author names in perlthrtut(1). Missing feature reported by Andreas Voegele <mail at andreasvoegele dot com> more than two years ago. Written at Christchurch International Airport. 2014-02-14 17:35 schwarze Changed: man.7 (1.123), "Exp", lines: +3 -3 use .At where appropriate; from Jan Stary <hans at stare dot cz> 2014-01-24 22:54 schwarze Changed: mdoc.7 (1.226), "Exp", lines: +202 -74 Supplement the documentation of the .St macro by minimal commentary regarding the content and relationships of the various standards, and sort and group them. tweaks and ok guenther@, ok millert@ sobrado@ jmc@ 2014-01-22 21:02 schwarze Changed: apropos_db.c (1.32.2.4), "Exp", lines: +15 -7 Implement the \: (optional line break) escape sequence, documented in the Ossanna-Kernighan-Ritter troff manual and also supported by groff. Missing feature reported by Steffen Nurpmeso <sdaoden at gmail dot com>. 2014-01-22 20:58 schwarze Changed: chars.c (1.55), "Exp", lines: +2 -2 chars.in (1.44), "Exp", lines: +12 -8 html.c (1.154), "Exp", lines: +9 -3 mandoc.h (1.115), "Exp", lines: +2 -1 mandocdb.c (1.114), "Exp", lines: +15 -6 mdoc_man.c (1.58), "Exp", lines: +5 -2 term.c (1.216), "Exp", lines: +10 -4 Implement the \: (optional line break) escape sequence, documented in the Ossanna-Kernighan-Ritter troff manual and also supported by groff. Missing feature reported by Steffen Nurpmeso <sdaoden at gmail dot com>. 2014-01-21 10:26 schwarze Changed: mdoc_macro.c (1.129), "Exp", lines: +2 -2 Treat the line after .Cd as a single argument. This doesn't hurt normal manual display and makes the mandocdb(8) database more useful. 2014-01-20 11:28 schwarze Changed: mdoc_macro.c (1.128), "Exp", lines: +2 -2 Keep words after .Ic together in a single argument. This doesn't hurt normal manual display and makes the mandocdb(8) database more useful. 2014-01-20 00:51 schwarze Changed: mdoc.7 (1.225), "Exp", lines: +33 -33 Change markup of some fixed strings from .Ar to .Cm. 2014-01-19 23:09 schwarze Changed: mansearch.c (1.21), "Exp", lines: +3 -1 Always compare arch case-insensitively. 2014-01-19 22:48 schwarze Changed: mandocdb.c (1.113), "Exp", lines: +4 -3 Avoid the risk of trying to modify a literal string. 2014-01-19 22:41 schwarze Changed: mandocdb.c (1.112), "Exp", lines: +10 -6 Always store the arch in lower-case only. Reduces database size by ~0.5%, and by ~1.5% with -Q. 2014-01-19 01:18 schwarze Changed: Makefile (1.412), "Exp", lines: +2 -2 mansearch.c (1.20), "Exp", lines: +29 -67 Get rid of the local keys table, use the new mansearch_const.c. No functional change. 2014-01-19 00:09 schwarze Added: mansearch_const.c (1.1) Changed: Makefile (1.411), "Exp", lines: +2 -1 mandocdb.c (1.111), "Exp", lines: +17 -2 Support a second -v on mandocdb(8) to show keys while they are being added; i need that for debugging, in particular to be used with -t. To be able to do so, provide a global table of key names, for reuse. 2014-01-18 08:55 schwarze Changed: mandocdb.c (1.110), "Exp", lines: +10 -1 Cope with slightly broken NAME sections in man(7) pages having a trailing comma after the last name, like this: ASN1_OBJECT_new, ASN1_OBJECT_free, - object allocation functions 2014-01-18 08:23 schwarze Changed: mansearch.h (1.9), "Exp", lines: +41 -41 Sort the macro keys by their real-world frequency to reduce the average mask size. No functional change. This shrinks the standard /usr/share/man database by 7%, now at 10.3x the size of whatis.db, and with -Q even by 11%, now at 3.0x of whatis.db. Now i'm out of ideas to easily shrink the size of the database. 2014-01-18 08:21 schwarze Changed: mandocdb.c (1.109), "Exp", lines: +3 -5 Drop the AUTOINCREMENT PRIMARY KEYs from the mlinks and keys tables. They are completely unused, and i cannot imagine what they *could* ever be used for; but apparently, they are expensive to generate. Standard DB build time goes down by 10%, now at 1.9x of makewhatis. Standard DB size goes down by 4%, now at 11x of makewhatis. DB build time with -Q goes down by 15%, now at 0.28x of makewhatis. DB size with -Q goes down by 3%, now at 3.35x of makewhatis. 2014-01-18 08:19 schwarze Changed: mandocdb.c (1.108), "Exp", lines: +2 -4 Despite some experimenting, i'm unable to find any relevant effect of creating an index for the keys table on apropos(1) search times; apparently, adding that index was premature optimization in the first place; so, stop adding that index. Its root gone, the following evil is reduced (/usr/share/man on my notebook) - DB build time with -Q goes down by 15%, now at 1/3 of makewhatis - DB size with -Q goes down by 35%, now at 3.5x of makewhatis - full DB build time goes down by 12%, now at 2.1x of makewhatis - full DB size goes down by 42%, now at 11.5x of makewhatis 2014-01-11 22:16 schwarze Changed: mdoc_validate.c (1.202), "Exp", lines: +2 -2 Remove useless use of strnlen(3). Yuckiness pointed out by deraadt@. 2014-01-07 09:10 schwarze Changed: mdoc_validate.c (1.201), "Exp", lines: +23 -30 Cache the result of uname(3) such that we don't need to call it over and over again for each manual; found with gprof(1). Speeds up mandocdb(8) -Q by 3%, now at 39.5% of makewhatis(8). 2014-01-06 23:46 schwarze Changed: roff.c (1.191), "Exp", lines: +7 -10 Gprof(1) is fun. You should use it more often. Another 10% speedup for mandocdb(8) -Q, and even 3% without -Q. With -Q, we are now at 41% of the time required by makewhatis(8). Do not copy predefined strings into the dynamic string table, just leave them in their own static table and use that one as a fallback at lookup time. This saves us copying and deleting them for each manual. No functional change. 2014-01-06 22:39 schwarze Changed: man_validate.c (1.88), "Exp", lines: +8 -6 mdoc_validate.c (1.200), "Exp", lines: +6 -6 Another 18% speedup for mandocdb(8) -Q, found by gprof(1). In -Q mode, refrain form validating and normalizing the format of the date given in .Dd or .TH, as it won't be used anyway. For /usr/share/man, mandocdb -Q now takes 45% of the time of makewhatis(8). 2014-01-06 21:34 schwarze Changed: libmandoc.h (1.39), "Exp", lines: +2 -2 read.c (1.43), "Exp", lines: +2 -2 roff.c (1.190), "Exp", lines: +7 -5 Another 25% speedup for mandocdb(8) -Q mode, found with gprof(1). For /usr/share/man, we only need 56% of the time of makewhatis(8) now. In groff, user-defined macros clashing with mdoc(7) or man(7) standard macros are cleared when parsing the .Dd or .TH macro, respectively. Of course, we continue doing that in standard mode to assure full groff bug compatibility. However, in -Q mode, full groff bug compatibility makes no sense when it's unreasonably expensive, so skip this step in -Q mode. Real-world manuals hardly ever redefine standard macros, that's terrible style, and if they do, it's pointless to do so before .Dd or .TH because it has no effect. Even if someone does, it's extremely unlikely to break mandocdb(8) -Q parsing because we abort the parse sequence after the NAME section, anyway. So if you manually redefine .Sh, .Nm, .Nd, or .SH in a way that doesn't work at all and rely on .Dd or .TH to fix it up for you, your broken manual will no longer get a perfect apropos(1) entry until you re-run mandocdb(8) without -Q. It think that consequence is acceptable in order to get a 25% speedup for everyone else. 2014-01-06 20:53 schwarze Changed: mandocdb.c (1.107), "Exp", lines: +7 -5 Do not sync to disk after each individual manual page (duh!), only sync to disk one single time when all data is ready. Rebuild times for /usr/share/man/mandoc.db shrink on my notebook: In standard mode from 45 seconds to 11 seconds (75% reduction) In -Q mode from 25 seconds to 3.1 seconds (87% reduction) For comparison: makewhatis(8): 4.2 seconds That is, in -Q mode, we are now *faster* than the existing makewhatis(8), and careful profiling shows there is still a lot of room for improval. 2014-01-06 15:32 schwarze Changed: mandocdb.c (1.106), "Exp", lines: +36 -15 Fix mandocdb(8) -d and -u. It was broken by recent optimizations. 2014-01-06 13:54 schwarze Changed: mandocdb.c (1.105), "Exp", lines: +6 -6 Rename dbindex() to dbadd() to be less confusing. The concept of an index file is gone since the switch to SQLite. No functional change. 2014-01-06 03:52 schwarze Changed: mandocdb.c (1.104), "Exp", lines: +2 -4 mansearch.c (1.19), "Exp", lines: +19 -10 Remove the redundant "file" column from the "mlinks" table. The contents can easily be reconstructed from sec, arch, name, form. Shrinks the database by another 3% in standard mode and 9% in -Q mode. 2014-01-06 03:02 schwarze Changed: apropos.c (1.37), "Exp", lines: +3 -5 mandocdb.c (1.103), "Exp", lines: +2 -15 manpage.c (1.7), "Exp", lines: +3 -4 mansearch.c (1.18), "Exp", lines: +3 -7 mansearch.h (1.8), "Exp", lines: +1 -2 Drop Nd from the mpages table, it is still in the keys table. This shrinks the database in standard mode by 3%, in -Q mode by 9%, without loss of functionality. 2014-01-06 00:53 schwarze Changed: lib.in (1.18), "Exp", lines: +2 -1 main.c (1.169), "Exp", lines: +2 -1 man.7 (1.122), "Exp", lines: +3 -2 man.c (1.124), "Exp", lines: +2 -1 mdoc_validate.c (1.199), "Exp", lines: +2 -1 read.c (1.42), "Exp", lines: +2 -1 Joerg Sonnenberger contributed copyrightable amounts of text to some files. To make it clear that he also put his contributions under the ISC license, with his explicit permission, add his Copyright notice to the relevant files. No code change. 2014-01-05 21:30 schwarze Changed: mandocdb.c (1.49.2.11), "Exp", lines: +9 -4 Cope with the mparse_alloc() interface change. 2014-01-05 20:41 schwarze Changed: cgi.c (1.47), "Exp", lines: +2 -2 demandoc.c (1.8), "Exp", lines: +2 -2 Cope with mparse_alloc() interface change. 2014-01-05 20:26 schwarze Changed: libman.h (1.57), "Exp", lines: +2 -1 libmandoc.h (1.38), "Exp", lines: +3 -3 libmdoc.h (1.83), "Exp", lines: +2 -1 main.c (1.168), "Exp", lines: +2 -2 man.c (1.123), "Exp", lines: +10 -2 mandoc.3 (1.23), "Exp", lines: +46 -9 mandoc.h (1.114), "Exp", lines: +2 -2 mandocdb.c (1.102), "Exp", lines: +12 -8 mdoc.c (1.208), "Exp", lines: +11 -3 read.c (1.41), "Exp", lines: +11 -9 Add an option -Q (quick) to mandocdb(8) for accelerated generation of reduced-size databases. Implement this by allowing the parsers to optionally abort the parse sequence after the NAME section. While here, garbage collect the unused void *arg attribute of struct mparse and mparse_alloc() and fix some errors in mandoc(3). This reduces the processing time of mandocdb(8) on /usr/share/man by a factor of 2 and the database size by a factor of 4. However, it still takes 5 times the time and 6 times the space of makewhatis(8), so more work is clearly needed. 2014-01-05 19:10 joerg Changed: html.c (1.153), "Exp", lines: +2 -2 html.h (1.50), "Exp", lines: +4 -1 libmandoc.h (1.37), "Exp", lines: +4 -1 term_ps.c (1.55), "Exp", lines: +5 -2 Tag functions with format strings as arguments as printf-like. Fix one case where a non-literal is used as format string. Fix another case where a variable is formatted using the wrong type. 2014-01-05 18:37 joerg Changed: tbl_data.c (1.28), "Exp", lines: +5 -5 Merge NetBSD's r1.4: Rename data to getdata to work around bugs in the PPC64 toolchain. 2014-01-05 04:48 schwarze Changed: mandocdb.c (1.101), "Exp", lines: +7 -69 Rip out the complete "reachable" checks, without replacement. It's a pity i spent time during t2k13 writing this; however, when an entire concept is busted, let us not look back, There is no such thing as an unreachable page. Even if you are crazy enough to put a page starting with ".Dt NAMEI 9" into a file man1/cat.1, we now make sure that it can be found by all of the following: Nm=namei Nm=cat sec=1 sec=9 It will always be displayed as: cat(1) - pathname lookup So you know that you have to type `man cat` to get at it. That obsoletes the concept of "unreachable manuals" for good. 2014-01-05 04:13 schwarze Changed: mandocdb.c (1.100), "Exp", lines: +2 -14 mansearch.c (1.17), "Exp", lines: +30 -24 Remove the obsolete file name column from the mpages table. This column wasn't helpful because one manpage can have multiple MLINKS. Use the file name column in the mlinks table, instead. 2014-01-05 03:25 schwarze Changed: mandocdb.c (1.99), "Exp", lines: +4 -8 mansearch.c (1.16), "Exp", lines: +4 -4 Remove the obsolete sec and arch columns from the mpages table. They were confusing because a manpage can have MLINKS in different sections and architectures. 2014-01-05 03:06 schwarze Changed: mandocdb.c (1.98), "Exp", lines: +5 -3 mansearch.c (1.15), "Exp", lines: +52 -22 Reimplement apropos -s NUM -S ARCH EXPR by internally converting it to apropos \( EXPR \) -a 'sec~^NUM$' -a 'arch~^(ARCH|any)$' in preparation for removal of sec and arch from the mpage table. Almost no functional change except for the following bonus: This also makes sure that for cross-section and cross-arch MLINKs, all of the following work: apropos -s 1 encrypt apropos -s 8 encrypt apropos -s 1 makekey apropos -s 8 makekey While here, print error messages about invalid regexps to stderr. 2014-01-05 00:29 schwarze Changed: mandocdb.c (1.97), "Exp", lines: +10 -2 mansearch.c (1.14), "Exp", lines: +3 -1 mansearch.h (1.7), "Exp", lines: +3 -1 Put section and architecture info into the keys table, in preparation for removing them from the mpages table, aiming for cleaner and more uniform interfaces. Database growth is below 4%, part of which will be reclaimed. As a bonus, this allows searches like: ./obj/apropos An=kettenis -a arch=ppc ./obj/apropos An=kettenis -a sec~[^4] 2014-01-04 23:43 schwarze Changed: mansearch.c (1.13), "Exp", lines: +92 -56 New implementation of complex search criteria using \(, \), -a because the old implementation got lost in the Berkeley to SQLite switch. Note that this is not just feature creep, but required for upcoming database format cleanup and simplification. 2014-01-04 15:00 schwarze Changed: Makefile (1.410), "Exp", lines: +7 -2 Put mansearch.{h,c}, manpage.c, and compat_ohash.{h,c} into the distribution tarball. Bump VERSION. 2014-01-04 14:45 schwarze Changed: Makefile (1.409), "Exp", lines: +3 -1 Put ./configure into the distributin tarball. 2014-01-04 14:44 schwarze Changed: Makefile (1.395.2.13), "Exp", lines: +3 -1 Put ./configure into the distribution tarball. 2014-01-04 14:09 schwarze Changed: compat_ohash.c (1.2), "Exp", lines: +2 -2 compat_ohash.h (1.2), "Exp", lines: +1 -1 Use C99 uint32_t, not BSD-style u_int32_t. Needed for Solaris 10 as reported by Matthias Scheler. 2014-01-04 13:49 schwarze Changed: Makefile (1.395.2.12), "Exp", lines: +3 -0 config.h.post (1.6.2.5), "Exp", lines: +10 -9 configure (1.1.2.2), "Exp", lines: +1 -0 Merge strnlen(3) configuration bits. 2014-01-04 13:40 schwarze Added: compat_strnlen.c (1.1) test-strnlen.c (1.1) Changed: Makefile (1.408), "Exp", lines: +3 -0 config.h.post (1.8), "Exp", lines: +10 -9 config.h.pre (1.3), "Exp", lines: +1 -0 configure (1.2), "Exp", lines: +1 -0 Even though strnlen(3) is required by POSIX 2008, Matthias Scheler reports than Solaris 10 lacks it. While here, sort the declarations in config.h and move the headers to the top. 2014-01-04 01:24 schwarze Changed: Makefile (1.395.2.11), "Exp", lines: +12 -51 configure (1.1.2.1), "Exp", lines: +1 -1 Merge cleanup of feature tests to VERSION_1_12, resolving conflicts. 2014-01-04 01:11 schwarze Added: configure (1.1) Changed: Makefile (1.407), "Exp", lines: +12 -51 test-fgetln.c (1.2), "Exp", lines: +4 -4 test-getsubopt.c (1.2), "Exp", lines: +10 -3 test-mmap.c (1.4), "Exp", lines: +2 -4 test-strlcat.c (1.2), "Exp", lines: +4 -3 test-strlcpy.c (1.2), "Exp", lines: +4 -3 test-strptime.c (1.2), "Exp", lines: +5 -4 Clean up feature tests: * Split the configure steering script out of the Makefile. * Let the configure step depend on the test sources. * Clean up the test programs such that they can be run. 2014-01-02 22:44 schwarze Changed: mandocdb.c (1.96), "Exp", lines: +19 -19 Avoid "utf8" in the names of a function and a struct member that don't necessarily have anything to do with UTF-8. Just renaming, no functional change. 2014-01-02 22:19 schwarze Changed: mandocdb.c (1.95), "Exp", lines: +35 -17 Do not put UTF-8-encoded strings into the database by default, use ASCII. Just like for mandoc(1), provide a -Tutf8 option for people who want that. 2014-01-02 20:24 schwarze Changed: mandocdb.c (1.94), "Exp", lines: +21 -27 Polish the mlink_add() interface: Allocate memory inside, not in the callers. No functional change. 2014-01-02 18:52 schwarze Changed: mandocdb.c (1.93), "Exp", lines: +60 -43 Check all MLINKS for consistency with the content of the manual page, not just the first one. This doesn't change how the check is done, but just which MLINKS are checked. 2014-01-02 16:29 schwarze Changed: mandoc.h (1.113), "Exp", lines: +10 -2 read.c (1.40), "Exp", lines: +41 -17 Since the functions in read.c are part of the mandoc(3) library, do not print to stderr. Instead, properly use the mmsg callback. Issue noticed by Abhinav Upadhyay <er dot abhinav dot upadhyay at gmail dot com> and Thomas Klausner <wiz at NetBSD>. 2013-12-31 23:29 schwarze Changed: mdoc.7 (1.224), "Exp", lines: +4 -2 st.in (1.23), "Exp", lines: +2 -1 Support .St -p1003.1-2013, "IEEE Std 1003.1-2008/Cor 1-2013". Note that the POSIX-2008 standard remains in force, so please refrain from wholesale 2008 -> 2013 replacements. Make sure to only use the new -p1003.1-2013 argument for cases where "IEEE Std 1003.1(TM)-2008/ Cor 1-2013, IEEE Standard for Information Technology--Portable Operating System Interface (POSIX(R)), Technical Corrigendum 1" actually changes something in the standard with respect to the specific function documented in the manual you touch. Otherwise, please continue using .St -p1003.1-2008. Triggered by a similar, but slightly incorrect patch from jmc@; ok guenther@. 2013-12-31 23:23 schwarze Changed: libmandoc.h (1.36), "Exp", lines: +2 -2 man.c (1.122), "Exp", lines: +2 -2 man_macro.c (1.80), "Exp", lines: +2 -2 mandoc.c (1.75), "Exp", lines: +5 -5 mdoc.c (1.207), "Exp", lines: +2 -2 mdoc_macro.c (1.127), "Exp", lines: +2 -2 Simplify: Remove an unused argument from the mandoc_eos() function. No functional change. 2013-12-31 23:19 schwarze Changed: Makefile (1.395.2.10), "Exp", lines: +13 -1 config.h.post (1.6.2.4), "Exp", lines: +6 -0 Provide strcasestr(3) and strsep(3) for Solaris 10 compat; reported missing by Matthias Scheler <tron at NetBSD> via wiz@. 2013-12-31 23:03 schwarze Added: compat_strcasestr.c (1.1) compat_strsep.c (1.1) test-strcasestr.c (1.1) test-strsep.c (1.1) Changed: Makefile (1.406), "Exp", lines: +13 -1 config.h.post (1.7), "Exp", lines: +6 -0 Provide strcasestr(3) and strsep(3) for Solaris 10 compat; reported missing by Matthias Scheler <tron at NetBSD> via wiz@. 2013-12-31 22:40 schwarze Changed: mdoc_macro.c (1.126), "Exp", lines: +1 -20 Do not trigger end-of-sentence spacing by trailing punctuation at the end of partial implicit macros. Prodded by jmc@. Actually, this is a revert of rev. 1.64 Fri May 14 14:09:13 2010 UTC by kristaps@, with this original commit message: "Block-implicit macros now up-propogate end-of-sentence spacing. NOTE: GROFF IS NOT SMART ENOUGH TO DO THIS." Please speak after me: Then why the hell should we? We already weakened this in rev. 1.93 Sun Jul 18 17:00:26 2010 UTC, but that weakening was insufficient. Let's take it out completely. Admittedly, there are two places in OpenBSD base where what Kristaps did make the output nicer, in calloc(3) and in fish(6). But both are atypical. There are 18 other places where this revert makes the output nicer, the typical case being: "Mail status is shown as ``No Mail.'' if there is no mail." You do *not* want the EOS spacing after ``No Mail.'' in that sentence. 2013-12-31 19:40 schwarze Changed: mandocdb.c (1.92), "Exp", lines: +6 -34 Yet another regression introduced by Kristaps when he switched from Berkeley DB to SQLite3: In the .In parser, the logic got inverted. The resulting NULL pointer access was found by clang; scan log provided by Ulrich Spoerlein <uqs at FreeBSD>. The best fix is to simply remove the whole, pointless custom handler function for .In and let the framework do its work. Now searching for included header files actually works. While here, remove the similarly pointless custom .St handler, fix the return value of the .Fd handler and disentangle the spaghetti in the .Nm handler. 2013-12-31 18:07 schwarze Changed: man_validate.c (1.87), "Exp", lines: +2 -6 mandocdb.c (1.91), "Exp", lines: +1 -2 term.c (1.215), "Exp", lines: +1 -2 remove assignments that will be overwritten right afterwards, and remove pointless local variables; found in a clang output from Ulrich Spoerlein <uqs at FreeBSD> 2013-12-31 17:47 schwarze Changed: index.sgml (1.166), "Exp", lines: +3 -3 index.sgml (1.154.2.16), "Exp", lines: +3 -3 update the link to the ISC license and note that the pkgsrc port was updated to 1.12.3 2013-12-31 15:17 schwarze Changed: man.7 (1.121), "Exp", lines: +22 -3 Add missing description of .UR/.UE. While here, also add .EX/.EE and .PD to the MACRO SYNTAX table. 2013-12-31 11:28 tag VERSION_1_12_3 2013-12-31 11:28 schwarze Changed: Makefile (1.405), "Exp", lines: +2 -2 NEWS (1.4), "Exp", lines: +29 -1 index.sgml (1.165), "Exp", lines: +54 -28 release 1.12.3 2013-12-31 11:23 schwarze Changed: Makefile (1.395.2.9), "Exp", lines: +2 -2 index.sgml (1.154.2.15), "Exp", lines: +53 -27 release 1.12.3 2013-12-31 03:41 schwarze Changed: apropos.c (1.36), "Exp", lines: +14 -4 manpage.c (1.6), "Exp", lines: +4 -2 mansearch.c (1.12), "Exp", lines: +63 -5 mansearch.h (1.6), "Exp", lines: +4 -1 Experimental feature to let apropos(1) show different keys than .Nd. This really takes us beyond what grep -R /usr/*/man/ can do because now you can search for pages by *one* criterion and then display the contents of *another* macro from those pages, like in $ apropos -O Ox Fa~wchar to get an impression how long wide character handling is available. 2013-12-31 02:42 schwarze Changed: mansearch.c (1.11), "Exp", lines: +41 -31 Split buildnames() out of mansearch(); the latter function is getting too long and unwieldy, but will grow more code soon. No functional change. 2013-12-30 18:44 schwarze Changed: roff.c (1.189), "Exp", lines: +2 -3 Oops, missed one: Remove duplicate const specifier from a call to mandoc_escape(). Found by Thomas Klausner <wiz at NetBSD dot org> using clang. No functional change. 2013-12-30 18:30 schwarze Changed: mandoc.c (1.74), "Exp", lines: +2 -2 mandoc.h (1.112), "Exp", lines: +2 -3 Remove duplicate const specifiers from the declaration of mandoc_escape(). Found by Thomas Klausner <wiz at NetBSD dot org> using clang. No functional change. 2013-12-27 23:41 schwarze Changed: mandocdb.c (1.90), "Exp", lines: +10 -8 Oops, that segfaulted after deleting an mlink from the list. Fix the loop logic in mlinks_undupe(). 2013-12-27 20:35 schwarze Changed: mandocdb.c (1.89), "Exp", lines: +53 -37 Split mlinks_undupe() out of mpages_merge() such that the check for source manuals of the same name can be done for multiple mlinks pointing to the same preformatted mpage. 2013-12-27 18:51 schwarze Changed: apropos.c (1.35), "Exp", lines: +4 -2 manpage.c (1.5), "Exp", lines: +9 -2 mansearch.c (1.10), "Exp", lines: +50 -9 mansearch.h (1.5), "Exp", lines: +3 -2 Change the mansearch() interface to use the mlinks table in the database and return a list of names with sections, used by apropos(1) for display. While here, improve uniformity of the interface by allocating the file name dynamically, just like the names list and the description. 2013-12-27 18:42 schwarze Changed: mandocdb.c (1.88), "Exp", lines: +5 -3 Save the MLINK name into the database, too; apropos(1) will need it to display its results. 2013-12-27 16:40 schwarze Changed: mandocdb.c (1.87), "Exp", lines: +11 -8 Write more than one mlink per mpage to the database. Not yet used by apropos(1). 2013-12-27 16:17 schwarze Changed: mandocdb.c (1.86), "Exp", lines: +1 -24 Allow saving more than one mlink per mpage in the mlinks ohash. We are still only using one of them for now. Actually, we are now using a different one, but the order the mlinks are found is random anyway. 2013-12-27 15:48 schwarze Changed: mandocdb.c (1.85), "Exp", lines: +4 -3 Enable the framework code to allow more than one mlink per mpage. Not used yet. 2013-12-27 15:39 schwarze Changed: mandocdb.c (1.84), "Exp", lines: +66 -69 Clean up the interface of mlink_add(). Consistently use "fsec" and "fform" for info derived from the file name. No functional change. 2013-12-27 14:29 schwarze Changed: mandocdb.c (1.83), "Exp", lines: +37 -77 Another step on the way to clear naming, this time regarding mlinks: * rename global ohash filenames to mlinks * rename ofadd() to mlink_add() * fold fileadd() and inoadd() into mlink_add() * fold filecheck() into mpages_merge() Still no functional change. 2013-12-27 03:06 schwarze Changed: mandocdb.c (1.82), "Exp", lines: +124 -83 Split struct mlink out of struct mpage. Still a 1:1 relation, no functional change yet. 2013-12-27 01:16 schwarze Changed: mandocdb.c (1.81), "Exp", lines: +53 -22 mansearch.c (1.9), "Exp", lines: +3 -3 Add an additional mlinks table to the database, redundant for now, both because it contains nothing but a subset of the data of the existing mpages table and because the relationship of mpage and mlink entries is still 1:1. But all that will eventually change. 2013-12-26 23:35 schwarze Changed: mandocdb.c (1.80), "Exp", lines: +28 -24 Drop the mpages_list, use the existing mpages ohash for iteration. No functional change except that the order of database entries changes, which doesn't matter anyway. 2013-12-26 22:30 schwarze Changed: mandocdb.c (1.79), "Exp", lines: +15 -15 The name "id" is terrible for a struct. Make this more searchable by calling it "inodev". No functional change. 2013-12-26 22:12 schwarze Changed: mandocdb.c (1.78), "Exp", lines: +183 -178 To better support MLINKS, we will have to split the "docs" database table into two tables, on for actual files on disk, one for (often multiple) directory entries pointing to them. That implies splitting struct of into two structs, to be called "mpage" and "mlink", respectively. As a preparation, globally rename "of" and "inos" to "mpage". No functional change. 2013-12-26 19:02 schwarze Changed: mandocdb.c (1.77), "Exp", lines: +5 -2 Stop parsing man(7) input when we found all we were searching for, such that we don't trigger an assertion on a duplicate NAME section. 2013-12-26 17:23 schwarze Changed: mandoc_char.7 (1.56), "Exp", lines: +22 -22 Rework the documentation of Spaces, using the Ossanna/Kernighan/Ritter Heirloom Nroff/Troff User's Manual at the authoritative reference. Part of our text was outright wrong. Also, refrain from advertising the paddable non-breaking space `\~' in the DESCRIPTION, for three reasons: For nroff mode, -Tascii, and fixed width fonts in general, it makes no difference, so keep the discussion simple. Compared to `\ ', '\~' is of questionable portability. And if you want to keep words together, it is also more usual that you don't want padding to intervene either. Finally, drop the `\c' escape sequence (interrupt text processing) which is not a special character but an input processing instruction akin to the \<newline> escape sequence. 2013-12-26 14:39 schwarze Changed: index.sgml (1.164), "Exp", lines: +30 -22 merge from VERSION_1_12 2013-12-26 14:30 schwarze Changed: index.sgml (1.154.2.14), "Exp", lines: +5 -5 update downstream versions 2013-12-26 02:55 schwarze Changed: mandoc.c (1.73), "Exp", lines: +6 -8 I have no idea how it happened that \B, \H, \h, \L, and \l got mapped to ESCAPE_NUMBERED (which is for \N and only for \N), that made no sense at all. Properly remap them to ESCAPE_IGNORE. While here, move \B and \w from the group taking number arguments to the group taking string arguments; right now, that doesn't imply any functional change, but if we ever go ahead and implement a parser for roff(7) numerical expressions, it will suddenly start to matter, and cause confusion. 2013-12-26 02:43 schwarze Changed: roff.7 (1.46), "Exp", lines: +255 -9 The roff language really has two groups of basic building blocks: Requests and escape sequences. Consequently, supplement the REQUEST REFERENCE by an ESCAPE SEQUENCE REFERENCE, such that people no longer need to guess or experiment what mandoc(1) implements, what it parses and ignores, and what it doesn't handle at all. 2013-12-25 22:45 schwarze Changed: mandoc.c (1.72), "Exp", lines: +9 -1 Parse and ignore the roff(7) escape sequences \d (move half line down) und \u (move half line up). Found by bentley@ in some DocBook crap. 2013-12-25 22:00 schwarze Changed: mdoc_man.c (1.57), "Exp", lines: +9 -4 Implement .Fo/.Fa/.Fc indentation and break handling for -Tman. 2013-12-25 21:24 schwarze Changed: mdoc_term.c (1.258), "Exp", lines: +2 -3 Oops, .Fa never breaks the output line in the middle of any of its arguments, not even outside SYNOPSIS mode. Quite surprising as .Fn does break the line in the middle of its arguments outside SYNOPSIS mode, and only doesn't do that in SYNOPSIS mode. Wonders of groff... 2013-12-25 15:12 schwarze Changed: mdoc_term.c (1.257), "Exp", lines: +5 -7 Garbage collect two local variables each used only one single time. 2013-12-25 14:40 schwarze Changed: TODO (1.162), "Exp", lines: +1 -8 mdoc_term.c (1.256), "Exp", lines: +23 -8 In the SYNOPSIS, implement hanging indentation for .Fo and avoid output line breaks inside .Fa arguments. This reduces groff-mandoc differences in OpenBSD base by more than 8%. Patch from Franco Fichtner <franco at lastsummer dot de> (DragonFly). 2013-12-25 14:09 schwarze Changed: mdoc.7 (1.223), "Exp", lines: +5 -3 st.in (1.22), "Exp", lines: +2 -1 Support .St -xsh4.2, the System Interfaces part of the original Single UNIX Specification. As this one appears to be used in the wild and we already have -xpg4.2 and even -xsh5, it makes sense to add this one. Note that calling the original SUS XPG4.2 appears to be more common than calling it SUSv1, so it's ok that we don't have .St -susv1. From Sascha Wildner <saw at online dot de> (DragonFly) via Franco Fichtner. 2013-12-25 00:50 schwarze Changed: man_macro.c (1.79), "Exp", lines: +2 -1 mandoc.c (1.71), "Exp", lines: +4 -4 mdoc_argv.c (1.89), "Exp", lines: +4 -4 roff.c (1.188), "Exp", lines: +2 -2 s/[Nn]ull/NUL/ in comments where appropriate; suggested by Thomas Klausner <wiz @ NetBSD dot org>. 2013-12-25 00:39 schwarze Changed: mdoc_man.c (1.56), "Exp", lines: +11 -1 mdoc_term.c (1.255), "Exp", lines: +3 -1 term.c (1.214), "Exp", lines: +12 -2 term.h (1.97), "Exp", lines: +2 -1 Do not break output lines in .Fn function arguments in SYNOPSIS mode. Following an idea from Franco Fichtner, but implemented more cleanly. This reduces groff-mandoc-differences in OpenBSD base by a fantastic 7.5%. 2013-12-24 23:04 schwarze Changed: mdoc_term.c (1.254), "Exp", lines: +3 -14 term.c (1.213), "Exp", lines: +2 -2 term.h (1.96), "Exp", lines: +8 -9 Delete the unused flag TERMP_IGNDELIM and the empty callback termp_igndelim_pre(). Sort the remaining termp flags. 2013-12-24 22:08 schwarze Changed: mdoc_man.c (1.55), "Exp", lines: +5 -2 Implement SYNOPSIS .Fn indentation for -Tman. 2013-12-24 20:45 schwarze Changed: mdoc_html.c (1.186), "Exp", lines: +2 -2 mdoc_macro.c (1.125), "Exp", lines: +2 -3 mdoc_man.c (1.54), "Exp", lines: +18 -19 mdoc_term.c (1.253), "Exp", lines: +9 -18 It turns out SYNOPSIS mode does not imply .Bk in general, but only within .Nm blocks. Simplify the code accordingly. Triggered by research done by Franco Fichtner. 2013-12-24 19:11 schwarze Changed: mdoc.h (1.125), "Exp", lines: +2 -1 mdoc.c (1.206), "Exp", lines: +2 -1 mdoc_html.c (1.185), "Exp", lines: +4 -8 mdoc_macro.c (1.124), "Exp", lines: +6 -1 mdoc_term.c (1.252), "Exp", lines: +2 -2 tree.c (1.50), "Exp", lines: +6 -2 When deciding whether two consecutive macros are on the same input line, we have to compare the line where the first one *ends* (not where it begins) to the line where the second one starts. This fixes the bug that .Bk allowed output line breaks right after block macros spanning more than one input line, even when the next macro follows on the same line. 2013-12-23 02:20 schwarze Changed: mdoc_term.c (1.251), "Exp", lines: +17 -1 term.c (1.212), "Exp", lines: +15 -4 Implement a long-standing desideratum, hanging indentation for .Fn in SYNOPSIS mode, exploiting the new trailspace feature by deliberately *NOT* using it. 2013-12-22 23:34 schwarze Changed: man_term.c (1.139), "Exp", lines: +13 -5 mdoc_term.c (1.250), "Exp", lines: +31 -18 term.c (1.211), "Exp", lines: +6 -8 term.h (1.95), "Exp", lines: +3 -2 Polishing the worms in my favourite can, term_flushln(). The TERMP_TWOSPACE flag i introduced in August 2009 was idiosyncratic and served only a very narrow purpose. Replace it by a more intuitive and more general termp attribute "trailspace", to be used together with TERMP_NOBREAK, to request a minimum amount of whitespace at the end of the current column. Adapt all code to the new interface. No functional change intended; code reviews to confirm that are welcome *eg*. 2013-12-22 14:06 schwarze Changed: mdoc_argv.c (1.88), "Exp", lines: +2 -2 Fix end-of-sentence spacing after the DragonFly text production macro. Patch from Franco Fichtner <franco at lastsummer dot de>. 2013-12-22 13:25 schwarze Changed: man_macro.c (1.78), "Exp", lines: +10 -1 Implement end-of-sentence spacing at the end of man(7) macro lines. Patch from Franco Fichtner <franco at lastsummer dot de> (DragonFly). 2013-12-22 13:18 schwarze Changed: mandoc_char.7 (1.55), "Exp", lines: +5 -5 Document the alternative syntax \C'uXXXX' for Unicode characters. Forgotten when committing mandoc.c rev. 1.70. 2013-12-15 23:56 schwarze Changed: TODO (1.161), "Exp", lines: +1 -6 mdoc_argv.c (1.87), "Exp", lines: +13 -1 In quoted macro arguments, double quotes can be quoted by doubling them. For a long time, we handle this in roff(7) and man(7) macros. Now add correct handling for the mdoc(7) case, too. Closely based on a patch by Tsugutomo dot ENAMI at jp dot sony dot com, see http://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=48438 received via Thomas Klausner (wiz@), slightly tweaked by me. 2013-12-15 21:30 schwarze Changed: TODO (1.160), "Exp", lines: +10 -1 bentley@ looked at sbcl(1) and found new tasks for us... 2013-12-15 21:23 schwarze Changed: libmandoc.h (1.35), "Exp", lines: +2 -2 mdoc_validate.c (1.198), "Exp", lines: +3 -3 roff.7 (1.45), "Exp", lines: +9 -6 roff.c (1.187), "Exp", lines: +18 -5 The "value" argument to the roff(7) .nr requests ends right before the first non-digit character. While here, implement and document an optional sign, requesting increment or decrement, as documented in the Ossanna/Kernighan/Ritter troff manual and supported by groff. Reported by bentley@ on discuss@. 2013-11-21 01:53 schwarze Changed: mandocdb.c (1.49.2.10), "Exp", lines: +2 -2 My audit of mandoc revealed one missing (unsigned char) cast in a tolower() argument containing arbitrary char data. Thanks to deraadt@ for triggering the audit. 2013-11-21 01:49 schwarze Changed: manpath.c (1.12), "Exp", lines: +2 -2 My audit of mandoc revealed one missing (unsigned char) cast in an isspace() argument containing arbitrary char data. Thanks to deraadt@ for triggering the audit. 2013-11-11 00:37 schwarze Changed: man_macro.c (1.77), "Exp", lines: +7 -5 man_term.c (1.138), "Exp", lines: +3 -1 In the parser, when closing an explicit block that is not open, close below-subsection implicit scopes that may still be open. In the formatter, make sure indentation is reset when leaving a scope, not only when entering the next one. Improves the formatting of gpg(1); issue reported by jca on ports. 2013-11-10 22:54 schwarze Changed: man.c (1.121), "Exp", lines: +12 -6 Ignore blank lines right after .SH and .SS. Improves the rendering of gpg(1); issue reported by jca on ports. 2013-11-10 21:34 schwarze Changed: mandoc.c (1.70), "Exp", lines: +5 -2 Support the alternative syntax \C'uXXXX' for Unicode characters. It is already documented in the Heirloom troff manual, and groff handles it as well. Bug reported by Bjarni Ingi Gislason <bjarniig at rhi dot hi dot is> on <bug-groff at gnu dot org>. Well, admittedly, that bug was reported against groff, but mandoc was even more broken than groff with respect to this syntax... 2013-11-10 14:32 schwarze Changed: mandoc_char.7 (1.54), "Exp", lines: +8 -3 clarify that \[uXXXX] wants uppercase hex digits 2013-11-10 12:28 schwarze Changed: TODO (1.159), "Exp", lines: +7 -1 missing features: line length and italic correction 2013-11-07 22:09 schwarze Changed: index.sgml (1.154.2.13), "Exp", lines: +11 -12 make text shorter and clearer; from kristaps@; tweaked by me 2013-11-07 21:57 schwarze Changed: index.sgml (1.154.2.12), "Exp", lines: +18 -10 Mention that mandoc is also an OpenBSD project, agreed by Kristaps. Remove text about groff as suggested by Kristaps; explaining that topic properly would get too long. 2013-11-02 20:39 schwarze Changed: mdoc.7 (1.222), "Exp", lines: +30 -9 While answering a question asked by espie@, i noticed that .Fd is not completely obsolete, but still somewhat useful for listing preprocessor directives, in particular in the SYNOPSIS. 2013-10-27 17:01 schwarze Changed: mandocdb.c (1.76), "Exp", lines: +12 -11 The man(7) language has no syntax to specify architectures, but it can still be used to write architecture-specific manuals, of course. So just derive the architecture a man(7) manual belongs to from the directory where it is located and refrain from warning about each and every architecture-specific man(7) manual found. While here, delete some trailing whitespace in the neighbourhood. 2013-10-27 16:41 schwarze Changed: mandocdb.c (1.75), "Exp", lines: +2 -2 The code in ofmerge() only tried the source parsers if at least one of the path (/man1/ .. /man9/) or the file name suffix (*.1 .. *.9) indicated a source manual. That missed source manuals with unusual names in unusual locations. Instead, as the existing comment right above already suggests, try the source parsers unless both the path and the file name suffix unambiguously indicate a preformatted manual (/cat*/*.0). This change is not expensive in practice because no real-world system will have large numbers of preformatted pages outside /cat*/*.0. The only way to make information loss even less probable would be to try the source parsers on all files, even /cat*/*.0, which wouldn't buy us much because no real-world system will call source manuals /cat*/*.0, but it will be expensive in practice, because many real-world systems have large numbers of preformatted pages called /cat*/*.0. 2013-10-27 16:09 schwarze Changed: mandocdb.c (1.74), "Exp", lines: +6 -6 delete duplicate NULL check and polish style; no functional change 2013-10-22 20:38 schwarze Changed: roff.7 (1.44), "Exp", lines: +5 -2 roff.c (1.186), "Exp", lines: +3 -1 Parse and ignore .hw (hyphenation points in words); this is safe because we don't do hyphenation anyway, so there is no point in throwing an ERROR when encountering .hw. Real-world usage of the request found by naddy@ in sysutils/dwdiff(1). 2013-10-21 23:47 schwarze Changed: libmdoc.h (1.82), "Exp", lines: +7 -3 mdoc.c (1.205), "Exp", lines: +19 -2 mdoc_macro.c (1.123), "Exp", lines: +140 -99 mdoc_validate.c (1.197), "Exp", lines: +9 -3 There are three kinds of input lines: text lines, macros taking positional arguments (like Dt Fn Xr) and macros taking text as arguments (like Nd Sh Em %T An). In the past, even the latter put each word of their arguments into its own MDOC_TEXT node; instead, concatenate arguments unless delimiters, keeps or spacing mode prevent that. Regarding mandoc(1), this is internal refactoring, no output change intended. Regarding mandocdb(8), this fixes yet another regression introduced when switching from DB to SQLite: The ability to search for strings crossing word boundaries was lost and is hereby restored. At the same time, database sizes and build times are both reduced by a bit more than 5% each. 2013-10-20 00:03 schwarze Changed: mansearch.c (1.8), "Exp", lines: +72 -29 Fix another regression introduced when switching from DB to SQLite: The ~ operator has to do regular expression search, not globbing. 2013-10-19 20:43 schwarze Changed: mansearch.c (1.7), "Exp", lines: +34 -6 Fix a regression introduced when switching from DB to SQLite: The = operator has to do substring search, not word search. 2013-10-18 23:07 schwarze Changed: mandocdb.c (1.73), "Exp", lines: +2 -2 Fix an assertion in dbindex(): Null strings are never entered into the string table. Fortunately, they never need UTF-8 translation either. 2013-10-18 21:10 schwarze Changed: mandocdb.c (1.72), "Exp", lines: +2 -2 Manuals to be checked with "mandocdb -t" need not be in the current directory or one of its subdirectories. 2013-10-17 20:54 schwarze Changed: man.c (1.120), "Exp", lines: +3 -2 man.h (1.62), "Exp", lines: +3 -1 man_html.c (1.90), "Exp", lines: +29 -1 man_macro.c (1.76), "Exp", lines: +6 -1 man_term.c (1.137), "Exp", lines: +31 -1 man_validate.c (1.86), "Exp", lines: +17 -2 Implement the .UR/.UE block (uniform resource identifier) introduced in the man-ext macros by Eric S. Raymond, enabled by default in groff_man(7). Usual disclaimer: You don't write new man(7) code, so you are not going to use these, either. Improves e.g. the bzr(1) and etherape(1) manuals. Thanks to naddy@ for bringing these to my attention. 2013-10-14 01:43 schwarze Changed: roff.7 (1.43), "Exp", lines: +8 -2 roff.c (1.185), "Exp", lines: +3 -1 Parse and ignore the .fam (font family) request. Fixes irunner(1) in devel/ipython and uim-xim(1) in inputmethods/uim. Thanks to naddy@ for bringing these to my attention. 2013-10-13 18:34 schwarze Changed: index.sgml (1.163), "Exp", lines: +31 -4 merge from VERSION_1_12: new section about mandoc history, with links 2013-10-13 18:32 schwarze Changed: index.sgml (1.154.2.11), "Exp", lines: +31 -4 new section about mandoc history, with links 2013-10-13 16:06 schwarze Changed: NEWS (1.3), "Exp", lines: +25 -14 mention the three unreleased versions since 1.10.3 2013-10-13 15:24 schwarze Changed: lib.in (1.17), "Exp", lines: +2 -1 add libppath; Thomas Klausner, NetBSD rev. 1.4, Aug 29, 2011 2013-10-13 14:45 schwarze Changed: lib.in (1.16), "Exp", lines: +4 -3 add libefi and simplify some names from FreeBSD ports SVN rev. 293734, Ulrich Spoerlein March 24, 2012 in case of conflicts with NetBSD, i keep the simpler NetBSD names 2013-10-13 03:07 schwarze Changed: st.in (1.21), "Exp", lines: +3 -3 sync SUSv2/SUSv3 entries with groff reduces groff-mandoc-differences for several pthread_*(3) manuals noticed by Franco Fichtner <franco at lastsummer dot de> dragonfly.git/commitdiff/370c546b87777b40b5fc862491555ef71b4ee130 2013-10-13 02:54 schwarze Changed: lib.in (1.15), "Exp", lines: +14 -1 more DragonFly libraries; Franco Fichtner <franco at lastsummer dot de> dragonfly.git/commit/107cb94cae2c24ce3f6851ce0ed24b80d64e3ec8 2013-10-11 00:06 schwarze Changed: catman.c (1.11.2.2), "Exp", lines: +2 -2 cgi.c (1.46), "Exp", lines: +36 -5 Thomas Klausner <wiz at NetBSD dot org> finally succeeded to build on SmartOS and sent these additional patches, thanks! 2013-10-10 23:43 schwarze Changed: apropos_db.c (1.32.2.3), "Exp", lines: +11 -6 config.h.post (1.6.2.3), "Exp", lines: +3 -0 mandocdb.c (1.49.2.9), "Exp", lines: +11 -9 On __sun, use <sys/byteorder.h>, BE_64(x), and <db_185.h>. Thanks to Thomas Klausner <wiz at NetBSD dot org> for providing failing SmartOS build logs such that i could write this patch without access to a __sun system and for confirming that these patches help. 2013-10-10 05:20 schwarze Changed: index.sgml (1.162), "Exp", lines: +21 -6 merge from VERSION_1_12: link supplementary information on mandoc and Alpine Linux port was upgraded to 1.12.2 2013-10-10 05:18 schwarze Changed: index.sgml (1.154.2.10), "Exp", lines: +20 -5 link supplementary information on mandoc and Alpine Linux port was upgraded to 1.12.2 2013-10-07 22:22 schwarze Changed: mdoc_man.c (1.53), "Exp", lines: +5 -5 Printf size_t vars with %zu, not %ld; from Antonio Huete Jimenez <tuxillo at quantumachine dot net> via Franco Fichtner (both DragonFly). 2013-10-06 23:20 schwarze Changed: Makefile (1.404), "Exp", lines: +2 -1 Put VERSION into config.h. This makes life easier for downstream maintainers having more than one Makefile, for example DragonFly and FreeBSD. Suggested by Franco Fichtner <franco at lastsummer dot de>. 2013-10-06 23:17 schwarze Changed: Makefile (1.395.2.8), "Exp", lines: +2 -1 Put VERSION into config.h. This makes life easier for downstream maintainers having more than one Makefile, for example DragonFly and FreeBSD. Suggested by Franco Fichtner <franco at lastsummer dot de>. 2013-10-06 22:46 schwarze Changed: mdoc_validate.c (1.196), "Exp", lines: +62 -20 We don't do hyphenation, but we allow breaking the line at hyphens that are already there in the middle of words. So far, we only allowed this on text lines. Now it turns out some macros allow this for their arguments, too, in particular .Nd and most of the .%? citation macros. Issue found by Franco Fichtner <franco at lastsummer dot de> while doing systematic groff-mandoc comparisons in the DragonFly base system, THANKS! While here, garbage collect two empty prevalidator function pointer lists and sort a couple of function declarations. 2013-10-06 17:34 schwarze Changed: index.sgml (1.161), "Exp", lines: +2 -2 Franco Fichtner moved DragonFly to 1.12.2. 2013-10-06 17:31 schwarze Changed: index.sgml (1.154.2.9), "Exp", lines: +3 -3 Franco Fichtner moved DragonFly to 1.12.2. While here, fix one more instance of the release date. 2013-10-06 17:01 schwarze Changed: mandoc.3 (1.22), "Exp", lines: +3 -3 mdoc.7 (1.221), "Exp", lines: +3 -3 The .Lb arguments wants a "lib" prefix; from Sascha Wildner via Franco Fichtner (DragonFly); also fixing the same in the mdoc(7) example while i'm about it. 2013-10-06 13:32 schwarze Changed: TODO (1.158), "Exp", lines: +2 -8 mdoc_validate.c (1.195), "Exp", lines: +60 -21 If there is random stuff inside a .Bl block body before the first .It, do not throw a FATAL error and do not die, but just throw a WARNING and move the stuff out of the .Bl block. This bug felt completely 2008-ish; meanwhile, such bugs from the Kristaps-doesnt-like-syntax-errors-so-lets-just-give-up--Era are becoming rare, but this was one of the last survivors. Thanks to bentley@ for reminding me to finally fix this. 2013-10-05 22:25 schwarze Changed: roff.c (1.184), "Exp", lines: +92 -4 Support simple numerical conditions. Original code from Christos Zoulas, NetBSD rev. 1.11-1.13, April 3, 2013. I tweaked the code as follows: * In roff_getnum(), don't skip a minus that isn't followed by a digit. * In roff_getop(), do not handle "!=", groff doesn't support it either. * In roff_evalcond(), treat negative numbers as false, like groff. Besides, make the interfaces of roff_getnum() and roff_getop() more similar to each other and simplify parts of the code a bit. 2013-10-05 22:21 schwarze Changed: roff.c (1.183), "Exp", lines: +3 -3 ROFFRULE_ALLOW = 0, ROFFRULE_DENY = 1 was confusing, so exchange the two entries in enum roffrule; no functional change; from Christos Zoulas, NetBSD rev. 1.11, April 4, 2013. 2013-10-05 22:19 schwarze Changed: roff.c (1.182), "Exp", lines: +6 -11 Avoid code duplication in roff_parseln() as suggested by Christos Zoulas in NetBSD rev. 1.11; i'm even going a step further and making this yet a bit shorter. No functional change. 2013-10-05 22:15 schwarze Changed: libmandoc.h (1.34), "Exp", lines: +3 -3 roff.c (1.181), "Exp", lines: +53 -32 Expand references to number registers in exactly the same way as references to user-defined strings. While here, make number registers signed int, like in groff. Inspired by NetBSD roff.c rev. 1.8 and read.c rev. 1.7 written by Christos Zoulas on March 21, 2013, but implemented in a completely different way, without hacking into read.c, where this functionality really doesn't belong. 2013-10-05 22:08 schwarze Changed: libmandoc.h (1.33), "Exp", lines: +4 -9 mdoc.c (1.204), "Exp", lines: +5 -7 mdoc_validate.c (1.194), "Exp", lines: +7 -6 roff.c (1.180), "Exp", lines: +57 -28 Support setting arbitrary roff(7) number registers, preserving read support for the ".nr nS" SYNOPSIS state register. Inspired by NetBSD roff.c rev. 1.18 (Christos Zoulas, March 21, 2013), but implemented differently. I don't want to have yet another different implementation of a hash table in mandoc - it would be the second one in roff.c alone and the fifth one in mandoc grand total. Instead, i designed and implemented roff_setreg() and roff_getreg() to be similar to roff_setstrn() and roff_getstrn(). Once we feel the need to optimize, we can introduce one common hash table implementation for everything in mandoc. 2013-10-05 21:51 schwarze Changed: lib.in (1.14), "Exp", lines: +10 -4 sync with NetBSD 2013-10-05 20:43 schwarze Changed: Makefile (1.403), "Exp", lines: +7 -7 merge from VERSION_1_12: do not complain about unused variables in test-*.c 2013-10-05 20:30 schwarze Changed: Makefile (1.395.2.7), "Exp", lines: +7 -7 apropos_db.c (1.32.2.2), "Exp", lines: +2 -3 catman.c (1.11.2.1), "Exp", lines: +1 -4 mandoc.3 (1.21), "Exp", lines: +4 -4 mandoc.c (1.69), "Exp", lines: +2 -2 mandoc.h (1.111), "Exp", lines: +3 -2 mandocdb.c (1.49.2.8), "Exp", lines: +4 -2 out.c (1.46), "Exp", lines: +1 -4 roff.c (1.179), "Exp", lines: +2 -2 Cleanup suggested by gcc-4.8.1, following hints by Christos Zoulas: - avoid bad qualifier casting in roff.c, roff_parsetext() by changing the mandoc_escape arguments to "const char const **" - avoid bad qualifier casting in mandocdb.c, index_merge() - do not complain about unused variables in test-*.c - garbage collect a few unused variables elsewhere 2013-10-05 20:09 schwarze Changed: Makefile (1.402), "Exp", lines: +1 -1 index.sgml (1.160), "Exp", lines: +14 -5 Merge from VERSION_1_12, in particular release date, pkgsrc port version, link to NEWS file, link to Alpine Linux, and fix one FreeBSD link. 2013-10-05 16:11 schwarze Changed: index.sgml (1.154.2.8), "Exp", lines: +4 -4 Thomas Klausner <wiz at netbsd dot org> already update pkgsrc. While here, fix the FreeBSD link and the 1.12.1 release date. 2013-10-05 14:05 tag VERSION_1_12_2 2013-10-05 14:05 schwarze Changed: index.sgml (1.154.2.7), "Exp", lines: +4 -1 Add missing link to the NEWS file. 2013-10-05 13:15 schwarze Changed: Makefile (1.395.2.6), "Exp", lines: +2 -2 NEWS (1.2), "Exp", lines: +3 -2 index.sgml (1.154.2.6), "Exp", lines: +8 -2 Release version 1.12.2. This is no longer beta. Sneak in a downstream link to Alpine Linux. 2013-10-05 01:25 schwarze Changed: apropos.1 (1.16.2.3), "Exp", lines: +4 -4 whatis.1 (1.7.2.2), "Exp", lines: +4 -4 whatis.{db,index} -> mandoc.{db,index}; from kristaps@ 2013-10-03 00:46 schwarze Changed: config.h.post (1.6.2.2), "Exp", lines: +7 -1 Byte-order functions for Mac OS X. Same patch sent in by Franco Fichtner and Kristaps Dzonsons. Tested by Franco Fichtner <franco at lastsummer dot de>. 2013-10-02 21:03 schwarze Changed: apropos_db.c (1.32.2.1), "Exp", lines: +2 -1 mandocdb.c (1.49.2.7), "Exp", lines: +2 -1 test-betoh64.c (1.1.2.2), "Exp", lines: +2 -0 DragonFly needs explicit #include <sys/endian.h> to use be64toh(), while most other systems include that indirectly via <sys/types.h>. Reported by Franco Fichtner <franco at lastsummer dot de>. 2013-10-02 06:45 schwarze Changed: index.sgml (1.159), "Exp", lines: +100 -20 Merge from branch VERSION_1_12: - mention that groff is GPL version 3 - link the new tbl.3.html - list FreeBSD base version of mandoc - document downstream versions - copy the version 1.12.2 News 2013-10-02 06:44 schwarze Changed: Makefile (1.401), "Exp", lines: +17 -9 Merge from branch VERSION_1_12: - add the new SCRS files NEWS and gmdiff - add tbl.3 to SRCS, INDEX_MANS, and install - bring back the SCRS files apropos.{c,1} that somehow got lost - bring back the INDEX_MANS apropos.1.html that also got lost - update VERSION, VDATE, and OSNAME - improve comment regarding STATIC 2013-10-01 20:56 schwarze Changed: apropos.1 (1.22), "Exp", lines: +3 -3 mandocdb.8 (1.20), "Exp", lines: +39 -7 Merge the relevant parts from the VERSION_1_12 branch: - change mandocdb.db to mandoc.db - add HISTORY to mandocdb(8) 2013-10-01 00:55 schwarze Changed: Makefile (1.395.2.5), "Exp", lines: +3 -2 include the NEWS file into the tarball 2013-10-01 00:52 schwarze Changed: mandocdb.c (1.49.2.6), "Exp", lines: +18 -2 Fix build on Solaris. Initial version for SmartOS by ONODERA Ryo <ryoon at netbsd dot org>. Generalized for Solaris by Jonathan Perkin <jperkin at netbsd dot org>. Received via Thomas Klausner <wiz at netbsd dot org>. Style cleanup by myself. 2013-10-01 00:24 schwarze Added: NEWS (1.1) New file suggested by Thomas Klausner <wiz at netbsd dot org>. 2013-09-29 23:28 schwarze Changed: Makefile (1.395.2.4), "Exp", lines: +11 -5 config.h.post (1.6.2.1), "Exp", lines: +3 -0 test-betoh64.c (1.1.2.1), "Exp", lines: +16 -0 Final tweaks for the release candidate: * Test for betoh64(), otherwise use be64toh(). * In the Makefile, improve the explanation of STATIC. * Update VERSION and VDATE. 2013-09-28 12:31 schwarze Changed: index.sgml (1.154.2.5), "Exp", lines: +10 -3 Improve FreeBSD links; triggered by and with help from Ulrich Spoerlein <uqs at freebsd dot org>. 2013-09-27 21:12 schwarze Changed: TODO (1.157), "Exp", lines: +4 -1 Maybe we can easily improve -width parsing. 2013-09-23 20:20 schwarze Changed: index.sgml (1.154.2.4), "Exp", lines: +28 -26 Polish the web page for the 1.12.2 release: * Manuals: Alphabetically sort "eqn" before "man". * Downstream: List explicit downstream versions. Yes, keeping this up to date causes minimal work, but i consider it worth the effort. * List all three places DragonFly scattered its mandoc build system to. * News: Polish the wording. * Note that groff is GPLv3, and remove the wrong claim that it's all GPL. * Assert my Copyright. 2013-09-22 23:21 schwarze Changed: TODO (1.156), "Exp", lines: +8 -2 Throwing FATAL MANDOCERR_SYNTCHILD on non-.It children of .Bl feels so 2008-ish, one of the last remnants of the Kristaps-doesnt-like-syntax-errors-so-lets-just-give-up--Era. 2013-09-22 11:48 schwarze Changed: TODO (1.155), "Exp", lines: +6 -1 DocBook abuses \h - for no good reason, but maybe we should eventually try to deal with it. 2013-09-18 19:07 schwarze Changed: index.sgml (1.154.2.3), "Exp", lines: +45 -1 What's new in 1.12.2. 2013-09-18 16:20 schwarze Changed: Makefile (1.395.2.3), "Exp", lines: +7 -4 index.sgml (1.154.2.2), "Exp", lines: +7 -1 Update VERSION, VDATE and CFLAGS for the upcoming 1.12.2 release. Add tbl.3 and gmdiff to the tarball. Add tbl.3.html to the website. 2013-09-18 02:24 schwarze Changed: Makefile (1.395.2.2), "Exp", lines: +1 -77 Merge rev. 1.400: Stop producing xhtml/pdf/etc for webpage. 2013-09-18 02:19 schwarze Changed: Makefile (1.395.2.1), "Exp", lines: +26 -172 Partial merge of rev. 1.396: Remove lint support and Windows binaries. 2013-09-18 01:55 schwarze Changed: index.sgml (1.154.2.1), "Exp", lines: +1 -61 Merge rev. 1.158: Stop producing xhtml/pdf/etc for webpage. 2013-09-18 01:04 schwarze Changed: mandocdb.8 (1.17.2.1), "Exp", lines: +41 -10 Merge from OpenBSD: 1) Revert filenames back to mandoc.{db,index} 2) Improve AUTHORS and HISTORY 2013-09-18 00:54 schwarze Changed: mandocdb.c (1.49.2.5), "Exp", lines: +2 -2 mandocdb.h (1.6.2.1), "Exp", lines: +3 -3 Fix typo in filenames: mandocdb.{db,index} -> mandoc.{db,index} 2013-09-17 23:23 schwarze Changed: apropos.c (1.27.2.1), "Exp", lines: +15 -24 Merge OpenBSD revision 1.17: Without arguments, show the usage line and EXIT_FAILURE. Resolve some gratuitious differences (order, parantheses, white space, etc). 2013-09-17 23:12 schwarze Changed: mandocdb.c (1.49.2.4), "Exp", lines: +5 -5 Merge OpenBSD rev. 1.43: Kristaps changed the size member of struct manpaths from int to size_t. No functional change. 2013-09-17 23:07 schwarze Changed: mandocdb.c (1.49.2.3), "Exp", lines: +52 -13 Merge OpenBSD rev. 1.34. Do not truncate the production database when starting to build a new one. Suggested by deraadt@. 2013-09-17 22:48 schwarze Changed: mandocdb.c (1.49.2.2), "Exp", lines: +137 -92 merge OpenBSD rev. 1.41: backout non-portable code 2013-09-17 21:32 schwarze Changed: mandocdb.c (1.49.2.1), "Exp", lines: +34 -34 Similar to rev. 1.58: Consistently use the PATH_MAX since it is specified by POSIX. 2013-09-17 20:54 schwarze Changed: whatis.1 (1.7.2.1), "Exp", lines: +8 -9 1) Revert the argument names in the SYNOPSIS back to the usual ones. 2) For citing the names and email addresses of authors, consistently use the style ".An name Aq Mt email". 2013-09-17 20:42 schwarze Changed: apropos.1 (1.16.2.2), "Exp", lines: +3 -4 Merge rev. 1.21: For citing the names and email addresses of authors, consistently use the style ".An name Aq Mt email". 2013-09-17 20:39 schwarze Changed: apropos.1 (1.16.2.1), "Exp", lines: +6 -6 Merge rev. 1.20: Revert the argument names in the SYNOPSIS back to the usual ones. 2013-09-16 22:58 schwarze Changed: man.7 (1.120), "Exp", lines: +4 -3 use the .Bx macro; from Jan Stary via jmc@ 2013-09-16 22:54 schwarze Changed: mandoc.3 (1.20), "Exp", lines: +3 -4 two improvements in the SYNOPSIS; from Sascha Wildner <swildner at gmail dot com> (DragonFly) 2013-09-16 22:39 schwarze Changed: tbl.7 (1.18), "Exp", lines: +2 -9 Drop .Ud remark, it has started to slowly turn into a lie. 2013-09-16 22:12 schwarze Changed: arch.in (1.14), "Exp", lines: +2 -2 Beagle has been replaced by armv7; from patrick@. 2013-09-16 00:25 schwarze Changed: mandoc.h (1.110), "Exp", lines: +2 -2 mdoc_validate.c (1.193), "Exp", lines: +3 -2 read.c (1.39), "Exp", lines: +2 -2 One of the WARNING messages has to use the word "section" twice in two different meanings, that cannot be helped. But we can make this less confusing by stating that the second instance refers to stuff like (2), (3), and (9), and by adding the sections header the first instance refers to, for example ERRORS or RETURN VALUES. Source for confusion noticed by Jan Stary <hans at stare dot cz>, better wording suggested by jmc@, tweaked by me. 2013-09-15 18:48 schwarze Changed: mdoc_man.c (1.52), "Exp", lines: +3 -4 Use normal line macro recognition, do not attempt to roll your own. This fixes horizontal spacing when an Ns macro follows a block-closing macro and the corresponding block-opening macro is not on the same line. 2013-09-15 18:26 schwarze Changed: mdoc_macro.c (1.122), "Exp", lines: +4 -1 Block closing macros do not allocate a new node but finish an existing one, so they miss the clearing of MDOC_NEWLINE in mdoc.c, node_alloc(). Consequently, MDOC_NEWLINE must be cleared before processing the next macro on the same line. This fixes horizontal spacing for input lines beginning like .Oc Ns ... Issue found by Franco Fichtner <franco at lastsummer dot de> while working on DragonFly mandoc integration. 2013-09-15 17:33 schwarze Changed: tree.c (1.49), "Exp", lines: +6 -3 For some mdoc(7) macros, it is (unfortunately) semantically significant whether they are the first macro on the line or called by another macro. To help debugging, indicate this property "first macro on a new input line" by prefixing an asterisk to the line number in -Ttree output. 2013-08-21 21:20 schwarze Changed: term.c (1.210), "Exp", lines: +15 -19 term.h (1.94), "Exp", lines: +3 -3 Move the last column-counting members of struct termp (col and maxcols) from int to size_t, to match some existing ones (offset, *rmargin, viscol). Move some related local variables from int to size_t as well. Needed as a preparation to make a generalized adjbuf() function available beyond the file term.c, i.e. in mandoc.c. Also saves a couple of ugly casts. 2013-08-14 15:08 schwarze Changed: mdoc.7 (1.220), "Exp", lines: +17 -7 Use text production macros to document themselves. Part of the patch was sent in by Jan Stary <hans at stare dot cz>, another part was added by jmc@, the rest was added by myself; ok jmc@. 2013-08-08 20:07 schwarze Changed: html.c (1.152), "Exp", lines: +35 -10 html.h (1.49), "Exp", lines: +2 -1 mandoc.c (1.68), "Exp", lines: +15 -9 mandoc.h (1.109), "Exp", lines: +2 -1 roff.7 (1.42), "Exp", lines: +11 -4 term.c (1.209), "Exp", lines: +23 -29 term.h (1.93), "Exp", lines: +2 -1 Implement the roff(7) font-escape sequence \f(BI "bold+italic". This improves the formatting of about 40 base manuals and reduces groff-mandoc formatting differences in base by about 5%. 2013-08-05 23:36 schwarze Changed: term.c (1.208), "Exp", lines: +2 -2 After a leading blank on an output line, the first word was counted twice against vend, causing a premature line break. Fix that bug by reverting revision 1.93 which Kristaps committed four years ago. Kristaps patch is no longer needed because the code below /* Write out the [remaining] word. */ now handles leading blanks correctly, probably already for a long time. This avoids premature line breaks in about a dozen base system manuals, for example as(1) and gdb(1), and alignment issues in another twenty, for example mount(2), ip6(4), pfctl(8), and crypto(9). 2013-08-05 14:36 schwarze Changed: mdoc_validate.c (1.192), "Exp", lines: +3 -3 Put .%C before .%D in .Rs output because that's the usual order in formal citations. My patch that was accepted into groff by Werner Lemberg uses the same order, so keep groff and mandoc consistent. 2013-07-14 11:57 schwarze Changed: TODO (1.154), "Exp", lines: +7 -1 jca@ found .as .shift .while in ratpoison(1) 2013-07-14 09:36 schwarze Changed: TODO (1.153), "Exp", lines: +10 -1 tedu@ says: "whatis pool" doesn't work 2013-07-13 19:41 schwarze Changed: apropos.1 (1.21), "Exp", lines: +3 -4 demandoc.1 (1.7), "Exp", lines: +3 -4 eqn.7 (1.29), "Exp", lines: +3 -4 man.7 (1.119), "Exp", lines: +3 -4 man.cgi.7 (1.12), "Exp", lines: +2 -3 mandoc.1 (1.103), "Exp", lines: +3 -4 mandoc.3 (1.19), "Exp", lines: +3 -4 mandoc_char.7 (1.53), "Exp", lines: +3 -4 mandocdb.8 (1.19), "Exp", lines: +4 -6 mdoc.7 (1.219), "Exp", lines: +5 -5 preconv.1 (1.7), "Exp", lines: +3 -4 roff.7 (1.41), "Exp", lines: +4 -6 tbl.7 (1.17), "Exp", lines: +3 -4 For citing the names and email addresses of authors, consistently use the style ".An name Aq Mt email". Triggered by a question from Jan Stary <hans at stare dot cz>, ok jmc@. 2013-07-13 12:52 schwarze Changed: TODO (1.152), "Exp", lines: +1 -5 mandoc.h (1.108), "Exp", lines: +3 -2 read.c (1.38), "Exp", lines: +2 -1 roff.c (1.178), "Exp", lines: +58 -11 Rudimentary implementation of the .it request (input line trap). As with any low-level roff request involving subtle interactions with macro internals, this implementation is not exact, but it does handle the simplest cases. This request occurs in man(7) code generated from DocBook, for example mysql(1) and yasm_arch(7). Thanks to brad@ for reporting the issue back in January 2011. 2013-07-05 09:33 schwarze Changed: apropos.1 (1.20), "Exp", lines: +6 -6 apropos.c (1.34), "Exp", lines: +11 -11 Simple partial sync with OpenBSD: * Again accept suffixes on the name of the whatis utility. * The usage line for whatis must not invite expressions. * Revert the argument names in the SYNOPSIS back to the usual ones. * Revert a few gratuitious changes regarding line breaks etc. 2013-07-02 13:26 schwarze Changed: mandocdb.c (1.71), "Exp", lines: +16 -17 For the strings table, ohash_init is only called in ofmerge(), so move the str_info structure into that function. No functional change. 2013-07-02 12:58 schwarze Changed: mandocdb.c (1.70), "Exp", lines: +12 -10 Turning off synchronous mode logically belongs to opening the database, so move the statement into the function dbopen(). 2013-07-02 12:22 schwarze Changed: TODO (1.151), "Exp", lines: +1 -9 fixed in mandoc.c rev. 1.67 and OpenBSD mandoc.c rev. 1.36 2013-07-02 11:40 schwarze Changed: mandocdb.c (1.69), "Exp", lines: +87 -19 Restore the check whether each page added to the database is actually reachable by man(1). This check got lost when the database backend was changed from Berkeley to sqlite. 2013-06-27 09:49 schwarze Changed: roff.c (1.177), "Exp", lines: +32 -44 Parse for the closing delimiter `\}' for conditionals even when the conditional evaluated to false. While here, reshuffle the code to reduce indentation and make it more readable; that way, we can even trim down the comments because it becomes obvious what the code does. Found in zipinfo(1) - thanks to espie@ and naddy@ for making me look at that manual page. 2013-06-22 10:05 schwarze Changed: TODO (1.150), "Exp", lines: +13 -5 sort missing roff requests, and add some usage info 2013-06-22 08:54 schwarze Added: gmdiff (1.1) A very simple utility script to automatically compare groff and mandoc output on collections of manual source files. I'm using this for quite some time now, and it has proven to be rather useful. Obviously, this will not be installed on user's systems. 2013-06-20 22:39 schwarze Changed: chars.c (1.54), "Exp", lines: +2 -2 chars.in (1.43), "Exp", lines: +2 -1 mandoc.c (1.67), "Exp", lines: +24 -6 Improve handling of the roff(7) "\t" escape sequence: * Parsing macro arguments has to be done in copy mode, which implies replacing "\t" by a literal tab character. * Otherwise, render "\t" as the empty string, not as a 't' character. This fixes formatting of the distfile example in the oldrdist(1) manual. This also shows up in the unzip(1) manual as one of several issues preventing the removal of USE_GROFF from the archivers/unzip port. Thanks to espie@ for attracting my attention to the unzip(1) manual. 2013-06-19 21:20 schwarze Changed: mdoc.7 (1.218), "Exp", lines: +12 -6 st.in (1.20), "Exp", lines: +11 -8 Add .St values for POSIX 1003.1d, 1003.1j, and 1003.1q. Tweak descriptions of the other POSIX 1003.1<letter> standards. Sort a few others into their proper places. From Philip Guenther@ during t2k13. 2013-06-07 05:27 schwarze Changed: mandocdb.c (1.68), "Exp", lines: +124 -127 The mdoc_handler flags are unused and will never be used. Having a mask is sufficient to trigger putmdockey. Simplify by dropping the flags; no functional change. 2013-06-07 04:51 schwarze Changed: mandocdb.c (1.67), "Exp", lines: +14 -3 In .Xr database entries, mention the manual section again; the section was dropped when switching from db to sqlite. Use the customary format foo(N). 2013-06-07 01:01 schwarze Changed: mandocdb.c (1.66), "Exp", lines: +68 -110 The string hash table is only needed to combine multiple occurences of the same string within the same manual, so initialize and purge it for each manual in ofmerge() instead of one single time in main(). There is no point in saving manual names and descriptions in that table because each of them occurs only once, or very few times. The is no point in saving section numbers there because they are so much shorter than the descriptions. Testing with the complete tree /usr/share/man/ on my notebook shows that this change slightly reduces memory consumption by about 20% while there is no measurable difference in execution time. As a bonus, this allows to delete the functions stradd() and stradds(), the "next" member from struct str, and the global struct str *words. While adapting the places in the code using stradd(), i noticed that parsing of the mdoc(7) .Nd macro was completely broken and that for formatted manual pages with unusable NAME section, the description was never set in the struct of. This commit fixes both bugs as well. 2013-06-06 19:00 schwarze Changed: mandocdb.c (1.65), "Exp", lines: +28 -45 Optimize stradds() and putkeys() to not call ohash_qlookupi() and ohash_find() twice. As a bonus, this allows to drop hashget(). While here, rename index to slot to match the terminology in the ohash manual; it also prevents potential clashes with index(3). Drop the slot variable altogether where it is used only once. 2013-06-06 17:51 schwarze Changed: mandocdb.c (1.64), "Exp", lines: +9 -22 Drop wordaddbuf() which is identical to putkeys(). Also rename straddbuf() to stradds() to be more similar to putkeys(). Just cleanup, no functional change. 2013-06-06 15:15 schwarze Changed: mandocdb.c (1.63), "Exp", lines: +15 -22 In dbopen(), check success of remove("mandoc.db~"). While here, simplify dbopen() and dbclose(): No need for strlcpy() and strlcat() when dealing with constant strings only. 2013-06-06 14:27 schwarze Changed: mansearch.h (1.4), "Exp", lines: +2 -2 No point in inventing yet another file name for the database. We are not going back to Berkeley DB and don't care about overwriting any obsolete files that may be lying around. So, go back from "mandocdb.db" to "mandoc.db". 2013-06-06 02:40 schwarze Changed: mandocdb.c (1.62), "Exp", lines: +2 -1 In parse_catpage(), the comment saying that the filename would be used as a default page description if no usable NAME section was found was preserved when moving from db to sqlite, but the code line actually doing that was removed without replacement. So, put it back. 2013-06-05 21:21 schwarze Changed: mandocdb.c (1.61), "Exp", lines: +10 -14 The return value from parse_man() is completely unused, so make the function void; no functional change. 2013-06-05 20:27 schwarze Changed: mandocdb.c (1.60), "Exp", lines: +37 -30 Two sanity checks got lost in treescan() during the switch from db to sqlite; restore these: * Warn and skip when directory and file name mismatch. * Warn and skip when finding special files. * Warning about "mandocdb.db" is useless, it is always present. * While here, do not hardcode "mandocdb.db", use MANDOC_DB. 2013-06-05 17:48 schwarze Changed: mandocdb.c (1.59), "Exp", lines: +160 -122 Add back the realpath() checks that got lost during the change from db to sqlite; they are needed to prevent corruption of the database when paths containing dot, dotdot, or symlinks are given on the command line. Also make sure the exit-code is really non-zero on system errors and use mandoc(1) exit codes. To make all this simpler, * Drop the "basedir" argument from almost every function and make it global because it is really state info used all over the place. * Move "startdir" and "fd" as local vars into set_basedir() because they are only used for this one purpose, i.e. to move out of basedir again. While here, * Clarify the name of path_arg in the main program; in the -C case, it is not a dir, and anyway there are lots of different dirs around. * Include missing <stdio.h> needed for perror(). 2013-06-05 02:00 schwarze Changed: cgi.c (1.45), "Exp", lines: +17 -18 mandocdb.c (1.58), "Exp", lines: +17 -17 manpage.c (1.4), "Exp", lines: +4 -4 manpath.c (1.11), "Exp", lines: +2 -6 mansearch.c (1.6), "Exp", lines: +7 -8 mansearch.h (1.3), "Exp", lines: +2 -2 Some places used PATH_MAX from <limits.h>, some MAXPATHLEN from <sys/param.h>. Consistently use the PATH_MAX since it is specified by POSIX, while MAXPATHLEN is not. In preparation for using this at a few more places. 2013-06-03 22:51 schwarze Changed: mandocdb.c (1.57), "Exp", lines: +4 -2 Changing existing SQLite databases was utterly broken: 1) SQL statements were only prepared when creating a new database. 2) We rely heavily on foreign_keys, but never enabled them. 2013-06-03 19:01 schwarze Changed: mandocdb.c (1.56), "Exp", lines: +65 -44 Starting the preparations to integrate this into OpenBSD. As variadic macros are not supported on all architectures, replace them by a real function. While here, * choose a more logical order for "dir" and "file" arguments * choose a more logical order when printing; as a bonus, a simple sed 's/:.*//' will get you valid file names * in ofmerge(), skip diagnostic string comparisons when we don't want warnings anyway 2013-06-02 18:16 schwarze Changed: mdoc_man.c (1.51), "Exp", lines: +6 -6 mdoc_term.c (1.249), "Exp", lines: +5 -5 Let .Do .Dq .Ql .So .Sq generate the correct roff(7) character escape sequences such that output modes like -Tutf8 have a chance to select nice glyphs. This doesn't change anything for -Tascii, and, for now, it doesn't affect -Tps and -Tpdf either. OK matthew@ bentley@; like the idea tedu@; no opinion jmc@. 2013-06-02 03:52 schwarze Changed: preconv.c (1.6), "Exp", lines: +3 -8 read.c (1.37), "Exp", lines: +4 -7 test-mmap.c (1.3), "Exp", lines: +1 -1 Sync to OpenBSD, no functional change: * Add the missing mparse_parse_buffer prototype. * Drop the useless MAP_FILE constant: It's not specified in POSIX, so it's not required, it's the default anyway, and it's 0 anyway. 2013-06-02 03:48 schwarze Changed: mandoc.3 (1.18), "Exp", lines: +86 -2 Note where these functions are declared and implemented. That helps to find one's way when hacking on the code. 2013-06-01 22:57 schwarze Changed: read.c (1.36), "Exp", lines: +18 -19 This file contains too much complexity. Remove one layer of indirection by deleting mparse_readfd_r() and doing its work in the public mparse_readfd(). As a bonus, catch recursive .so. This is part of the preparations to resync to openbsd.org. 2013-06-01 14:27 schwarze Changed: term_ascii.c (1.21), "Exp", lines: +2 -3 Use a standard locale name, "UTF-8" is an ugly non-standard alias that doesn't work on OpenBSD. OK tedu@ naddy@ 2013-06-01 05:56 schwarze Changed: TODO (1.149), "Exp", lines: +5 -1 latex2man.1 - oh boy... 2013-06-01 05:44 schwarze Added: tbl.3 (1.1) Some documentation of the tbl parser. I needed this when working on tbl(7) bug fixes. Deliberately not linked to the build; this is developer documentation, not user documentation. 2013-06-01 04:56 schwarze Changed: tbl_data.c (1.27), "Exp", lines: +2 -2 If a table contained at least one complete line and on its last line, the first T{ remained unclosed, roff_parseln() never returned ROFF_TBL for that last line, so {man,mdoc}_addspan() never got called for that last line, so we ended up with a table where no line associated with a node had TBL_SPAN_LAST set, so tbl_term() never free()'d the cols in struct roffcol, so tblcalc() crashed on the NULL == tbl->cols assertion when starting the *next* table in the same file. Fix this by returning ROFF_TBL as soon as we open a data cell, not only when finishing it - as explained above, it may never get properly closed but instead be interrupted by .TE. Problem reported by bentley@ in latex2man.1. I love it when bugs take half a day to debug but the fix turns out to be flipping one single bit in the source code. 2013-05-31 22:08 schwarze Changed: roff.c (1.176), "Exp", lines: +10 -10 tbl.c (1.27), "Exp", lines: +19 -19 More cleanup: Consistently use the name "struct tbl_node *tbl" that is already used almost everywhere instead of gratuitiously inventing different names at four places. No functional change. 2013-05-31 21:37 schwarze Changed: libroff.h (1.28), "Exp", lines: +2 -2 mandoc.h (1.107), "Exp", lines: +3 -3 out.c (1.45), "Exp", lines: +10 -10 tbl_data.c (1.26), "Exp", lines: +2 -2 tbl_term.c (1.25), "Exp", lines: +17 -17 The name "struct tbl" was badly misleading for two reasons: 1) This struct almost exclusively contains the table options. 2) Information about the table as a whole is actually in "struct tbl_node". Besides, "struct tbl" was almost impossible to search for. So rename it to "struct tbl_opts". No functional change. 2013-05-30 03:52 schwarze Changed: read.c (1.35), "Exp", lines: +24 -9 Reject non-printable characters found in the input stream even when preceded by a backslash; otherwise, the escape sequence would later be identified as invalid and the non-printable character would be passed through to the output backends, sometimes triggering assertions. Reported by Mike Small <smallm at panix dot com> on the mdocml discuss list. 2013-05-29 22:48 schwarze Changed: manpath.c (1.10), "Exp", lines: +5 -3 Sync to OpenBSD: * Guard <sys/param.h> inclusion by #ifdef USE_MANPATH to make it more obvious why this isn't needed on OpenBSD. Noticed by deraadt@. * Resolve gratuitious whitespace differences: Blanks before tabs and on empty lines. 2013-05-29 16:11 schwarze Changed: mdoc_term.c (1.248), "Exp", lines: +3 -7 Simplify condition, avoid duplicate code; no functional change. 2013-05-29 15:40 schwarze Changed: mdoc_man.c (1.50), "Exp", lines: +2 -2 mdoc_term.c (1.247), "Exp", lines: +2 -2 In SYNOPSIS mode, .Ek doesn't end a keep. Found and fixed on the plane to the OpenBSD t2k13 hackathon in Toronto. 2013-05-29 15:17 schwarze Changed: term.c (1.207), "Exp", lines: +3 -3 In keep mode, if any text is printed (even in NOSPACE mode), any text that follows must be kept on the same line. I already found the issue and wrote the patch in April 2011, but didn't come round to do proper testing and forgot about it. 2013-05-19 21:40 schwarze Changed: mdoc_man.c (1.49), "Exp", lines: +22 -4 Support .Bl -offset in -mdoc -Tman. Issue found when Thomas Klausner <wiz at NetBSD dot org> made me look at the manuals of his http://www.nih.at/libzip library. 2013-05-19 21:07 schwarze Changed: mdoc_man.c (1.48), "Exp", lines: +5 -5 Move printing of the .RS macro into print_offs() such that print_offs() takes care of printing the whole line. This reduces code duplication - in particular after the upcoming commit to repair .Bl -offset - and makes print_offs() more similar to what print_width() does. No functional change. 2013-05-18 17:47 schwarze Changed: mdoc_term.c (1.246), "Exp", lines: +3 -2 Should termp_xx_pre() ever get called for a macro it cannot handle, use abort(3), just like in the three other comparable cases in this file, instead of ignoring the problem and causing a null pointer access. Cosmetical issue reported by Ulrich Spoerlein <uqs@spoerlein.net> found by Coverity Scan CID 976115. No functional change. 2013-05-18 17:08 schwarze Changed: tree.c (1.48), "Exp", lines: +3 -8 Remove the variable sz because it's invariantly == 0, along with the dead code testing whether it's positive. Reported by Ulrich Spoerlein <uqs@spoerlein.net>, found by Coverity Scan CID 975717. While here, remove the now unused **params array as well, which Coverity apparently missed, at least it wasn't reported... 2013-05-18 16:40 schwarze Changed: chars.c (1.53), "Exp", lines: +2 -2 Even though the size of a pointer should not depend on the type of the data pointed to, pass the size of the right pointer type to calloc; cosmetic issue reported by Ulrich Spoerlein <uqs@spoerlein.net> found in Coverity Scan CID 978734. No binary change - ok cmp(1). 2013-04-28 07:54 schwarze Changed: mandoc_char.7 (1.52), "Exp", lines: +3 -3 mdoc.7 (1.217), "Exp", lines: +4 -4 roff.7 (1.40), "Exp", lines: +2 -2 - (mdoc.7) fix Xr to self - double word fix from jmc@ 2013-03-27 00:19 schwarze Changed: arch.in (1.13), "Exp", lines: +2 -1 Cavium Octeon (new architecture in OpenBSD); from jmc@. 2013-03-06 08:08 schwarze Changed: mandoc.1 (1.102), "Exp", lines: +3 -3 legancy -> legacy; reported by Chris Hettrick 2013-01-05 22:19 schwarze Changed: man_term.c (1.136), "Exp", lines: +4 -4 In literal mode (.nf), each input line must be kept together on the same output line, even if it is longer than the output width. This commit fixes a bug allowing an overly long last line of an indented block (.RS) to be broken even in literal mode. The bug was found using the sudo_plugin(4) manual provided by millert@. I introduced the bug in rev. 1.84 during the g2k12 Budapest hackathon. 2012-12-31 22:34 schwarze Changed: mdoc_man.c (1.47), "Exp", lines: +49 -35 Rewrite indentation handling for nested lists in a more systematic way to fix multiple issues reported by Todd Miller; thanks! Specifically, - avoid double indentation after .Bd inside .Bl - set up correct indentation after .Bl inside .Bl - set up correct indentation after .Dl and .D1 inside .Bl While here, also - set up correct indentation *inside* .Dl and .D1 inside .Bl. 2012-11-19 22:30 schwarze Changed: TODO (1.148), "Exp", lines: +2 -6 mandoc.h (1.106), "Exp", lines: +3 -1 mdoc_macro.c (1.121), "Exp", lines: +11 -5 read.c (1.34), "Exp", lines: +3 -2 Do not crash on stray .Ta macros found outside column lists. Problem reported by jmc@, thanks. 2012-11-19 17:57 schwarze Changed: libmandoc.h (1.32), "Exp", lines: +3 -3 read.c (1.33), "Exp", lines: +2 -2 roff.c (1.175), "Exp", lines: +68 -3 In groff, trying to redefine standard man(7) macros before .TH has no effect; after .TH, it works. Trying to redefine standard mdoc(7) macros before .Dd works when calling groff with the -mdoc command line option, but does not when calling groff with -mandoc; after .Dd, it always works. Arguably, one might call that buggy behaviour in groff, but it is very unlikely that anybody will change groff in this respect (certainly, i'm not volunteering). So let's be bug-compatible. This fixes the vertical spacing in sox(1). Merging from OpenBSD libmandoc.h 1.18, read.c 1.8, roff.c 1.47, June 2, 2012. 2012-11-19 17:22 schwarze Changed: main.c (1.167), "Exp", lines: +4 -4 sync usage(), and tidy up the output a little; from jmc@ 2012-11-19 02:14 schwarze Changed: mdoc_man.c (1.46), "Exp", lines: +34 -22 In -Tman mode, support automatic word keeps in the SYNOPSIS just like in -Tascii mode; requested by millert@. While here, do not escape the blank characters terminating man(7) macros; this is becoming more important as we use more keeps now. Note that -Tman still does not support .nr nS. 2012-11-19 02:08 schwarze Changed: mdoc_man.c (1.45), "Exp", lines: +10 -9 Three portability improvements by millert@: * Use "\\ " not "\\~" as the non-breaking space as historic nroff doesn't support the latter. * The '-' before the flags needs to be quoted to prevent nroff from putting a line break between the '-' and the flag character. * Disable hyphenation and, for nroff, disable justification which is consistent with how mdoc behaves (and produces more readable manuals). (OpenBSD rev. 1.39, 1.40 and 1.41) 2012-11-18 19:34 schwarze Changed: mdoc_man.c (1.44), "Exp", lines: +20 -6 Make the generated man(7) code more portable by using .PD instead of .sp -1v, which for example Solaris nroff handles poorly. Problem report and patch by millert@, with the print_word chunk tweaked by me. 2012-11-18 18:02 schwarze Changed: mdoc_man.c (1.43), "Exp", lines: +104 -7 Correct indentation for lists and displays inside lists. Inspired by a diff from millert@, but implemented rather differently and with slightly better functionality. In particular, this one respects -offset and -width arguments found in the input file. 2012-11-18 00:05 schwarze Changed: TODO (1.147), "Exp", lines: +10 -1 mdoc_argv.c (1.86), "Exp", lines: +4 -4 mdoc_macro.c (1.120), "Exp", lines: +3 -2 Fix four small whitespace issues related to trailing punctuation reported by Nicolas Joly <njoly at pasteur dot fr>: - add EOS spacing after trailing punctuation after .Cd, .Fc, and .Lb - suppress spacing before trailing punctuation after .Fd Add the remaining issues from the same report to the TODO file. 2012-11-17 00:26 schwarze Changed: libman.h (1.56), "Exp", lines: +6 -6 libmdoc.h (1.81), "Exp", lines: +8 -9 man.c (1.119), "Exp", lines: +126 -126 man_html.c (1.89), "Exp", lines: +28 -28 man_macro.c (1.75), "Exp", lines: +61 -61 man_term.c (1.135), "Exp", lines: +21 -21 man_validate.c (1.85), "Exp", lines: +72 -81 mdoc.c (1.203), "Exp", lines: +141 -141 mdoc_argv.c (1.85), "Exp", lines: +30 -30 mdoc_html.c (1.184), "Exp", lines: +30 -29 mdoc_macro.c (1.119), "Exp", lines: +181 -176 mdoc_man.c (1.42), "Exp", lines: +20 -19 mdoc_term.c (1.245), "Exp", lines: +38 -37 mdoc_validate.c (1.191), "Exp", lines: +17 -17 Cleanup naming of local variables to make the code easier on the eye: Settle for "struct man *man", "struct mdoc *mdoc", "struct meta *meta" and avoid the confusing "*m" which was sometimes this, sometimes that. No functional change. ok kristaps@ some time ago 2012-11-16 22:21 schwarze Changed: mandoc.h (1.105), "Exp", lines: +2 -1 mdoc_validate.c (1.190), "Exp", lines: +2 -2 read.c (1.32), "Exp", lines: +2 -1 Warn about unknown volume or arch in Dt macro arguments; patch written by Nicolas Joly <njoly at pasteur dot fr>. 2012-11-16 18:44 schwarze Changed: TODO (1.146), "Exp", lines: +1 -9 End of sentence spacing after trailing punctuation after .In and .Ap has just been fixed. Note that my problem description was somewhat misleading, even though Nicolas Joly's problem report was fine. 2012-11-16 18:41 schwarze Changed: mdoc_argv.c (1.84), "Exp", lines: +4 -3 Two more macros (.Ap and .In) do trailing delimiter handling. This fixes the end of sentence spacing in OpenBSD open(2) and in about 150 pages in the NetBSD base system. Reported by Nicolas Joly <njoly a pasteur point fr>, merci! 2012-11-16 17:16 schwarze Changed: mdoc.h (1.124), "Exp", lines: +2 -1 mdoc_term.c (1.244), "Exp", lines: +7 -7 term.c (1.206), "Exp", lines: +2 -2 Improve formatting of badly nested font blocks. The basic idea is to already pop the font at the end marker instead of allowing it to linger until the final end of the block. This requires a few preliminaries: * For each block, save a pointer to the previous font to be used in case the block breaks another and gets extended. * That requires making node information writable during rendering. * Now fonts may get popped in the wrong order; hence, after the stack has already been rewound further by some block that began earlier, ignore popping a font that was put on the stack later. * To be able to exploit all this for font blocks, tie processing to their body, not their block, which is more logical anyway. Triggered by florian@ reporting vaguely similar issues with list blocks. 2012-11-16 13:40 schwarze Changed: mdoc.c (1.202), "Exp", lines: +4 -1 mdoc_macro.c (1.118), "Exp", lines: +2 -2 Fix a crash triggered by .Bl -tag .It Xo .El .Sh found by florian@. * When allocating a body end marker, copy the pointer to the normalized block information from the body block, avoiding the risk of subsequent null pointer derefence. * When inserting the body end marker into the syntax tree, do not try to copy that pointer from the parent block, because not being a direkt child of the block it belongs to is the whole point of a body end marker. * Even non-callable blocks (like Bd and Bl) can break other blocks; when this happens, postpone closing them out in the usual way. Completed and tested at the OpenBSD impromptu Coimbra hackathon (c2k12). Thanks to Pedro Almeida and the Laborat'orio de Computa,c~ao Avan,cada da Universidade de Coimbra (http://www.uc.pt/lca) for their hospitality! 2012-11-04 18:58 schwarze Changed: TODO (1.145), "Exp", lines: +11 -1 crash caused by .Ta outside .Bl 2012-10-31 09:20 schwarze Changed: TODO (1.144), "Exp", lines: +3 -1 freeciv wants .UR/.UE too; from bentley@ 2012-10-12 16:45 schwarze Changed: TODO (1.143), "Exp", lines: +9 -1 minor EOS issue reported by Nicolas Joly 2012-08-29 23:38 schwarze Changed: mdoc.7 (1.216), "Exp", lines: +6 -12 1) Remove documentation of the groff-1.15 compatibility quirk of suppressing spacing before a third .Xr argument because that quirk was removed in mdoc_macro.c rev. 1.113. 2) Mark the "section" argument to .Xr as (syntactically) optional, but still do not encourage omitting it. The missing .Op was reported by espie@. Wording tweaked by and ok jmc@, ok millert@. 2012-08-12 10:04 schwarze Changed: mdoc_html.c (1.183), "Exp", lines: +4 -4 .Sq should use curly right quotes in HTML output to match its curly left quotes. Also, properly reinitialize the styles attribute string buffer for each column in a table so that the attributes don't accumulate. Patch from Matthew@ Dempsky, tweaked by me; OpenBSD rev. 1.66. 2012-07-29 13:37 schwarze Changed: man.7 (1.118), "Exp", lines: +34 -3 document .PD; related to man_term.c rev. 1.134 OpenBSD man.7 rev. 1.30 2012-07-29 12:35 schwarze Changed: man_term.c (1.134), "Exp", lines: +35 -13 man_validate.c (1.84), "Exp", lines: +3 -2 Implement .PD for -Tascii. Reminded about the missing feature by millert@. This reduces mandoc/groff differences in OpenBSD base by 25%. ok millert@ 2012-07-18 16:52 schwarze Changed: TODO (1.142), "Exp", lines: +1 -21 man_validate.c (1.83), "Exp", lines: +22 -2 Drop empty .IP such that is does not cause additional vertical spacing. Issue first reported by naddy@ in rsync(1). OpenBSD rev. 1.55. 2012-07-18 16:41 schwarze Changed: TODO (1.141), "Exp", lines: +1 -10 man_validate.c (1.82), "Exp", lines: +20 -7 Drop .sp and .br right after .SH and .SS. Fixes vertical spacing after "OPTIONS" in gcc(1). Issue first reported by naddy@ in rsync(1). OpenBSD rev. 1.54. 2012-07-18 16:20 schwarze Changed: TODO (1.140), "Exp", lines: +1 -10 mdoc_macro.c (1.117), "Exp", lines: +9 -2 Let a trailing .Ns macro take effect even on an input line containing a partial implicit macro. Fixes horizontal spacing in vi(1), ddb(4), and ppp(8). OpenBSD rev. 1.74. 2012-07-18 11:11 schwarze Changed: TODO (1.139), "Exp", lines: +1 -8 libmdoc.h (1.80), "Exp", lines: +2 -1 mandoc.h (1.104), "Exp", lines: +2 -1 mdoc.c (1.201), "Exp", lines: +10 -2 mdoc_validate.c (1.189), "Exp", lines: +34 -5 read.c (1.31), "Exp", lines: +2 -1 Fix handling of paragraph macros inside lists: * When they are trailing the last item, move them outside the list. * When they are trailing any other none-compact item, drop them. OpenBSD rev. mdoc_validate.c 1.107, mdoc.c 1.91 2012-07-18 10:39 schwarze Changed: TODO (1.138), "Exp", lines: +1 -13 mdoc.c (1.200), "Exp", lines: +2 -2 predefs.in (1.4), "Exp", lines: +2 -2 The mdoc(7) \*(Ba predefined string actually forces roman font; that's stupid because it may break enclosing font changes, but let's do the same for groff bug compatibility. --> Never use \*(Ba, use just plain "|"! <-- Also, predefined strings are already expanded by the roff(7) parser, so the mdoc(7) parser has to look for the expanded string. OpenBSD rev. mdoc.c 1.90 and predefs.in 1.3 2012-07-16 21:59 schwarze Changed: man_term.c (1.133), "Exp", lines: +2 -2 Always fix the man(7) subsection header (.SS) indent to 3n, do not let it depend on the default indent provided by -Oindent. By default, this doesn't change anything because 7 / 2 = 3; in -Omdoc mode, it makes man(7) output the same as mdoc(7) output. OpenBSD rev. 1.87 2012-07-16 21:30 schwarze Changed: TODO (1.137), "Exp", lines: +1 -4 term.c (1.205), "Exp", lines: +9 -1 In flush-left mode of both man(7) and mdoc(7), when an output line is broken at the position of a literal tab, the tab indents the following line. Fixes the perl(1) SYNOPSIS; reminded by deraadt@; OpenBSD rev. 1.66. 2012-07-16 10:45 schwarze Changed: mdoc_man.c (1.41), "Exp", lines: +4 -3 For .El .sp, avoid the weird .sp -1v .PP .PP output sequence. Synching to OpenBSD rev. 1.38. 2012-07-16 09:51 schwarze Changed: mdoc.c (1.199), "Exp", lines: +3 -2 mdoc_man.c (1.40), "Exp", lines: +5 -2 mdoc_validate.c (1.188), "Exp", lines: +37 -7 Several -mdoc parser improvements related to vertical spacing: * So far, .Pp and .Lp were removed before paragraph type blocks. * Now also remove .br before paragraph type blocks. * Treat .Lp as a paragraph like .Pp, so remove .Pp, .Lp, .br before it. * Do not treat .sp as a paragraph, don't remove anything before it. * After .Sh, .Ss, .Pp, and .Lp, remove .Pp, .Lp, .sp, .br, and blank lines. * After .sp and .br, remove .br. OpenBSD rev. mdoc.c 1.89 and mdoc_validate.c 1.106 2012-07-14 10:47 schwarze Changed: man.c (1.118), "Exp", lines: +4 -3 man_term.c (1.132), "Exp", lines: +15 -4 Translate blank input lines to .sp just like in mdoc(7), and ignore .sp after .PP. This fixes vertical spacing for blank lines after .PP and for .sp after .PP. OpenBSD rev. man.c 1.68 and man_term.c 1.86 2012-07-14 09:07 schwarze Changed: mdoc_man.c (1.39), "Exp", lines: +3 -2 In -Tman .Bl -compact, skip the blank line only before the first item of the first list in a section, not before every item of the first list. OpenBSD rev. 1.37 2012-07-13 23:57 schwarze Changed: mdoc_man.c (1.38), "Exp", lines: +11 -2 Adjust -Tman SYNOPSIS .Nm indentation using .HP; requested by millert@. There are still lots of ugly line breaks, to be fixed later. OpenBSD rev. 1.36 2012-07-13 20:43 schwarze Changed: mdoc_man.c (1.37), "Exp", lines: +55 -28 If the tag in .Bl -tag .It would leave exactly one blank before the body of the item, mdoc(7) breaks the line, whereas the .TP used to translate this to man(7) does not. Thus, insert an explicit roff(7) line break in this place. To be able to correctly count the characters, do not pass font escapes an the like through print_word(). OpenBSD rev. 1.35 2012-07-13 14:19 schwarze Changed: man_term.c (1.131), "Exp", lines: +19 -4 mdoc_man.c (1.36), "Exp", lines: +83 -70 In -man -Tascii, support .sp with negative argument. In -mdoc -Tman, improve the framework to control vertical spacing. Use both to support .Bl -compact (surprisingly hard to get right). OpenBSD rev. 1.85 and 1.34, respectively. 2012-07-12 15:11 schwarze Changed: mandoc.h (1.103), "Exp", lines: +2 -2 mdoc_validate.c (1.187), "Exp", lines: +18 -13 read.c (1.30), "Exp", lines: +2 -2 The post_nm() validation function crashed when the first .Nm child node was a non-text node. Fix this by rewriting post_nm() to always set the meta name to UNKNOWN when the name is missing or unusable. While here, make MANDOCERR_NONAME an ERROR, as it usually renders the page content unintelligible. Bug reported by Maxim <Belooussov at gmail dot com>, thanks. OpenBSD rev. 1.105 2012-07-12 08:55 schwarze Changed: mdoc_man.c (1.35), "Exp", lines: +16 -9 Do not crash in -Tman on: * .Fn with exactly one argument * .Bl -hang without a -width Now all 3776 OpenBSD base manuals build without crashing. OpenBSD rev. 1.33 2012-07-11 23:46 schwarze Changed: mdoc_man.c (1.34), "Exp", lines: +68 -28 Polish -Tman .Rs support. All mdoc(7) macros are now supported by -Tman. OpenBSD rev. 1.32 2012-07-11 16:57 schwarze Changed: mdoc_term.c (1.243), "Exp", lines: +2 -2 mdoc_validate.c (1.186), "Exp", lines: +3 -3 fix position and formatting of %U; OpenBSD rev. 1.104 and 1.145, respectively 2012-07-11 16:19 schwarze Changed: mdoc_man.c (1.33), "Exp", lines: +42 -6 basic implementation of -Tman .Bl -column using tbl(7); OpenBSD rev. 1.31 2012-07-10 20:37 schwarze Changed: mdoc_man.c (1.32), "Exp", lines: +6 -6 basic implementation of -Tman .Bl -tag while here, do some minor outflags cleanup OpenBSD rev. 1.30 2012-07-10 19:54 schwarze Changed: man_term.c (1.130), "Exp", lines: +35 -32 mdoc_man.c (1.31), "Exp", lines: +23 -9 multiple fixes to -Tascii .HP rendering: * do not add an excessive blank line before the block * in literal mode, start a new line after the tag getting this to work requires some general (print_man_node) fixes: * in literal mode, break the output line at the end of each input line, not just after those input lines ending in text * but don't break it when there was no output on the line * and adjust the margins after the .HP tag these general fixes require an adjustment to -Tascii .TP rendering: * set up NOBREAK mode before the body, not after the head finally, based on all this, implement -Tman .Bl -hang in terms of .HP OpenBSD rev. 1.84 and 1.29, respectively 2012-07-10 15:35 schwarze Changed: term.c (1.204), "Exp", lines: +2 -7 Remove a hack that was intended for groff-1.15 bug compatibility: When the width of a tag in .Bl -hang was exactly one character shorter than the maximum length that would fit, the following text would have a negative hang of one character (i.e., hang to the left). That bug is no longer present in groff-1.21, so relax mandoc, too. OpenBSD rev. 1.65 2012-07-10 14:38 schwarze Changed: mdoc.h (1.123), "Exp", lines: +2 -1 mdoc_man.c (1.30), "Exp", lines: +122 -9 mdoc_term.c (1.242), "Exp", lines: +12 -8 mdoc_validate.c (1.185), "Exp", lines: +17 -5 * implement -Tman .Bl -item -inset -diag -ohang -dash -hyphen -enum .It * fix -Tman .Bl -bullet .It * adjust the -Tascii .Bl -bullet -dash -hyphen .It default and minimum width to new groff standards, it changed from 4n (in groff 1.15) to 2n (in groff 1.21) * same for -Tascii -enum, it changed from 5n to 2n * use -hang formatting for -Tascii -enum -width 2n * for -Tascii -enum, the default is -width 3n 2012-07-09 23:53 schwarze Changed: mdoc_man.c (1.29), "Exp", lines: +23 -4 mdoc_term.c (1.241), "Exp", lines: +14 -16 fix -Tascii .Fd line breaking and implement -Tman .Fd OpenBSD rev. 1.27 and 1.143, respectively 2012-07-09 22:36 schwarze Changed: mdoc_man.c (1.28), "Exp", lines: +13 -4 implement -Tman .Eo and .Ec; OpenBSD rev. 1.26 2012-07-09 18:56 schwarze Changed: mdoc_man.c (1.27), "Exp", lines: +42 -6 Implement -Tman .Bf. To get the spacing right, * avoid man(7) code line breaks at places where no spacing is allowed * allow spacing right after .Sm on * allow spacing after empty .Fl at the end of an input line OpenBSD rev. 1.25 2012-07-09 17:53 schwarze Changed: mdoc_man.c (1.26), "Exp", lines: +147 -67 fix -Tman font handling for: .Ad .Ar .Cd .Cm .Dv .Em .Er .Ev .Fa .Fl .Fn .Fo .Ft .Ic .In .Lk .Li .Ms .Mt .Nm .Pa .Sx .Sy .Tn .Va .Vt OpenBSD rev. 1.24 2012-07-09 09:31 schwarze Changed: mdoc_man.c (1.25), "Exp", lines: +27 -15 implement -Tman .No and .Mt; OpenBSD rev. 1.23 2012-07-08 22:49 schwarze Changed: mdoc_man.c (1.24), "Exp", lines: +31 -2 mdoc_term.c (1.240), "Exp", lines: +16 -17 fix .Lk for -Tascii and implement it for -Tman OpenBSD rev. 1.22 and 1.142, respectively 2012-07-08 18:39 schwarze Changed: mdoc_man.c (1.23), "Exp", lines: +65 -12 fix vertical spacing for -Tman SYNOPSIS .Fn .Fo .Ft .In .Nm .Va .Vt OpenBSD rev. 1.21 2012-07-08 16:52 schwarze Changed: mdoc_man.c (1.22), "Exp", lines: +30 -2 mdoc_term.c (1.239), "Exp", lines: +3 -1 implement -Tman .An also reset -[no]split mode at .Sh AUTHORS in -Tascii OpenBSD rev. 1.20 and 1.141, respectively 2012-07-08 15:48 schwarze Changed: mdoc_man.c (1.21), "Exp", lines: +30 -50 Add flags to insert a .sp or .br request before the next output, shortening some frequent idioms and preparing for better vertical spacing in the SYNOPSIS; no functional change intended. OpenBSD rev. 1.19 2012-07-08 15:01 schwarze Changed: mdoc_man.c (1.20), "Exp", lines: +178 -182 Instead of adding one integer variable for each global boolean output flag and passing around a structure containing them into each and every function, just use a single static bitfield. In preparation for adding more output flags to support more features. OpenBSD rev. 1.18 2012-07-08 13:57 schwarze Changed: mdoc_man.c (1.19), "Exp", lines: +3 -3 implement -Tman .Va and fix -Tman .Vt for the non-SYNOPSIS case OpenBSD rev. 1.17 2012-07-08 11:10 schwarze Changed: mdoc_man.c (1.18), "Exp", lines: +42 -2 implement -Tman .Vt; OpenBSD rev. 1.15 and 1.16 2012-07-08 10:19 schwarze Changed: mdoc_man.c (1.17), "Exp", lines: +82 -17 Basic implementation of -Tman .Fo and .Fa; again, some blank lines still missing from the output. While here, remove the trailing semicolon from .Fn when outside .Sh SYNOPSIS. OpenBSD rev. 1.14 2012-07-07 21:16 schwarze Changed: mdoc_man.c (1.16), "Exp", lines: +49 -3 rudimentary support for -Tman .Ft and .Fn; some blank lines are still missing from the output OpenBSD rev. 1.13 2012-07-07 20:36 schwarze Changed: mdoc_man.c (1.15), "Exp", lines: +33 -2 basic support for -Tman .In; OpenBSD rev. 1.12 2012-07-07 14:05 schwarze Changed: mdoc_man.c (1.14), "Exp", lines: +14 -2 after .Lb in library section, break the line in the final output 2012-07-07 13:57 schwarze Changed: mdoc_man.c (1.13), "Exp", lines: +36 -5 implement -Tman .Bk; OpenBSD rev. 1.10 2012-07-07 13:53 schwarze Changed: mdoc_man.c (1.12), "Exp", lines: +20 -4 implement -Tman .Sm; OpenBSD rev. 1.9 2012-07-07 13:46 schwarze Changed: mdoc_man.c (1.11), "Exp", lines: +36 -2 implement -Tman .Bd -offset and -compact; OpenBSD rev. 1.8 2012-07-07 13:37 schwarze Changed: mdoc_man.c (1.10), "Exp", lines: +10 -3 minor -mdoc -Tman fixes * right after .Ns, avoid breaking the line in man code * after .Fl without arguments, do not insert a blank into man code * before each .Nm in .Sh SYNOPSIS, insert a .br into man code * skip .Pp arguments, don't copy them to man code OpenBSD rev. 1.7 2012-06-20 22:06 schwarze Changed: man.7 (1.117), "Exp", lines: +17 -13 mdoc.7 (1.215), "Exp", lines: +11 -11 When i moved some low-level stuff from mdoc(7) and man(7) to roff(7) some time ago, i forgot to adjust the cross-references. Reported by Tim van der Molen <tbvdm at xs4all dot nl>, thanks. ok jmc@ 2012-06-12 20:21 kristaps Changed: TODO (1.136), "Exp", lines: +1 -4 libmandoc.h (1.31), "Exp", lines: +3 -2 man.c (1.117), "Exp", lines: +2 -2 mandoc.c (1.66), "Exp", lines: +1 -27 mdoc.c (1.198), "Exp", lines: +2 -2 roff.7 (1.39), "Exp", lines: +14 -2 roff.c (1.174), "Exp", lines: +59 -2 Add `cc' support. This was reported by espie@ and in the TODO. Caveat: `cc' has buggy behaviour when invoked in groff(1) and followed by a line-breaking control character macro, e.g., in a -man doc, .cc | .B foo 'B foo |cc 'B foo will cause groff(1) to behave properly for `.B' but inline the macro definition for `B' when invoked with the line-breaking macro. 2012-06-12 19:50 kristaps Changed: roff.7 (1.38), "Exp", lines: +3 -3 Fix typo (back-space -> backslash). 2012-06-12 12:47 kristaps Changed: TODO (1.135), "Exp", lines: +1 -7 man_macro.c (1.74), "Exp", lines: +2 -2 Fix an assert() raised by `RS' when following `TP'. The reason was that `RS' wasn't BSCOPE'd, so the next-line (BLINE) scope opened by `TP' would still be in the HEAD macro. This was from joerg@'s archive of failures. 2012-06-09 17:49 kristaps Changed: apropos.c (1.33), "Exp", lines: +2 -1 manpage.c (1.3), "Exp", lines: +2 -1 Allow compilation on Mac OSX. 2012-06-09 14:19 kristaps Changed: Makefile (1.400), "Exp", lines: +1 -61 index.sgml (1.158), "Exp", lines: +11 -64 Stop producing xhtml/pdf/etc for webpage (logs indicate that nobody actually looks at them). 2012-06-09 14:11 kristaps Deleted: mandocdb.h (1.8) whatis.1 (1.10) Changed: Makefile (1.399), "Exp", lines: +4 -5 apropos.1 (1.19), "Exp", lines: +21 -15 apropos.c (1.32), "Exp", lines: +13 -8 index.sgml (1.157), "Exp", lines: +7 -29 mandocdb.c (1.55), "Exp", lines: +2 -2 manpage.c (1.2), "Exp", lines: +10 -7 mansearch.c (1.5), "Exp", lines: +25 -17 mansearch.h (1.2), "Exp", lines: +53 -5 Merge whatis.1 into apropos.1 (and remove), add whatis bits to apropos (via mansearch), and merge mandocdb.h into mansearch.h (and remove). 2012-06-09 11:30 kristaps Changed: index.sgml (1.156), "Exp", lines: +6 -8 While I'm rooting around, note that we depend on sqlite3 now, not berkeley. 2012-06-09 11:27 kristaps Deleted: catman.8 (1.6) catman.c (1.12) Changed: Makefile (1.398), "Exp", lines: +1 -1 index.sgml (1.155), "Exp", lines: +5 -15 Remove catman(8): it's superfluous. Users of man.cgi should be able to just copy in their directories and have the CGI fine everything on its own or just suck it up or, in the cases of multiple manroots, have a simple config file. Besides, now that mandocdb(8) is using relative paths for everything, needing a fancy "cp -R" is silly. 2012-06-09 11:21 kristaps Changed: mandocdb.c (1.54), "Exp", lines: +3 -1 Ths SYNCHRONOUS = off optimisation fails on my Mac OSX. Take it out until I can test properly for this feature. 2012-06-09 11:02 kristaps Changed: test-ohash.c (1.2), "Exp", lines: +1 -1 Make test-ohash.c work on OpenBSD (it now works on have/havenots of OpenBSD and OSX). 2012-06-09 11:00 kristaps Added: compat_ohash.c (1.1) compat_ohash.h (1.1) test-ohash.c (1.1) Changed: Makefile (1.397), "Exp", lines: +7 -1 mandocdb.c (1.53), "Exp", lines: +8 -3 mansearch.c (1.4), "Exp", lines: +5 -1 Add a compatibility interface for ohash. This include's espie@'s wholesale src/lib/libc/ohash directory from OpenBSD into compat_ohash.c (with a single copyright/license notice at the top) and src/include/ohash.h as compat_ohash.h. The ohash_int.h part of compat_ohash.c has been changed only in that ohash.h points to compat_ohash.h. Added HAVE_OHASH test (test-ohash.c) to Makefile. In mandocdb.c and mansearch.c, check HAVE_OHASH test for inclusion. 2012-06-08 15:06 kristaps Changed: mandocdb.c (1.52), "Exp", lines: +48 -32 mansearch.c (1.3), "Exp", lines: +7 -7 Turn off sqlite3 synchronous mode when creating a new database. This makes it run about 5x faster. While here, wrap some sqlite3 statements in #defines to extract errors. (Really, the warning/error/etc. macros should be functionified.) 2012-06-08 14:14 kristaps Changed: mansearch.c (1.2), "Exp", lines: +35 -21 Allow mansearch to fail if invariancy (cwd) is violated. Also be more verbose if sqlite3 errors occur. 2012-06-08 12:05 kristaps Changed: mandocdb.c (1.51), "Exp", lines: +4 -4 Use C99 syntax for declaring the string-hash key array. 2012-06-08 10:47 kristaps Deleted: apropos_db.c (1.33) apropos_db.h (1.14) Changed: Makefile (1.396), "Exp", lines: +39 -237 config.h.post (1.6), "Exp", lines: +0 -14 Remove lint from Makefile. Disable some parts of the build (man.cgi, etc.) while sqlite3 is being merged in nice and slow. Remove the bit swapping stuff in config.h.post. Remove apropos_db (replaced by mansearch). 2012-06-08 10:44 kristaps Added: manpage.c (1.1) Changed: apropos.1 (1.18), "Exp", lines: +26 -94 apropos.c (1.31), "Exp", lines: +32 -167 Flip apropos to use mansearch instead of apropos_db. This makes the utility much smaller and simpler. A lot of functionality has been omitted while the sqlite3 search routines improve (logical operations, etc.). It still needs work to make the output more conventional. Also add the manpage utility, which I use extensively as a mind-meld of apropos and man. 2012-06-08 10:43 kristaps Changed: mandocdb.8 (1.18), "Exp", lines: +32 -178 mandocdb.c (1.50), "Exp", lines: +1412 -1330 mandocdb.h (1.7), "Exp", lines: +1 -2 Re-tooled mandocdb using sqlite3 and ohash. See the tech@ mailing list entries in June 2012 for details, as well as the discuss@ mailing list entries from March 2012. Among other changes, this utility now: 1. uses a single sqlite3 database instead of several berkeley dbs 2. stores utf-8 encoded strings 3. using ohash to aggressively hash its contents 4. using fts() instead of manually walking directories 2012-06-08 10:36 kristaps Added: mansearch.c (1.1) mansearch.h (1.1) Add a new mansearch.h interface, which replaces apropos_db.c This is a much more minimal interface that stuffs all operations into a single function. It uses sqlite3 and ohash. 2012-06-08 10:33 kristaps Changed: catman.c (1.11), "Exp", lines: +3 -2 Use size_t in catman to match manpath.h. Note this file will not be connected to the build for a little while as I get the new sqlite3 stuff in. 2012-06-08 10:32 kristaps Changed: manpath.c (1.9), "Exp", lines: +6 -6 manpath.h (1.6), "Exp", lines: +2 -2 Use size_t in manpath instead of int. 2012-06-05 21:29 schwarze Changed: TODO (1.134), "Exp", lines: +4 -1 forgot to commit one request bu espie@ 2012-06-03 09:52 schwarze Changed: man_macro.c (1.73), "Exp", lines: +29 -17 Close a preceding implicit block before opening an explicit block. To allow doing so, no longer abuse rew_scope() to unwind explicit blocks; explicitly call man_unscope() instead. Fixing the indentation of slapd.conf(5) in the OpenLDAP port; thanks to guenther@ for the report. 2012-06-02 20:16 schwarze Changed: man.7 (1.116), "Exp", lines: +14 -2 man.c (1.116), "Exp", lines: +2 -2 man.h (1.61), "Exp", lines: +3 -1 man_html.c (1.88), "Exp", lines: +4 -2 man_macro.c (1.72), "Exp", lines: +3 -1 man_term.c (1.129), "Exp", lines: +4 -2 man_validate.c (1.81), "Exp", lines: +3 -1 Minimal implementation of .EX and .EE for GNU compatibility. Do not use this, it is not portable and only defined in esr's man-ext. For example, sox(1) wants these macros. 2012-05-31 22:41 schwarze Changed: roff.c (1.173), "Exp", lines: +25 -34 Fix blank line handling in .if. In particular, two cases were wrong: - single-line .if with trailing whitespace gave no blank line - multiline .if with \{ but without \{\ gave no blank line While here, simplify roff_cond() by partially reordering the code. "good one" kristaps@ 2012-05-31 22:38 schwarze Changed: mandoc.c (1.65), "Exp", lines: +65 -68 While i already got my fingers dirty on mandoc_escape(), profit of the occasion to pull out some spaghetti, that is, three confusing variables and fourteen pointless assignments among them; instead, always operate on the official pointers **start, **end, and *sz, each of which conveys an obvious meaning. No functional change intended, and the new tests confirm that everything still (err...) "works", as far as that word can be applied to the kind of roff(7) mock-up code i'm polishing here. "just commit" kristaps@ 2012-05-31 22:34 schwarze Changed: mandoc.c (1.64), "Exp", lines: +37 -118 Make recursive parsing of roff(7) escapes actually work in the general case, in particular when the inner escapes are preceded or followed by other terms. While doing so, remove lots of bogus code that was trying to make pointless distinctions between numeric and non-numeric escape sequences, while both actually share the same syntax and we ignore the semantics anyway. This prevents some of the strings defined in the pod2man(1) preamble from producing garbage output, in particular in scandinavian words. Of course, proper rendering of scandinavian national characters cannot be expected even with these fixes. "just commit" kristaps@ 2012-05-31 22:29 schwarze Changed: html.c (1.151), "Exp", lines: +58 -25 html.h (1.48), "Exp", lines: +2 -1 mandoc.c (1.63), "Exp", lines: +12 -2 mandoc.h (1.102), "Exp", lines: +3 -2 term.c (1.203), "Exp", lines: +54 -14 term.h (1.92), "Exp", lines: +2 -1 Implement the roff \z escape sequence, intended to output the next character without advancing the cursor position; implement it to simply skip the next character, as it will usually be overwritten. With this change, the pod2man(1) preamble user-defined string \*:, intended to render as a diaeresis or umlaut diacritic above the preceding character, is rendered in a slightly less ugly way, though still not correctly. It was rendered as "z.." and is now rendered as ".". Given that the definition of \*: uses elaborate manual \h positioning, there is little chance for mandoc(1) to ever render it correctly, but at least we can refrain from printing out a spurious "z", and we can make the \z do something semi-reasonable for easier cases. "just commit" kristaps@ 2012-05-31 22:27 schwarze Changed: demandoc.c (1.7), "Exp", lines: +2 -2 catch up with the changed interface of mparse_alloc(), see mandoc.h rev 1.100 2012-05-31 01:54 schwarze Changed: TODO (1.133), "Exp", lines: +1 -5 .if vertical spacing now fixed in OpenBSD 2012-05-28 23:09 schwarze Changed: TODO (1.132), "Exp", lines: +5 -4 clarify two entries related to roff(7) escapes 2012-05-27 18:02 schwarze Changed: tbl_term.c (1.24), "Exp", lines: +7 -3 term.c (1.202), "Exp", lines: +6 -3 term.h (1.91), "Exp", lines: +2 -1 Fix the vertical spacing around tbl(7) instances in man(7). Groff forces the document author to manually request sufficient spacing after .TE - that is, at least .sp 1v after a table with the "box" option and at least .sp 2v after a table with the "doublebox" option - or else it clobbers the box. I consider that insane, so i'm not imitating groff in that respect. Instead, i add at least as much vertical space as groff, or more where required to avoid clobbering the box. Consequently, output will be identical for input that looks sane with groff, and mandoc will make output look better for input that looks bad with groff. "Please check them in and I'll look into them later!" kristaps@ 2012-05-27 17:59 schwarze Changed: tbl_term.c (1.23), "Exp", lines: +12 -4 Correct width of horizontal spans; relevant in case of centered or flush right text, for boxes, and when more columns follow the span. Issue found by sthen@ in the net/arp-scan(1) port manual. "Please check them in and I'll look into them later!" kristaps@ 2012-05-27 17:54 schwarze Changed: mandoc.h (1.101), "Exp", lines: +3 -10 out.c (1.44), "Exp", lines: +1 -20 tbl_data.c (1.25), "Exp", lines: +3 -5 tbl_html.c (1.10), "Exp", lines: +6 -14 tbl_layout.c (1.23), "Exp", lines: +36 -118 tbl_term.c (1.22), "Exp", lines: +28 -60 Do not handle vertical lines as additional tbl(7) columns, instead save their properties with the following column. This simplifies layout parsing and saves a lot of code related to column handling. At output time, print all white space and vertical lines separating columns before printing the following column, and none after printing the preceding column, considerably simplifying white space handling and width calculations. No functional change, but it saves 150 lines of code, and it allows the next patch to tbl_term.c, tbl_literal(). "Please check them in and I'll look into them later!" kristaps@ 2012-05-27 17:48 schwarze Changed: cgi.c (1.44), "Exp", lines: +2 -2 libmandoc.h (1.30), "Exp", lines: +2 -2 libmdoc.h (1.79), "Exp", lines: +2 -1 main.c (1.166), "Exp", lines: +20 -4 mandoc.1 (1.101), "Exp", lines: +15 -2 mandoc.h (1.100), "Exp", lines: +3 -3 mandocdb.c (1.49), "Exp", lines: +2 -2 mdoc.c (1.197), "Exp", lines: +3 -2 mdoc_validate.c (1.184), "Exp", lines: +13 -12 read.c (1.29), "Exp", lines: +9 -4 Support -Ios='OpenBSD 5.1' to override uname(3) as the source of the default value for the mdoc(7) .Os macro. Needed for man.cgi on the OpenBSD website. Problem with man.cgi first noticed by deraadt@; beck@ and deraadt@ agree with the way to solve the issue. "Please check them in and I'll look into them later!" kristaps@ 2012-05-27 17:39 schwarze Changed: man.7 (1.115), "Exp", lines: +3 -3 man_html.c (1.87), "Exp", lines: +2 -2 man_term.c (1.128), "Exp", lines: +2 -2 mandocdb.c (1.48), "Exp", lines: +3 -3 mdoc_macro.c (1.116), "Exp", lines: +2 -2 mdoc_validate.c (1.183), "Exp", lines: +2 -2 update Copyright years according to the CVS logs; no code change 2012-05-27 15:20 schwarze Changed: TODO (1.131), "Exp", lines: +1 -10 Horizontal spacing of tables was fixed in tbl_term.c rev. 1.10 and out.c rev. 1.16 on September 20, 2011. I merely forgot to delete the TODO entry. 2012-05-27 14:42 schwarze Changed: TODO (1.130), "Exp", lines: +3 -10 The .\} -> .\& -> pset() bug reported by naddy has already been fixed; i'm really sure because i both stepped through the code with gdb and wrote an OpenBSD regression test for it. While here, note that bentley@ reported .ti .ce .fc missing. 2012-04-15 21:24 schwarze Changed: man.7 (1.114), "Exp", lines: +4 -7 Discourage the use of esr's man-ext macros: If man(7) has any advantage compared to mdoc(7), it's portability, and using man-ext would needlessly give that advantage away. ok kristaps@ 2012-04-15 15:26 schwarze Changed: mdoc_argv.c (1.83), "Exp", lines: +5 -39 The -width and -offset macro arguments consume the next argument even if it starts with a dash. ok kristaps@ 2012-04-15 13:30 schwarze Changed: mandocdb.c (1.47), "Exp", lines: +9 -9 Being reluctant to add yet more trailing whitespace, i rather back it out here than merge it to OpenBSD. No binary change. 2012-03-25 00:48 kristaps Changed: apropos_db.c (1.32), "Exp", lines: +4 -1 index.sgml (1.154), "Exp", lines: +1 -10 whatis.1 (1.9), "Exp", lines: +2 -6 Some documentation nits. 2012-03-25 00:46 kristaps Changed: cgi.c (1.43), "Exp", lines: +2 -2 Fix lookup not to use full-out regexp search. 2012-03-24 06:23 joerg Changed: config.h.post (1.5), "Exp", lines: +5 -1 FreeBSD, NetBSD and DragonFly use the same names as Linux. Add dummy entry for OpenBSD and XXX entry for the rest. 2012-03-24 02:18 tag VERSION_1_12_1 2012-03-24 02:18 kristaps Changed: apropos.c (1.30), "Exp", lines: +2 -1 Forgot chdir(2) into volume path. 2012-03-24 02:07 kristaps Changed: apropos.c (1.29), "Exp", lines: +2 -1 index.sgml (1.153), "Exp", lines: +11 -9 Small tweaks for release. 2012-03-24 01:54 kristaps Changed: Makefile (1.395), "Exp", lines: +2 -3 index.sgml (1.152), "Exp", lines: +8 -39 whatis.1 (1.8), "Exp", lines: +25 -7 Get ready for a version. 2012-03-24 01:46 kristaps Changed: apropos.1 (1.17), "Exp", lines: +27 -11 apropos.c (1.28), "Exp", lines: +91 -19 apropos_db.c (1.31), "Exp", lines: +2 -2 apropos_db.h (1.13), "Exp", lines: +2 -2 cgi.c (1.42), "Exp", lines: +2 -2 Be insane. Make apropos(1) subsume man(1). 2012-03-24 00:31 kristaps Changed: apropos.c (1.27), "Exp", lines: +17 -10 apropos_db.c (1.30), "Exp", lines: +59 -83 apropos_db.h (1.12), "Exp", lines: +17 -3 cgi.c (1.41), "Exp", lines: +25 -12 Simplify by not pre-filtering the result vector for satisfied matches: we can do this in the frontend. 2012-03-24 00:30 kristaps Changed: man.cgi.7 (1.11), "Exp", lines: +2 -2 Whitespace fix. 2012-03-23 09:03 kristaps Changed: cgi.c (1.40), "Exp", lines: +9 -29 Knock out useless & confusing whatis mode. 2012-03-23 06:52 kristaps Changed: mandocdb.c (1.46), "Exp", lines: +58 -10 Improve mandocdb's ability to handle NAME sections by sucking the entire shebang into a buffer and parsing it that way. This improves on many cruddy -man manuals in the wild. 2012-03-23 05:50 kristaps Changed: mdoc_argv.c (1.82), "Exp", lines: +2 -2 mdoc_validate.c (1.182), "Exp", lines: +8 -3 Make the `-width' field to `Bl' not puke if it doesn't have an argument. This makes mandoc work much, much nicer with Mac OSX manpages. 2012-03-23 05:45 kristaps Changed: mandocdb.c (1.45), "Exp", lines: +49 -64 Clean up code a bit by pushing warnings into WARNING macro. 2012-03-23 05:07 kristaps Changed: apropos_db.c (1.29), "Exp", lines: +2 -1 mandocdb.c (1.44), "Exp", lines: +159 -117 Merge some/most of schwarze@'s OpenBSD changes into mandoc: many more warnings about grokking manpages in their respective directories. DO NOT, however, import his temporary-file routines (I don't plan on staying with a recno/btree split) nor the realpath() routines, which destroy relative path-ness. Also pull in the lorder bits. There are some changes I started to make then stopped relating to reporting errors in the correct directories. I'll clean this up in subsequent commits. This puts us more or less on parity with OpenBSD. 2012-03-23 05:05 kristaps Changed: Makefile (1.394), "Exp", lines: +10 -6 Remove some Mac OS crap in the Makefile. 2012-03-23 02:53 kristaps Changed: Makefile (1.393), "Exp", lines: +0 -1 Don't run superfluous mkdir when installing. 2012-03-23 02:52 kristaps Changed: apropos.c (1.26), "Exp", lines: +5 -4 mandocdb.h (1.6), "Exp", lines: +3 -3 Revert to mandocdb.{index,db} for database files. 2012-03-04 23:53 schwarze Changed: TODO (1.129), "Exp", lines: +4 -1 two reminders 2012-02-26 21:47 schwarze Changed: st.in (1.19), "Exp", lines: +2 -2 Correct the expansion of -xbd5; from Philip Guenther <guenther at openbsd dot org>. OK Werner Lemberg <wl at gnu dot org>. 2012-02-16 20:51 joerg Changed: mandoc.h (1.99), "Exp", lines: +3 -1 read.c (1.28), "Exp", lines: +54 -42 Add mparse_readmem, which allows application to run the parser directly from memory, e.g. after de-compressing a document. 2012-02-05 16:46 joerg Changed: read.c (1.27), "Exp", lines: +8 -5 Don't silently skip non-ASCII characters, but replace them with ``?''. This is less likely to break the syntax of macros. 2012-01-28 23:46 joerg Changed: lib.in (1.13), "Exp", lines: +2 -1 Add libquota 2012-01-28 14:04 joerg Changed: lib.in (1.12), "Exp", lines: +5 -2 Add libisns, libppath and libsaslc from NetBSD. Fix formatting of librt. 2012-01-28 14:02 joerg Changed: arch.in (1.12), "Exp", lines: +2 -1 Add x86 pseudo architecure 2012-01-23 01:41 joerg Changed: TODO (1.128), "Exp", lines: +3 -1 Add entry about the .TP / .RS crash before I forget about it again. 2012-01-13 15:27 joerg Changed: mandoc.3 (1.17), "Exp", lines: +5 -3 Reflect reality, mandoc_escape does not skip the "\" itself, but expects the caller to have done that. 2012-01-05 00:43 schwarze Changed: mdoc_macro.c (1.115), "Exp", lines: +9 -11 Fix previous such that all .It HEADs are unparsed, not just the first one in each -diag list. While here, drop the needless if-statement and choose a more precise wording for the comment. ok kristaps@ 2012-01-03 15:17 kristaps Changed: catman.c (1.10), "Exp", lines: +2 -2 Local variable initialisation. 2012-01-03 15:16 kristaps Changed: man.7 (1.113), "Exp", lines: +29 -2 man.c (1.115), "Exp", lines: +2 -2 man.h (1.60), "Exp", lines: +2 -1 man_html.c (1.86), "Exp", lines: +42 -11 man_macro.c (1.71), "Exp", lines: +2 -1 man_term.c (1.127), "Exp", lines: +28 -3 man_validate.c (1.80), "Exp", lines: +7 -3 Add support for `OP', one of the extended man macros. This also requires some man(7) changes to accomodate for the an-ext compatibility. 2012-01-03 10:18 kristaps Changed: mdoc.7 (1.214), "Exp", lines: +4 -2 st.in (1.18), "Exp", lines: +2 -1 Accommodate for ISO C11. groff applied the same `St' argument on 03/01/2012. From a tweaked patch (isoC-11 -> isoC-2011) by Ulrich Sporlein: thanks! 2012-01-02 15:48 kristaps Changed: TODO (1.127), "Exp", lines: +1 -4 mdoc_macro.c (1.114), "Exp", lines: +14 -4 `-diag' lists aren't parsed, unlike other list types. This fixes a TODO entry raised by deraadt@. 2011-12-31 18:48 kristaps Changed: man-cgi.css (1.6), "Exp", lines: +2 -3 Fix ID vs. CLASS for man.cgi CSS selector on results table and vertically align. 2011-12-31 18:47 kristaps Changed: apropos.c (1.25), "Exp", lines: +2 -2 mandocdb.c (1.43), "Exp", lines: +44 -16 When parsing catpages, read from the first section (NAME, we hope) until the next section. Also, remove the limit of 72 characters and enforce this, instead in the apropos frontend. 2011-12-28 00:32 schwarze Changed: mandocdb.c (1.42), "Exp", lines: +19 -4 Do not skip manuals shared across architectures when building databases. 2011-12-25 21:00 schwarze Changed: mandocdb.8 (1.17), "Exp", lines: +12 -8 Update the whatis.db database format. While here, reference apropos(1) from the description, inspired by the makewhatis(8) manual. 2011-12-25 19:35 kristaps Changed: apropos.1 (1.16), "Exp", lines: +16 -14 catman.8 (1.5), "Exp", lines: +16 -16 demandoc.1 (1.6), "Exp", lines: +9 -13 mandoc.1 (1.100), "Exp", lines: +14 -13 preconv.1 (1.6), "Exp", lines: +7 -11 whatis.1 (1.7), "Exp", lines: +9 -8 State default usage before listing arguments of a utility. Inspired by a patch to mandocdb.8 by schwarze@ some time ago. Ok jmc@. 2011-12-25 19:31 kristaps Changed: mandocdb.c (1.41), "Exp", lines: +8 -3 First memory leak in mandocdb.c freeing "struct of". Also properly const-ify several strings. 2011-12-25 17:49 kristaps Changed: Makefile (1.392), "Exp", lines: +1 -1 catman.c (1.9), "Exp", lines: +24 -10 cgi.c (1.39), "Exp", lines: +4 -2 Continue changing mandoc.{index,db} into whatis.{index,db}. Use mandocdb.h to do so. 2011-12-25 16:53 schwarze Changed: apropos.1 (1.15), "Exp", lines: +4 -4 mandocdb.8 (1.16), "Exp", lines: +7 -7 mandocdb.c (1.40), "Exp", lines: +2 -2 mandocdb.h (1.5), "Exp", lines: +3 -3 whatis.1 (1.6), "Exp", lines: +4 -4 Use the traditional name "whatis.db" for the mandocdb(8) databases. Requested by deraadt@, ok kristaps@. 2011-12-25 14:58 schwarze Changed: apropos_db.c (1.28), "Exp", lines: +21 -21 mandocdb.c (1.39), "Exp", lines: +9 -9 mandocdb.h (1.4), "Exp", lines: +1 -6 For binary compatability of the databases across architectures, use pointers to arrays, not pointers to structs. It is now possible to create databases on sparc64 and use them on i386 and vice versa. Kristaps@ can't think of anything else that might be required, either. Put this in now such that we can move on. 2011-12-25 13:08 schwarze Changed: mandocdb.8 (1.15), "Exp", lines: +21 -5 mandocdb.c (1.38), "Exp", lines: +332 -216 Implement test mode (makewhatis -t), required for pkg_create(8). Always do all consistency checks; when any one fails, decide whether to print a message, or skip the file, or both, or none. While here, do some cleanup as well: * Bail out on conflicting options. * Do not crash with -a if there are plain files in the root dir. * Collect some related variables into structs. Feedback and OK kristaps@. 2011-12-24 22:37 kristaps Changed: apropos.1 (1.14), "Exp", lines: +14 -3 catman.8 (1.4), "Exp", lines: +14 -3 manpath.c (1.8), "Exp", lines: +46 -7 whatis.1 (1.5), "Exp", lines: +14 -3 Support leading, trailing and double colons in MANPATH to prepend, append or insert the man.conf(5) default path; compatible with GNU manpath(1), implementation by kristaps@, heavily tweaked by schwarze@. Updates to MANPATH documentation applied to whatis.1, apropos.1, and catman.8 also. 2011-12-20 21:41 schwarze Changed: apropos_db.c (1.27), "Exp", lines: +7 -6 mandocdb.c (1.37), "Exp", lines: +13 -5 Do not cast void pointers to pointers requiring alignment. This makes mandocdb(8)/apropos(1) work on strict alignment architectures. Basic way to fix this confirmed by deraadt@ and kettenis@, thanks. ok kristaps@ This now works on both sparc64 and i386, but note that the binary database format is still machine-dependent. 2011-12-18 18:51 kristaps Changed: catman.8 (1.3), "Exp", lines: +19 -3 catman.c (1.8), "Exp", lines: +8 -4 Give catman(8) the -C flag (like apropos and friends) and merge in some documentation from apropos(1) to be consistent. 2011-12-18 14:27 kristaps Changed: compat_fgetln.c (1.2), "Exp", lines: +4 -0 compat_getsubopt.c (1.2), "Exp", lines: +4 -0 compat_strlcat.c (1.2), "Exp", lines: +4 -0 compat_strlcpy.c (1.2), "Exp", lines: +4 -0 Make compat files actually use compat.h. Ooops. 2011-12-16 20:06 kristaps Changed: apropos_db.c (1.26), "Exp", lines: +3 -3 cgi.c (1.38), "Exp", lines: +2 -2 Two lint fixes. 2011-12-16 20:05 kristaps Changed: cgi.c (1.37), "Exp", lines: +4 -2 Fix assertion found when plugging legacy man.cgi query string into my man.cgi. 2011-12-16 19:18 kristaps Changed: man-cgi.css (1.5), "Exp", lines: +3 -1 Edge in a little style. Why not. 2011-12-16 18:37 kristaps Changed: cgi.c (1.36), "Exp", lines: +72 -38 When routing to a "result" page in the cgi, remember our input parameters and repeat them in the search bar. This is handy. While here, make the QUERY_STRING parser a bit simpler. 2011-12-16 15:05 kristaps Changed: man-cgi.css (1.4), "Exp", lines: +1 -0 Have results table inherit the small font. 2011-12-16 12:07 kristaps Changed: apropos_db.c (1.25), "Exp", lines: +2 -2 Make sure that "any" is UINT64_MAX, not just INT_MAX, else "any" won't cover all types. Found after some database trawling. 2011-12-16 12:06 kristaps Changed: apropos_db.c (1.24), "Exp", lines: +15 -5 apropos_db.h (1.11), "Exp", lines: +8 -2 catman.c (1.7), "Exp", lines: +9 -8 cgi.c (1.35), "Exp", lines: +11 -11 mandocdb.8 (1.14), "Exp", lines: +7 -10 mandocdb.c (1.36), "Exp", lines: +7 -9 Make the stored "cat"/"mdoc"/"man" strings just be c/d/a single-character bytes. This cuts down a little in index size and allows for cleaner extraction of information. 2011-12-16 08:04 kristaps Changed: catman.c (1.6), "Exp", lines: +25 -24 cgi.c (1.34), "Exp", lines: +9 -4 mandocdb.8 (1.13), "Exp", lines: +3 -3 mandocdb.c (1.35), "Exp", lines: +35 -43 Make paths in the mandocdb(8) index relative to the databases' path prefix. This means that an index in, say, /usr/share/man will point to man1/foo.1 instead of /usr/share/man/man1/foo.1. Not only does this save a lot of space, it also allows manual trees to be moved around without any side effects to the mandocdb(8) databases. 2011-12-15 12:44 kristaps Changed: man-cgi.css (1.3), "Exp", lines: +3 -3 Don't make man.cgi default font-size dictate manual style. 2011-12-15 12:18 kristaps Changed: cgi.c (1.33), "Exp", lines: +7 -4 example.style.css (1.49), "Exp", lines: +3 -3 man-cgi.css (1.2), "Exp", lines: +5 -0 Further tweaks for output consistency. 2011-12-15 12:07 kristaps Changed: man.cgi.7 (1.10), "Exp", lines: +13 -9 Update man.cgi.7 with new CSS files. 2011-12-15 12:05 kristaps Deleted: man.cgi.css (1.2) Added: man-cgi.css (1.1) Changed: Makefile (1.391), "Exp", lines: +2 -2 cgi.c (1.32), "Exp", lines: +36 -34 example.style.css (1.48), "Exp", lines: +104 -140 Some presentation polish in man.cgi: - include search bar above result page (I relent: it's annoying to follow three links then press back three times to get a search page); - make man.cgi.css into man-cgi.css so Apache isn't confused by two handlers (css, cgi); - finally consolidate example.style.css to be under the div.mandoc css selector; - put catman pages under div.catman; - put search bar under div#mancgi; - reflect this properly in the bundled CSS files. 2011-12-14 23:17 kristaps Changed: index.sgml (1.151), "Exp", lines: +7 -1 Note that archives are being hosted at gmane. 2011-12-14 13:36 kristaps Changed: cgi.c (1.31), "Exp", lines: +2 -2 man.cgi.7 (1.9), "Exp", lines: +2 -0 Unbreak man.cgi's css directories when CSS_DIR isn't specified. 2011-12-13 21:09 kristaps Changed: manpath.c (1.7), "Exp", lines: +1 -2 Remove stray warnx() left in the manpath.c code. 2011-12-13 20:56 kristaps Changed: manpath.c (1.6), "Exp", lines: +53 -42 manpath.h (1.5), "Exp", lines: +1 -3 Have manpath.c properly use manpath(1), that is, using -C and -m and so on. This also cleans up the code a little bit. While here, make some functions static that are only used within manpath.c. 2011-12-13 11:26 kristaps Added: compat_fgetln.c (1.1) test-fgetln.c (1.1) Changed: Makefile (1.390), "Exp", lines: +24 -3 config.h.post (1.4), "Exp", lines: +3 -0 config.h.pre (1.2), "Exp", lines: +2 -0 Compatibility support fgetln() on Linux. This uses the BSD-licensed implementation from NetBSD tnftpd, Christos Zoulas (copyright message retained in the compat_fgetln.c file). Patch verified by schwarze@. He notes that you'll need -pthread for -static binaries (due to libdb), so I've noted that -static should really only be used for BSD UNIX. While here, add some forgotten goop to the Makefile, building and cleaning extra manpages. 2011-12-12 02:00 schwarze Changed: apropos.1 (1.13), "Exp", lines: +24 -2 apropos.c (1.24), "Exp", lines: +10 -4 catman.c (1.5), "Exp", lines: +2 -2 cgi.c (1.30), "Exp", lines: +3 -3 mandocdb.8 (1.12), "Exp", lines: +22 -6 mandocdb.c (1.34), "Exp", lines: +12 -6 manpath.c (1.5), "Exp", lines: +7 -6 manpath.h (1.4), "Exp", lines: +4 -4 whatis.1 (1.4), "Exp", lines: +59 -16 implement -C (alternative config file) for apropos(1) and mandocdb(8), including various tweaks to the whatis(8) manual; ok kristaps@ 2011-12-11 00:38 schwarze Changed: roff.7 (1.37), "Exp", lines: +18 -2 Explain where .so paths are rooted, and why, and discourage its use; feedback and ok jmc@, suggested by and ok kristaps@. 2011-12-11 00:24 kristaps Changed: man.cgi.7 (1.8), "Exp", lines: +3 -3 Ugh, environmental variables are Ev, not Er. Fix typos. 2011-12-11 00:23 kristaps Changed: man.cgi.7 (1.7), "Exp", lines: +2 -0 Note CSS_DIR in man.cgi.7. 2011-12-11 00:22 kristaps Changed: cgi.c (1.29), "Exp", lines: +54 -57 When 303'ing a search directly to a page, remember to specify its manroot. Also allow for a CSS_DIR to specify alternate CSS locations. Finally, some clutter as I assume that "css" and "progname" are already HTML-safe. 2011-12-10 23:44 kristaps Changed: index.sgml (1.150), "Exp", lines: +35 -7 man.cgi.7 (1.6), "Exp", lines: +2 -2 Begin working on release notes. Also whitespace-fix man.cgi.7. 2011-12-10 23:31 kristaps Changed: man.cgi.7 (1.5), "Exp", lines: +64 -16 Update man.cgi.7 to note compatibility and running with multiple roots. 2011-12-10 23:09 kristaps Changed: cgi.c (1.28), "Exp", lines: +2 -2 Slip in a fix to allow for empty cache directories. 2011-12-10 23:04 kristaps Changed: cgi.c (1.27), "Exp", lines: +24 -5 Finishing touches on multi-manroot man.cgi. If more than one root is specified, write them out using a SELECT box. Else write nothing (the manroot will still be checked if it's specified). 2011-12-10 22:45 kristaps Changed: cgi.c (1.26), "Exp", lines: +46 -29 Switch on "manpath=" handling, which I call the "manroot" (as "manpath" is reserved for paths within a manroot). This functionality is bare-bones: right now, the default manroot is the first one scanned from the cache directory. At some point this will be sexy and smooth, but it's easy to upgrade functionality by modifying pathgen() and so forth. If a manroot isn't parsed from the "manpath=", results are always empty. 2011-12-10 22:20 kristaps Changed: cgi.c (1.25), "Exp", lines: +27 -14 Encode "manroot" into file URL and parse it properly. Right now this just uses the first manroot by default. 2011-12-10 22:01 schwarze Changed: mandocdb.c (1.33), "Exp", lines: +25 -21 Avoid leaking index records: Before allocating a record for a file, first make sure we actually want to use the file. 2011-12-10 21:51 kristaps Changed: cgi.c (1.24), "Exp", lines: +284 -163 Big upgrade and polish for cgi.c. - Deprecate kvals (key/value pairs for QUERY_STRING values). Since there's only one place that uses this, kval_parse (now http_parse()) dumps directly into struct query, which is more high-level. - Put query values directly into struct req. - The biggest difference is dynamic support for multiple "manroots". A "manroot" is a path with an "etc/catman.conf" file. When the cgi starts, it (prefix) recurses through its CACHE_DIR searching for "etc" directories. When one's found, it sees if a catman.conf file exists. This is marked as a manroot and appended to a list. The name of a manroot is the path without slashes (e.g., OpenBSD/4.9 -> "OpenBSD 4.9"). Right now "manroot" isn't enabled. The first manroot is chosen as the real one. I'll add the interface to it in the next checkins, but it'll be quite simple. 2011-12-10 21:46 kristaps Changed: apropos_db.c (1.23), "Exp", lines: +3 -2 Plug a memory leak in single_search(). 2011-12-10 16:53 schwarze Changed: mandocdb.c (1.32), "Exp", lines: +7 -3 Fix selection of arch-specific manuals: (1) Correctly compare cat vs. man paths. (2) Compare arch (and section) names case-insensitively. Problem noticed by kristaps@. 2011-12-10 11:00 kristaps Changed: Makefile (1.389), "Exp", lines: +20 -8 Adding some missing "install" bits to Makefile. 2011-12-10 10:59 kristaps Changed: cgi.c (1.23), "Exp", lines: +12 -5 FreeBSD's man.cgi uses a "default" value for no arch. 2011-12-10 00:06 kristaps Changed: cgi.c (1.22), "Exp", lines: +3 -3 Add some periods (just to see if mlmmj is working again...). 2011-12-09 23:18 kristaps Changed: cgi.c (1.21), "Exp", lines: +5 -3 Forgot to make whatis the default during abstraction. Do it again. 2011-12-09 11:29 kristaps Changed: cgi.c (1.20), "Exp", lines: +153 -137 Abstract query extraction code. Perform some readability fixes while here. 2011-12-09 11:18 kristaps Changed: apropos_db.c (1.22), "Exp", lines: +5 -3 When specifying an architecture to whatis(1)/apropos(1)/man.cgi(7), do a comparison only if the manual specifies an architecture, otherwise let it through. Looked over by schwarze@. This brings us much more in line with OpenBSD's behaviour. 2011-12-09 11:16 schwarze Changed: mandocdb.c (1.31), "Exp", lines: +14 -13 Tweak pformatted(): * If the first section is empty, use the file name as .Nd. * No need to check (len > 0) after successful fgetln(3). * Improve some comments and strip trailing whitespace. ok kristaps@ 2011-12-09 01:21 kristaps Changed: mandocdb.c (1.30), "Exp", lines: +3 -3 Considerably tidy mandocdb(8) catman descriptions by skipping to the first hyphen-space combo, not the last hyphen as done previously. 2011-12-09 00:49 kristaps Changed: mandocdb.c (1.29), "Exp", lines: +13 -1 Strip backspace encoding from preformatted manuals. This cleans up a lot of catpage entries in the mandoc databases. 2011-12-08 22:47 kristaps Changed: cgi.c (1.19), "Exp", lines: +42 -4 If no man.cgi `whatis' results are found, offer a quick link to the apropos query mode. 2011-12-08 18:39 kristaps Changed: cgi.c (1.18), "Exp", lines: +2 -2 Fix stupid typo: strlcpy() instead of strlcat(). 2011-12-08 09:19 kristaps Changed: mandocdb.c (1.28), "Exp", lines: +36 -29 Clean up grok of preformatted manual description. (1) put fclose() at the end, as line isn't valid afterward (see fgetln()) (2) clean up loops to be more readable to my old eyes (3) mandate trailing newline, nul-terminate, and use strrchr 2011-12-08 02:24 schwarze Changed: mandocdb.c (1.27), "Exp", lines: +10 -10 bugfix: make reclaiming of index slots actually work; index_prune always counted the free slots, but didn't tell anybody about them, so they weren't reused 2011-12-08 01:00 kristaps Changed: mandocdb.c (1.26), "Exp", lines: +12 -5 If arguments are passed to mandocdb(8) in "default" mode, then use realpath() to convert them into absolute paths before putting the traversed subdirectory filenames into the index. 2011-12-08 00:48 kristaps Changed: cgi.c (1.17), "Exp", lines: +3 -3 Look for man.cgi files in the cache, not under the volume path. 2011-12-08 00:20 kristaps Changed: catman.c (1.4), "Exp", lines: +34 -114 First, remove the catman(8) jobstart() stuff. It only copies files. Second, when creating the destination filename, append the index's file (which is an absolute path) to the cache directory, not to the index's directory name. 2011-12-07 16:18 kristaps Changed: cgi.c (1.16), "Exp", lines: +4 -1 Tweak to make man.cgi's search results validate properly. 2011-12-07 16:08 kristaps Changed: apropos.c (1.23), "Exp", lines: +2 -2 cgi.c (1.15), "Exp", lines: +15 -5 Apropos and man.cgi should strcasecmp their output sorting. man.cgi should sort in the first place -- it wasn't before. Revert uppercasing of man.cgi title. 2011-12-07 15:55 kristaps Added: man.cgi.css (1.1) Changed: cgi.c (1.14), "Exp", lines: +28 -21 Add skeleton man.cgi.css file. I don't think this should become more complicated than this. Also make the title be printed out in caps as it is in apropos(1) and whatis(1). 2011-12-07 15:12 kristaps Changed: cgi.c (1.13), "Exp", lines: +18 -1 Accept old-school man.cgi parameters like "sektion" and "query". This still needs work because specifying an arch with "arch=i386" will return results that don't have an arch specified. I think this is weird, but it will need to be supported if we want backwards compatibility. 2011-12-07 13:00 kristaps Changed: Makefile (1.388), "Exp", lines: +1 -0 cgi.c (1.12), "Exp", lines: +56 -42 man.cgi.7 (1.4), "Exp", lines: +17 -6 Have a whatis/apropos mode, with the default (hitting enter within the expression text) be whatis. This is a much nicer default than apropos, which can be scary. While here, fix the cat.css location (erroneously put in the response page instead of the catman page) and add bits for a default style-sheet. 2011-12-07 11:59 kristaps Changed: Makefile (1.387), "Exp", lines: +9 -0 Make installing CGI a bit easier. 2011-12-07 11:52 kristaps Changed: Makefile (1.386), "Exp", lines: +1 -1 cgi.c (1.11), "Exp", lines: +18 -4 By default, man.cgi should compile with -static (this was unset by mistake). Also, set a custom CSS for man.cgi catman files. 2011-12-07 01:57 schwarze Changed: mandocdb.c (1.25), "Exp", lines: +252 -299 Implement search support for 24 additional macros, extract more information from Fn, and lift section restrictions from An Cd Er Ev Fn Fo In Pa St Va Vt by removing 4 handler functions and 50 lines of code. ok kristaps@ 2011-12-07 00:23 kristaps Changed: cgi.c (1.10), "Exp", lines: +184 -57 Add cat2html functionality. This keeps track of italic/bold mode per line and properly handles some funny troff-isms we've exposed. I originally wanted to use man2html.c (found on W3's website with no known author) but the code is dodgy. This will need some more work (links, etc.) but does a decent job thusfar. Note: I think it's better style NOT to use <pre>, and instead have each line employ <BR> afterward. This allows browsers to break the lines if necessary. This can be changed trivially (replacing the newline and pre tags with the <BR> and new tag). 2011-12-05 00:41 schwarze Changed: TODO (1.126), "Exp", lines: +6 -1 must ignore \h with quoted argument 2011-12-04 23:10 schwarze Changed: man_term.c (1.126), "Exp", lines: +38 -19 term.h (1.90), "Exp", lines: +2 -1 term_ascii.c (1.20), "Exp", lines: +12 -3 Implement mdoc(7)-like output style variant for man(7) documents: * one instead of three blank lines after the page header; * one instead of three blank lines before the page footer; * source instead of title(section) in the lower right corner. Select this style variant with the undocumented command line option -Omdoc. In the long run, we hope to unify the ouput of both languages and to pull this out again, but that requires coordination with groff. Grudgingly ok and, (as usual,-) more comments requested by kristaps@ 2011-12-04 22:52 kristaps Changed: catman.8 (1.2), "Exp", lines: +5 -3 catman.c (1.3), "Exp", lines: +28 -16 cgi.c (1.9), "Exp", lines: +62 -17 man.cgi.7 (1.3), "Exp", lines: +4 -5 Make catman and man.cgi understand the index type-field. Also make catman's man.conf be generated as catman.conf to avoid clobbering a real man.conf file. Finally, add a placeholder catman() function to man.cgi for preformatted manuals in the cache. 2011-12-04 14:23 schwarze Changed: mandocdb.c (1.24), "Exp", lines: +4 -5 Fix parsing of file names given on the command line; i broke it when adding support for formatted manual pages. 2011-12-04 00:44 schwarze Changed: man_html.c (1.85), "Exp", lines: +8 -5 man_macro.c (1.70), "Exp", lines: +1 -3 man_term.c (1.125), "Exp", lines: +10 -7 Jumping out of man_unscope() for the root node is a bad idea because that will skip root node validation, potentially entering rendering modules will NULL pointers lurking in the meta data. Instead, always validate the root node and (as suggested by joerg@) assert validity of the meta data before using it in the renderers. ok joerg@ 2011-12-03 23:59 schwarze Changed: mdoc_macro.c (1.113), "Exp", lines: +1 -17 Remove an OpenBSD-specific tweak regarding .Xr spacing and make it compatible with groff-1.21. This tweak was originally added for compatibility with groff-1.15, which is no longer needed. ok jmc@ kristaps@ 2011-12-03 18:47 kristaps Changed: apropos_db.c (1.21), "Exp", lines: +1 -2 mandocdb.c (1.23), "Exp", lines: +1 -2 Back out lorder, which doesn't seem necessary (?). I think this means all fields are endian-neutral, although the recno(3) key is unknown. 2011-12-03 16:58 schwarze Changed: mdoc_validate.c (1.181), "Exp", lines: +16 -1 When processing .Sh HEAD, as soon as we know which section this is, fix up the section attributes of the HEAD, it's parent BLOCK, and all its (text) children. This is required because the section attributes get set when each node is allocated, i.e. before processing the content of the node itself. Thus, the listed nodes got the section attribute of the preceding section. No need to fix up the BODY, all is fine there already. Found while implementing TYPE_Sh for mandocdb(8). OK and comment requested by kristaps@. 2011-12-03 16:08 schwarze Changed: mandoc.c (1.62), "Exp", lines: +4 -3 ISO style "%Y-%m-%d" dates are common in man(7) .TH. They have been considered valid in the past, but were reformatted to the mdoc(7) "Month day, year" style. To make page footers more similar to groff, no longer reformat them, just print them as they are. This doesn't change anything with respect to what's considered valid or what is warned about. ok kristaps@ 2011-12-03 12:09 kristaps Changed: apropos_db.c (1.20), "Exp", lines: +2 -1 mandocdb.c (1.22), "Exp", lines: +2 -1 Make sure the btree(3) goop is also BE. This covers both the DB metadata and prior commits handle the contained binary fields. 2011-12-02 01:37 schwarze Changed: Makefile (1.385), "Exp", lines: +2 -2 libmandoc.h (1.29), "Exp", lines: +2 -1 libmdoc.h (1.78), "Exp", lines: +1 -2 man.7 (1.112), "Exp", lines: +15 -2 man_validate.c (1.79), "Exp", lines: +5 -1 mdoc_validate.c (1.180), "Exp", lines: +2 -2 msec.c (1.10), "Exp", lines: +3 -4 In man(7), when no explicit volume name is given, use the default volume name for the respective manual section, just like in mdoc(7). This gives us nicer page headers for cvs(1), lynx(1), tic(1), mkhybrid(8), and many curses(3) manuals. ok kristaps@ To not break compatibility, i wrote a corresponding patch for GNU troff which Werner Lemberg accepted upstream at rev. 1.65 of: http://cvs.savannah.gnu.org/viewvc/groff/tmac/an-old.tmac?root=groff 2011-12-02 00:21 kristaps Changed: apropos_db.c (1.19), "Exp", lines: +10 -2 config.h.post (1.3), "Exp", lines: +10 -0 mandocdb.8 (1.11), "Exp", lines: +6 -6 mandocdb.c (1.21), "Exp", lines: +6 -2 This is a little gross: Linux and Apple need lots some cajoling to work with byte-swapping. Tested on Mac. Any Linux machines somebody can test on? Anybody? While here, note the correct byte-size in mandocdb(8) and also note field widths and endianness. The btree is now endian-neutral. 2011-12-01 23:55 kristaps Changed: apropos_db.c (1.18), "Exp", lines: +3 -5 mandocdb.c (1.20), "Exp", lines: +4 -6 Use OpenBSD's endian functions. Make btree type also be endian-neutral. 2011-12-01 23:46 kristaps Changed: apropos_db.c (1.17), "Exp", lines: +30 -27 mandocdb.c (1.19), "Exp", lines: +5 -5 In apropos_db.c, move all btree reading (and safety checks) into the btree_read() function. Also, add a forgotten free() for the type of grokked record. Then in both mandocdb.c and apropos_db.c, make the "rec" field of the btree by in network-order. 2011-12-01 21:05 kristaps Changed: mandocdb.8 (1.10), "Exp", lines: +23 -5 mandocdb.c (1.18), "Exp", lines: +54 -26 Fix mandocdb(8) to pass over the type when pruning the database. This fixed `-d' perpetually adding the same files. While here, clean up the code and document it. Remove -vv (complain if you want it back in). Document the error messages in a DIAGNOSTICS section of mandocdb(8). 2011-11-29 11:21 kristaps Changed: index.sgml (1.149), "Exp", lines: +27 -30 Add whatis(1) to www and start version information. While here, change "mdoc macro compiler" to "UNIX manpage compiler", which is more correct. I'm not sold on this language; I may end up just going with mandoc(1)'s notation. Note also that our archives are now hosted at gmane. 2011-11-29 11:17 kristaps Changed: mandocdb.8 (1.9), "Exp", lines: +53 -41 Note that mandocdb(8) record type is 64-bit and show all possible values. Also slightly clarify the role of mdoc/man/cat. Finally, remove mandoc(1) reference (it's not mentioned in the manual). 2011-11-29 10:59 kristaps Changed: apropos.1 (1.12), "Exp", lines: +2 -2 whatis.1 (1.3), "Exp", lines: +2 -3 Snip some whitespace from apropos(1) and remove mandoc(1) ref from whatis(1) (both apropos/whatis aren't related to mandoc from an operator's perspective). 2011-11-29 10:53 kristaps Changed: apropos.1 (1.11), "Exp", lines: +18 -24 apropos.c (1.22), "Exp", lines: +3 -3 apropos_db.c (1.16), "Exp", lines: +3 -12 Make `-i' only apply to regular expressions. For the equality operator (and thus the default), always use strcasestr(). Discussed on tech@ with schwarze@. While here, fix the apropos.c usage() message to be consistent with apropos(1) and clean up the EXAMPLES in apropos(1). 2011-11-29 00:41 kristaps Changed: apropos.1 (1.10), "Exp", lines: +84 -6 Add tables of matchable keys into apropos.1. Ok and with feedback by schwarze@. 2011-11-29 00:34 schwarze Changed: mandocdb.c (1.17), "Exp", lines: +18 -2 chdir(2) to the right man page tree before parsing manuals; ok kristaps@ 2011-11-28 10:10 schwarze Changed: Makefile (1.384), "Exp", lines: +2 -2 Backout -DUSE_MANPATH that sneaked in; ok kristaps@. 2011-11-28 09:44 schwarze Changed: apropos.c (1.21), "Exp", lines: +2 -2 apropos_db.c (1.15), "Exp", lines: +5 -6 whatis.1 (1.2), "Exp", lines: +3 -3 Tweak whatis(1): * Bugfix: Use all arguments, not just the last one. * Use 'Nm~' instead of 'Nm,Nd~' to match OpenBSD behaviour. * For the progname, accept '^whatis', not '^whatis$' to ease testing. ok kristaps@ 2011-11-28 01:37 schwarze Changed: mandocdb.8 (1.8), "Exp", lines: +49 -38 Discuss the default behaviour up front before talking about options modifying it; based on a remark by kristaps@. While here, mention parsing of unformatted files and the changed index format and fix a few minor issues. 2011-11-27 23:27 schwarze Changed: mandocdb.c (1.16), "Exp", lines: +21 -27 Reimplement the global command line options -a and -v as static global variables, reducing the maze of arguments passed around among various static functions. Suggested by kristaps@. 2011-11-27 23:11 schwarze Changed: apropos_db.c (1.14), "Exp", lines: +2 -1 apropos_db.h (1.10), "Exp", lines: +2 -1 mandocdb.c (1.15), "Exp", lines: +2 -1 Save the manual type (mdoc, man, or cat) in the index file of the mandoc databases, as suggested by kristaps@. Given the well-structured code, this is surprisingly simple. This changes the mandoc.index database format. Run "sudo mandocdb" to regenerate your databases. 2011-11-27 22:57 schwarze Changed: mandocdb.c (1.14), "Exp", lines: +206 -31 Rudimentary handling of formatted manuals ("cat pages"). Coded on the train back from p2k11 in Budapest. Kristaps has seen the patch and agreed with the direction. 2011-11-27 18:54 kristaps Added: whatis.1 (1.1) Changed: apropos.c (1.20), "Exp", lines: +13 -9 apropos_db.c (1.13), "Exp", lines: +46 -2 apropos_db.h (1.9), "Exp", lines: +2 -1 Get us a whatis(1) mode for apropos(1). This is from a patch to tech@ as critiqued by schwarze@, checked in to get the ball rolling. 2011-11-27 11:46 kristaps Changed: Makefile (1.383), "Exp", lines: +39 -18 catman.c (1.2), "Exp", lines: +13 -5 cgi.c (1.8), "Exp", lines: +37 -59 man.cgi.7 (1.2), "Exp", lines: +10 -31 Removing INSECURE mode. This is a work in progress! Logic for formatting manpages is now linked into man.cgi. 2011-11-26 22:38 schwarze Changed: apropos.1 (1.9), "Exp", lines: +5 -5 apropos.c (1.19), "Exp", lines: +10 -10 apropos_db.c (1.12), "Exp", lines: +28 -27 apropos_db.h (1.8), "Exp", lines: +5 -5 mandocdb.c (1.13), "Exp", lines: +10 -5 manpath.c (1.4), "Exp", lines: +10 -9 Sync to OpenBSD, mostly gratuitous and whitespace differences, but a few serious things as well: * -M overrides MANPATH * -m prepends to the path * put back database close calls that got lost in mandocdb * missing sys/types.h in manpath.c, needed for size_t ok kristaps@ 2011-11-26 19:54 kristaps Deleted: manup.8 (1.2) manup.c (1.3) Added: catman.8 (1.1) catman.c (1.1) Rename manup(8) to catman(8), which Linux already uses for a similar tool. 2011-11-26 11:23 schwarze Changed: mandocdb.8 (1.7), "Exp", lines: +14 -3 mandocdb.c (1.12), "Exp", lines: +191 -39 Store page titles in the correct case, and by default, only put stuff into the database that man(1) will be able to retrieve. However, support an option to use all directories and files. feedback and ok kristaps@ 2011-11-24 12:54 kristaps Changed: mandocdb.c (1.11), "Exp", lines: +2 -2 I say that mandocdb(8) uses "man(1)'s method", but it doesn't. It just uses the configuration file and ignores MANPATH. Everybody else uses MANPATH (being apropos and man), so why shouldn't we? 2011-11-24 12:43 kristaps Added: man.cgi.7 (1.1) Changed: Makefile (1.382), "Exp", lines: +1 -0 Make a small manual for how to run man.cgi. This exists almost entirely to document that /tmp must exist in a jailed Apache directory for dbopen() not to fail. This was a massive headache to track down. 2011-11-24 12:27 kristaps Changed: cgi.c (1.7), "Exp", lines: +91 -28 Let man.cgi run in two modes: (1) Insecure. This means that we're operating over the full file-system with access to mandoc(1). In this mode, mandocdb entries are formatted on-the-fly. The $INSECURE environment variable must be passed to man.cgi for this mode to work. (2) Secure. Manuals are assumed to be pre-formatted in a cache directory, which may be set with $CACHE_DIR but default to /cache/man.cgi. This mode works with manup(8), which updates the cached pages from outside of the jail. man.cgi simply locates the manual file and outputs it to stdout. 2011-11-24 12:22 kristaps Changed: manup.c (1.2), "Exp", lines: +18 -3 Have manup(8) put relative paths in its output man.conf. This lets us have arbitrarily-located cache directories for man.cgi. 2011-11-24 10:44 kristaps Changed: manpath.c (1.3), "Exp", lines: +4 -4 manpath.h (1.3), "Exp", lines: +2 -2 Allow man.conf file to be assignable. 2011-11-24 10:43 kristaps Changed: manpath.c (1.2), "Exp", lines: +21 -14 manpath.h (1.2), "Exp", lines: +2 -1 Export the manpath_manconf() function, slightly reorderng manpath.c while doing so. This will be used by a jailed man.cgi, as the cache built by manup(8) creates a man.conf for it to use. 2011-11-24 10:33 kristaps Added: manup.8 (1.1) manup.c (1.1) Changed: Makefile (1.381), "Exp", lines: +17 -2 Add manup(8). This runs through mandocdb(8) databases (in the same way that apropos(1) does so) and updates an HTML fragment cache for use by man.cgi. Right now man.cgi is "online" in that it requires mandoc(1) in its path, but this doesn't work for, say, OpenBSD's apache chroot(1). This allows a cache to be maintained. 2011-11-23 10:26 kristaps Changed: index.sgml (1.148), "Exp", lines: +7 -1 Add pkgsrc to downstream. Ok'd Thomas Klausner. 2011-11-23 10:09 kristaps Changed: apropos.1 (1.8), "Exp", lines: +2 -3 mandoc_char.7 (1.51), "Exp", lines: +3 -3 Fix whitespace in manuals. 2011-11-23 10:01 kristaps Changed: cgi.c (1.6), "Exp", lines: +422 -81 man.cgi works for the non-jailed case. In other words, if you smash this into a cgi-bin directory, it will Just Work for your system's manuals (it of course needs access to mandoc(1) and your file-system, hence "non-jailed"). The notion of a jailed case is much more subtle and being worked on now. 2011-11-23 09:56 kristaps Changed: Makefile (1.380), "Exp", lines: +16 -11 Adjust Makefile for manpath.{c,h} linking. 2011-11-23 09:55 kristaps Changed: apropos_db.c (1.11), "Exp", lines: +8 -7 apropos_db.h (1.7), "Exp", lines: +6 -1 Let apropos_db.h export the volume of manpages for a parsed record. This is necessary since an array of records can have duplicate record numbers in different mandoc.index files. The volume [right now] is just the index of the parsed mandoc.index in the manpaths. This is sensible because the order of the manpath is significant (it's the order of duplicate-named manuals displayed by man(1)) and is thus not likely to change. 2011-11-23 09:52 kristaps Changed: mandocdb.8 (1.6), "Exp", lines: +9 -2 mandocdb.c (1.10), "Exp", lines: +26 -6 Have mandocdb(8) take advantage of manpath.h. This brings it in line with makewhatis(8), which, like apropos(1), will use man.conf (or manpath(1)) if no manpath entries are provided. 2011-11-23 09:50 kristaps Changed: apropos.c (1.18), "Exp", lines: +5 -134 Have apropos(1) take advantage of manpath.h instead of doing the work itself. 2011-11-23 09:47 kristaps Added: manpath.c (1.1) manpath.h (1.1) Support for Open/NetBSD's /etc/man.conf and others' manpath(1). Most of this code (except the manpath part) written by schwarze@. This isn't hooked into anything yet. 2011-11-23 02:12 schwarze Changed: roff.7 (1.36), "Exp", lines: +4 -4 typo reported by Steffen Daode Nurpmeso <sdaoden at googlemail dot com> and remove a trailing blank noticed by jmc@ 2011-11-21 22:19 kristaps Changed: roff.7 (1.35), "Exp", lines: +17 -9 Update historical record to be historical and not made-up. Data from <manpages.bsd.lv/history.html>. Ok schwarze@ (with modifications) and Jason McIntyre. 2011-11-20 21:36 kristaps Changed: Makefile (1.379), "Exp", lines: +3 -0 apropos.1 (1.7), "Exp", lines: +14 -4 apropos.c (1.17), "Exp", lines: +93 -9 Initial support for man.conf/makepath(1). 2011-11-20 16:29 kristaps Changed: apropos.1 (1.6), "Exp", lines: +13 -21 apropos.c (1.16), "Exp", lines: +22 -23 apropos_db.c (1.10), "Exp", lines: +19 -13 Clarify some behaviour, bringing schwarze@'s patch and mine closer together (although I still don't have -M, which is a big piece). First, the default search path is the cwd. This will change to use -M once I look over that code. If MANPATH is specified, this replaces the cwd. Both of these are augmented by -m. If paths don't exist or don't have databases, they're silently ignored. This makes perfect sense: you may be given a superset of possible paths. The corner case of no paths (where, say, MANPATH consists of bogus paths or the cwd is unreadable) simply means that no paths are searched. 2011-11-20 15:45 kristaps Changed: apropos_db.c (1.9), "Exp", lines: +2 -2 Ooops... tiny type error slipped in. 2011-11-20 15:43 kristaps Changed: apropos.1 (1.5), "Exp", lines: +14 -5 apropos.c (1.15), "Exp", lines: +90 -20 apropos_db.c (1.8), "Exp", lines: +85 -59 apropos_db.h (1.6), "Exp", lines: +2 -2 Integrate a moderately-patched version of schwarze@'s support for multiple directories containing mandocdb(8) databases. Some changes follow: (1) don't support -M yet; (2) fall back to cwd if no prior manpath has been specified; (3) resolve manpages using realpath() to prevent consecutive chdir()'s over relative paths; (4) note where further error-reporting is required; (5) fix leaking memory on exit in several cases. 2011-11-20 12:46 kristaps Changed: apropos_db.c (1.7), "Exp", lines: +40 -40 Fix white-space in apropos_db.c to make merging cleaner. 2011-11-20 12:39 kristaps Changed: apropos_db.c (1.6), "Exp", lines: +58 -32 cgi.c (1.5), "Exp", lines: +2 -1 mandocdb.c (1.9), "Exp", lines: +14 -14 mandocdb.h (1.3), "Exp", lines: +44 -13 Merge schwarze@'s work for 64-bit types. This is based on a tweaked patch submitted to tech@ on 16/11/2011, 01:39. It has been updated to account for the logical-operator functions and to avoid keeping a live pointer into the DBT value, which is not guaranteed to be consistent across calls into the bdb library. 2011-11-19 13:29 schwarze Changed: mdoc_validate.c (1.179), "Exp", lines: +6 -2 Improve misleading comment: * Not sure there were any text nodes, might have been other stuff instead. * Not sure it was just one node, maybe several were deleted. * No problem if some nodes were deleted, as long as some valid ones are left. * We do not leave early, but after cleaning out all the crap. * We are not "bailing", but we consider the block valid after cleanup. 2011-11-18 17:06 joerg Changed: man_macro.c (1.69), "Exp", lines: +2 -2 Fix condition. Not enough tea. 2011-11-18 17:05 joerg Changed: man_html.c (1.84), "Exp", lines: +5 -3 Don't depend on snprintf to handle NULL strings. Deal with missing date. 2011-11-18 17:04 joerg Changed: man_term.c (1.124), "Exp", lines: +7 -5 Don't crash if the date can't be extracted. Don't depend on snprintf handling NULL strings. 2011-11-18 16:43 joerg Changed: man_macro.c (1.68), "Exp", lines: +2 -2 Slightly adjust last: return successful as some times the correct error is raised later. 2011-11-18 16:39 joerg Changed: man_macro.c (1.67), "Exp", lines: +3 -2 Convert an assert into an explicit check. man_unscope can be triggered on unknown macros. 2011-11-18 14:58 joerg Changed: mdoc_validate.c (1.178), "Exp", lines: +5 -1 Bail out explicitly on invalid .Rs content like: .Rs plain text .Re This avoids a crash on invalid. 2011-11-18 07:02 kristaps Changed: apropos.1 (1.4), "Exp", lines: +96 -52 apropos.c (1.14), "Exp", lines: +14 -38 apropos_db.c (1.5), "Exp", lines: +339 -95 apropos_db.h (1.5), "Exp", lines: +6 -17 Evaluation with logical subexpressions. This allows support for arbitrary, nested logical subexpressions with AND (-a) and OR (-o) support. 2011-11-17 17:41 schwarze Changed: TODO (1.125), "Exp", lines: +4 -1 using undefined macros or strings should define them to be empty 2011-11-17 14:57 kristaps Changed: mandocdb.h (1.2), "Exp", lines: +5 -1 Guard mandocdb.h inclusion. 2011-11-16 22:39 joerg Changed: man.c (1.114), "Exp", lines: +8 -3 Correctly handle constructs like .TP 8 .SH foo 2011-11-14 15:10 schwarze Changed: mandoc_char.7 (1.50), "Exp", lines: +176 -41 Add lots of information about special characters that's actually needed in practice, and discourage using fancy characters in manuals. Text about "Dashes and Hyphens" by jmc@. Feedback and ok jmc@, grudgingly ok kristaps@. 2011-11-14 10:07 kristaps Changed: apropos.c (1.13), "Exp", lines: +29 -2 apropos_db.c (1.4), "Exp", lines: +8 -8 apropos_db.h (1.4), "Exp", lines: +2 -2 Have exprcomp() accept a string instead of an array-pointer. Also, collapse the arguments in apropos(1) into a single string passed to exprcomp(). Ok schwarze@. 2011-11-13 15:33 schwarze Changed: man_term.c (1.123), "Exp", lines: +17 -10 Make the man(7) page footer the same as in groff. 2011-11-13 14:50 schwarze Changed: mandoc.1 (1.99), "Exp", lines: +3 -3 typo: overful -> overfull; thanks to jmc@ 2011-11-13 13:15 schwarze Changed: man_term.c (1.122), "Exp", lines: +14 -13 mandoc.1 (1.98), "Exp", lines: +11 -2 mdoc_term.c (1.238), "Exp", lines: +9 -9 term.h (1.89), "Exp", lines: +2 -1 term_ascii.c (1.19), "Exp", lines: +8 -4 Make the default left text margin configurable from the command line, just like the default right margin already is. This may be useful for people with expensive screen real estate. Besides, it helps automated man(7) to mdoc(7) output comparisons to validate -Tman output. ok kristaps@ on an earlier version 2011-11-13 11:10 schwarze Changed: apropos.c (1.12), "Exp", lines: +4 -9 apropos_db.c (1.3), "Exp", lines: +52 -58 apropos_db.h (1.3), "Exp", lines: +2 -2 Rewrite the expression parser for a more concise syntax: apropos [search_type[,...]=]substring apropos search_type[,...][,i]~regex ... and expression evaluation must take the search type into account. This allows to: * drop the global -I option and * drop the enum match, just using a boolean int. "go ahead" kristaps@ 2011-11-13 10:49 schwarze Added: mandocdb.h (1.1) Changed: Makefile (1.378), "Exp", lines: +4 -3 apropos_db.c (1.2), "Exp", lines: +19 -17 apropos_db.h (1.2), "Exp", lines: +1 -15 cgi.c (1.4), "Exp", lines: +3 -2 mandocdb.c (1.8), "Exp", lines: +19 -36 Inventing new keywords for mostly the same thing when a well-established set of keywords already exists is a bad idea, so reuse the mdoc(7) macro names as apropos(1) search types. This is a gain in brevity as well. Some time ago, kristaps@ agreed in principle. The search type bit field constants are used by both mandocdb(8) and apropos(1) and should better stay in sync, so give them their own header file. 2011-11-13 10:12 schwarze Deleted: apropos.h (1.3) db.c (1.4) Added: apropos_db.c (1.1) apropos_db.h (1.1) Changed: Makefile (1.377), "Exp", lines: +6 -6 apropos.c (1.11), "Exp", lines: +2 -2 cgi.c (1.3), "Exp", lines: +2 -2 Less misleading file names; ok kristaps@. 2011-11-13 10:02 schwarze Changed: TODO (1.124), "Exp", lines: +4 -1 another detail to implement; long live the tricky exceptions! 2011-11-13 00:53 schwarze Changed: mandocdb.c (1.7), "Exp", lines: +5 -5 Fix two crashes that occur when walking very large (i.e. real-world) trees: 1) Avoid excessive, needless recursion, lest you overflow the stack; 2) Close all dir file descriptors, lest you run out of descriptors. ok kristaps@ 2011-11-09 23:31 kristaps Changed: db.c (1.3), "Exp", lines: +25 -12 Use proper infix expressions and provide a default. (Exact match.) 2011-11-09 22:05 kristaps Changed: apropos.c (1.10), "Exp", lines: +16 -57 apropos.h (1.2), "Exp", lines: +9 -6 cgi.c (1.2), "Exp", lines: +11 -3 db.c (1.2), "Exp", lines: +114 -22 Make apropos's lookup use a find(1)-like expression. I'll write more on this when it completes; this is to keep it in-tree. Right now this uses prefix notation. Ignore it. I'll make this into infix notation real soon. The goal of this (exprcomp and exprexec) is to have arbitrary logical expressions. 2011-11-09 10:53 kristaps Changed: apropos.1 (1.3), "Exp", lines: +21 -40 apropos.c (1.9), "Exp", lines: +6 -6 Change getopt() to be more like schwarze@'s suggestions. 2011-11-09 01:24 kristaps Added: apropos.h (1.1) cgi.c (1.1) db.c (1.1) Changed: Makefile (1.376), "Exp", lines: +29 -15 apropos.c (1.8), "Exp", lines: +25 -537 Split apropos.c into db.c and apropos.h with simpler code (re-written, but inspired by apropos.c and mandoc-tools' mandoc-cgi.c). This uses UTF-8 right now for its re-writing, but will soon accomodate for the regular suspects (this is a rather simple matter). I also introduce man.cgi (cgi.c), which is a standalone CGI that replaces mandoc-tools' mandoc.cgi. Right now it's just a framework. 2011-11-08 00:15 kristaps Changed: chars.c (1.52), "Exp", lines: +10 -7 mandoc.3 (1.16), "Exp", lines: +4 -4 mandoc.h (1.98), "Exp", lines: +3 -3 Const-ify some mchars arguments. I think these are non-const for historical dumbness on my part. 2011-11-07 01:24 schwarze Changed: TODO (1.123), "Exp", lines: +2 -6 libman.h (1.55), "Exp", lines: +2 -1 man.c (1.113), "Exp", lines: +29 -2 man_macro.c (1.66), "Exp", lines: +12 -12 man_validate.c (1.78), "Exp", lines: +11 -26 mandoc.h (1.97), "Exp", lines: +1 -2 read.c (1.26), "Exp", lines: +1 -2 When the HEAD scope of .TP is broken by another block macro, do not abort with a FATAL error, but report a report a WARNING, remove the broken .TP from the syntax tree, and prod on. Reported repeatedly by ports people, at least by brad@ and jeremy@. Also fixes rendition(4) in Xenocara. ok kristaps@ 2011-11-06 14:43 kristaps Changed: mandoc.c (1.61), "Exp", lines: +9 -2 roff.7 (1.34), "Exp", lines: +4 -2 Accomodate for \f(Cx formatting. Noted by Andreas Vogele, thanks! 2011-11-03 20:48 schwarze Changed: man_validate.c (1.77), "Exp", lines: +6 -4 When .TH sets no data, leave the date field in the page footer blank, do not use the current date. This removes a gratuitous output difference with respect to groff. ok kristaps@ 2011-11-03 20:36 schwarze Changed: mdoc_term.c (1.237), "Exp", lines: +6 -2 mdoc_html.c (1.182), "Exp", lines: +6 -2 Correct .Eo spacing: no space between the delimiters and the enclosed text. The mdoc_html.c part was added by kristaps; ok kristaps@. 2011-11-01 14:59 schwarze Changed: mdoc.7 (1.213), "Exp", lines: +16 -38 Clean up the description of .Dt: - Volume and arch are both optional and not alternatives. - Zap verbiage about what's obvious from the synopsis. - For fixed argument strings, use .Cm, not .Ar. Using lots of input from jmc@. Also, state that the list of valid architectures varies by OS. If a downstream distribution wants to provide a specific list, maintaining a local patch is the way to go. 2011-10-24 21:47 schwarze Changed: mdoc_man.c (1.9), "Exp", lines: +24 -24 Implement missing enclosures (Ao Do Qo Qq So Bro Brq) and enclosure-like in-line macros (Ad Cd Dv Er Ev Li Ms Tn). The .No macro works without explicit implementation. ok kristaps@ 2011-10-24 21:41 schwarze Changed: roff.c (1.172), "Exp", lines: +13 -9 Handle infinite recursion the same way as groff: When string expansion exceeds the recursion limit, drop the whole input line, instead of leaving just the string unexpanded. ok kristaps@ 2011-10-24 20:30 schwarze Changed: mandoc.c (1.60), "Exp", lines: +23 -7 Handle \N numbered character escapes the same way as groff: If \N is followed by a digit, ignore \N and the digit. If \N is followed by a non-digit, the next non-digit ends the character number; the two delimiters need not match. Kristaps calls that "gross, but not our fault". For now, i'm fixing \N only. Other escapes taking numeric arguments may or may not need similar handling, but \N is by far the most important for practical purposes. ok kristaps@ 2011-10-20 20:27 schwarze Changed: mdoc_man.c (1.8), "Exp", lines: +54 -19 Implement the missing text production macros (Bsx Bx Dx Fx Nx Ox Ux Bt Ud). Some macros work without explicit implementation (At Db Os St). ok kristaps@ 2011-10-18 13:25 kristaps Changed: mandoc.3 (1.15), "Exp", lines: +5 -5 Fix mandoc_escape() function argument names. From a fix by Abhinav Upadhyay, thanks! 2011-10-16 16:25 schwarze Changed: arch.in (1.11), "Exp", lines: +55 -1 lib.in (1.11), "Exp", lines: +2 -1 Sync to groff, and add tier I and II NetBSD architectures. ok kristaps@ 2011-10-16 12:20 schwarze Changed: man_validate.c (1.76), "Exp", lines: +6 -7 mdoc_html.c (1.181), "Exp", lines: +2 -2 mdoc_macro.c (1.112), "Exp", lines: +2 -5 mdoc_term.c (1.236), "Exp", lines: +3 -1 mdoc_validate.c (1.177), "Exp", lines: +5 -6 term_ps.c (1.54), "Exp", lines: +3 -4 Remove a bunch of useless assignments, and assert that print_bvspace cannot be called on NULL pointers. No change in behaviour, none of these were bugs, but the code becomes easier to understand. Based on a clang report posted by joerg@; ok kristaps@. 2011-10-09 22:10 schwarze Changed: man_html.c (1.83), "Exp", lines: +18 -36 mdoc_html.c (1.180), "Exp", lines: +18 -38 Always print <table> column widths in -T[x]html; if desired, they can be overridden in the CSS file. Suggested by kristaps@, and i always like to simplify code. 2011-10-09 21:37 schwarze Changed: mandoc.1 (1.97), "Exp", lines: +21 -8 A bit more precision and nicer wording in the descriptions of -Ofragment and -Tman; using input from jmc@ and kristaps@. 2011-10-09 10:46 kristaps Changed: apropos.c (1.7), "Exp", lines: +17 -15 Make apropos results-gathering able to error out and clean up before making the utility exit non-zero. 2011-10-09 10:37 kristaps Changed: apropos.c (1.6), "Exp", lines: +8 -26 Remove some unnecessary variables and note that mchars_alloc never returns NULL. 2011-10-09 10:35 kristaps Changed: apropos.c (1.5), "Exp", lines: +32 -6 Use a binary tree (for now, unbalanced) for deduping the records in the results array. This is much faster than the previous method, a linear search, at a small cost. Note that array offsets are used instead of storing the res pointer because we may realloc the results vector. 2011-10-09 08:56 kristaps Changed: mandocdb.8 (1.5), "Exp", lines: +4 -4 The documented flags in mandocdb (-u, -d) were switched. Fix this. 2011-10-08 15:42 tag VERSION_1_12_0 2011-10-08 15:42 kristaps Changed: read.c (1.25), "Exp", lines: +3 -2 Critical fix in the new -Tman lookaside buffer code. Gah.. 2011-10-08 13:01 kristaps Changed: index.sgml (1.147), "Exp", lines: +4 -16 Note volatility of apropos and cut out old news update. 2011-10-08 12:47 kristaps Changed: Makefile (1.375), "Exp", lines: +13 -4 mdoc_man.c (1.7), "Exp", lines: +5 -1 Tweak Makefile and add config.h to -Tman to allow cross-compiling on Windows (via MingW). 2011-10-08 12:24 kristaps Changed: apropos.1 (1.2), "Exp", lines: +4 -3 Use `Mt' instead of `Aq' for email address. 2011-10-08 12:21 kristaps Changed: Makefile (1.374), "Exp", lines: +2 -2 index.sgml (1.146), "Exp", lines: +5 -3 Get ready for version. I'm bumping the minor release to 1.12 because this involves both a major functionality addition (-Tman), a new utility (apropos), and both apropos and mandocdb being built by default. 2011-10-08 12:20 kristaps Changed: apropos.c (1.4), "Exp", lines: +2 -5 Use mandoc_realloc() in apropos, as we're linking to libmandoc.a. 2011-10-08 11:37 kristaps Changed: mdoc_man.c (1.6), "Exp", lines: +6 -3 Implement a basic -Tman `Rv', like `Ex'. 2011-10-08 09:58 kristaps Changed: mdoc_man.c (1.5), "Exp", lines: +176 -108 Tidy up -Tman output. This has NO functional change: (1) introduced a state struct instead of using global statics; (2) documented throughout the file; (3) fixed a situation of reaching past the end of our buffer for zero-length strings; (4) alpha-ordered the functions. (1) and (3) ok schwarze@. (2) and (4) are purely style and documentation. 2011-10-07 13:29 kristaps Changed: apropos.c (1.3), "Exp", lines: +8 -6 Lift hard-coded limit of results. 2011-10-07 13:22 kristaps Changed: apropos.c (1.2), "Exp", lines: +97 -117 Clean up file a bit: remove errx and err function pointers from the state struct (directly using fprintf and perror to do this); add some in-line documentation; remove state init and destroy directly to the main function. 2011-10-06 23:15 kristaps Changed: Makefile (1.373), "Exp", lines: +2 -2 index.sgml (1.145), "Exp", lines: +7 -6 Make apropos and mandocdb build by default. 2011-10-06 23:06 kristaps Changed: index.sgml (1.144), "Exp", lines: +28 -13 Add more version notes to www. 2011-10-06 23:05 kristaps Changed: mandoc.1 (1.96), "Exp", lines: +3 -3 Nix end-of-line whitespace. 2011-10-06 23:00 kristaps Added: apropos.1 (1.1) apropos.c (1.1) Changed: Makefile (1.372), "Exp", lines: +21 -1 Import apropos from mandoc-tools after inlining all source files (originally including extern.h, state.c, and sort.c). The apropos utility interfaces with the databases of mandocdb to provide semantic searching capabilities. It Works For Me, but will need lots of cleanup in the coming months. 2011-10-06 22:29 kristaps Changed: main.c (1.165), "Exp", lines: +8 -1 main.h (1.15), "Exp", lines: +2 -1 man.c (1.112), "Exp", lines: +9 -1 man.h (1.59), "Exp", lines: +2 -1 mandoc.1 (1.95), "Exp", lines: +26 -6 mandoc.3 (1.14), "Exp", lines: +28 -2 mandoc.h (1.96), "Exp", lines: +18 -17 mdoc_man.c (1.4), "Exp", lines: +9 -1 read.c (1.24), "Exp", lines: +50 -1 If -Tman is specified and input is -man, echo the preprocessed (`so' replaced by file) input. This replaces earlier behaviour of doing nothing, which I found unexpected (mandoc should always output). This requires a buffer in read.c that saves the input lines before being parsed, with a special hook if `so' is invoked. This buffer is just flushed to output if -mman is the input. While mucking around doing this, I also alpha-ordered the mandoc.h functions. Ok schwarze@, with no screaming when the polished patch was published. 2011-10-05 21:43 kristaps Changed: index.sgml (1.143), "Exp", lines: +5 -4 Add -Ofragment mode to release notes. 2011-10-05 21:35 kristaps Changed: example.style.css (1.47), "Exp", lines: +5 -3 html.c (1.150), "Exp", lines: +7 -3 html.h (1.47), "Exp", lines: +6 -4 man_html.c (1.82), "Exp", lines: +17 -18 mandoc.1 (1.94), "Exp", lines: +8 -2 mdoc_html.c (1.179), "Exp", lines: +17 -16 Add the -Ofragment option to -T[]x]html. This accomodates for embedding manual output in existing HTML or XHTML documents, e.g., when invoking mandoc from an SSI or CGI. 2011-10-02 18:37 kristaps Changed: index.sgml (1.142), "Exp", lines: +18 -12 Break schwarze@'s release notes into sections. Ok schwarze@. 2011-10-02 10:02 kristaps Changed: chars.in (1.42), "Exp", lines: +7 -7 Make -T[x]html suppress output with \& (and similar zwsp points). This fixes lynx's rendering of manuals with the \&, which were rendering as ​ in the text. Reported by Paul de Weerd, thanks! 2011-09-30 00:13 schwarze Changed: mdoc.c (1.196), "Exp", lines: +2 -1 mdoc_man.c (1.3), "Exp", lines: +134 -41 implement .Ap .Bd .Bo .Bq .D1 .Ic .Lp .Oo .Pf .Po .Ss .Sx .Sy .br .sp implement .Bl -bullet add more information to the .TH line escape dots at the beginnings of lines add trailing newline character at the end of the file do not misinterpret the ROOT block as .Ap 2011-09-27 22:59 schwarze Changed: index.sgml (1.141), "Exp", lines: +16 -1 list the work done during s2k11 2011-09-27 21:49 schwarze Changed: mdoc.7 (1.212), "Exp", lines: +3 -3 even though .Bl is not callable, groff complains when it appears unescaped on a macro line, so lets just escape it; noticed by jmc@ 2011-09-26 23:07 schwarze Changed: man.7 (1.111), "Exp", lines: +179 -398 mdoc.7 (1.211), "Exp", lines: +762 -962 roff.7 (1.33), "Exp", lines: +293 -29 Reorganize part of the content: 1) Move the LANGUAGE SYNTAX from mdoc(7) and man(7) to roff(7), it's common to both and it's actually roff syntax. 2) Move the MACRO SYNTAX down to the bottom, such that the less technical parts MANUAL STRUCTURE and MACRO OVERVIEW get to the top. Getting everything to again fit together after the reshuffling required various adjustments; also adjust and improve the DESCRIPTIONS while there. feedback and "go ahead" jmc@ kristaps@ 2011-09-26 20:47 schwarze Changed: mandoc.1 (1.93), "Exp", lines: +35 -35 restore alphabetical order for the -Toutput list, and use a width specifier that makes it look nicer; from jmc@, ok kristaps@ 2011-09-25 18:37 schwarze Changed: eqn.7 (1.28), "Exp", lines: +6 -5 typos found by jmc@ 2011-09-21 09:57 schwarze Changed: man_term.c (1.121), "Exp", lines: +3 -5 term.c (1.201), "Exp", lines: +4 -6 As noticed by kristaps@, when breaking an overflowing line, forget about pending whitespace (vbl), or the next line would be misaligned and potentially too long; but i'm fixing this in a simpler way than he proposed. Also remove the kludges in .HP that compensated for this bug. 2011-09-20 23:36 schwarze Changed: lib.in (1.10), "Exp", lines: +3 -2 sync to groff: support .Lb -libdwarf, update .Lb -libelf after Werner Lemberg committed a patch by Joseph Koshy 2011-09-20 23:05 schwarze Changed: out.c (1.43), "Exp", lines: +11 -42 tbl_term.c (1.21), "Exp", lines: +101 -96 Major rewrite of the horizontal spacing of tables to work both with and without frames and rulers. ok kristaps@ 2011-09-20 22:46 schwarze Changed: man.7 (1.110), "Exp", lines: +41 -2 add a MACRO OVERVIEW section, similar to the one in mdoc(7); writing this for man(7), too, was suggested by kristaps@ 2011-09-20 14:20 schwarze Changed: TODO (1.122), "Exp", lines: +5 -1 man_term.c (1.120), "Exp", lines: +2 -2 Using user-defined macros, surprisingly, it is possible to have *next*-line head arguments on the *same* input line. So .TP must not assume that a head argument with a matching input line number is a same-line argument (and access a NULL pointer). Bug found and fix tested by kristaps@ with groff_hdtbl(7). 2011-09-20 13:47 schwarze Changed: mdoc_man.c (1.2), "Exp", lines: +3 -3 do not assign pointers to literal strings to variables that might be changed; from kristaps@ 2011-09-20 13:13 schwarze Changed: man_term.c (1.119), "Exp", lines: +3 -2 When advancing the left margin, .RS also needs to reset the right margin to the default and check that the left does not outgrow the right one. Otherwise, the (rmargin >= offset) assertion fails in term_flushln(). Bug found and fix tested by kristaps@ with NetBSD slapo-retcode(5). 2011-09-20 09:02 schwarze Changed: man_term.c (1.118), "Exp", lines: +5 -5 mdoc_term.c (1.235), "Exp", lines: +23 -16 Sync print_mdoc_head to print_man_head; this was forgotten after man_term.c rev. 1.25 on March 2, 2010. The benefit is a sane page header line when .Dt is very long. Reminded by Thomas Klausner <wiz at NetBSD>, thanks. 2011-09-19 22:36 schwarze Changed: man_term.c (1.117), "Exp", lines: +23 -13 mdoc_term.c (1.234), "Exp", lines: +9 -24 term.c (1.200), "Exp", lines: +25 -34 term.h (1.88), "Exp", lines: +1 -2 Remove the terminal frontend flag TERMP_NOLPAD. In columnated contexts (.Bl -column, .Bl -tag, .IP, .TP, .HP etc.), do not pad after writing a column. Instead, always pad before writing content. In itself, this change avoids: - writing trailing whitespace in some situations - with .fi/.nf in .HP, breaking lines that were already padded It allows several bugfixes included in this patch: - Do not count backspace as a character with positive width. - Set up proper indentation when encountering .fi/.nf in .HP. - Adjust the .HP indentation width to what groff does. - Never unlimit the right margin unless in the final column. ok kristaps@ 2011-09-19 08:34 schwarze Changed: roff.c (1.171), "Exp", lines: +3 -10 Breaking the line at a hyphen is only allowed if the hyphen is both preceded and followed by an alphabetic character. ok kristaps@ 2011-09-18 23:51 schwarze Changed: roff.c (1.170), "Exp", lines: +14 -3 Fix another regression introduced in 1.11.7: If a string is defined in terms of itself, the REPARSE_LIMIT in read.c used to break the cycle. This no longer works since all the work is now done in the function roff_res(), looping indefinitely. Make this loop finite by arbitrarily limiting the number of times one string may be expanded; when that limit is reached, leave the remaining string references unexpanded. This changes behaviour compared to 1.11.5, where the whole line would have been dropped. The new behaviour is better because it loses less information. We don't want to imitate groff-1.20.1 behaviour anyway because groff aborts parsing of the whole file. ok kristaps@ 2011-09-18 21:18 schwarze Changed: term.c (1.199), "Exp", lines: +5 -2 fix a regression introduced in 1.11.7: even a breakable hyphen may be bold or underlined ok kristaps@ 2011-09-18 21:08 schwarze Changed: man_term.c (1.116), "Exp", lines: +29 -35 Support nesting of indented blocks. This patch was originally written in July 2011 by kristaps@, i promptly committed it to OpenBSD, and then it was forgotten. Now i rediscovered it when merging 1.11.7 to OpenBSD. ok kristaps@ (on his own patch :) 2011-09-18 16:43 schwarze Changed: TODO (1.121), "Exp", lines: +6 -1 two issues were reported again 2011-09-18 14:14 schwarze Changed: chars.c (1.51), "Exp", lines: +2 -2 chars.in (1.41), "Exp", lines: +2 -2 html.h (1.46), "Exp", lines: +2 -2 libman.h (1.54), "Exp", lines: +2 -2 libmdoc.h (1.77), "Exp", lines: +2 -2 main.h (1.14), "Exp", lines: +2 -2 man_macro.c (1.65), "Exp", lines: +2 -2 mandoc.1 (1.92), "Exp", lines: +3 -3 mandoc.c (1.59), "Exp", lines: +2 -2 mdoc_argv.c (1.81), "Exp", lines: +2 -2 mdoc_macro.c (1.111), "Exp", lines: +2 -2 roff.c (1.169), "Exp", lines: +2 -2 tbl_html.c (1.9), "Exp", lines: +2 -2 tbl_layout.c (1.22), "Exp", lines: +2 -2 tbl_opts.c (1.12), "Exp", lines: +2 -2 term.c (1.198), "Exp", lines: +2 -2 term.h (1.87), "Exp", lines: +2 -2 term_ascii.c (1.18), "Exp", lines: +2 -2 term_ps.c (1.53), "Exp", lines: +2 -2 tree.c (1.47), "Exp", lines: +2 -2 forgotten Copyright bumps; no code change found while syncing to OpenBSD 2011-09-18 07:57 schwarze Changed: mdoc.7 (1.210), "Exp", lines: +126 -2 Add a MACRO OVERVIEW, listing all macros ordered by purpose, each with a one-line discription. Use this when wondering which macro fits best for your particular use case, and whether there are alternatives. feedback ond ok jmc@, ok kristaps@ 2011-09-17 15:00 schwarze Added: mdoc_man.c (1.1) Changed: Makefile (1.371), "Exp", lines: +6 -0 main.c (1.164), "Exp", lines: +7 -1 main.h (1.13), "Exp", lines: +3 -1 mandoc.1 (1.91), "Exp", lines: +18 -2 Initial, incomplete support for -Tman to convert mdoc(7) documents to the man(7) language. This is work in progress and will be developed in tree. It does already handle the cat(1) manual, but will hardly handle all your fancy manuals yet. go ahead kristaps@ jmc@ millert@ deraadt@ 2011-09-17 13:54 schwarze Changed: mandocdb.c (1.6), "Exp", lines: +2 -2 fix an obvious typo: sz was used uninitialized found while merging to OpenBSD 2011-09-16 20:44 schwarze Changed: mdoc.7 (1.209), "Exp", lines: +4 -2 st.in (1.17), "Exp", lines: +2 -1 support ".St -iso8601"; committing on behalf of jmc@ 2011-09-06 17:56 kristaps Changed: man.7 (1.109), "Exp", lines: +9 -1 It's unknown whether `SH' and `SS' closing out `nf' literalism is portable, so document it in COMPATIBILITY. 2011-09-06 17:53 kristaps Changed: man_validate.c (1.75), "Exp", lines: +17 -2 Revert removal of tab warning, suggested by schwarze@. 2011-09-04 09:58 kristaps Changed: man_validate.c (1.74), "Exp", lines: +3 -18 Remove check for tab. man(7) says tab is Ok. 2011-09-04 09:49 kristaps Changed: man_validate.c (1.73), "Exp", lines: +20 -10 Teach -man that a literal context should be closed by SS/SH in the backend (the front-end already accomodated for this). Found indirectly from a question by Brad Smith. 2011-09-03 00:29 kristaps Changed: tbl.7 (1.16), "Exp", lines: +14 -5 tbl_layout.c (1.21), "Exp", lines: +11 -1 Fix handling of font modifiers in tables. Noted by Brad Smith. 2011-09-02 19:40 tag VERSION_1_11_7 2011-09-02 19:40 kristaps Changed: mdoc_validate.c (1.176), "Exp", lines: +2 -2 Make -man check for tabs correctly print the column. 2011-09-02 19:37 kristaps Changed: eqn.7 (1.27), "Exp", lines: +3 -3 mdoc.7 (1.208), "Exp", lines: +4 -4 roff.7 (1.32), "Exp", lines: +5 -5 tbl.7 (1.15), "Exp", lines: +3 -3 Fix typos and spelling errors found by demandoc -w | spell -b. 2011-09-02 14:00 kristaps Changed: index.sgml (1.140), "Exp", lines: +4 -4 Fix hypermail link. 2011-09-02 13:04 kristaps Changed: Makefile (1.370), "Exp", lines: +2 -2 demandoc.1 (1.5), "Exp", lines: +2 -2 index.sgml (1.139), "Exp", lines: +6 -6 Adding version notes. 2011-09-01 22:25 kristaps Changed: demandoc.1 (1.4), "Exp", lines: +13 -3 demandoc.c (1.6), "Exp", lines: +16 -4 Finishing touches on demandoc. It now backs over ending punctuation as well as leading punctuation. Again, this isn't the same as deroff (which uses, I think, some punctuation as delimiters), but it's easier to explain and simpler to audit. 2011-09-01 22:09 kristaps Changed: demandoc.1 (1.3), "Exp", lines: +7 -5 demandoc.c (1.5), "Exp", lines: +57 -2 Make `-w' mode work much better. This is INCREDIBLY poorly specified in any other deroff manual, and as I don't think anybody actually uses deroff, I don't feel compelled to research its behaviour too much and can just do what's logical. 2011-09-01 20:55 kristaps Changed: demandoc.1 (1.2), "Exp", lines: +31 -4 demandoc.c (1.4), "Exp", lines: +40 -30 Have demandoc throw away deroff's flags. 2011-09-01 10:49 kristaps Changed: demandoc.c (1.3), "Exp", lines: +3 -4 Lint checks over demandoc. 2011-09-01 10:47 kristaps Changed: demandoc.c (1.2), "Exp", lines: +2 -1 Allow compilation on OpenBSD. 2011-09-01 10:46 kristaps Added: demandoc.1 (1.1) demandoc.c (1.1) Changed: Makefile (1.369), "Exp", lines: +25 -5 index.sgml (1.138), "Exp", lines: +27 -18 Add demandoc utility, a replacement for deroff. 2011-08-30 13:14 kristaps Changed: man.7 (1.108), "Exp", lines: +4 -4 mandoc_char.7 (1.49), "Exp", lines: +20 -20 mdoc.7 (1.207), "Exp", lines: +4 -4 Order -column lists to have the arguments follow `-column'. From a patch by Jason McIntyre. 2011-08-30 12:16 kristaps Changed: man.7 (1.107), "Exp", lines: +4 -6 mandoc_char.7 (1.48), "Exp", lines: +3 -4 mdoc.7 (1.206), "Exp", lines: +7 -13 Remove unnecessary `Pp'/`-compat' combination for column lists. Directly from a patch by Jason McIntyre. 2011-08-26 09:03 kristaps Changed: example.style.css (1.46), "Exp", lines: +2 -2 mdoc_html.c (1.178), "Exp", lines: +6 -2 style.css (1.25), "Exp", lines: +2 -2 Make sure that `Ql' literalises its arguments in -T[x]html. Found when doing manpages.bsd.lv stuff. 2011-08-19 13:59 kristaps Changed: mdoc_validate.c (1.175), "Exp", lines: +3 -3 Avoid incorrect casting by using an implicit cast. Reported by Thomas Klausner. 2011-08-19 13:07 kristaps Changed: man.7 (1.106), "Exp", lines: +77 -61 mdoc.7 (1.205), "Exp", lines: +3 -3 Bring man.7's LANGUAGE SYNTAX in line with mdoc.7. While here, change out the \*q escapes. Also fix some spelling typos in both manuals. 2011-08-19 12:55 kristaps Changed: mdoc.7 (1.204), "Exp", lines: +21 -15 Make LANGUAGE SYNTAX examples a bit more explanatory. 2011-08-19 10:19 kristaps Changed: mdoc.7 (1.203), "Exp", lines: +67 -74 First, use \(dq instead of \*q for double-quote. Second, use `Li' to note literal text in "Examples:" parts. Finally, move parts of Quotation related to keeping whitespace into Whitespace and clean up the text to be a bit clearer. Examples can be added back in at will, but now it follows the general layout of explanation followed by examples. 2011-08-18 09:16 kristaps Changed: example.style.css (1.45), "Exp", lines: +2 -2 man_html.c (1.81), "Exp", lines: +1 -2 mdoc_html.c (1.177), "Exp", lines: +3 -6 style.css (1.24), "Exp", lines: +2 -2 Align `-offset indent' and `D1' by forcing BLOCKQUOTE to have a 5ex margin. This is dubious: the HTML4 spec specifically says that BLOCKQUOTE shouldn't be abused for indentation, which is exactly what we do. However, `D1' needs indentation and it's the only way to force text browsers to do so. Alternatives? Also remove the unused HALFINDENT defines while here. 2011-08-18 09:02 kristaps Changed: index.css (1.11), "Exp", lines: +7 -2 index.sgml (1.137), "Exp", lines: +7 -7 Slightly tweak www section/subsections. 2011-08-18 09:02 kristaps Changed: example.style.css (1.44), "Exp", lines: +2 -2 mdoc_html.c (1.176), "Exp", lines: +2 -2 style.css (1.23), "Exp", lines: +3 -3 Have `Li' be correctly monospaced in -T[x]html. Also make sure that `Li' prints as a CODE tag and the style-sheet has the `lit' class apply to multiple tag types. 2011-08-18 08:58 kristaps Changed: eqn.7 (1.26), "Exp", lines: +3 -2 man.7 (1.105), "Exp", lines: +3 -2 mandoc.1 (1.90), "Exp", lines: +4 -3 mandoc.3 (1.13), "Exp", lines: +4 -3 mandoc_char.7 (1.47), "Exp", lines: +4 -3 mandocdb.8 (1.4), "Exp", lines: +3 -2 mdoc.7 (1.202), "Exp", lines: +3 -2 preconv.1 (1.5), "Exp", lines: +3 -2 roff.7 (1.31), "Exp", lines: +7 -5 tbl.7 (1.14), "Exp", lines: +5 -4 Replace the old `An'/`Aq' AUTHORS note with `An'/`Mt'. 2011-08-17 22:20 kristaps Changed: man.7 (1.104), "Exp", lines: +10 -2 mdoc.7 (1.201), "Exp", lines: +12 -4 Add example of comments in man.7 and mdoc.7. 2011-08-17 22:16 kristaps Changed: man.7 (1.103), "Exp", lines: +121 -49 Sync man.7's LANGUAGE SYNTAX (was INPUT ENCODING) with mdoc.7. While here, fix the scaling widths example that incorrectly used `br' (it now correctly uses `sp'). 2011-08-17 20:34 kristaps Changed: mdoc.7 (1.200), "Exp", lines: +92 -60 Clean up and normalise the LANGUAGE SYNTAX section in mdoc.7: - make examples trail each section - make explanations more concise - remove references to troff ok Jason McIntyre. 2011-08-17 19:35 kristaps Changed: index.sgml (1.136), "Exp", lines: +29 -93 Toyed with www site a bit. For the next release. 2011-08-16 23:44 tag VERSION_1_11_6 2011-08-16 23:44 schwarze Changed: mdoc.7 (1.199), "Exp", lines: +7 -7 Replace the .Fl examples by others exhibiting the same features, but avoiding use of .Nm, because letting .Nm call other macros is unusual style, and we don't want unusual style in examples. Issue brought up by kristaps@. 2011-08-16 23:37 schwarze Changed: mdoc.7 (1.198), "Exp", lines: +167 -53 More information about lots of macros, many new examples, and various fixes. ok kristaps@ 2011-08-16 22:21 kristaps Changed: Makefile (1.368), "Exp", lines: +16 -6 index.sgml (1.135), "Exp", lines: +61 -54 Added generation of Universal binary. Fixed up index.sgml to be shorter and more expressive. 2011-08-16 12:31 kristaps Changed: Makefile (1.367), "Exp", lines: +2 -2 Version: 1.11.6. 2011-08-16 12:30 kristaps Changed: roff.c (1.168), "Exp", lines: +1 -8 Lint check. 2011-08-16 12:23 kristaps Changed: mdoc_validate.c (1.174), "Exp", lines: +3 -3 term_ps.c (1.52), "Exp", lines: +6 -5 Fixed mingw compatibility where the "z" printf() modifier isn't recognised. It's easier to make these u_int than to jump through hoops for a special formatter. 2011-08-16 12:15 kristaps Changed: Makefile (1.366), "Exp", lines: +13 -2 Updating mingw32 install hooks for new mingw version. 2011-08-16 12:13 kristaps Changed: Makefile (1.365), "Exp", lines: +2 -0 index.sgml (1.134), "Exp", lines: +22 -40 Initial version bits in place. Also added forgotten tests to installed files. 2011-08-10 14:07 kristaps Changed: mdoc.7 (1.197), "Exp", lines: +13 -7 mdoc_html.c (1.175), "Exp", lines: +22 -12 mdoc_macro.c (1.110), "Exp", lines: +3 -3 mdoc_validate.c (1.173), "Exp", lines: +42 -35 Allow `Sx' and `Ss' to have child nodes. Fixes manuals in NetBSD. Originally pointed out by joerg@ then again by Thomas Klausner by way of Nicolas Joy. Note: don't use these constructions as you can't link to the sections with `Sx'. 2011-08-03 21:25 schwarze Changed: mdoc.7 (1.196), "Exp", lines: +65 -28 Add small chunks of new text and better examples written from scratch, filling gaps found by checking the MANUAL DOMAIN chapter in mdoc.samples(7). While here, fix lots of minor issues. feedback and ok jmc@ 2011-08-02 01:07 schwarze Changed: mdoc.7 (1.195), "Exp", lines: +92 -46 The term "reserved terms" is too broad, so narrow it down to "delimiters", and explain which special handling they get as macro arguments. Move the text to a better place and remove a few lies. Postpone figuring out the lists of macros causing that special handling, it would cost too much time right now. feedback and ok jmc@ This also brings the file back in sync with OpenBSD. 2011-08-01 07:45 schwarze Changed: mdoc.7 (1.194), "Exp", lines: +39 -5 Add some new text written from scratch after checking whether anything explained in mdoc.samples(7) is missing from mdoc(7): * Discourage trailing whitespace. * Move all information about quoted arguments to the relevant subsection, shortening it a bit, and adding an example. * Mention that blanks can be quoted with a backslash. * A better .Nd line in the template (verbatim from mdoc.samples(7)). * Explain how to escape callable macro names, and provide examples. ok jmc@ 2011-07-31 17:42 schwarze Changed: mdoc.7 (1.193), "Exp", lines: +9 -9 trivial fixes found while merging to OpenBSD: * ellipsis is an argument to .Ar, not part of the preceding argument * libz, libpam, on, off are not placeholders for arguments * .Rv is not only relevant for system calls, see atexit(3), sem_init(3) 2011-07-31 17:30 schwarze Changed: att.in (1.8), "Exp", lines: +2 -1 mdoc.7 (1.192), "Exp", lines: +5 -2 System III is relevant for string(3) HISTORY. 2011-07-31 11:36 schwarze Changed: predefs.in (1.3), "Exp", lines: +4 -4 Make sure that in -Tascii mode, predefined strings render the same way as in groff. With this fix, \*(If, \*(Pi and \*(Tm change in other output modes, but -Tascii is what matters. Found when merging 1.11.3 to OpenBSD; ok kristaps@. 2011-07-31 11:24 schwarze Changed: chars.c (1.50), "Exp", lines: +5 -3 Regression fixes after merging 1.11.3 to OpenBSD (rev. 1.20): * Do not pass integers outside the ASCII range to isprint(). * Make sure escaped characters are really printed verbatim when the escape sequence has no special meaning. ok kristaps@ 2011-07-29 10:16 kristaps Changed: roff.c (1.167), "Exp", lines: +72 -43 Use a character-table for quick per-character substitution in `tr'. As suggested by joerg@. 2011-07-29 09:19 kristaps Changed: roff.c (1.166), "Exp", lines: +51 -44 Renamed roffstr as roffkv (key-value) and split out char/size_t into roffstr. 2011-07-28 14:53 kristaps Changed: roff.c (1.165), "Exp", lines: +3 -2 Fix border condition in `tr' grokking arguments. 2011-07-28 14:37 kristaps Changed: TODO (1.120), "Exp", lines: +1 -3 Remove TODO entry about `tr'. 2011-07-28 14:17 kristaps Changed: libmandoc.h (1.28), "Exp", lines: +2 -1 man.c (1.111), "Exp", lines: +2 -2 mdoc.c (1.195), "Exp", lines: +2 -2 roff.7 (1.30), "Exp", lines: +17 -6 roff.c (1.164), "Exp", lines: +177 -22 An implementation of `tr'. This routes allocations of TEXT nodes through libroff, which does the appropriate translations of `tr'. This is SLOW: it uses the backend of `ds' and `de', which is a simple linear list. However, unlike `ds' and `de', it iterates over EACH CHARACTER of the entire file looking for replacements. 2011-07-27 20:55 kristaps Changed: roff.c (1.163), "Exp", lines: +4 -4 Correctly set valsz this time. 2011-07-27 17:25 kristaps Changed: roff.c (1.162), "Exp", lines: +10 -3 Have roffstr keep track of string lengths. 2011-07-27 14:58 kristaps Changed: roff.c (1.161), "Exp", lines: +2 -2 Fix a memory-offset bug that was hell tracking down. 2011-07-27 14:23 kristaps Changed: roff.c (1.160), "Exp", lines: +19 -19 Rename some terms (incremental part of a larger set of check-ins). 2011-07-27 14:19 kristaps Changed: roff.c (1.159), "Exp", lines: +6 -4 Fix hyphen-replacement loop. 2011-07-27 13:47 kristaps Changed: roff.c (1.158), "Exp", lines: +4 -2 Critical fix to avoid looping forever. 2011-07-27 13:42 kristaps Changed: roff.c (1.157), "Exp", lines: +6 -5 Clean up roff_getstrn() function. 2011-07-27 12:43 kristaps Changed: man.c (1.110), "Exp", lines: +2 -9 mdoc.c (1.194), "Exp", lines: +2 -9 Simply word allocation in libmdoc and libman. 2011-07-27 12:41 kristaps Changed: libmandoc.h (1.27), "Exp", lines: +3 -1 mdoc.c (1.193), "Exp", lines: +6 -2 roff.c (1.156), "Exp", lines: +7 -3 Disable in-line eqn processing for a bit. 2011-07-27 07:32 kristaps Changed: libmandoc.h (1.26), "Exp", lines: +1 -2 mandoc.c (1.58), "Exp", lines: +1 -39 roff.c (1.155), "Exp", lines: +32 -21 Move mandoc_hyph() into roff_parsetext() as a single conditional. While here, do some function renames for clarity and make all function prototypes be in one place. 2011-07-27 07:09 kristaps Changed: mdoc.c (1.192), "Exp", lines: +1 -6 roff.c (1.154), "Exp", lines: +47 -16 First, roff_res() has no need to invoke ROFF_RERUN: since it's executed before any other roff processing occurs, it's Ok to just let it do its thing and pass through. Also, make sure this function is ALWAYS called, not just when first_string is defined. Second, add a new function, roff_parsetext(), that post-processes non-macro lines. This, for the time being, amounts to detecting soft hyphens. This fixes a long-standing bug in that -man now has proper hyphen breaking! 2011-07-27 07:06 kristaps Changed: mandoc.c (1.57), "Exp", lines: +21 -10 Update mandoc_hyph() to the extent that numbers on either side of the hyphen make for a non-breakable hyphen. Found by random testing. 2011-07-26 14:24 kristaps Changed: roff.c (1.153), "Exp", lines: +17 -11 Use correct column of warning messages and make sure this function is run even when `first_string' isn't defined. 2011-07-26 14:09 kristaps Changed: man_validate.c (1.72), "Exp", lines: +8 -38 mdoc_validate.c (1.172), "Exp", lines: +6 -32 roff.c (1.152), "Exp", lines: +14 -2 Move checking of escapes into roff.c, where we're already stepping through looking for user-defined escapes. This clears up a nice bit of validation code. 2011-07-25 15:37 kristaps Changed: Makefile (1.364), "Exp", lines: +5 -0 eqn.c (1.38), "Exp", lines: +8 -5 libmandoc.h (1.25), "Exp", lines: +5 -1 libroff.h (1.27), "Exp", lines: +3 -3 mdoc.c (1.191), "Exp", lines: +54 -2 roff.c (1.151), "Exp", lines: +38 -13 tbl.c (1.26), "Exp", lines: +6 -2 Implement the first steps of equation parsing from within libmdoc. This consists of a shim around the text parser that calls out to libroff if equation components exist on the line. Right now this will do nothing, as the equation delimiter always returns nil. 2011-07-24 19:08 tag VERSION_1_11_5 2011-07-24 19:08 kristaps Changed: index.sgml (1.133), "Exp", lines: +2 -2 Slip in a typo. 2011-07-24 19:03 kristaps Changed: Makefile (1.363), "Exp", lines: +3 -2 index.sgml (1.132), "Exp", lines: +30 -9 We're officially no longer UNIX-specific; make this clear. 2011-07-24 18:15 kristaps Deleted: compat.c (1.6) Added: compat_getsubopt.c (1.1) compat_strlcat.c (1.1) compat_strlcpy.c (1.1) test-getsubopt.c (1.1) test-strptime.c (1.1) Changed: Makefile (1.362), "Exp", lines: +38 -10 config.h.post (1.2), "Exp", lines: +4 -0 man_hash.c (1.25), "Exp", lines: +6 -6 man_validate.c (1.71), "Exp", lines: +3 -2 mandoc.c (1.56), "Exp", lines: +9 -6 mdoc_hash.c (1.18), "Exp", lines: +8 -8 mdoc_validate.c (1.171), "Exp", lines: +2 -2 out.c (1.42), "Exp", lines: +2 -2 preconv.c (1.5), "Exp", lines: +8 -2 Scary-looking but otherwise harmless changes allow me to build for Windows. That is to say, with mingw32. This amounts to the following: (1) break compat.c into compat_strlcpy.c and compat_strlcat.c (2) add compat_getsubopt.c (from OpenBSD) and test-getsubopt.c (3) add test-strptime.c for HAVE_STRPTIME (4) add ifdef bits here and there, where necessary (5) remove some harmless unportable stuff (u_char, localtime_r) I've added the appropriate mdocml.zip target to the Makefile, too. 2011-07-24 10:09 kristaps Changed: Makefile (1.361), "Exp", lines: +2 -2 eqn_html.c (1.2), "Exp", lines: +22 -30 eqn_term.c (1.4), "Exp", lines: +25 -31 index.sgml (1.131), "Exp", lines: +3 -3 Tuned the initial eqn output, making it completely simple. This completes a full initial eqn system, so I'm tagging a release on it. 2011-07-23 22:57 kristaps Added: eqn_html.c (1.1) Changed: Makefile (1.360), "Exp", lines: +5 -2 eqn_term.c (1.3), "Exp", lines: +5 -5 html.h (1.45), "Exp", lines: +2 -1 man_html.c (1.80), "Exp", lines: +2 -5 mdoc_html.c (1.174), "Exp", lines: +2 -5 Flip on equation printing for -T[x]html. 2011-07-23 19:04 kristaps Changed: eqn.7 (1.25), "Exp", lines: +4 -1 Clarify what eqn actually is. 2011-07-23 18:44 kristaps Changed: eqn.7 (1.24), "Exp", lines: +5 -3 eqn.c (1.37), "Exp", lines: +3 -1 mandoc.h (1.95), "Exp", lines: +3 -1 Note GNU extensions in eqn.7. Also add `col' and `pile', which are mentioned briefly in the eqn User's Manual, but otherwise are unspecified. 2011-07-23 18:41 kristaps Changed: eqn.7 (1.23), "Exp", lines: +14 -3 eqn.c (1.36), "Exp", lines: +55 -24 index.sgml (1.130), "Exp", lines: +6 -4 libroff.h (1.26), "Exp", lines: +2 -2 mandoc.h (1.94), "Exp", lines: +2 -2 read.c (1.23), "Exp", lines: +1 -2 roff.c (1.150), "Exp", lines: +2 -2 Add support for tdefine and ndefine. Consolidate some error messages. Add somem more version notes (getting there). Have the equation nanme be captured. 2011-07-23 13:31 kristaps Changed: eqn.c (1.35), "Exp", lines: +8 -2 Raise a warning when text follows the `EN'. 2011-07-23 12:10 kristaps Changed: eqn.7 (1.22), "Exp", lines: +2 -2 eqn.c (1.34), "Exp", lines: +2 -1 mandoc.h (1.93), "Exp", lines: +2 -1 Add `fat' font. This pretty much brings us in line with the second edition of eqn. 2011-07-23 12:08 kristaps Changed: eqn.7 (1.21), "Exp", lines: +17 -1 eqn.c (1.33), "Exp", lines: +30 -4 Ignore `back', `fwd', `up', `down', `mark', and `lineup'. 2011-07-23 12:01 kristaps Changed: eqn.7 (1.20), "Exp", lines: +5 -3 eqn.c (1.32), "Exp", lines: +57 -2 eqn_term.c (1.2), "Exp", lines: +1 -7 mandoc.h (1.92), "Exp", lines: +6 -3 tree.c (1.46), "Exp", lines: +18 -23 Add matrix support. Also remove "above" notion, as all elements in a list are delimited by their "aboveness" and it's superfluous. 2011-07-23 09:47 kristaps Changed: eqn.7 (1.19), "Exp", lines: +28 -24 eqn.c (1.31), "Exp", lines: +3 -2 index.sgml (1.129), "Exp", lines: +9 -1 The circumflex is also a special space character. Note this and clean up some documentation in eqn.7. Also add some version notes, although I'm not ready for a release yet. 2011-07-22 14:59 kristaps Changed: eqn.7 (1.18), "Exp", lines: +11 -3 eqn.c (1.30), "Exp", lines: +17 -2 Check for and throw away `gfont' eqn macros. 2011-07-22 14:55 kristaps Changed: eqn.7 (1.17), "Exp", lines: +11 -1 eqn.c (1.29), "Exp", lines: +32 -12 libroff.h (1.25), "Exp", lines: +2 -1 mandoc.h (1.91), "Exp", lines: +1 -2 read.c (1.22), "Exp", lines: +1 -2 Add support for `gsize' eqn token (introduced in second-edition troff). 2011-07-22 14:26 kristaps Changed: eqn.7 (1.16), "Exp", lines: +14 -6 eqn.c (1.28), "Exp", lines: +88 -43 Add all rendered symbols used by eqn. I use the Second-Edition User's Manual (1978) for this, so it should catch most of them. They just map into the mandoc_char escaped characters. 2011-07-22 14:15 kristaps Changed: chars.c (1.49), "Exp", lines: +2 -2 chars.in (1.40), "Exp", lines: +4 -1 mandoc_char.7 (1.46), "Exp", lines: +5 -2 Add support for 1/2, 1/4, and 3/4 (needed by eqn). 2011-07-22 13:48 kristaps Changed: eqn.7 (1.15), "Exp", lines: +24 -31 Clearer documentation of grammar in eqn.7 and addition of Greek symbols. 2011-07-22 13:40 kristaps Changed: eqn.c (1.27), "Exp", lines: +95 -1 Support translating Greek characters in eqn. 2011-07-22 12:55 kristaps Changed: eqn.7 (1.14), "Exp", lines: +2 -2 eqn.c (1.26), "Exp", lines: +8 -4 Fix left/right nesting in eqn. 2011-07-22 10:50 kristaps Added: eqn_term.c (1.1) Changed: Makefile (1.359), "Exp", lines: +5 -2 man_term.c (1.115), "Exp", lines: +2 -2 mdoc_term.c (1.233), "Exp", lines: +2 -2 term.h (1.86), "Exp", lines: +2 -1 Add character output (-Tpdf, -Tps, -Tascii) for equations. This is the minimum: unseparated terms. 2011-07-22 10:36 kristaps Changed: eqn.c (1.25), "Exp", lines: +2 -2 Protect macro expansion. 2011-07-22 10:22 kristaps Changed: eqn.c (1.24), "Exp", lines: +24 -29 Use a macro instead of doing a string-fragment compare. I just get worried that I'm going to write the wrong size on both sides of the equality (I've already done it a few times). This cleans up the code readability a bit. 2011-07-22 09:57 kristaps Changed: eqn.c (1.23), "Exp", lines: +51 -36 mandoc.h (1.90), "Exp", lines: +3 -2 tree.c (1.45), "Exp", lines: +10 -1 Give lists their own eqn function. 2011-07-22 00:16 kristaps Changed: eqn.c (1.22), "Exp", lines: +17 -5 Accomodate for hard-spaces with tildes. For now, consider them regular spaces. Also allow for tabs. Finally, have the parser correctly handle open and close brackets smooshed against other terms. All of these handle "details" noted in the CACM paper. 2011-07-21 23:42 kristaps Changed: eqn.c (1.21), "Exp", lines: +15 -18 Fix eqn handling of PILE clauses (multiple ABOVE statements may be specified for each PILE). 2011-07-21 23:30 kristaps Changed: eqn.7 (1.13), "Exp", lines: +7 -1 eqn.c (1.20), "Exp", lines: +232 -117 libroff.h (1.24), "Exp", lines: +2 -1 mandoc.c (1.55), "Exp", lines: +11 -1 mandoc.h (1.89), "Exp", lines: +22 -5 read.c (1.21), "Exp", lines: +4 -1 tree.c (1.44), "Exp", lines: +8 -5 Complete eqn.7 parsing. Features all productions from the original 1975 CACM paper in an LR(1) parse (1 -> eqn_rewind()). Right now the code is a little jungly, but will clear up as I consolidate parse components. The AST structure will also be cleaned up, as right now it's pretty ad hoc (this won't change the parse itself). I added the mandoc_strndup() function will here. 2011-07-21 15:21 kristaps Changed: chars.c (1.48), "Exp", lines: +3 -3 eqn.7 (1.12), "Exp", lines: +2 -1 eqn.c (1.19), "Exp", lines: +13 -3 libmandoc.h (1.24), "Exp", lines: +2 -2 mandoc.c (1.54), "Exp", lines: +6 -7 mandoc.h (1.88), "Exp", lines: +3 -1 roff.c (1.149), "Exp", lines: +2 -2 tree.c (1.43), "Exp", lines: +8 -4 Support `size' constructs in eqn.7. Generalise mandoc_strontou to this effect. 2011-07-21 14:13 kristaps Changed: eqn.7 (1.11), "Exp", lines: +7 -1 eqn.c (1.18), "Exp", lines: +22 -3 mandoc.h (1.87), "Exp", lines: +17 -1 tree.c (1.42), "Exp", lines: +7 -7 Full support for eqn positionals (above, over, sup, sub, etc.). 2011-07-21 13:37 kristaps Changed: eqn.7 (1.10), "Exp", lines: +5 -1 eqn.c (1.17), "Exp", lines: +32 -13 mandoc.h (1.86), "Exp", lines: +12 -3 tree.c (1.41), "Exp", lines: +7 -4 Add eqn subexpression fonts. 2011-07-21 13:18 kristaps Changed: eqn.7 (1.9), "Exp", lines: +11 -2 eqn.c (1.16), "Exp", lines: +34 -6 mandoc.h (1.85), "Exp", lines: +15 -1 tree.c (1.40), "Exp", lines: +4 -4 Add support for markers. These decorate the last box: see eqn.7. 2011-07-21 12:34 kristaps Changed: eqn.7 (1.8), "Exp", lines: +2 -1 Document `{, }' subexpressions in eqn.7. 2011-07-21 12:30 kristaps Changed: eqn.c (1.15), "Exp", lines: +50 -11 mandoc.h (1.84), "Exp", lines: +15 -8 read.c (1.20), "Exp", lines: +3 -1 tree.c (1.39), "Exp", lines: +9 -4 Support nested `{, }' subexpressions in eqn. Document in code. 2011-07-21 11:57 kristaps Changed: eqn.7 (1.7), "Exp", lines: +14 -1 eqn.c (1.14), "Exp", lines: +22 -16 Make `undef' not expand its argument before undefining it. Document this and have the same behaviour apply to `set' and `define'. 2011-07-21 11:34 kristaps Changed: eqn.7 (1.6), "Exp", lines: +3 -2 eqn.c (1.13), "Exp", lines: +65 -32 man_html.c (1.79), "Exp", lines: +3 -3 man_term.c (1.114), "Exp", lines: +2 -2 mandoc.h (1.83), "Exp", lines: +14 -3 mdoc_html.c (1.173), "Exp", lines: +3 -3 mdoc_term.c (1.232), "Exp", lines: +2 -2 tree.c (1.38), "Exp", lines: +45 -25 Flip eqn into using parsed nodes. I've temporarily disabled printing these in the front-ends except for -Ttree, which will display the parsed tree. While here, fix that quoted strings aren't scanned for replacement parts. 2011-07-21 10:24 kristaps Changed: eqn.7 (1.5), "Exp", lines: +58 -17 eqn.c (1.12), "Exp", lines: +181 -185 libroff.h (1.23), "Exp", lines: +12 -9 man.c (1.109), "Exp", lines: +3 -3 mandoc.h (1.82), "Exp", lines: +2 -2 mdoc.c (1.190), "Exp", lines: +3 -3 roff.c (1.148), "Exp", lines: +2 -2 Finish the eqn syntactic parser. This correctly parses terms and does the proper `define' dance, which amounts to pure word-replace (you can, say, define `foo' as `define' then define `define' as something else). eqn.c is now ready for some semantic parsing of `box' and `eqn' productions as defined by the grammar. 2011-07-18 14:30 kristaps Changed: mandoc.h (1.81), "Exp", lines: +2 -1 read.c (1.19), "Exp", lines: +2 -1 Forgot to add these bits to the last commit. 2011-07-18 13:47 kristaps Changed: eqn.7 (1.4), "Exp", lines: +7 -3 Note that equation definitions are nestable. 2011-07-18 13:35 kristaps Changed: eqn.c (1.11), "Exp", lines: +30 -8 Definitions in eqn.7 are actually recursive. Do this and add crude protection that we don't nest back to ourselves. 2011-07-18 10:23 kristaps Changed: mdoc.7 (1.191), "Exp", lines: +22 -12 Clarify up `Rv' and `Ex' documentation. 2011-07-18 07:48 kristaps Changed: libman.h (1.53), "Exp", lines: +1 -2 libmdoc.h (1.76), "Exp", lines: +1 -2 Follow-up: forgot to remove useless regset structs. 2011-07-18 07:46 kristaps Changed: Makefile (1.358), "Exp", lines: +4 -2 libman.h (1.52), "Exp", lines: +2 -1 libmandoc.h (1.23), "Exp", lines: +7 -33 libmdoc.h (1.75), "Exp", lines: +2 -1 man.c (1.108), "Exp", lines: +3 -3 mdoc.c (1.189), "Exp", lines: +5 -5 mdoc_validate.c (1.170), "Exp", lines: +2 -2 read.c (1.18), "Exp", lines: +6 -9 roff.c (1.147), "Exp", lines: +38 -9 Make `struct roff' be passed into libmdoc and libman upon creation. This is required for supporting in-line equations. While here, push registers properly into roff and add an set/get/mod interface. 2011-07-17 15:43 kristaps Changed: tbl_html.c (1.8), "Exp", lines: +2 -2 tbl_term.c (1.20), "Exp", lines: +2 -2 Fix copyright email. 2011-07-17 15:24 kristaps Changed: out.c (1.41), "Exp", lines: +1 -43 out.h (1.21), "Exp", lines: +1 -2 Remove unused function. 2011-07-17 14:15 kristaps Changed: eqn.c (1.10), "Exp", lines: +1 -3 Fix lost allocation. 2011-07-17 14:11 kristaps Changed: Makefile (1.357), "Exp", lines: +1 -1 eqn.c (1.9), "Exp", lines: +2 -1 Remember to NULL-ify new keys/vals. 2011-07-17 14:08 kristaps Changed: eqn.7 (1.3), "Exp", lines: +61 -18 eqn.c (1.8), "Exp", lines: +198 -57 mandoc.h (1.80), "Exp", lines: +4 -1 read.c (1.17), "Exp", lines: +4 -1 Provide implementations of `define', `set', and `unset'. Tie them into the stream of data. Document these appropriate, bringing in the grammar as defined by the original eqn manual (Kernighan/Richie). 2011-07-17 12:52 kristaps Changed: eqn.c (1.7), "Exp", lines: +17 -5 mandoc.h (1.79), "Exp", lines: +4 -1 read.c (1.16), "Exp", lines: +4 -1 Warn if equation `define' key is quoted (groff-ism). 2011-07-17 12:13 kristaps Changed: eqn.c (1.6), "Exp", lines: +112 -7 libroff.h (1.22), "Exp", lines: +13 -3 roff.c (1.146), "Exp", lines: +4 -4 Add initial `define' support for eqn(7). This works by iterating over a simple list. It's a slow, auditable early implementation. Data is read (the reading function will be reused) then parsed, then the line re-run if remaining stuff exists. Note this function isn't the same as mandoc_getarg(), as eqn(7) uses a different system for reading quoted strings. This doesn't actually use the defines. 2011-07-17 11:14 kristaps Changed: libmandoc.h (1.22), "Exp", lines: +1 -2 Remove prototype since moved into mandoc.h. 2011-07-15 20:40 schwarze Changed: mdoc.7 (1.190), "Exp", lines: +43 -25 improve documentation of .Bl -column .It Ta using feedback from kristaps@, ok jmc@ 2011-07-15 17:59 kristaps Changed: mandocdb.8 (1.3), "Exp", lines: +45 -25 mandocdb.c (1.5), "Exp", lines: +185 -55 Big step forward in bringing mandocdb in line with most makewhatis-type systems. 2011-07-15 10:15 kristaps Changed: mandocdb.8 (1.2), "Exp", lines: +21 -32 mandocdb.c (1.4), "Exp", lines: +116 -96 First step of making mandocdb a true makewhatis/mandb replacement: accept a set of directories on the command line ("manpaths") that are recursed for files. The databases are created in each manpath root. This temporarily removes OP_UPDATE and OP_DELETE functionality, which will be added back in. 2011-07-15 10:14 kristaps Changed: mandoc.h (1.78), "Exp", lines: +2 -1 Expose mandoc_strdup() to the outside world. 2011-07-15 09:06 kristaps Changed: mandocdb.c (1.3), "Exp", lines: +174 -126 Move parts of mandocdb that "do stuff" to the databases into their own functions. This will make it easier to call repeatedly (for different directoreis) as must be done with the new interfaces being developed. 2011-07-14 17:32 kristaps Deleted: makewhatis.1 (1.14) makewhatis.c (1.22) Apparently these weren't removed properly... 2011-07-14 14:36 schwarze Deleted: mandocdb.1 (1.2) Added: mandocdb.8 (1.1) Changed: Makefile (1.356), "Exp", lines: +20 -19 index.sgml (1.128), "Exp", lines: +11 -11 mandocdb.c (1.2), "Exp", lines: +2 -2 move mandocdb(1) to mandocdb(8) "please make this change" kristaps@ 2011-07-14 10:57 kristaps Added: mandocdb.1 (1.1) mandocdb.c (1.1) Changed: Makefile (1.355), "Exp", lines: +16 -16 index.sgml (1.127), "Exp", lines: +13 -13 Rename makewhatis [back] into mandocdb. This is to maintain consistency with OpenBSD, which is sandboxing the code for merge. It makes sense because it doesn't really make a `makewhatis' file in the traditional sense, so it may be confusing. 2011-07-12 21:32 kristaps Changed: eqn.c (1.5), "Exp", lines: +4 -2 libroff.h (1.21), "Exp", lines: +3 -2 roff.c (1.145), "Exp", lines: +2 -2 Have equation be allocated with mparse. Will be needed for logging of messages. 2011-07-12 15:26 kristaps Changed: makewhatis.c (1.21), "Exp", lines: +82 -98 Re-ordered logic in makewhatis to iterate over the index file only once. This is much more efficient. 2011-07-12 10:04 tag VERSION_1_11_4 2011-07-12 10:04 kristaps Changed: index.sgml (1.126), "Exp", lines: +2 -2 Small HTML compatibility fix. 2011-07-12 10:03 kristaps Changed: makewhatis.c (1.20), "Exp", lines: +4 -4 Fixed some uninitialised values found during lint check. 2011-07-12 08:27 kristaps Changed: Makefile (1.354), "Exp", lines: +2 -2 index.sgml (1.125), "Exp", lines: +5 -8 Note version 1.11.4 bits. Here we go! 2011-07-11 21:56 kristaps Changed: makewhatis.1 (1.13), "Exp", lines: +21 -3 makewhatis.c (1.19), "Exp", lines: +153 -17 Fairly straightforward patch adding basic update (-u) and remove (-r) functionality to makewhatis. This is somewhat expensive (requiring the index file to be trawled multiple times), but it's a good start. 2011-07-11 09:44 kristaps Changed: makewhatis.1 (1.12), "Exp", lines: +20 -3 Use mandoc.1's error codes (we use them internally). 2011-07-11 09:40 kristaps Changed: makewhatis.1 (1.11), "Exp", lines: +1 -7 Note we're no longer using temporary files. 2011-07-11 09:36 kristaps Changed: makewhatis.c (1.18), "Exp", lines: +56 -79 Don't use a temporary buffer (unless people yell to have it back in), and clean up the parse process a bit. No big changes. 2011-07-11 08:45 kristaps Changed: mdoc.7 (1.189), "Exp", lines: +20 -6 Be more specific about `Dv', `Er', and `Ev'. 2011-07-11 08:43 kristaps Changed: mandoc.3 (1.12), "Exp", lines: +15 -7 Make sure constants in mandoc.3 use the `Dv' macro. 2011-07-10 13:03 kristaps Changed: makewhatis.c (1.17), "Exp", lines: +5 -2 Have descriptions for -man documents in makewhatis be properly collected. 2011-07-09 10:26 kristaps Changed: TODO (1.119), "Exp", lines: +3 -1 Spaces must be preserved in -T[x]html literal mode. 2011-07-08 09:35 kristaps Changed: man.7 (1.102), "Exp", lines: +10 -7 Clarify the role of `RS' in man(7) and also fix a bogus cross-reference. 2011-07-08 09:34 kristaps Changed: man_validate.c (1.70), "Exp", lines: +20 -5 Make sure that `br' and `sp' don't emit space before the initial `SH' in -man. This actually seems to be what groff does. Sort-of. Anyway, it's required to get perlpod pages rendered nicely, so until perlpod stops producing shit, do it. Ok schwarze@. 2011-07-08 09:28 kristaps Changed: roff.c (1.144), "Exp", lines: +26 -4 Fix two issues: the first, where a `.\}' wasn't being interpreted as a proper macro in some conditions, resulting in strange parse errors. The second, where `\}' was being re-written as `\&'. Instead, we re-write this as two spaces OR nothing at all, if at the end of line. This isn't exactly what groff does (who knows...) but is a much safer and better way than how I was doing it before. 2011-07-07 14:34 kristaps Changed: html.c (1.149), "Exp", lines: +4 -2 Fix handling of the `\c' escape in -T[x]html. 2011-07-07 13:54 kristaps Changed: man_html.c (1.78), "Exp", lines: +20 -18 Considerably fix up -man -T[x]html's handling of verbatim spaces (`nf'), which before were being handled erratically. 2011-07-07 13:26 kristaps Changed: man_html.c (1.77), "Exp", lines: +15 -79 Clean up how -man -T[x]html handles TP, IP, and HP (dd lists and indented paragraph macros, respectively). This cleans up code and also cleans up the output quite a lot. 2011-07-07 06:41 kristaps Changed: chars.c (1.47), "Exp", lines: +8 -61 Simplify chars.c---there's really no need for extra code to reorder the hash chain or an extra function for checking matches. 2011-07-07 06:34 kristaps Changed: TODO (1.118), "Exp", lines: +5 -1 Note the strange `if'+newline issue raised by schwarze@. 2011-07-07 05:42 kristaps Changed: man_macro.c (1.64), "Exp", lines: +7 -7 Fix a bug in the -man parser where deleting nodes (such as `PP' or `LP' in certain situations) caused the next macros to be assigned as siblings instead of child nodes to the original parent. Noticed and ok by schwarze@. 2011-07-04 12:02 kristaps Changed: Makefile (1.353), "Exp", lines: +2 -1 Install sources with mode 0644. Noted by Jack Nagel. Ok schwarze@. 2011-07-04 09:42 kristaps Changed: html.c (1.148), "Exp", lines: +1 -2 mdoc_html.c (1.172), "Exp", lines: +3 -1 The bufcat() function in -T[x]html was eating one byte off the end of its concatenated string. This for some reason hasn't been found before now... ? Anyway, fixed, and make the IDs created again be correctly prefixed by a letter as per the HTML spec. 2011-07-03 22:57 kristaps Changed: TODO (1.117), "Exp", lines: +1 -4 man.7 (1.101), "Exp", lines: +6 -2 man_html.c (1.76), "Exp", lines: +3 -1 man_term.c (1.113), "Exp", lines: +3 -1 Fix a TODO noted by schwarze@, originally by Christian Weisgerber: literal mode (`nf') is ended by SH (and, it turns out, SS as well). Noted the updated behaviour in man.7 as well. 2011-07-03 22:40 schwarze Changed: TODO (1.116), "Exp", lines: +9 -1 two new bugs reported by naddy@: - .\} breaks - .SH implies .fi 2011-07-03 20:54 kristaps Changed: Makefile (1.352), "Exp", lines: +1 -1 We obviously need man.h and mdoc.h installed as mentioned in mandoc.3. 2011-07-01 13:46 kristaps Changed: makewhatis.1 (1.10), "Exp", lines: +3 -1 makewhatis.c (1.16), "Exp", lines: +16 -2 Added `Er' in ERRORS scan to makewhatis. 2011-07-01 12:02 kristaps Changed: makewhatis.1 (1.9), "Exp", lines: +4 -2 makewhatis.c (1.15), "Exp", lines: +16 -2 Added search for `Ev' environment variables in ENVIRONMENT section. 2011-07-01 10:46 kristaps Changed: makewhatis.c (1.14), "Exp", lines: +21 -22 Allow `Nd' scarfed data to allow for non-text nodes as the first node, as well. 2011-07-01 10:20 kristaps Changed: index.sgml (1.124), "Exp", lines: +13 -36 Add some notes to index.sgml. This does not signal a release. 2011-07-01 10:17 kristaps Changed: makewhatis.c (1.13), "Exp", lines: +39 -35 Make scan for text tokens in a line recursive. This is really only for the benefit of `Nd', which is the only [to date] node that can consist of sub-nodes. 2011-07-01 09:11 kristaps Changed: makewhatis.1 (1.8), "Exp", lines: +4 -2 makewhatis.c (1.12), "Exp", lines: +19 -2 Add path reference (`Pa' in FILES section). 2011-06-30 08:05 kristaps Changed: TODO (1.115), "Exp", lines: +4 -1 roff.c (1.143), "Exp", lines: +5 -1 Ouch: predefined strings moved into roff.c weren't being reinitalised after the first parse. Do this, but note there are more efficient ways just waiting for a table of macros. 2011-06-29 15:38 kristaps Changed: TODO (1.114), "Exp", lines: +1 -3 man_html.c (1.75), "Exp", lines: +4 -3 man_term.c (1.112), "Exp", lines: +9 -2 mdoc_html.c (1.171), "Exp", lines: +4 -3 mdoc_term.c (1.231), "Exp", lines: +3 -2 First fix how `sp 1' doesn't imply `1v' (it now does) and that 1 followed by non-digits, e.g. `1g', really means `1'. Next, fix some spacing issues where `sp' was invoked in -man after sections or subsections. Make sure this behaviour is mirrored in -Thtml. 2011-06-25 13:19 kristaps Changed: makewhatis.1 (1.7), "Exp", lines: +6 -2 makewhatis.c (1.11), "Exp", lines: +23 -2 Add cross-reference records to makewhatis. 2011-06-22 22:10 kristaps Changed: mandoc.3 (1.11), "Exp", lines: +52 -7 Add more documentation for libmandoc. 2011-06-22 10:36 kristaps Changed: makewhatis.1 (1.6), "Exp", lines: +6 -1 makewhatis.c (1.10), "Exp", lines: +38 -30 Clean up makewhatis.c a little bit and add verbosity (-v). 2011-06-22 09:10 kristaps Changed: makewhatis.c (1.9), "Exp", lines: +3 -3 Make sure hash is initialised to NULL and remove an unused variable. 2011-06-22 09:00 kristaps Changed: makewhatis.c (1.8), "Exp", lines: +19 -18 Try again to get the transfer from hash to btree working. This time just closing and re-opening the database, as deleting records with (*hash->del) either in the scan loop or after it causes uncertain behaviour (left-over keys, mystery keys, etc.). This finally does the Right Thing (tm). 2011-06-21 23:37 kristaps Changed: makewhatis.c (1.7), "Exp", lines: +11 -12 Fix broken transfer from hashtable to btree for makewhatis.c. 2011-06-21 14:51 kristaps Changed: index.sgml (1.123), "Exp", lines: +4 -2 Note mandoc-cgi -> mandoc-tools. 2011-06-21 14:16 kristaps Changed: Makefile (1.351), "Exp", lines: +1 -1 makewhatis.1 (1.5), "Exp", lines: +4 -2 makewhatis.c (1.6), "Exp", lines: +17 -6 Let descriptions (bit-mask 0x100) also be mined for text. This doubles the database size (one record for each file), but it's critical information. 2011-06-21 13:54 kristaps Changed: makewhatis.c (1.5), "Exp", lines: +53 -111 Have descriptions also use struct buf. This completes the internal migration to in-memory hashing and passing buffers instead of DBTs. 2011-06-21 13:13 kristaps Changed: Makefile (1.350), "Exp", lines: +1 -1 makewhatis.c (1.4), "Exp", lines: +3 -2 Don't let empty strings into the makewhatis keyword database. 2011-06-21 13:09 kristaps Changed: makewhatis.1 (1.4), "Exp", lines: +11 -14 Make sure makewhatis.1 is documenting the correct bit-fields. 2011-06-21 13:05 kristaps Changed: makewhatis.c (1.3), "Exp", lines: +184 -130 Big change to makewhatis: use an in-memory hashtable to collapse multiple types of the same name (e.g., "foo" being a manual name, utility name, etc.) into a single bitmask'd region. This considerably reduces the size of the keyword database. 2011-06-18 20:34 kristaps Changed: man_html.c (1.74), "Exp", lines: +29 -5 Make -T[x]html in -man also be aware of the vertical-space issues in the last few commits. 2011-06-18 17:58 kristaps Changed: TODO (1.113), "Exp", lines: +1 -22 man_html.c (1.73), "Exp", lines: +1 -2 man_term.c (1.111), "Exp", lines: +17 -13 Fix two TODOs with one check-in. Both of these relate to vertical space before paragraphs and/or within `RS' blocks. 2011-06-18 17:36 kristaps Changed: TODO (1.112), "Exp", lines: +1 -6 man_macro.c (1.63), "Exp", lines: +1 -6 man_term.c (1.110), "Exp", lines: +21 -18 Allow RS/RE blocks to nest. This requires first the syntax tree to accomodate for the fix, then for the front-ends. -T[x]html accepted the syntax tree natively, but -Tascii had to use relative offsets. It's quite a simple fix. From a TODO by {dcoppa,dsoares}@openbsd. 2011-06-18 16:53 kristaps Changed: mdoc_argv.c (1.80), "Exp", lines: +6 -7 Add back in a check that the leading `-' exists for arguments. This mysteriously disappeared in 1.14. No idea why. While here, remove an unnecessary header and order the function prototypes. 2011-06-18 16:29 kristaps Changed: mdoc_argv.c (1.79), "Exp", lines: +17 -38 Clean-up: remove a function only called once. 2011-06-18 16:18 kristaps Changed: TODO (1.111), "Exp", lines: +1 -4 mdoc_argv.c (1.78), "Exp", lines: +164 -192 Fix an assertion failure raised by the following interesting scenario: a auto-opened `It' (i.e., a column list with a free-text first line) with leading spaces in the line triggering assertion when searching for arguments. This led to a fix giving a nice performance speed-ups (a few percent, with some quick trials): the search for flags immediately exits if the macro has no flags, instead of having to first parse the leading word then look it up. I also cleaned up the argv parsing stuff a little bit and added more documentation. This comes from a TODO by joerg@. 2011-06-16 22:21 kristaps Changed: mdoc_html.c (1.170), "Exp", lines: +5 -4 Have -T[x]html print out the link target for `Lk' if no link title is provided. From a patch by Tim van der Molen. 2011-06-12 12:13 joerg Changed: TODO (1.110), "Exp", lines: +4 -1 Add note about crash on invalid found in the NetBSD tree 2011-06-11 15:41 schwarze Changed: TODO (1.109), "Exp", lines: +9 -1 .Nm in-line/block issues reported by uqs@ 2011-05-30 07:24 kristaps Changed: mandoc.1 (1.89), "Exp", lines: +9 -10 Fix some bad bits in the mandoc manual: `Xr' instead of `Sx', unescaped stuff that should be escaped, and a style matter or two. Pointed out by Jason McIntyre, thanks! 2011-05-26 23:01 kristaps Changed: makewhatis.1 (1.3), "Exp", lines: +2 -6 Remove untrue CAVEAT in makewhatis.1. 2011-05-26 21:23 tag VERSION_1_11_3 2011-05-26 21:23 kristaps Changed: Makefile (1.349), "Exp", lines: +2 -2 index.sgml (1.122), "Exp", lines: +3 -3 Version 1.11.3. Here we go! 2011-05-26 21:13 kristaps Changed: Makefile (1.348), "Exp", lines: +1 -1 preconv.c (1.4), "Exp", lines: +6 -6 Some small lint checks in preconv. Also add it to the default lint rule. 2011-05-26 21:02 kristaps Changed: test-mmap.c (1.2), "Exp", lines: +1 -0 OpenBSD needs sys/types for mmap... oops... 2011-05-26 20:36 kristaps Added: test-mmap.c (1.1) Changed: Makefile (1.347), "Exp", lines: +5 -0 read.c (1.15), "Exp", lines: +10 -4 At least in theory, this patch lets us compile on Windows (which does not have mmap(), from what I can tell). 2011-05-26 20:23 kristaps Changed: index.sgml (1.121), "Exp", lines: +18 -15 More updates to www. A version's on its way... 2011-05-26 20:22 kristaps Changed: Makefile (1.346), "Exp", lines: +2 -2 Have preconv install with mandoc. 2011-05-26 14:45 kristaps Changed: preconv.1 (1.4), "Exp", lines: +3 -3 Slightly clean up verbiage in coding tags. 2011-05-26 14:43 kristaps Changed: Makefile (1.345), "Exp", lines: +1 -1 preconv.1 (1.3), "Exp", lines: +46 -27 preconv.c (1.3), "Exp", lines: +105 -3 preconv is now on encoding-recognition parity with groff. This last commit adds parsing of "File Variables" in the first two lines in order to grok the encoding. This completes groff's recognition sequence (-e, BOM, File variables, -D, default). I've also cleaned up the manual to indicate this and for some general readability. preconv is now compiled by default in the Makefile. 2011-05-26 14:30 kristaps Changed: predefs.in (1.2), "Exp", lines: +2 -2 The \*q predef certainly doesn't map to \"! Fix this. 2011-05-26 12:14 kristaps Changed: index.sgml (1.120), "Exp", lines: +17 -1 preconv.1 (1.2), "Exp", lines: +8 -3 Add notes about preconv.1 in the www and change some wording in the manual regarding its output and `Nd' sentence. 2011-05-26 12:01 kristaps Added: preconv.1 (1.1) Changed: Makefile (1.344), "Exp", lines: +7 -0 preconv.c (1.2), "Exp", lines: +117 -13 Significantly improve preconv. Allow it to recode UTF-8 characters into the \[uNNNN] strings (taking into account big-endian archs). Also allow it to determine from the BOM whether it's a UTF-8 file. Also add the initial manual. This has been tested over a random selection of UTF-8 documents, as % preconv -e utf-8 foo.1 | ./mandoc -Tlocale where -Tlocale is allowed (-DUSE_WCHAR). Note that we're still missing the "type" indicator that preconv accepts. 2011-05-26 11:58 kristaps Changed: roff.c (1.142), "Exp", lines: +7 -6 If a predefined string is missing, emit a warning and make it an empty string instead of passing it along to libmdoc/libman (where it'll be printed verbatim, now). This is what groff seems to do, too (of course without a warning). 2011-05-26 09:26 kristaps Changed: man.7 (1.100), "Exp", lines: +10 -6 mdoc.7 (1.188), "Exp", lines: +7 -6 Noticed that our skeleton mdoc.7 had lower-case `Dt'. Fixed and added some language for clarity. 2011-05-26 00:30 kristaps Added: preconv.c (1.1) Changed: Makefile (1.343), "Exp", lines: +16 -3 It's annoying that we don't have preconv, so throw together a quick version and let it grow in-tree. Right now, this only supports the Latin-1 and US-ASCII encoding. I'll do UTF-8 next. It's call-compatible with GNU's preconv although I don't do fancy stuff like BOM or header check. This will come. I used read.c's file-grokking code. 2011-05-24 21:41 kristaps Changed: mandoc.3 (1.10), "Exp", lines: +3 -5 Document that spec2cp never returns 0. 2011-05-24 21:40 kristaps Changed: chars.in (1.39), "Exp", lines: +7 -7 html.c (1.147), "Exp", lines: +6 -23 Use the correct Unicode value for the zero-width space, which means that spec2cp never needs to fall through to spec2str. Then clean out html.c of its unnecessary print_res() function. 2011-05-24 21:31 kristaps Changed: chars.c (1.46), "Exp", lines: +1 -32 html.c (1.146), "Exp", lines: +1 -26 mandoc.3 (1.9), "Exp", lines: +1 -25 mandoc.c (1.53), "Exp", lines: +1 -5 mandoc.h (1.77), "Exp", lines: +1 -4 term.c (1.197), "Exp", lines: +1 -23 Remove all references to ESCAPE_PREDEF, which is now not exposed passed the libroff point. This clears up a nice chunk of code. 2011-05-24 21:24 kristaps Changed: chars.c (1.45), "Exp", lines: +12 -23 chars.in (1.38), "Exp", lines: +16 -49 Remove predefined strings from the chars.in file, as they're now local to predefs.in. This also makes "BOTH" entries directly into CHAR. The res2str and spec2str are now effectively the same function. 2011-05-24 21:18 kristaps Added: predefs.in (1.1) Changed: Makefile (1.342), "Exp", lines: +2 -0 roff.c (1.141), "Exp", lines: +22 -3 Most important move in getting predefined strings entirely contained within roff.c. These are now grokked from a table in the roff allocation routine and rest in the newly-created predefs.in (for consistency with chars.in). This is a first implementation and will likely be optimised along with the ds/de lookup table itself. This allows mandoc-defined predefined strings to be correctly removed or whatnot; earlier they couldn't. What will follow is the stripping-away of all predefined-string crud in the other parts of the system. 2011-05-24 15:22 kristaps Changed: roff.7 (1.29), "Exp", lines: +14 -9 roff.c (1.140), "Exp", lines: +12 -26 Have conditional closure for both text and macro lines call through to ccond(). Fix the text handler to behave like the macro handler regarding escaped \}. Make \} actually become a zero-width space, too, and clean up the documentation in this regard. 2011-05-24 14:00 kristaps Changed: TODO (1.108), "Exp", lines: +1 -7 roff.c (1.139), "Exp", lines: +24 -10 Fix a TODO to the effect that `.if n \{\ foo .br \}' was failing due to the `\}' not being directly after the `.br'. Now we check for `\}' in arbitrary parts of the line, and account for if it's escaped in funny ways. This behaviour diverges somewhat from groff in that the text at and following the `\}' is lost, while groff keeps it (sort-of). I'll add a COMPATIBILITY note to this effect. 2011-05-21 21:38 schwarze Changed: TODO (1.107), "Exp", lines: +3 -1 nested .RS/.RE is becoming more important 2011-05-21 15:55 schwarze Changed: mdoc.7 (1.187), "Exp", lines: +2 -4 remove a sentence which isn;t true; from jmc@ 2011-05-20 15:51 kristaps Changed: main.c (1.163), "Exp", lines: +10 -1 mandoc.1 (1.88), "Exp", lines: +14 -4 Turn on -Tutf8 in the frontend. Here we go! 2011-05-20 15:48 kristaps Changed: main.h (1.12), "Exp", lines: +2 -1 term.h (1.85), "Exp", lines: +3 -2 term_ascii.c (1.17), "Exp", lines: +16 -4 Flip on -Tutf8 backend support. This forces the UTF-8 LC_CTYPE and does little else. Also remove the check for __STDC_ISO_10646__. It turns out that very few systems---even those that support it---actually declare this and it's just causing problems instead of being useful. 2011-05-20 15:44 kristaps Changed: term.c (1.196), "Exp", lines: +62 -18 Allow non-ASCII terminal encodings to accept unicode values for the special characters, if possible. This is broken into a separate switch statement for clarity. 2011-05-19 16:02 kristaps Changed: index.sgml (1.119), "Exp", lines: +13 -1 Some release notes (this isn't signalling an impending release; I just want to get some notes in). 2011-05-19 15:48 kristaps Changed: Makefile (1.341), "Exp", lines: +5 -3 term_ascii.c (1.16), "Exp", lines: +8 -1 It seems that __STDC_ISO_10646__ isn't defined even where it can be defined, so remove the check for it and leave it up to people compiling the software (DOWNSTREAM) to take care of this. This will eventually need to be fixed up with a proper non-10646 converter and so on, but this is a simple start. While here, strengthen then language in the Makefile to this effect. 2011-05-18 23:59 kristaps Changed: TODO (1.106), "Exp", lines: +1 -6 html.c (1.145), "Exp", lines: +5 -1 term.c (1.195), "Exp", lines: +3 -1 Make any un-recognised font be considered a call for the Roman font. This makes sequences of \f[unknown] \fP not completely puke. From a TODO by schwarze@. 2011-05-18 09:45 kristaps Changed: Makefile (1.340), "Exp", lines: +1 -1 TODO (1.105), "Exp", lines: +5 -1 Add TODO entry for standalone `.' in tbl pages (pointed out by Yuri Pankov). Also fix typo in Makefile, same reporter. Thanks! 2011-05-17 22:32 kristaps Changed: Makefile (1.339), "Exp", lines: +4 -1 mandoc.1 (1.87), "Exp", lines: +22 -3 term.c (1.194), "Exp", lines: +46 -7 term_ascii.c (1.15), "Exp", lines: +70 -13 Locale support. I'm checking this in to clean up fall-out in-tree, but it looks pretty good. Basically, the -Tlocale option propogates into term_ascii.c, where we set locale-specific console call-backs IFF (1) setlocale() works; (2) locale support is compiled in (see Makefile for -DUSE_WCHAR); (3) the internal structure of wchar_t maps directly to Unicode codepoints as defined by __STDC_ISO_10646__; and (4) the console supports multi-byte characters. To date, this configuration only supports GNU/Linux. OpenBSD doesn't export __STDC_ISO_10646__ although I'm told by stsp@openbsd.org that it should (it has the correct map). Apparently FreeBSD is the same way. NetBSD? Don't know. Apple also supports this, but doesn't define the macro. Special-casing! Benchmark: -Tlocale incurs less than 0.2 factor overhead when run through several thousand manuals when UTF8 output is enabled. Native mode (whether directly -Tascii or through no locale or whatever) is UNCHANGED: the function callbacks are the same as before. Note. If the underlying system does NOT support STDC_ISO_10646, there is a "slow" version possible with iconv or other means of flipping from a Unicode codepoint to a wchar_t. 2011-05-17 14:38 kristaps Changed: main.c (1.162), "Exp", lines: +12 -2 main.h (1.11), "Exp", lines: +2 -1 man_term.c (1.109), "Exp", lines: +2 -9 mdoc_term.c (1.230), "Exp", lines: +2 -9 term.c (1.193), "Exp", lines: +1 -13 term.h (1.84), "Exp", lines: +3 -3 term_ascii.c (1.14), "Exp", lines: +20 -6 term_ps.c (1.51), "Exp", lines: +3 -2 Add mode for -Tlocale. This mode, with this commit, behaves exactly like -Tascii. While adding this, inline term_alloc() (was a one-liner), remove some switches around the terminal encoding for the symbol table (unnecessary), and split out ascii_alloc() into ascii_init(), which is also called from locale_init(). 2011-05-17 13:11 kristaps Changed: tbl_layout.c (1.20), "Exp", lines: +18 -1 In tbl layouts, we puked if a space didn't followed a vertical bar (found by Yuri Pankov). This was due to looking for modifiers for the vertical bar. This has been fixed, along with other special-key layout types. 2011-05-17 12:22 kristaps Changed: mandoc.1 (1.86), "Exp", lines: +10 -5 mandoc.3 (1.8), "Exp", lines: +4 -2 Documentation: note COMPATIBILITY of -Tascii `?' printing in mandoc.1 and remove some long-fixed notes in sthe same section. Also, add an `Lb' for the mandoc library to mandoc.3 (noted by Sascha Wildner). 2011-05-17 11:55 kristaps Changed: term.c (1.192), "Exp", lines: +10 -2 Flip on printing `?' at Unicode codepoints in -Tascii, -Tpdf, and -Tps. The reasoning behind printing SOMETHING at a Unicode codepoint is because the input is not "wrong" (we suppress printing of "wrong" things). It's just that ASCII can't handle it. 2011-05-17 11:50 kristaps Changed: chars.c (1.44), "Exp", lines: +17 -3 html.c (1.144), "Exp", lines: +9 -1 mandoc.3 (1.7), "Exp", lines: +14 -4 mandoc.h (1.76), "Exp", lines: +2 -1 Flip on unicode output (via \[uNNNN]) in -T[x]html. Here we go! 2011-05-17 11:38 kristaps Changed: html.c (1.143), "Exp", lines: +3 -4 mdoc_html.c (1.169), "Exp", lines: +2 -1 Clean-up fallout: differentiate ID's and HREF's (where to put the `#'). Make buffmt functions internally bufinit(), too. 2011-05-17 11:34 kristaps Changed: html.c (1.142), "Exp", lines: +6 -25 html.h (1.44), "Exp", lines: +7 -7 man_html.c (1.72), "Exp", lines: +6 -6 mdoc_html.c (1.168), "Exp", lines: +26 -29 Cleanups in -T[x]html: make html_idcat() use the buffer and be called bufcat_id(), then collapse it into a little function without so much crap. Next, make bufinit() only be called when we really need to do so, and not simply before pre/post calls. 2011-05-17 11:19 kristaps Changed: html.c (1.141), "Exp", lines: +25 -64 html.h (1.43), "Exp", lines: +2 -3 man_html.c (1.71), "Exp", lines: +2 -2 mdoc_html.c (1.167), "Exp", lines: +2 -2 Clean-ups in -T[x]html: inline print_num(), as it was just a single conditional; same for print_xmltype() and print_doctype(), same reason; make bufncat() be static, as it was only being called from html.c; have bufcat() simply call through to strlcat(). Finally, assert() whenever we truncate. Also rename buffmt() -> bufcat_fmt() to differentiate from buffmt_man et al., which do not concatenate. 2011-05-17 10:48 kristaps Changed: html.c (1.140), "Exp", lines: +17 -42 Clean up -T[x]html by using a table instead of a switch statement for the roff units. Also remove a comment about CSS and number types (they all accept decimal numbers). 2011-05-15 22:29 kristaps Changed: chars.c (1.43), "Exp", lines: +3 -4 term.c (1.191), "Exp", lines: +16 -53 Remove function calls to res() and so forth in term_word(). These were only used once and simply bloated the binary. Also fix mchars_num2char to correctly render the character instead of using atoi(). This makes the conversation more strict, but it's more correct. 2011-05-15 15:47 kristaps Changed: chars.c (1.42), "Exp", lines: +2 -1 html.c (1.139), "Exp", lines: +4 -3 term.c (1.190), "Exp", lines: +8 -3 Fix missing support for \N'n' when calculating string widths in -Tascii (oops). Do the same for -Thtml (oops^2). 2011-05-15 15:30 kristaps Changed: mandoc.c (1.52), "Exp", lines: +9 -1 mandoc.h (1.75), "Exp", lines: +2 -1 mandoc_char.7 (1.45), "Exp", lines: +16 -2 Support groff's escape for Unicode input. See http://mdocml.bsd.lv/archives/tech/0368.html For the time being, we just throw it away. 2011-05-15 14:50 kristaps Changed: term.c (1.189), "Exp", lines: +11 -11 Use strcspn() in term_strlen(). Clarifies the code. 2011-05-15 02:47 kristaps Changed: makewhatis.c (1.2), "Exp", lines: +1 -43 Get rid of an "#if 0" that I don't anticipate being fixed ever (nor does it really need to be fixed, anyway). 2011-05-15 00:58 kristaps Changed: term.h (1.83), "Exp", lines: +2 -33 term_ps.c (1.50), "Exp", lines: +197 -169 Move struct termp_ps into term_ps.c; remove the engine union in struct termp, which only held one entry; finally (as per the first), make "ps" member into a pointer managed by term_ps.c. This frees up a nice chunk of memory during run-time and in the binary. 2011-05-14 23:44 kristaps Changed: index.css (1.10), "Exp", lines: +21 -19 Continuing last commit with the style-sheet change. 2011-05-14 23:43 kristaps Changed: makewhatis.1 (1.2), "Exp", lines: +3 -3 Fix makewhatis.1 to have the correct name (it was MANDOC-DB, oops). 2011-05-14 23:41 kristaps Changed: index.sgml (1.118), "Exp", lines: +17 -58 Make index.sgml look more like mandoc-cgi, which I find looks much cleaner and nicer. 2011-05-14 23:40 kristaps Changed: style.css (1.22), "Exp", lines: +33 -40 Make www style.css link up to example.style.css much nicer. 2011-05-14 18:15 kristaps Changed: term.c (1.188), "Exp", lines: +27 -23 term.h (1.82), "Exp", lines: +3 -3 Make some values "int" that were "size_t". These are primarily used for indexing into arrays, so this removes lots of casts from size_t to int. 2011-05-14 17:54 kristaps Changed: chars.c (1.41), "Exp", lines: +3 -2 mandoc.c (1.51), "Exp", lines: +2 -2 term.c (1.187), "Exp", lines: +4 -4 term.h (1.81), "Exp", lines: +4 -4 term_ascii.c (1.13), "Exp", lines: +5 -5 term_ps.c (1.49), "Exp", lines: +10 -7 Make character engine (-Tascii, -Tpdf, -Tps) ready for Unicode: make buffer consist of type "int". This will take more work (especially in encode and friends), but this is a strong start. This commit also consists of some harmless lint fixes. 2011-05-14 16:28 kristaps Changed: html.c (1.138), "Exp", lines: +37 -1 html.h (1.42), "Exp", lines: +2 -1 mdoc_html.c (1.166), "Exp", lines: +6 -6 Give -Thtml and -Txhtml the gift of recognising escapes when calculating widths (e.g., `Bl -tag -width "\s[blahblah]bar"). This has long since been done for -Tascii but escaped noticed with -T[x]html. 2011-05-14 16:06 kristaps Changed: roff.c (1.138), "Exp", lines: +6 -28 libmandoc.h (1.21), "Exp", lines: +2 -1 mandoc.c (1.50), "Exp", lines: +35 -1 Move roff.c's strtol into libmandoc.h for use by other parts of the code (which will come). 2011-05-13 01:04 tag VERSION_1_11_2 2011-05-13 01:04 kristaps Changed: index.sgml (1.117), "Exp", lines: +2 -2 Last sneak-in: incorrect www link. 2011-05-13 01:02 kristaps Changed: Makefile (1.338), "Exp", lines: +6 -1 Ooops, forgot to install makewhatis manual. 2011-05-13 00:57 kristaps Changed: Makefile (1.337), "Exp", lines: +2 -2 Version up! 1.11.2. Let's go... 2011-05-13 00:51 kristaps Changed: index.sgml (1.116), "Exp", lines: +2 -1 More release notes. 2011-05-13 00:42 kristaps Deleted: mandoc-db.1 (1.6) mandoc-db.c (1.22) Added: makewhatis.1 (1.1) makewhatis.c (1.1) Changed: Makefile (1.336), "Exp", lines: +11 -11 index.sgml (1.115), "Exp", lines: +19 -8 Rename mandoc-db to makewhatis. On the suggestion of schwarze@; I agree. Add initial version notes. 2011-05-12 23:45 kristaps Changed: Makefile (1.335), "Exp", lines: +1 -1 Don't let Linux-isms creep into Makefile. 2011-05-12 23:44 kristaps Changed: mandoc-db.c (1.21), "Exp", lines: +4 -3 Correctly catch `Vt' semicolon in mandoc-db. 2011-05-12 23:44 kristaps Changed: mdoc_argv.c (1.77), "Exp", lines: +7 -8 Lint fixes: remove unused function variables and pass in proper enum values instead of ints. 2011-05-12 01:45 kristaps Changed: mandoc-db.c (1.20), "Exp", lines: +9 -4 Make sure that we check for the \(en, \(em, \-, and - separators for the heuristic dance to grab manual descriptions from man documents. 2011-05-04 20:43 kristaps Changed: mandoc-db.1 (1.5), "Exp", lines: +7 -2 mandoc-db.c (1.19), "Exp", lines: +6 -1 Grok manual architecture in mandoc-db.c. 2011-05-04 08:21 kristaps Changed: index.sgml (1.114), "Exp", lines: +20 -2 mandoc-db.c (1.18), "Exp", lines: +22 -3 Add configurations (`Cd') to mandoc-db mining. Also put some notes into index.sgml to the effect that mandoc-db exists, but is not linked to the build. 2011-05-03 14:39 kristaps Changed: mandoc-db.1 (1.4), "Exp", lines: +6 -2 mandoc-db.c (1.17), "Exp", lines: +22 -3 Pick up authors in mandoc-db. 2011-05-03 10:08 kristaps Changed: mandoc-db.c (1.16), "Exp", lines: +7 -1 Have mandoc-db grok `Dt'/`TH' manual title as well. 2011-05-02 13:56 kristaps Changed: mandoc-db.c (1.15), "Exp", lines: +4 -5 Back out stripping of non-predef and non-special escape sequences from input (this is not yet possible with mandoc_escape(), which depends on nil-terminated strings). 2011-05-01 11:56 kristaps Changed: mandoc-db.c (1.14), "Exp", lines: +55 -16 Have mandoc-db strip out escapes that aren't special or predefined characters. This is a work-in-progress that has some issues. 2011-05-01 10:40 kristaps Changed: mandoc.3 (1.6), "Exp", lines: +88 -2 Documenting the mchars_XXXX part of mandoc.h. 2011-05-01 08:48 kristaps Deleted: mdoc.template (1.10) Remove mdoc.template. It's already embedded in man(7) and mdoc(7); no need to have it floating around separately. 2011-05-01 08:45 kristaps Changed: mandoc_char.7 (1.44), "Exp", lines: +5 -2 Document the fact that \N'' accepts only printable characters. 2011-05-01 08:38 kristaps Changed: chars.c (1.40), "Exp", lines: +6 -10 Filter all \N'' values with isprint(). Ok schwarze@. 2011-04-30 22:24 kristaps Changed: chars.c (1.39), "Exp", lines: +11 -11 html.c (1.137), "Exp", lines: +4 -5 mandoc.h (1.74), "Exp", lines: +2 -2 term.c (1.186), "Exp", lines: +4 -5 Make mchars_num2char() return a char like it says. 2011-04-30 22:14 kristaps Changed: chars.c (1.38), "Exp", lines: +2 -2 html.c (1.136), "Exp", lines: +2 -2 man_term.c (1.108), "Exp", lines: +2 -2 mandoc.h (1.73), "Exp", lines: +2 -2 mdoc_term.c (1.229), "Exp", lines: +2 -2 Rename mchars_init() -> mchars_alloc() for consistency. 2011-04-30 22:14 kristaps Changed: chars.c (1.37), "Exp", lines: +2 -4 html.c (1.135), "Exp", lines: +2 -2 man_term.c (1.107), "Exp", lines: +2 -2 mandoc.h (1.72), "Exp", lines: +2 -7 mdoc_term.c (1.228), "Exp", lines: +2 -2 Remove enum mcharst, which hasn't been used in quite some time. 2011-04-30 10:18 kristaps Changed: TODO (1.104), "Exp", lines: +2 -2 html.c (1.134), "Exp", lines: +2 -2 index.sgml (1.113), "Exp", lines: +2 -2 mandoc.3 (1.5), "Exp", lines: +3 -3 mandoc.c (1.49), "Exp", lines: +2 -2 mdoc_macro.c (1.109), "Exp", lines: +5 -5 mdoc_validate.c (1.169), "Exp", lines: +2 -2 read.c (1.14), "Exp", lines: +2 -2 roff.7 (1.28), "Exp", lines: +3 -3 No code change: fixing spelling errors. From a patch by uqs@. Thanks! 2011-04-30 09:49 kristaps Changed: Makefile (1.334), "Exp", lines: +2 -0 Was installing libmandoc.a without mandoc.h... 2011-04-29 22:18 kristaps Changed: Makefile (1.333), "Exp", lines: +4 -5 chars.c (1.36), "Exp", lines: +21 -29 html.c (1.133), "Exp", lines: +8 -8 html.h (1.41), "Exp", lines: +2 -2 man_term.c (1.106), "Exp", lines: +2 -2 mandoc.h (1.71), "Exp", lines: +16 -1 mdoc_term.c (1.227), "Exp", lines: +2 -2 out.h (1.20), "Exp", lines: +1 -14 term.c (1.185), "Exp", lines: +7 -7 term.h (1.80), "Exp", lines: +2 -2 Move "chars" interface out of out.h and into mandoc.h. This doesn't change any code but for renaming functions and types to be consistent with other mandoc.h stuff. The reason for moving into libmandoc is that the rendering of special characters is part of mandoc itself---not an external part. From mandoc(1)'s perspective, this changes nothing, but for other utilities, it's important to have these part of libmandoc. Note this isn't documented [yet] in mandoc.3 because there are some parts I'd like to change around beforehand. 2011-04-28 10:44 kristaps Changed: mandoc-db.1 (1.3), "Exp", lines: +4 -2 mandoc-db.c (1.13), "Exp", lines: +21 -3 Let mandoc-db grok `St' tokens. 2011-04-25 00:03 schwarze Changed: mdoc_macro.c (1.108), "Exp", lines: +14 -2 Closing delimiters only suppress spacing when they follow something. Fixing a regression introduced in rev. 1.105. ok and prodding for comments kristaps@. 2011-04-24 23:51 schwarze Changed: roff.c (1.137), "Exp", lines: +2 -3 User defined macros may invoke high-level macros. The latter got lost due to a regression in rev. 1.130. ok kristaps@ 2011-04-24 17:56 schwarze Changed: att.in (1.7), "Exp", lines: +16 -14 st.in (1.16), "Exp", lines: +26 -24 Prevent line breaks right before numbers. Groff does the same. OK kristaps@. 2011-04-23 09:10 kristaps Changed: mdoc_html.c (1.165), "Exp", lines: +2 -2 Revert last change: this screwed up displaying in other pages (didn't test it enough). 2011-04-23 08:56 kristaps Changed: mdoc_html.c (1.164), "Exp", lines: +2 -2 Make the `Nm' -Thtml attribute be min-width instead of width. This is a quick fix for, say, rc.d(8) in OpenBSD, which has nested macros on the `Nm' SYNOPSIS line that were skipped over by the length calculator. This should [maybe?] be a recursive length check, but still it'd need to be a min-width to accomodate for (say) `Qq' and the like printing excess characters post-length-calculation. 2011-04-20 22:50 kristaps Changed: chars.c (1.35), "Exp", lines: +2 -2 chars.in (1.37), "Exp", lines: +3 -1 mandoc_char.7 (1.43), "Exp", lines: +11 -4 Add \*(Ai (ANSI) and \*(Px (POSIX) predefined strings, which are part of groff's tmac.doc package. Originally noted by Matthew Dempsky. Feedback by Jason McIntyre, joerg@, and schwarze@. Also add some documentation about predefined strings, tweaked by schwarze@. 2011-04-19 16:38 kristaps Changed: libmandoc.h (1.20), "Exp", lines: +2 -3 libmdoc.h (1.74), "Exp", lines: +2 -8 man_macro.c (1.62), "Exp", lines: +2 -2 mandoc.c (1.48), "Exp", lines: +4 -14 mdoc_argv.c (1.76), "Exp", lines: +157 -171 mdoc_macro.c (1.107), "Exp", lines: +4 -4 roff.c (1.136), "Exp", lines: +2 -2 Clean up parsing of delimiters in -mdoc. First, remove the "dowarn" variable from mandoc_getarg() so that it prints the warning every time. Then, remove the warning from args_checkpunct(). This way, warnings are being posted at the correct time. This makes the flag argument to mdoc_zargs() superfluous, so make it be zero when it's invoked. Finally, move the args() flags into mdoc_argv.c and make them enums. 2011-04-19 16:30 kristaps Changed: mandoc.3 (1.4), "Exp", lines: +74 -2 Add more documentation bits to mandoc.3. 2011-04-17 13:32 schwarze Changed: TODO (1.103), "Exp", lines: +5 -1 .Pp in .Bl -column 2011-04-17 11:57 schwarze Changed: mdoc.7 (1.186), "Exp", lines: +5 -4 The semantics of .Bk was described incorrectly for the case of multiple sibling macros on a single input line. Issue found investigating a question from sobrado@. "I like this diff" kristaps@ 2011-04-17 09:13 kristaps Changed: mdoc_argv.c (1.75), "Exp", lines: +4 -20 Use mandoc_getarg() for the regular case of processing unquoted arguments in -mdoc documents. 2011-04-17 09:08 kristaps Changed: libmandoc.h (1.19), "Exp", lines: +3 -2 libmdoc.h (1.73), "Exp", lines: +11 -11 man_macro.c (1.61), "Exp", lines: +2 -2 mandoc.c (1.47), "Exp", lines: +7 -6 roff.c (1.135), "Exp", lines: +2 -2 Get mdoc_argv.c ready to use [some of] mandoc_getarg() by giving said function a parameter to suppress warnings. 2011-04-16 23:00 schwarze Changed: TODO (1.102), "Exp", lines: +11 -1 mini-bug at eol after .Bl -column .It 2011-04-16 22:35 schwarze Changed: TODO (1.101), "Exp", lines: +9 -1 lines in tables and .RS/.RE nesting 2011-04-13 16:26 kristaps Changed: roff.c (1.134), "Exp", lines: +25 -34 Check in fix to roff conditional if/else stack running out of space. This transforms the stack pop to occur prior to body execution, instead of afterward. Floated to tech@ without response, but it makes sense that this is alright and doesn't cause problems during extensive testing. 2011-04-13 10:01 kristaps Changed: roff.c (1.133), "Exp", lines: +33 -24 Back out commit to roff.c that needs to go in on its own. 2011-04-13 09:57 kristaps Changed: TODO (1.100), "Exp", lines: +1 -8 roff.c (1.132), "Exp", lines: +25 -34 Remove TODO from prior commit of lifting warnings from `Sh', `Ss', `SH', and `SS' bodies. 2011-04-13 09:57 kristaps Changed: man_validate.c (1.69), "Exp", lines: +5 -8 mdoc_validate.c (1.168), "Exp", lines: +3 -3 Remove the warning for empty bodies of `Sh', `Ss', `SH', and `SS'. This prompted by a TODO by schwarze@, originally from Gleydson Soares, that an empty `SS' was raising an error (it hasn't for some time). It makes sense these shouldn't warn, as omitting their contents doesn't change anything in the structure of the document (groff and mandoc specifically account for the whitespace between empty sections). This doesn't change any manuals, which only refer to the line arguments (or possibly next-line, in the case of man(7) syntax). 2011-04-12 23:54 schwarze Changed: TODO (1.99), "Exp", lines: +8 -1 empty .SS is ok 2011-04-12 14:48 kristaps Changed: mandoc-db.c (1.12), "Exp", lines: +26 -6 Let mandoc-db also collect -man descriptions. 2011-04-11 23:01 kristaps Changed: mandoc-db.1 (1.2), "Exp", lines: +14 -5 Updating mandoc-db manual page with new recno contents. 2011-04-11 22:58 kristaps Changed: example.style.css (1.43), "Exp", lines: +13 -19 Update example.style.css to be a bit more readable by default. 2011-04-11 22:56 kristaps Changed: mandoc-db.c (1.11), "Exp", lines: +80 -30 Have mandoc-db accumulate manual page descriptions (`Nd' in -mdoc parlance) in the index. This allows, with both the btree and index, full emulation of apropos(1) and other goodies. 2011-04-11 21:59 kristaps Changed: read.c (1.13), "Exp", lines: +2 -2 Ignore \# lines alongside \". From groff(7): \# Everything up to and including the next newline is ignored. This is interpreted in copy mode. This is like \" except that the terminating newline is ignored as well. 2011-04-11 21:36 kristaps Changed: mandoc-db.c (1.10), "Exp", lines: +19 -17 Use dbt_xxxx functions to stash both filename and manual section in the value part of the index. This is the actual manual section---before, mandoc.cgi was relying on the file suffix, but this can be (e.g.) .man or whatnot. This is The Correct Way (tm). 2011-04-09 16:43 kristaps Changed: index.css (1.9), "Exp", lines: +26 -33 index.sgml (1.112), "Exp", lines: +357 -399 Tidy up www page: remove all sorts of DIV crap, superfluous CSS, in-line STYLE attributes, and so on. Now renders nicely in lynx. 2011-04-09 15:53 kristaps Changed: mandoc.3 (1.3), "Exp", lines: +43 -2 Skeleton of documentation functions, types, and variables in mandoc.h. 2011-04-09 15:35 kristaps Changed: mandoc.c (1.46), "Exp", lines: +4 -4 Lint catching some potential issues. 2011-04-09 15:29 kristaps Changed: html.c (1.132), "Exp", lines: +42 -47 libmandoc.h (1.18), "Exp", lines: +1 -2 man_validate.c (1.68), "Exp", lines: +31 -25 mandoc.c (1.45), "Exp", lines: +306 -142 mandoc.h (1.70), "Exp", lines: +17 -1 mdoc_validate.c (1.167), "Exp", lines: +20 -12 out.c (1.40), "Exp", lines: +1 -238 out.h (1.19), "Exp", lines: +1 -18 read.c (1.12), "Exp", lines: +2 -2 term.c (1.184), "Exp", lines: +62 -51 Remove a2roffdeco() and mandoc_special() functions and replace them with a public (mandoc.h) function mandoc_escape(), which merges the functionality of both prior functions. Reason: code duplication. The a2roffdeco() and mandoc_special() functions were pretty much the same thing and both quite complex. This allows one function to receive improvements in (e.g.) subexpression handling and performance, instead of having to replicate functionality. As such, the mandoc_escape() function already handles a superset of the escapes handled in previous versions and has improvements in performance (using strcspn(), for example) and reliable handling of subexpressions. This code Works For Me, but may need work to catch any regressions. Since the benefits are great (leaner code, simpler API), I'd rather have it in-tree than floating as a patch. 2011-04-07 01:08 joerg Changed: mdoc_argv.c (1.74), "Exp", lines: +13 -13 tbl_layout.c (1.19), "Exp", lines: +6 -6 Don't shadow global identifiers. 2011-04-06 11:39 kristaps Changed: mdoc.7 (1.185), "Exp", lines: +83 -62 First, properly escape periods with \&. Then consistently refer to non-macro lines as "text lines" (after defining them as such). Clean up notion of font scope. Note comma usage in multiple `Nm's. Note ordering of SYNOPSIS section stuff. Add some bits about DESCRIPTION syntax (brief description, then args). Note that `Bl' can also contain HEAD. Finally, fix some `Cm' entries to be properly `Ar'. Ok Jason McIntyre. 2011-04-05 22:22 schwarze Changed: roff.c (1.131), "Exp", lines: +4 -6 On .de macro lines, after the macro name, space and tab are equivalent. Bug reported by Tristan dot LeGuern at gmail dot com in fvwm2(1). tweaks and ok kristaps@; earlier version looked good to espie@ as well 2011-04-05 14:16 kristaps Changed: mandoc-db.c (1.9), "Exp", lines: +15 -19 Lint-checks over mandoc-db.c. 2011-04-05 14:10 kristaps Changed: mandoc-db.c (1.8), "Exp", lines: +57 -17 Use a little more horsepower in parsing out NAME sections from -man manuals. This covers the majority case. 2011-04-05 13:12 kristaps Changed: mandoc-db.c (1.7), "Exp", lines: +2 -2 Fix type- and NULL-check to be correct node (last, not child). Prevents segfault in NetBSD. 2011-04-05 13:09 kristaps Changed: mandoc-db.c (1.6), "Exp", lines: +78 -4 Add mandoc-db.c checking for utility-name in NAME section of -man documents. 2011-04-05 09:34 kristaps Changed: Makefile (1.332), "Exp", lines: +1 -0 Make sure to create LIBDIR. From a patch by Thomas Klausner, thanks! 2011-04-04 23:04 kristaps Changed: read.c (1.11), "Exp", lines: +5 -1 tbl.c (1.25), "Exp", lines: +5 -1 tbl_layout.c (1.18), "Exp", lines: +5 -1 tbl_opts.c (1.11), "Exp", lines: +5 -1 Add config.h Glue for OpenIndiana (and older OpenSolaris) to build. From a patch by Yuri Pankov, thanks! 2011-04-04 22:38 kristaps Changed: mdoc_html.c (1.163), "Exp", lines: +2 -1 Suppress a space following the "(" for -T[x]html `Fn'. Found by random perusal of online manuals. 2011-04-04 22:05 tag VERSION_1_11_1 2011-04-04 22:05 kristaps Changed: Makefile (1.331), "Exp", lines: +4 -0 Snafu: forgetting to tar up critical files. Pointed out by Yuri Pankov. 2011-04-04 21:14 kristaps Changed: term.c (1.183), "Exp", lines: +2 -4 Remove an unused variable (caught in lint-check) 2011-04-04 21:07 kristaps Changed: Makefile (1.330), "Exp", lines: +2 -2 index.sgml (1.111), "Exp", lines: +2 -2 Version up to 1.11.1: here we go! 2011-04-04 16:49 kristaps Changed: mandoc-db.c (1.5), "Exp", lines: +3 -3 Have `Fd' detection in mandoc-db also look for local includes (i.e., those that are quoted and not angular-bracketed). 2011-04-04 16:48 kristaps Changed: mdoc_html.c (1.162), "Exp", lines: +53 -5 Have `Fd' in -T[x]html generate an "include" link if it detects one being used. 2011-04-04 16:44 kristaps Changed: mdoc_html.c (1.161), "Exp", lines: +3 -2 Fix a bug that slip in: PAIR_XXXX macros expanded to run the increment twice. 2011-04-04 16:27 kristaps Changed: mdoc_term.c (1.226), "Exp", lines: +14 -7 Last low-hanging removal of superfluous variable assignments. 2011-04-04 16:21 kristaps Changed: mdoc_term.c (1.225), "Exp", lines: +10 -10 Clean up superfluous variables in `Xr' handling in -Tascii. 2011-04-04 16:15 kristaps Changed: mdoc_html.c (1.160), "Exp", lines: +20 -15 mdoc_term.c (1.224), "Exp", lines: +16 -13 Fully fix the `Rv' and `Ex' handlers for -T[x]html and -Tascii. This includes an unreported bug where `Ex' wasn't properly adding a newline. 2011-04-04 16:05 kristaps Changed: mdoc_term.c (1.223), "Exp", lines: +16 -11 Clean up -Tascii in the same way as -T[x]html regarding `Rv' arguments. 2011-04-04 16:01 kristaps Changed: mdoc_html.c (1.159), "Exp", lines: +27 -20 Make `Rv' do the Right Thing regarding commas and "and" when listing its output. This also makes it easier to read. While here, remove superfluous assignment to local variables for this and `Mt'. 2011-04-04 15:46 kristaps Changed: Makefile (1.329), "Exp", lines: +1 -1 Roll back Linux-ism that crept into Makefile. 2011-04-04 15:45 kristaps Changed: Makefile (1.328), "Exp", lines: +1 -1 mdoc_html.c (1.158), "Exp", lines: +12 -10 Fix possible segfaults in `Lk' -T[x]html handler, which made some assumptions about its children. Also remove superfluous reassignment to local variable. 2011-04-04 15:41 kristaps Changed: mdoc_html.c (1.157), "Exp", lines: +21 -23 Clean-up in -T[x]html: remove some unnecessary assignments to local variables. 2011-04-04 15:33 kristaps Changed: mdoc_html.c (1.156), "Exp", lines: +29 -12 Clean up handling of `In' for -T[x]html such that it only links to the first argument. groff of course doesn't do links, but it will uglify subsequent arguments in the list (we warn about >1, anyway). 2011-04-04 10:53 kristaps Added: mandoc-db.1 (1.1) Changed: mandoc-db.c (1.4), "Exp", lines: +18 -17 Add manual page for mandoc-db (mostly to document the file format of the generated index and keyword databases). Add some documentation within mandoc-db.c. 2011-04-03 14:18 kristaps Changed: mandoc-db.c (1.3), "Exp", lines: +84 -60 Have mandoc-db create an recno-addressed index of files alongside the keyword database, which references the index of hard-coding files. 2011-04-03 10:14 kristaps Changed: Makefile (1.327), "Exp", lines: +3 -3 mandoc-db.c (1.2), "Exp", lines: +38 -30 Have mandoc-db use config.h for strlcat(). Then create the btree database from a directory, instead of a path. This is because it'll also output an index of files to that same directory. Add documentation to the local variable names, too. 2011-04-03 10:11 kristaps Changed: read.c (1.10), "Exp", lines: +3 -1 If wlevel in mparse_alloc() is greater than MANDOCLEVEL_FATAL, we'll throw assertions due to per-file-error not being properly set in mmsg(). This is reasonable behaviour (we shouldn't be able to ignore FATAL after all). Thus, make sure wlevel is sanitised. 2011-04-03 10:05 kristaps Changed: read.c (1.9), "Exp", lines: +5 -3 Allow mparse_result() pointers to be NULL. 2011-04-03 09:53 kristaps Changed: mdoc_validate.c (1.166), "Exp", lines: +2 -2 Make uname have its return value checked for -1 (POSIX style), not non-zero. From a PR by Yuri Pankov, ok schwarze@. 2011-04-02 15:40 kristaps Added: mandoc-db.c (1.1) Changed: Makefile (1.326), "Exp", lines: +14 -0 Add an initial keyword-indexer as an alternative front-end to libmandoc.a. This will be used during BSDCan-2011, paired with a web front-end, as a demonstrandum of semantic annotations (mdoc) versus those of man. This isn't linked to the build in any way but for cleaning created files. This code has been heavily tested under valgrind and is known to work on GNU/Linux (needs -ldb library), all BSDs, and Mac OSX. Please don't repost this, for the time being, as I don't want to spoil the fun for the conference. This utility is still constantly under development (e.g., it will also generate a recno database of filenames and `Nd' output so that paths needn't be hard-coded) but is mature enough to warrant being checked in. 2011-04-01 19:50 kristaps Changed: mdoc.7 (1.184), "Exp", lines: +3 -3 In reality `In' only accepts one argument. Subsequent ones are not included in the brackets. We really should have a warning about this, but that'll wait for another day. 2011-04-01 19:47 kristaps Changed: mdoc.7 (1.183), "Exp", lines: +5 -5 Properly quote arguments in `Fn' documentation. Also make standalone '...' have a properly-escaped initial dot. 2011-03-31 10:54 kristaps Changed: read.c (1.8), "Exp", lines: +3 -2 Allow a NULL mmsg passed to libmandoc. 2011-03-31 10:53 kristaps Changed: main.c (1.161), "Exp", lines: +2 -2 Make -Werr be -Wlevel, keeping it in sync with mandoc.1. Noted by Alexander Schrijver---thanks! 2011-03-30 00:02 schwarze Changed: TODO (1.98), "Exp", lines: +49 -1 naddy@ reports rsync(1) 2011-03-29 09:37 kristaps Changed: Makefile (1.325), "Exp", lines: +77 -20 Add lint target to Makefile. 2011-03-29 09:29 kristaps Changed: index.sgml (1.110), "Exp", lines: +22 -1 Getting ready for next [minor-number] release. 2011-03-29 09:00 kristaps Changed: TODO (1.97), "Exp", lines: +1 -6 roff.c (1.130), "Exp", lines: +22 -30 Carefully let mandoc_getcontrol() handle libroff's detection of a macro line. Note that we now properly ignore \.", which earlier would have been pushed through macro detection. This required attention to all entries of roff_parse(). This removes a TODO by schwarze@ to the effect that \. can be a control character, which is now handled in mandoc_getcontrol(). 2011-03-29 08:30 kristaps Changed: man.c (1.107), "Exp", lines: +23 -47 Make libman use mandoc_getcontrol() for real this time. 2011-03-28 23:52 kristaps Changed: libmandoc.h (1.17), "Exp", lines: +2 -1 mandoc.c (1.44), "Exp", lines: +26 -1 mdoc.c (1.188), "Exp", lines: +25 -42 Have libman and libmdoc use mandoc_getcontrol() to determine whether a macro has been invoked. libroff is next. 2011-03-28 21:49 kristaps Changed: Makefile (1.324), "Exp", lines: +1 -1 main.c (1.160), "Exp", lines: +3 -120 mandoc.3 (1.2), "Exp", lines: +13 -3 mandoc.h (1.69), "Exp", lines: +3 -1 read.c (1.7), "Exp", lines: +132 -1 Put mandocerrs and mandoclevels arrays into libmandoc with accessors mparse_strerror() and mparse_strlevel(). 2011-03-23 22:16 schwarze Changed: TODO (1.96), "Exp", lines: +7 -6 new: \. at the beginning of a line partially done: date cleanup 2011-03-23 15:46 kristaps Changed: mdoc_argv.c (1.73), "Exp", lines: +69 -38 As per joerg@'s suggestion, use const arrays when looking up mdoc argvs. 2011-03-23 15:33 kristaps Deleted: man_argv.c (1.9) Changed: Makefile (1.323), "Exp", lines: +0 -2 libman.h (1.51), "Exp", lines: +1 -8 man_macro.c (1.60), "Exp", lines: +21 -4 Merge man_args() into man_macro.c, the only place where it's called, and make its return value boolean (we don't care about QWORD). We can move it into mdoc_macro.c because it's basically just a wrapper around mandoc_getarg(). Then blow away man_argv.c, which is left empty. 2011-03-23 12:40 kristaps Changed: libman.h (1.50), "Exp", lines: +9 -7 man_argv.c (1.8), "Exp", lines: +2 -4 man_macro.c (1.59), "Exp", lines: +7 -21 First, make -man ARGS_EOLN et al. be an enum. Second, remove ARGS_ERROR, as it is never returned by man_args(). Then clean up invocations of man_args() to only check for ARGS_EOLN. 2011-03-23 12:33 kristaps Changed: libman.h (1.49), "Exp", lines: +2 -1 man.c (1.106), "Exp", lines: +18 -1 man.h (1.58), "Exp", lines: +3 -1 tree.c (1.37), "Exp", lines: +6 -1 Add MAN_TAIL, which will be used by `UE' (forthcoming) and needs to be used for `RE'. 2011-03-23 12:32 kristaps Changed: Makefile (1.322), "Exp", lines: +1 -1 Fix "libman" dependence. 2011-03-23 09:47 kristaps Changed: TODO (1.95), "Exp", lines: +1 -7 main.c (1.159), "Exp", lines: +2 -2 mandoc.h (1.68), "Exp", lines: +2 -2 Make (e.g.) `SM' before `B' be only a warning. In reality, this refers to ELINE macros ("next-line", but not unbreakable like the next-line paragraph macros) followed by other macros. This addresses a report by Christian Weisgerber, posted in the TODO by schwarze@, and aired on discuss@ (22/03/2011) for whether a fix is warranted. 2011-03-22 15:30 kristaps Changed: TODO (1.94), "Exp", lines: +1 -5 index.sgml (1.109), "Exp", lines: +2 -2 man_validate.c (1.67), "Exp", lines: +5 -3 Make empty sections and parts (SH, SS, RS) only produce a warning if it has no children. Noted by Brad, added to TODO by schwarze@. 2011-03-22 14:33 kristaps Changed: arch.c (1.9), "Exp", lines: +2 -1 att.c (1.9), "Exp", lines: +2 -1 lib.c (1.9), "Exp", lines: +2 -1 libman.h (1.48), "Exp", lines: +1 -3 libmdoc.h (1.72), "Exp", lines: +1 -3 man.c (1.105), "Exp", lines: +2 -1 man_argv.c (1.7), "Exp", lines: +2 -2 man_hash.c (1.24), "Exp", lines: +2 -1 man_macro.c (1.58), "Exp", lines: +2 -1 man_validate.c (1.66), "Exp", lines: +2 -1 mdoc.c (1.187), "Exp", lines: +2 -1 mdoc_argv.c (1.72), "Exp", lines: +2 -1 mdoc_hash.c (1.17), "Exp", lines: +2 -1 mdoc_macro.c (1.106), "Exp", lines: +2 -1 mdoc_validate.c (1.165), "Exp", lines: +2 -1 msec.c (1.9), "Exp", lines: +2 -1 st.c (1.9), "Exp", lines: +2 -1 vol.c (1.9), "Exp", lines: +2 -1 libmdoc.h and libman.h were including mdoc.h and man.h, respectively. Don't have them do that (includes in header files = faugh), and have individual files directly include these files. 2011-03-22 14:28 kristaps Changed: libmdoc.h (1.71), "Exp", lines: +1 -2 mdoc_argv.c (1.71), "Exp", lines: +5 -4 mdoc_argn_free is only used local to mdoc_argv.c, so make it static. 2011-03-22 14:05 kristaps Changed: html.c (1.131), "Exp", lines: +1 -9 libmandoc.h (1.16), "Exp", lines: +10 -13 libmdoc.h (1.70), "Exp", lines: +21 -1 mandoc.c (1.43), "Exp", lines: +1 -51 mandoc.h (1.67), "Exp", lines: +1 -19 mdoc.c (1.186), "Exp", lines: +45 -1 mdoc.h (1.122), "Exp", lines: +3 -1 mdoc_argv.c (1.70), "Exp", lines: +3 -3 mdoc_html.c (1.155), "Exp", lines: +22 -5 mdoc_macro.c (1.105), "Exp", lines: +48 -25 mdoc_term.c (1.222), "Exp", lines: +28 -6 term.c (1.182), "Exp", lines: +1 -8 Move mandoc_isdelim() back into libmdoc.h. This fixes an unreported error where (1) -man pages were punctuating delimiters (e.g., `.B a ;') and where (2) standalone punctuation in -mdoc or -man (e.g., ";" on its own line) would also be punctuated. This introduces a small amount of complexity of mdoc_{html,term}.c must manage their own spacing with running print_word() or print_text(). The check for delimiting now happens in mdoc_macro.c's dword(). 2011-03-22 13:28 kristaps Changed: man.h (1.57), "Exp", lines: +2 -17 mdoc.h (1.121), "Exp", lines: +76 -117 Add some documentation and clean up mdoc.h/man.h. 2011-03-22 13:28 kristaps Changed: Makefile (1.321), "Exp", lines: +4 -4 Have the default include/lib install path end with "mandoc" to prevent clobbering other stuff that may have the same name. 2011-03-22 13:15 kristaps Changed: Makefile (1.320), "Exp", lines: +2 -2 index.sgml (1.108), "Exp", lines: +7 -3 Note the TODO file on the website. Also install index.html (oops). 2011-03-22 10:35 kristaps Changed: main.c (1.158), "Exp", lines: +2 -1 mandoc.h (1.66), "Exp", lines: +2 -1 read.c (1.6), "Exp", lines: +3 -8 Add a FATAL error for when no manual type was assigned (you can repeat this for yourself by having a file consisting only of comments). 2011-03-22 10:30 kristaps Changed: index.sgml (1.107), "Exp", lines: +3 -3 Be a bit more specific on where we compile. Are there any ANSI-C compilers where we don't compile? I'm pretty sure that mmap() is non-standard (we'll fail, e.g., on mingw32). 2011-03-22 10:20 kristaps Deleted: ChangeLog.xsl (1.5) As mentioned: ChangeLog isn't being built any more. 2011-03-22 10:20 kristaps Changed: Makefile (1.319), "Exp", lines: +275 -313 Step 5: re-write Makefile and relax. This restructures the Makefile to do actual dependency checking for headers and to build everything nicer (www properly depends on mandoc, etc.). Note that the ChangeLog isn't being built any more: if people are interested, they can visit the source-changes mailing list archive. 2011-03-22 10:13 kristaps Deleted: chars.h (1.8) Changed: Makefile (1.318), "Exp", lines: +4 -4 chars.c (1.34), "Exp", lines: +2 -2 html.c (1.130), "Exp", lines: +1 -2 man_term.c (1.105), "Exp", lines: +1 -2 mdoc_term.c (1.221), "Exp", lines: +1 -2 out.h (1.18), "Exp", lines: +45 -32 term.c (1.181), "Exp", lines: +1 -2 Step 4: merge chars.h into out.h. The functions in this file are necessary to all [real] front-ends, so stop pretending it's special. While here, add some documentation to the variable types. 2011-03-22 10:02 kristaps Deleted: man.3 (1.31) mdoc.3 (1.58) roff.3 (1.11) Added: mandoc.3 (1.1) Changed: Makefile (1.317), "Exp", lines: +17 -17 index.sgml (1.106), "Exp", lines: +25 -39 libmandoc.h (1.15), "Exp", lines: +2 -2 Step 3: consolidate manuals. The parse functions in mdoc.h, roff.h, and man.h are now part of libmandoc.h, so remove these from their respective manuals (they're no longer public-facing and we don't need a libmandoc.3 (yet?)). Before that, move the juicy data (parse tree syntax) into new-born mandoc.3. Peck around in Makefile and index.sgml to reflect reality. 2011-03-22 09:50 kristaps Deleted: roff.h (1.27) Changed: Makefile (1.316), "Exp", lines: +3 -3 read.c (1.5), "Exp", lines: +1 -2 roff.c (1.129), "Exp", lines: +1 -2 Step 2: blow away roff.h, as all of its functions have been moved into libmandoc.h and there's nothing left. 2011-03-22 09:48 kristaps Changed: eqn.c (1.4), "Exp", lines: +1 -2 libmandoc.h (1.14), "Exp", lines: +90 -11 man.h (1.56), "Exp", lines: +1 -10 mandoc.h (1.65), "Exp", lines: +1 -37 mdoc.h (1.120), "Exp", lines: +1 -10 roff.h (1.26), "Exp", lines: +1 -24 tbl.c (1.24), "Exp", lines: +1 -2 Step 1 of restructuring: libmandoc.h. Move all compiler-set-specific stuff into libmandoc.h, including old mdoc.h/man.h/roff.h functions now used by read.c. The motivation behind this is to tighten the relationship between the underlying compilers while keeping parse data hidden from general callers (e.g., main.c). While here, also move register values from mandoc.h into libmandoc.h as noted by schwarze@. See above for explanation. 2011-03-21 12:04 kristaps Changed: main.c (1.157), "Exp", lines: +1 -2 main.c doesn't need roff.h anymore. 2011-03-20 16:05 kristaps Changed: main.c (1.156), "Exp", lines: +2 -22 mandoc.h (1.64), "Exp", lines: +2 -5 read.c (1.4), "Exp", lines: +2 -13 Let read.c worry about the currently-open file instead of having this information duplicated in main.c. For the time being, remove evt_close and evt_open, as the only known mparse interface (main.c) doesn't need them. 2011-03-20 16:02 kristaps Changed: libman.h (1.47), "Exp", lines: +4 -7 libmandoc.h (1.13), "Exp", lines: +11 -7 libmdoc.h (1.69), "Exp", lines: +5 -8 libroff.h (1.20), "Exp", lines: +3 -7 main.c (1.155), "Exp", lines: +9 -30 man.c (1.104), "Exp", lines: +7 -22 man.h (1.55), "Exp", lines: +2 -2 man_argv.c (1.6), "Exp", lines: +2 -2 man_macro.c (1.57), "Exp", lines: +2 -1 man_validate.c (1.65), "Exp", lines: +13 -10 mandoc.c (1.42), "Exp", lines: +9 -9 mandoc.h (1.63), "Exp", lines: +5 -5 mdoc.c (1.185), "Exp", lines: +7 -23 mdoc.h (1.119), "Exp", lines: +2 -2 mdoc_macro.c (1.104), "Exp", lines: +9 -8 mdoc_validate.c (1.164), "Exp", lines: +11 -11 read.c (1.3), "Exp", lines: +62 -27 roff.c (1.128), "Exp", lines: +29 -31 roff.h (1.25), "Exp", lines: +2 -2 tbl.c (1.23), "Exp", lines: +11 -8 tbl_data.c (1.24), "Exp", lines: +8 -5 tbl_layout.c (1.17), "Exp", lines: +19 -11 tbl_opts.c (1.10), "Exp", lines: +16 -10 Consolidate messages. Have all parse-time messages (in libmdoc, libroff, etc., etc.) route into mandoc_msg() and mandoc_vmsg(), for the time being in libmandoc.h. This requires struct mparse to be passed into the allocation routines instead of mandocmsg and a void pointer. Then, move some of the functionality of the old mmsg() into read.c's mparse_mmsg() (check against wlevel and setting of file_status) and use main.c's mmsg() as simply a printing tool. 2011-03-20 11:43 kristaps Changed: read.c (1.2), "Exp", lines: +2 -2 Change around include ordering for compilation on OpenBSD. 2011-03-20 11:41 kristaps Added: read.c (1.1) Changed: Makefile (1.315), "Exp", lines: +3 -3 main.c (1.154), "Exp", lines: +70 -605 mandoc.h (1.62), "Exp", lines: +26 -1 Split the document parsing sequence out of main.c and into read.c, putting the interface into mandoc.h. This effectively makes the function of main.c be command-line handling, invoking the parser, and sending its output to the output handler. The sequence of parsing (pfile(), pdesc(), etc.) has changed very little but for clean-up of some state variables (curp->fd, etc.). 2011-03-20 11:07 kristaps Changed: Makefile (1.314), "Exp", lines: +2 -2 Bumped internal version. There will be no formal release with this: it precedes some major structural changes for easier roll-back in the case of errors or whatnot. 2011-03-19 23:36 tag VERSION_1_10_10 2011-03-19 23:36 schwarze Changed: TODO (1.93), "Exp", lines: +5 -1 .RS w/o line args is not serious 2011-03-17 15:12 kristaps Changed: eqn.7 (1.2), "Exp", lines: +15 -2 tbl.7 (1.13), "Exp", lines: +9 -2 Note the development status of eqn.7 and tbl.7. 2011-03-17 14:50 kristaps Changed: mdoc.7 (1.182), "Exp", lines: +14 -11 "Reserved Characters" isn't correct since `\.' and `\*(Ba' aren't characters. Use "Reserved Terms" instead. 2011-03-17 12:14 kristaps Changed: mdoc_validate.c (1.163), "Exp", lines: +2 -2 Note that mdoc_valids[] is static. 2011-03-17 12:08 kristaps Changed: main.c (1.153), "Exp", lines: +4 -6 mandoc.h (1.61), "Exp", lines: +2 -2 mandocmsg finally has no return value. 2011-03-17 11:56 kristaps Changed: libman.h (1.46), "Exp", lines: +2 -2 man.c (1.103), "Exp", lines: +3 -3 man_macro.c (1.56), "Exp", lines: +12 -13 man_validate.c (1.64), "Exp", lines: +3 -4 Clean-up in libman: make all calls to man_*msg not check return value. Also convert man_vmsg to return void. 2011-03-17 11:30 kristaps Changed: libmdoc.h (1.68), "Exp", lines: +2 -2 mdoc.c (1.184), "Exp", lines: +3 -3 mdoc_macro.c (1.103), "Exp", lines: +10 -11 mdoc_validate.c (1.162), "Exp", lines: +7 -8 Clean-up in libmdoc: fix last checks for mdoc_*msg return value, then make mdoc_vmsg not return an int. libmdoc is now completely clean of return-value checks from the message subsystem. 2011-03-17 11:09 kristaps Changed: mdoc_argv.c (1.69), "Exp", lines: +22 -28 Clean-up in mdoc_argv.c args_checkpunct(). 2011-03-17 10:59 kristaps Changed: mdoc_argv.c (1.68), "Exp", lines: +18 -34 Clean-up in mdoc_argv.c: make CPP-defines into an enum, document, make static arrays const, properly abort() for bogus switch cases, and be obsessive about spacing and (void)-casting. 2011-03-17 10:41 kristaps Changed: mdoc_argv.c (1.67), "Exp", lines: +7 -14 Clean up mdoc_pmsg invocations to make them not check the return value. 2011-03-17 09:28 kristaps Changed: libmdoc.h (1.67), "Exp", lines: +1 -4 Kill off some unused function prototypes. 2011-03-17 09:25 kristaps Deleted: mdoc_strings.c (1.29) Changed: Makefile (1.313), "Exp", lines: +3 -5 Kill off mdoc_strings.c, which is now empty. Byeeeeeeeee! 2011-03-17 09:24 kristaps Changed: mdoc_strings.c (1.28), "Exp", lines: +1 -93 mdoc_validate.c (1.161), "Exp", lines: +97 -4 Move mdoc_macro2len() into mdoc_validate.c as macro2len(), as that's the only place that it's being used. 2011-03-17 09:22 kristaps Changed: libmdoc.h (1.66), "Exp", lines: +1 -2 mdoc_strings.c (1.27), "Exp", lines: +1 -39 mdoc_validate.c (1.160), "Exp", lines: +39 -2 Move mdoc_str2sec() into mdoc_validate.c as a2sec(), as that's the only place that it's being used. 2011-03-17 09:18 kristaps Changed: mandoc.c (1.41), "Exp", lines: +3 -3 Tiny optimisation in mandoc_isdelim() check. 2011-03-17 09:16 kristaps Changed: TODO (1.92), "Exp", lines: +1 -10 html.c (1.129), "Exp", lines: +6 -38 libmdoc.h (1.65), "Exp", lines: +1 -10 mandoc.c (1.40), "Exp", lines: +52 -6 mandoc.h (1.60), "Exp", lines: +19 -1 mdoc_argv.c (1.66), "Exp", lines: +3 -3 mdoc_macro.c (1.102), "Exp", lines: +8 -8 mdoc_strings.c (1.26), "Exp", lines: +1 -45 term.c (1.180), "Exp", lines: +6 -38 Move mdoc_isdelim() into mandoc.h as mandoc_isdelim(). This allows the removal of manual delimiter checks in html.c and term.c. Finally, add the escaped period as a closing delimiter, removing a TODO to this effect. 2011-03-17 08:49 kristaps Changed: chars.c (1.33), "Exp", lines: +3 -12 html.c (1.128), "Exp", lines: +3 -11 libmandoc.h (1.12), "Exp", lines: +1 -4 main.c (1.152), "Exp", lines: +2 -6 mandoc.h (1.59), "Exp", lines: +7 -7 out.c (1.39), "Exp", lines: +2 -2 term.c (1.179), "Exp", lines: +3 -12 term_ps.c (1.48), "Exp", lines: +2 -7 Move mandoc_{realloc,malloc,calloc} out of libmandoc.h and into mandoc.h so that everybody can use them. This follows the convention of libXXXX.h being internal to a library and XXXX.h being the external interface. Not only does this allow the removal of lots of redundant NULL-checking code, it also sets the tone for adding new mandoc-global routines. 2011-03-17 01:23 kristaps Changed: libmdoc.h (1.64), "Exp", lines: +2 -2 mdoc_argv.c (1.65), "Exp", lines: +34 -19 mdoc_strings.c (1.25), "Exp", lines: +28 -41 Make args_checkpunct() use mdoc_isdelim() instead of mdoc_iscdelim(), which is wrong. Then remove mdoc_iscdelim() alltogether. 2011-03-17 00:58 kristaps Changed: mdoc_argv.c (1.64), "Exp", lines: +42 -25 Move check for closing punctuation into its own function. This will later be modified to remove the need for iscdelim(), which will be used to unify delimiter checks, which will then allow for the simple removal of a TODO regarding escaped periods. 2011-03-16 22:49 schwarze Changed: chars.in (1.36), "Exp", lines: +2 -2 o diaeresis is 246 (U+00F6) from Christian Weisgerber <naddy at openbsd dot org> 2011-03-16 17:55 kristaps Changed: mdoc_argv.c (1.63), "Exp", lines: +43 -74 Instead of a series of hard-coded strcmps, make argv_a2arg() iterate over an array of possible argument types, hooking in to mdoc_argnames[]. This knocks off bytes for the duplicated strings and cleans up code readability. 2011-03-16 15:28 kristaps Changed: main.c (1.151), "Exp", lines: +8 -7 Push exit_status into struct curparse alongside file_status. 2011-03-15 16:23 kristaps Changed: eqn.c (1.3), "Exp", lines: +2 -1 html.c (1.127), "Exp", lines: +2 -3 main.c (1.150), "Exp", lines: +2 -2 mandoc.c (1.39), "Exp", lines: +2 -2 mdoc_validate.c (1.159), "Exp", lines: +3 -2 out.c (1.38), "Exp", lines: +3 -2 roff.c (1.127), "Exp", lines: +5 -5 tbl_data.c (1.23), "Exp", lines: +5 -3 tbl_opts.c (1.9), "Exp", lines: +2 -2 term.c (1.178), "Exp", lines: +2 -2 Make lint shut up a little bit. 2011-03-15 16:15 kristaps Changed: main.c (1.149), "Exp", lines: +1 -2 Remove duplicate UNCONST definition. 2011-03-15 13:24 kristaps Changed: main.c (1.148), "Exp", lines: +28 -29 Clean-up: make file_status global be local to curparse. "I agree with the direction of this particular patch", schwarze@. 2011-03-15 13:23 kristaps Changed: mdoc.c (1.183), "Exp", lines: +3 -1 Plug memory leak of normalised-date field. 2011-03-15 03:03 schwarze Changed: mandoc.c (1.38), "Exp", lines: +24 -18 my $buf = "string"; return $string; is cool in Perl, but not in C; found by Ulrich Spoerlein <uqs at freebsd> using the clang static analyzer; "ok, but please document the numbers" kristaps@ 2011-03-07 01:58 schwarze Changed: term_ps.c (1.47), "Exp", lines: +1 -3 Do not leak information about the software used into PostScript and PDF documents behind the user's back. Joerg Sonnenberger pointed out that almost all software creating PostScript and PDF documents does so, even on OpenBSD, but that doesn't make the leakage much better in my book. According to all standards i could find, this information is optional. Issue originally reported by deraadt@; "commit!" kristaps@. 2011-03-07 01:35 schwarze Changed: libmandoc.h (1.11), "Exp", lines: +2 -6 main.c (1.147), "Exp", lines: +3 -2 man.7 (1.99), "Exp", lines: +19 -27 man.c (1.102), "Exp", lines: +4 -4 man.h (1.54), "Exp", lines: +3 -4 man_html.c (1.70), "Exp", lines: +3 -9 man_term.c (1.104), "Exp", lines: +3 -9 man_validate.c (1.63), "Exp", lines: +16 -24 mandoc.c (1.37), "Exp", lines: +49 -30 mandoc.h (1.58), "Exp", lines: +3 -2 mdoc.7 (1.181), "Exp", lines: +39 -43 mdoc.c (1.182), "Exp", lines: +5 -4 mdoc.h (1.118), "Exp", lines: +3 -3 mdoc_html.c (1.154), "Exp", lines: +2 -5 mdoc_term.c (1.220), "Exp", lines: +6 -10 mdoc_validate.c (1.158), "Exp", lines: +13 -15 out.h (1.17), "Exp", lines: +1 -3 Clean up date handling, as a first step to get rid of the frequent petty warnings in this area: - always store dates as strings, not as seconds since the Epoch - for input, try the three most common formats everywhere - for unrecognized format, just pass the date though verbatim - when there is no date at all, still use the current date Originally triggered by a one-line patch from Tim van der Molen, <tbvdm at xs4all dot nl>, which is included here. Feedback and OK on manual parts from jmc@. "please check this in" kristaps@ 2011-02-27 14:17 schwarze Changed: TODO (1.91), "Exp", lines: +10 -2 date handling needs cleanup 2011-02-24 14:30 kristaps Changed: Makefile (1.312), "Exp", lines: +4 -4 Allow compilation with pcc, which has interesting/broken handling of -W with missing function prototypes. Ok joerg@. 2011-02-09 22:53 schwarze Changed: mandoc_char.7 (1.42), "Exp", lines: +33 -25 Clean up the COMPATIBILITY section; heavily based on a patch from kristaps@ with some tweaks by me. - Also talk about -Tps and -Tpdf. - Use the same list style as in the other mandoc manuals. - Replace a few macros by ones better suited. - Some improvements of wording. ok jmc@ kristaps@ 2011-02-09 10:03 kristaps Added: eqn.7 (1.1) Changed: Makefile (1.311), "Exp", lines: +9 -8 TODO (1.90), "Exp", lines: +1 -7 man.7 (1.98), "Exp", lines: +3 -2 mandoc.1 (1.85), "Exp", lines: +3 -2 mdoc.7 (1.180), "Exp", lines: +3 -2 roff.7 (1.27), "Exp", lines: +24 -1 Add stub for eqn.7 manual and flip it on. Also note COMPATIBILITY issue of how we considered .TS (etc.) macros and how the preprocessors do. 2011-02-09 09:52 kristaps Changed: example.style.css (1.42), "Exp", lines: +5 -1 man_html.c (1.69), "Exp", lines: +8 -2 man_term.c (1.103), "Exp", lines: +2 -1 mdoc_html.c (1.153), "Exp", lines: +8 -2 mdoc_term.c (1.219), "Exp", lines: +2 -1 style.css (1.21), "Exp", lines: +12 -7 EQN blocks are now printed in all modes. This is simply a printing of the concatenated string (in -T[x]html, it gets a SPAN, too). 2011-02-09 09:33 kristaps Changed: main.c (1.146), "Exp", lines: +14 -14 Consolidate "rc" value in main.c around addspan, addeqn, and parseln. 2011-02-09 09:18 kristaps Changed: main.c (1.145), "Exp", lines: +6 -3 man.3 (1.30), "Exp", lines: +13 -2 man.c (1.101), "Exp", lines: +17 -1 man.h (1.53), "Exp", lines: +3 -1 man_validate.c (1.62), "Exp", lines: +3 -1 mdoc.3 (1.57), "Exp", lines: +4 -2 mdoc_validate.c (1.157), "Exp", lines: +3 -1 tree.c (1.36), "Exp", lines: +2 -2 Allow -man to process EQN as well. Also fix a segfault in missing case statements in the post-handler for EQN in -mdoc and -man. 2011-02-09 09:05 kristaps Changed: eqn.c (1.2), "Exp", lines: +3 -3 libroff.h (1.19), "Exp", lines: +1 -3 main.c (1.144), "Exp", lines: +4 -1 mandoc.h (1.57), "Exp", lines: +3 -1 mdoc.3 (1.56), "Exp", lines: +11 -2 mdoc.c (1.181), "Exp", lines: +25 -1 mdoc.h (1.117), "Exp", lines: +4 -1 roff.c (1.126), "Exp", lines: +2 -2 roff.h (1.24), "Exp", lines: +2 -1 tree.c (1.35), "Exp", lines: +2 -2 Allow EQN data to be pushed down into libmdoc via mdoc_addeqn(). Only the adding itself is implemented; equation data is not yet shown. 2011-02-08 07:40 kristaps Changed: man.c (1.100), "Exp", lines: +9 -19 mdoc.c (1.180), "Exp", lines: +10 -21 Put tbl_alloc function right into the addspan() one, as this is the only place that it's called. 2011-02-07 00:05 schwarze Changed: mdoc.7 (1.179), "Exp", lines: +8 -6 tbl.7 (1.12), "Exp", lines: +7 -7 The macro .Ns has no effect at the beginning of an input line; ok kristaps@ jmc@. 2011-02-06 23:02 schwarze Changed: mdoc_html.c (1.152), "Exp", lines: +5 -3 mdoc_term.c (1.218), "Exp", lines: +4 -2 Fix a regression caused by mdoc_term.c 1.214 / mdoc_html.c 1.148: Inside .Bk or inside the SYNOPSIS, Unix variant macros cleared the keep flag. 2011-02-06 22:33 schwarze Changed: mdoc_term.c (1.217), "Exp", lines: +26 -21 Some pre-handlers produce output, so reorder the code to set up keep flags before they are called. Without this bugfix, .Bk was ineffective in some cases. "looks reasonable" kristaps@ 2011-02-06 22:05 kristaps Changed: man.c (1.99), "Exp", lines: +2 -2 mdoc.c (1.179), "Exp", lines: +2 -3 Use tbl_span line number for warnings/errors. 2011-02-06 22:02 kristaps Changed: man.c (1.98), "Exp", lines: +2 -3 mandoc.h (1.56), "Exp", lines: +2 -1 mdoc.c (1.178), "Exp", lines: +2 -3 tbl_data.c (1.22), "Exp", lines: +10 -9 tree.c (1.34), "Exp", lines: +4 -5 Let the line-number of a tbl_span be remembered. 2011-02-06 21:44 kristaps Changed: man.h (1.52), "Exp", lines: +3 -2 man_html.c (1.68), "Exp", lines: +3 -1 man_term.c (1.102), "Exp", lines: +3 -1 man_validate.c (1.61), "Exp", lines: +3 -1 mdoc.h (1.116), "Exp", lines: +2 -1 mdoc_html.c (1.151), "Exp", lines: +3 -1 mdoc_term.c (1.216), "Exp", lines: +5 -1 mdoc_validate.c (1.156), "Exp", lines: +3 -1 tree.c (1.33), "Exp", lines: +13 -1 Add initial libmdoc and libman top-most machinery for accepting TBL directives. For now this will just ignore them (except for -Ttree, which just notes that an EQN's been accepted). 2011-02-06 20:36 kristaps Added: eqn.c (1.1) Changed: Makefile (1.310), "Exp", lines: +3 -3 libroff.h (1.18), "Exp", lines: +12 -1 main.c (1.143), "Exp", lines: +3 -1 mandoc.h (1.55), "Exp", lines: +6 -1 roff.c (1.125), "Exp", lines: +73 -10 roff.h (1.23), "Exp", lines: +2 -1 Add initial EQN support to mandoc. This parses, then throws away, data between EQ and EN roff blocks. EQN is different from TBL in that data after .EQ is unilaterally considered an equation until an .EN. Thus, there's no need to jump through hoops in having table spans and so on. This is ONLY the parse code framework in libroff. EQN is not yet passed into the backends. 2011-02-03 10:24 kristaps Changed: TODO (1.89), "Exp", lines: +7 -1 TODO note on that `.TS', `.TE' etc. aren't real roff macros and troff won't recognise them when invoked as e.g. `. TS' (we, however, do). 2011-02-02 21:40 kristaps Changed: TODO (1.88), "Exp", lines: +1 -5 main.c (1.142), "Exp", lines: +2 -1 mandoc.h (1.54), "Exp", lines: +2 -1 mdoc.7 (1.178), "Exp", lines: +4 -2 mdoc_html.c (1.150), "Exp", lines: +3 -2 mdoc_term.c (1.215), "Exp", lines: +3 -2 mdoc_validate.c (1.155), "Exp", lines: +13 -2 If `Ns' is specified on its own line, it should be ignored. This is shitty groff behaviour. Do the same, but raise a warning to this effect. This from a TODO noted by schwarze@. 2011-01-31 12:52 kristaps Changed: TODO (1.87), "Exp", lines: +4 -1 Note an error found in the wild. 2011-01-30 16:05 schwarze Changed: chars.c (1.32), "Exp", lines: +23 -1 chars.h (1.7), "Exp", lines: +3 -1 html.c (1.126), "Exp", lines: +18 -2 mandoc_char.7 (1.41), "Exp", lines: +17 -2 out.c (1.37), "Exp", lines: +45 -1 out.h (1.16), "Exp", lines: +3 -2 term.c (1.177), "Exp", lines: +16 -2 Implement the \N'number' (numbered character) roff escape sequence. Don't use it in new manuals, it is inherently non-portable, but we need it for backward-compatibility with existing manuals, for example in Xenocara driver pages. ok kristaps@ jmc@ and tested by Matthieu Herrb (matthieu at openbsd dot org) 2011-01-29 14:49 kristaps Changed: html.h (1.40), "Exp", lines: +4 -3 mdoc_html.c (1.149), "Exp", lines: +17 -3 When in a <PRE>, don't print out the <BR> before lines that have leading whitespace. 2011-01-25 17:32 kristaps Changed: term_ascii.c (1.12), "Exp", lines: +2 -3 term_ps.c (1.46), "Exp", lines: +2 -3 Remove unnecessary conditional... 2011-01-25 16:20 kristaps Changed: TODO (1.86), "Exp", lines: +1 -4 mdoc_html.c (1.148), "Exp", lines: +8 -2 mdoc_term.c (1.214), "Exp", lines: +7 -3 Arguments to `Bsx' and friends are separated by a non-breaking space. This removes a TODO raised by schwarze@. 2011-01-25 15:46 kristaps Changed: mdoc_html.c (1.147), "Exp", lines: +3 -8 mdoc_term.c (1.213), "Exp", lines: +3 -8 mdoc_validate.c (1.154), "Exp", lines: +22 -2 Push capitalisation of `Bx' second argument into validator, where it belongs. 2011-01-25 15:28 kristaps Changed: mdoc_html.c (1.146), "Exp", lines: +9 -4 mdoc_term.c (1.212), "Exp", lines: +8 -3 Properly uppercase the first-letter of the `Bx' second argument. 2011-01-25 15:17 kristaps Changed: TODO (1.85), "Exp", lines: +1 -7 mdoc_html.c (1.145), "Exp", lines: +15 -7 mdoc_macro.c (1.101), "Exp", lines: +3 -1 mdoc_term.c (1.211), "Exp", lines: +21 -7 Have `Bx' accept two arguments, not just one, and join these arguments with "xxBSD-yy" 2011-01-25 12:35 schwarze Changed: man_term.c (1.101), "Exp", lines: +4 -1 Avoid double blank line before a table preceded by .PP. ok kristaps@ 2011-01-25 12:24 schwarze Changed: libroff.h (1.17), "Exp", lines: +4 -3 main.c (1.141), "Exp", lines: +8 -6 tbl.c (1.22), "Exp", lines: +10 -4 tbl_data.c (1.21), "Exp", lines: +2 -1 Since tbl_data() can now produce multiple spans, let parsebuf() generate man(7) or mdoc(7) nodes for all these spans, not only for the last one. Restores the horizontal lines in the cpu(4/hppa) tables. ok kristaps@ 2011-01-25 12:16 schwarze Changed: tbl_data.c (1.20), "Exp", lines: +45 -17 Do not skip data after horizontal lines in the layout. Instead, let one line of input data add two new spans to the tbl tree during one single call of tbl_data(). Note that this causes the horizontal line to get parsed into the tbl tree, but not yet used in the output, which will be fixed next. Avoids data loss in cpu(4/hppa). ok kristaps@ 2011-01-25 12:07 schwarze Changed: out.c (1.36), "Exp", lines: +3 -3 tbl_term.c (1.19), "Exp", lines: +11 -8 correct horizontal spacing of data cells correct alignment of centered cells adjust horizontal rule width to the new spacing ok kristaps@ 2011-01-25 10:37 kristaps Changed: TODO (1.84), "Exp", lines: +1 -6 mdoc.h (1.115), "Exp", lines: +2 -2 mdoc_term.c (1.210), "Exp", lines: +3 -3 mdoc_validate.c (1.153), "Exp", lines: +3 -3 If %B is specified, quote %T. Noted by schwarze@ in the TODO. 2011-01-25 01:12 schwarze Changed: roff.7 (1.26), "Exp", lines: +16 -2 roff.c (1.124), "Exp", lines: +7 -1 Ignore .ns (no-space mode), .ps (change point size), .ta (tab control) for now. All of these just cause a bit too much or too little whitespace, but no serious formatting problems. Triggered by reports from brad@. 2011-01-25 00:40 schwarze Changed: man.7 (1.97), "Exp", lines: +2 -5 mdoc.7 (1.177), "Exp", lines: +2 -5 roff.7 (1.25), "Exp", lines: +2 -6 As noticed by deraadt@, it goes without saying that text files on a UNIX system use UNIX conventions, and UNIX tools working on them expect that. ok jmc@ 2011-01-24 23:41 schwarze Changed: main.c (1.140), "Exp", lines: +21 -4 Skip carriage return before newline, if any. As pointed out by Joerg Sonnenberger, this is useful because we use mmap(3) and look for '\n' by hand. "check it in" kristaps@ 2011-01-24 23:17 schwarze Changed: man.7 (1.96), "Exp", lines: +9 -2 roff.7 (1.24), "Exp", lines: +36 -7 Better explain roff(7) macro argument quoting; ok jmc@. 2011-01-24 01:34 schwarze Changed: TODO (1.83), "Exp", lines: +95 -2 results of some systematic comparisons 2011-01-23 15:35 schwarze Changed: TODO (1.82), "Exp", lines: +14 -1 not implemented: adjustment 2011-01-23 14:54 schwarze Changed: man_term.c (1.100), "Exp", lines: +4 -1 Fix another regression caused by the reorg of print_man_node() in rev. 1.97: End-of-sentence spacing got lost for man(7) after plain text lines. 2011-01-22 23:27 schwarze Changed: TODO (1.81), "Exp", lines: +11 -1 some more reports from brad@ 2011-01-22 20:36 schwarze Changed: TODO (1.80), "Exp", lines: +9 -5 missing: .ns, .UR; reported by brad@ 2011-01-22 20:24 schwarze Changed: TODO (1.79), "Exp", lines: +29 -19 sort missing features, no change of content 2011-01-22 14:05 schwarze Changed: mdoc.7 (1.176), "Exp", lines: +11 -11 Lots of in-line macros require arguments but were not marked as such. Check prompted by kristaps@. 2011-01-22 14:00 schwarze Changed: mdoc_validate.c (1.152), "Exp", lines: +21 -37 Check argument count validation for all in_line() macros. Most empty in_line() macros are already removed by the parser, so there is no need to check again in mdoc_validate.c. This also downgrades almost all remaining argument count issues from ERROR to WARNING. ok kristaps@ 2011-01-22 13:16 schwarze Changed: main.c (1.139), "Exp", lines: +2 -2 roff.c (1.123), "Exp", lines: +6 -1 When finding the roff .it request (line trap), make it clear that you cannot use mandoc to format that page (yet). Triggered by a report from brad@, ok kristaps@. 2011-01-17 21:29 kristaps Changed: tbl.7 (1.11), "Exp", lines: +1 -3 "decimalpoint" is in fact supported. 2011-01-17 00:21 schwarze Changed: man_html.c (1.67), "Exp", lines: +3 -3 man_term.c (1.99), "Exp", lines: +3 -3 man_validate.c (1.60), "Exp", lines: +24 -34 Refrain from throwing fatal errors for * .br .sp .nf .fi .na with arguments - just skip the arguments * .TH lacking arguments - use empty strings instead like groff * .TH with excessive arguments - skip those Reminded by joerg@, ok kristaps@. 2011-01-16 20:12 schwarze Changed: man_term.c (1.98), "Exp", lines: +3 -3 When processing a blank text line, do not break out of text processing into macro processing code. Fixing a regression introduced in 1.95, found because it caused segfaults in my regression suite. OK kristaps@ 2011-01-16 04:00 schwarze Changed: roff.c (1.122), "Exp", lines: +19 -12 Implement the roff .rm request (remove macro). Using the new roff_getname() function, this is really simple. Breaks mandoc of the habit of reporting an error in each pod2man(1) preamble. Reminded by a report from brad@; ok kristaps@. 2011-01-13 14:30 kristaps Changed: html.c (1.125), "Exp", lines: +14 -1 html.h (1.39), "Exp", lines: +4 -1 man_html.c (1.66), "Exp", lines: +17 -3 mdoc_html.c (1.144), "Exp", lines: +20 -4 tbl_html.c (1.7), "Exp", lines: +62 -45 Change how -Thtml behaves with tables: use multiple rows, with widths set by COL, until an external macro is encountered. At this point in time, close out the table and process the macro. When the first table row is again re-encountered, re-start the table. This requires a bit of tracking added to "struct html", but the change is very small and follows the logic of meta-fonts. This all follows a bug-report by joerg@. 2011-01-12 17:00 kristaps Changed: mdoc_macro.c (1.100), "Exp", lines: +10 -3 Incorporate same fix for -man post-validation deletion of nodes. This isn't known to cause any problems, but better safe than sorry. 2011-01-12 16:55 kristaps Changed: TODO (1.78), "Exp", lines: +1 -5 man_macro.c (1.55), "Exp", lines: +13 -5 man_validate.c (1.59), "Exp", lines: +20 -31 Downgrade -man message of ignored empty paragraph to MANDOC_IGNPAR. The change in man_macro.c was from an assertion caused by a subtle problem: (1) macro is removed, causing m->last to be m->last->parent; (2) by jumping to the m->last->parent after post-validation, the original m->last->parent is skipped; (3) the rewinder climbs to the root of the tree and aborts. The original issue recorded in the TODO by schwarze@, reminded by Brad Smith. 2011-01-12 15:50 kristaps Changed: TODO (1.77), "Exp", lines: +1 -5 main.c (1.138), "Exp", lines: +2 -1 man_validate.c (1.58), "Exp", lines: +2 -2 mandoc.h (1.53), "Exp", lines: +2 -1 Make out-of-context `fi' invocations not cause an error, but just a warning. From a TODO by schwarze@, originally noted by Brad Smith. 2011-01-12 15:41 kristaps Changed: man_html.c (1.65), "Exp", lines: +16 -6 Bring in -Tascii comments for -Thtml MANH_LITERAL line-breaking stuff. 2011-01-12 15:31 kristaps Changed: TODO (1.76), "Exp", lines: +1 -5 man_html.c (1.64), "Exp", lines: +6 -14 Make sure that -Thtml doesn't break within literal lines. This is the same logic as the -Tascii case. Also remove the TODO. 2011-01-12 15:23 kristaps Changed: man_term.c (1.97), "Exp", lines: +34 -28 Make -man -Tascii not break within literal lines, e.g., .nf .B hello world .fi Also, clean up the print_man_node() function a little bit. This problem has long since been in the TODO and was recently noted again by Brad Smith. The -T[x]html fix will follow... 2011-01-12 10:43 kristaps Changed: libman.h (1.45), "Exp", lines: +2 -1 man.7 (1.95), "Exp", lines: +5 -2 man.c (1.97), "Exp", lines: +16 -9 man.h (1.51), "Exp", lines: +2 -1 man_html.c (1.63), "Exp", lines: +10 -1 man_term.c (1.96), "Exp", lines: +7 -3 mdoc.7 (1.175), "Exp", lines: +5 -2 mdoc_html.c (1.143), "Exp", lines: +3 -1 mdoc_term.c (1.209), "Exp", lines: +3 -1 If the first character of free-form text is whitespace, then a newline shall precede outputted text (surprise!). 2011-01-11 14:15 kristaps Changed: tbl.7 (1.10), "Exp", lines: +4 -2 Note that "^" needs an empty cell, while "s" does not. 2011-01-11 14:12 kristaps Changed: out.c (1.35), "Exp", lines: +3 -1 tbl.7 (1.9), "Exp", lines: +11 -5 tbl_data.c (1.19), "Exp", lines: +6 -2 tbl_html.c (1.6), "Exp", lines: +12 -4 tbl_layout.c (1.16), "Exp", lines: +11 -1 tbl_term.c (1.18), "Exp", lines: +4 -1 Add support for "^" vertical spanners. Unlike GNU tbl, raise error-class messages when data is being ignored by specifying it in "^" cells (either as-is or in blocks). Also note again that horizontal spanners aren't really supported... 2011-01-11 00:39 kristaps Changed: man_term.c (1.95), "Exp", lines: +6 -1 Don't let `in' creep past the right margin. From an assertion noted by Brad (at comstyle). 2011-01-11 00:11 schwarze Changed: main.c (1.137), "Exp", lines: +2 -1 mandoc.h (1.52), "Exp", lines: +2 -1 roff.c (1.121), "Exp", lines: +46 -39 Refactoring in preparation for .rm support: Unify parsing of names given as roff request arguments into a new function roff_getname(), which is rather different from the parsing function for normal arguments, mandoc_getarg(), because names cannot be quoted and cannot contain whitespace or escaped characters. The new function now throws an ERROR when finding escaped characters in a name. "I'm fine with this." kristaps@ 2011-01-10 15:31 kristaps Changed: mandoc.h (1.51), "Exp", lines: +11 -11 out.c (1.34), "Exp", lines: +14 -11 tbl_data.c (1.18), "Exp", lines: +4 -3 tbl_layout.c (1.15), "Exp", lines: +2 -2 Clarify what members may be NULL or not in calculating widths. Make sure signedness is correct. Verify that layouts MUST exit for data cells. 2011-01-10 14:56 kristaps Changed: tbl_data.c (1.17), "Exp", lines: +3 -2 tbl_term.c (1.17), "Exp", lines: +13 -15 Make dp->string always consist of a value. 2011-01-10 14:40 kristaps Changed: main.c (1.136), "Exp", lines: +2 -4 mandoc.h (1.50), "Exp", lines: +3 -4 out.c (1.33), "Exp", lines: +2 -3 tbl.7 (1.8), "Exp", lines: +7 -3 tbl_data.c (1.16), "Exp", lines: +24 -7 tbl_layout.c (1.14), "Exp", lines: +20 -5 tbl_term.c (1.16), "Exp", lines: +26 -13 tree.c (1.32), "Exp", lines: +7 -2 First, make extra data cells be thrown away. This makes "dp->layout" always hold, which cleans up the table stuff a bit. Second, set a "spans" value per data cell consisting of the number of skipped TBL_CELL_SPAN layout cells. Third, make tbl_term.c understand how to skip over spanned sections when iterating over the header queue. What remains is to calculate the widths of spanned cells. 2011-01-10 03:43 schwarze Changed: TODO (1.75), "Exp", lines: +16 -1 some minor issues reported by brad@ 2011-01-09 23:14 kristaps Changed: tbl_data.c (1.15), "Exp", lines: +10 -4 When a row of data is being parsed and it's a line or double-line (instead of data), re-use the last "layout" pointer instead of advancing to the next one. This fixes a segfault report by joerg@. 2011-01-09 18:45 schwarze Changed: TODO (1.74), "Exp", lines: +16 -23 Remove lots of issues that have been resolved, and rephrase some that have been partially resolved. 2011-01-09 05:38 joerg Changed: tbl_layout.c (1.13), "Exp", lines: +4 -4 tbl_opts.c (1.8), "Exp", lines: +2 -2 Add some unsigned char casts for tolower() usage 2011-01-08 17:30 kristaps Changed: tbl.7 (1.7), "Exp", lines: +2 -3 Note that we support the "a" key. 2011-01-08 17:16 kristaps Changed: out.c (1.32), "Exp", lines: +2 -2 tbl.7 (1.6), "Exp", lines: +3 -3 tbl_term.c (1.15), "Exp", lines: +2 -2 The numerical column type centres on the *last* decimal point. 2011-01-08 17:00 kristaps Changed: out.c (1.31), "Exp", lines: +9 -7 tbl.7 (1.5), "Exp", lines: +10 -10 tbl_term.c (1.14), "Exp", lines: +1 -4 Give the "n" cell type knowledge of its spacing. 2011-01-07 15:22 kristaps Changed: Makefile (1.309), "Exp", lines: +1 -1 index.sgml (1.105), "Exp", lines: +1 -1 Meh, 2010->2011. Changed the live index.html file so as not to confuse people (although the tagged 1.10.9 release will show 2010). 2011-01-07 15:07 tag VERSION_1_10_9 2011-01-07 15:07 kristaps Changed: mdoc.3 (1.55), "Exp", lines: +2 -2 Oops: get rid of stray whitespace. 2011-01-07 14:59 kristaps Changed: tbl.7 (1.4), "Exp", lines: +5 -2 tbl_data.c (1.14), "Exp", lines: +17 -5 tbl_layout.c (1.12), "Exp", lines: +15 -1 tbl_term.c (1.13), "Exp", lines: +13 -12 Fixes: T} can be followed by a delimiter then more data. Make this work and add documentation for it. Also make tbl_term() not puke if the number of data cells is less than the number of layout cells (which happens from time to time). This still needs work because we should pad out empty cells so that the borders all work out. 2011-01-07 13:20 kristaps Changed: man_html.c (1.62), "Exp", lines: +3 -5 mdoc_html.c (1.142), "Exp", lines: +5 -4 tbl_data.c (1.13), "Exp", lines: +2 -1 tbl_opts.c (1.7), "Exp", lines: +3 -3 tbl_term.c (1.12), "Exp", lines: +12 -9 Quiesce lint with some type handling. Does not change anything. 2011-01-07 13:10 kristaps Changed: Makefile (1.308), "Exp", lines: +2 -2 index.sgml (1.104), "Exp", lines: +40 -40 Version bits. Here we go... 2011-01-07 13:03 kristaps Changed: tbl_data.c (1.12), "Exp", lines: +7 -3 tbl_layout.c (1.11), "Exp", lines: +19 -2 Tiny bits in place for tbl horizontal spans. This will wait for the next release to be implemented in full. 2011-01-06 14:05 kristaps Changed: TODO (1.73), "Exp", lines: +1 -6 mdoc_term.c (1.208), "Exp", lines: +4 -2 Make -literal displays only have 8-character displays. From a low-hanging TODO added by schwarze@ on 15/08/10. 2011-01-06 13:45 kristaps Changed: mandoc.h (1.49), "Exp", lines: +1 -2 tbl_opts.c (1.6), "Exp", lines: +3 -3 Remove delims from struct tbl (not used anywhere and never will be). 2011-01-06 13:45 kristaps Changed: index.sgml (1.103), "Exp", lines: +13 -12 Clean-up www page a bit. 2011-01-06 12:31 kristaps Changed: tbl_html.c (1.5), "Exp", lines: +42 -39 Restructured tbl_html() function so that we always clean up our columns. 2011-01-06 11:55 kristaps Changed: html.h (1.38), "Exp", lines: +8 -10 tbl_html.c (1.4), "Exp", lines: +49 -2 Make -T[x]html for tables structure cells with a width. I don't anticipate doing much more than this for the coming release. Also, remove "base" part of struct html (not used anywhere) and put some comments in struct html.h. 2011-01-05 20:02 kristaps Changed: tbl.7 (1.3), "Exp", lines: +10 -10 Tweaks to tbl.7 from Jason McIntyre. 2011-01-05 15:37 kristaps Changed: out.c (1.30), "Exp", lines: +203 -1 out.h (1.15), "Exp", lines: +26 -15 tbl_term.c (1.11), "Exp", lines: +101 -249 term.h (1.79), "Exp", lines: +2 -2 Stuff tbl_calc() into out.c so that it can be shared by all output modes (isn't now, but will need to be, used by -T[x]html also). Necessitated a lot of churn in getting tbl_calc* code out of tbl_term.c and into out.c, including renaming some structures and so on. The abstraction is in having a pointer to a wrapper function for calculating string widths. The char devices use term_strlen and term_len; the others will probably just use strlen(). While at it, remove some superfluous assertions in the tbl code. This allows all tbl manuals to clear. Lastly, set the right-margin to be the maximum margin for each table span. This allows big, complicated tbl-pages like terminfo to be displayed. They're ugly, but they work. 2011-01-05 13:00 kristaps Changed: example.style.css (1.41), "Exp", lines: +12 -4 tbl_html.c (1.3), "Exp", lines: +6 -3 Give tables an HTML class. 2011-01-05 09:31 kristaps Changed: tbl.7 (1.2), "Exp", lines: +20 -13 Tweak some language in tbl.7. 2011-01-04 23:48 schwarze Changed: tbl_layout.c (1.10), "Exp", lines: +3 -1 Merge from OpenBSD (similar to my original fix committed on Oct 15, 2010): For now, parse and ignore minimal column width specifications. First step to get terminfo(5) to build. 2011-01-04 23:32 kristaps Changed: index.sgml (1.102), "Exp", lines: +18 -134 Add tbl.7 to DOCUMENTATION. Removed old NEWS items. 2011-01-04 23:32 kristaps Added: tbl.7 (1.1) Changed: Makefile (1.307), "Exp", lines: +9 -8 man.7 (1.94), "Exp", lines: +5 -3 mandoc.1 (1.84), "Exp", lines: +5 -3 mdoc.7 (1.174), "Exp", lines: +5 -2 roff.7 (1.23), "Exp", lines: +6 -203 Moved table stuff from roff.7 into the new tbl.7 (suggested by Jason McIntyre). Added cross-links to tbl.7 from other manuals. 2011-01-04 15:02 kristaps Changed: libroff.h (1.16), "Exp", lines: +4 -2 main.c (1.135), "Exp", lines: +2 -1 mandoc.h (1.48), "Exp", lines: +3 -1 roff.7 (1.22), "Exp", lines: +7 -2 tbl.c (1.21), "Exp", lines: +9 -2 tbl_data.c (1.11), "Exp", lines: +53 -6 tbl_html.c (1.2), "Exp", lines: +3 -2 tbl_term.c (1.10), "Exp", lines: +6 -8 Support `T{' and `T}' data blocks. When a standalone `T{' is encountered as a line's last data cell, move into TBL_PART_CDATA mode whilst leaving the cell's designation as TBL_DATA_NONE. When new data arrives that's not a standalone `T}', append it to the cell contends. Close out and warn appropriately. 2011-01-04 13:21 kristaps Changed: tbl_term.c (1.9), "Exp", lines: +5 -2 Have horizontal spanner not clobber pre-set width. 2011-01-04 13:14 kristaps Changed: index.sgml (1.101), "Exp", lines: +6 -5 tbl_term.c (1.8), "Exp", lines: +10 -10 term.c (1.176), "Exp", lines: +7 -1 Fix spacing for tables to use term_len(). Also make term.c properly recode ASCII_HYPHEN and ASCII_NBRSP before passing back for widths. 2011-01-04 12:06 kristaps Changed: main.c (1.134), "Exp", lines: +3 -1 mandoc.h (1.47), "Exp", lines: +2 -1 roff.7 (1.21), "Exp", lines: +50 -23 tbl_data.c (1.10), "Exp", lines: +6 -1 tbl_term.c (1.7), "Exp", lines: +10 -29 Fix to make horizontal spanners in the layout be properly printed. mandoc also now warns (so does tbl(1)) if a horizontal spanner is specified along with data. While here, fix up some documentation and uncomment the tbl reference. 2011-01-04 10:31 kristaps Changed: man_html.c (1.61), "Exp", lines: +11 -4 Protect tbl nodes from getting a post call. 2011-01-04 10:29 kristaps Added: tbl_html.c (1.1) Changed: Makefile (1.306), "Exp", lines: +3 -3 html.h (1.37), "Exp", lines: +2 -1 index.sgml (1.100), "Exp", lines: +13 -1 man_html.c (1.60), "Exp", lines: +3 -2 mdoc_html.c (1.141), "Exp", lines: +5 -2 Add skeleton for -T[x]html tbl stuff. Also start to put in some bits about the up-coming version, although we're not quite there yet. 2011-01-04 01:23 schwarze Changed: man_html.c (1.59), "Exp", lines: +10 -22 man_term.c (1.94), "Exp", lines: +25 -16 Multiple man(7) .IP and .TP fixes started during p2k10: Affecting both -Tascii and -Thtml: * The .IP HEAD uses the second argument as the width, not the last one. * Only print the first .IP HEAD argument, not all but the last. Affecting only -Tascii: * The .IP and .TP HEADs must be printed without literal mode, but literal mode must be restored afterwards. * After the .IP and .TP bodies, we only want term_newln(), not term_flushln(), or we would get two blank lines in literal mode. * The .TP HEAD does not use TWOSPACE, just like .IP doesn't either. * In literal mode, clear NOLPAD after each line, or subsequent lines would get no indentation whatsoever. Affecting only -Thtml: * Only print next-line .TP children, instead of all but the first. OK kristaps@ on the -Tascii part; and: "Can you work this into man_html.c, too?" 2011-01-03 23:53 schwarze Changed: main.c (1.133), "Exp", lines: +3 -2 mandoc.h (1.46), "Exp", lines: +3 -2 mdoc_validate.c (1.151), "Exp", lines: +68 -66 Partial cleanup of argument count validation in mdoc(7): * Do not segfault on empty .Db, .Rs, .Sm, and .St. * Let check_count() really throw the requested level, not always ERROR. * Downgrade most bad argument counts from ERROR to WARNING. * And some related internal cleanup. Looks fine to kristaps@. Note that the macros using eerr_ge1() still need to be checked at a later time; but as all the others are done, let's use what we already have. 2011-01-03 23:24 schwarze Changed: roff.c (1.120), "Exp", lines: +2 -2 Calling a macro with fewer arguments than it is defined with is OK; the remaining ones default to the empty string, not to NULL. Regression reported and fix tested by kristaps@. 2011-01-03 22:42 schwarze Changed: libmandoc.h (1.10), "Exp", lines: +2 -1 man_argv.c (1.5), "Exp", lines: +9 -69 mandoc.c (1.36), "Exp", lines: +81 -3 roff.c (1.119), "Exp", lines: +7 -44 Unify roff macro argument parsing (in roff.c, roff_userdef()) and man macro argument parsing (in man_argv.c, man_args()), both having different bugs, to use one common macro argument parser (in mandoc.c, mandoc_getarg()), because from the point of view of roff, man macros are just roff macros, hence their arguments are parsed in exactly the same way. While doing so, fix these bugs: * Escaped blanks (i.e. those preceded by an odd number of backslashes) were mishandled as argument separators in unquoted arguments to user-defined roff macros. * Unescaped blanks preceded by an even number of backslashes were not recognized as argument separators in unquoted arguments to man macros. * Escaped backslashes (i.e. pairs of backslashes) were not reduced to single backslashes both in unquoted and quoted arguments both to user-defined roff macros and to man macros. * Escaped quotes (i.e. pairs of quotes inside quoted arguments) were not reduced to single quotes in man macros. OK kristaps@ Note that mdoc macro argument parsing is yet another beast for no good reason and is probably afflicted by similar bugs. But i don't attempt to fix that right now because it is intricately entangled with lots of unrelated high-level mdoc(7) functionality, like delimiter handling and column list phrase handling. Disentagling that would waste too much time now. 2011-01-03 21:53 kristaps Changed: TODO (1.72), "Exp", lines: +1 -3 Remove TODO for tbl. 2011-01-03 16:04 kristaps Changed: roff.7 (1.20), "Exp", lines: +175 -127 tbl_term.c (1.6), "Exp", lines: +2 -1 Switch on the `TS' documentation in roff.7. As per off-line discussion, this may be moved to tbl.7, but for the time being, keep it in the document as it's developed. Also note that my handling of horizontal rules in layouts needs some work. 2011-01-03 15:30 kristaps Changed: man_term.c (1.93), "Exp", lines: +3 -1 For tbl: -man documents print an extra space before `TS' blocks. 2011-01-03 15:07 kristaps Changed: tbl_term.c (1.5), "Exp", lines: +29 -18 Add in support for number table cells that account for escapes and so on. Note also that -Tps and -Tpdf, with these last two commits, produce more readable output ("less crappy"). 2011-01-03 14:57 kristaps Changed: tbl_term.c (1.4), "Exp", lines: +46 -23 Clean up the tbl top-level printing code and document the parts of it. 2011-01-03 14:45 kristaps Changed: tbl_term.c (1.3), "Exp", lines: +39 -34 Start using term_strlen() instead of strlen(). tbl_term.c can now properly handle embedded escapes when calculating its widths. NOTE: this doesn't yet apply to the decimal-point calculation. 2011-01-03 13:59 kristaps Changed: mandoc.h (1.45), "Exp", lines: +4 -4 tbl.c (1.20), "Exp", lines: +1 -161 tbl_layout.c (1.9), "Exp", lines: +3 -1 tbl_term.c (1.2), "Exp", lines: +228 -39 term.h (1.78), "Exp", lines: +8 -2 tree.c (1.31), "Exp", lines: +1 -14 Make width calculations occur within tbl_term.c, not tbl.c. This allows for front-ends to make decisions about widths, not the back-end. To pull this off, first make each tbl_head contain a unique index value (0 <= index < total tbl_head elements) and remove the tbl_calc() routine from the back-end. Then, when encountering the first tbl_span in the front-end, dynamically create an array of configurations (termp_tbl) keyed on each tbl_head's unique index value. Construct the decimals and widths at this time, then continue parsing as before. The termp_tbl and indexes are required because we pass a const tbl AST into the front-end. 2011-01-03 13:55 kristaps Changed: mdoc.3 (1.54), "Exp", lines: +2 -7 Tiny edit required after MDOC_HALT change. 2011-01-03 13:54 kristaps Changed: main.c (1.132), "Exp", lines: +9 -1 Make sure we don't continue recursively parsing once we've exited with failure (this had caused some segfaults with the new assert() call in MAN_HALT and MDOC_HALT). 2011-01-03 11:31 kristaps Changed: man.3 (1.29), "Exp", lines: +14 -19 man.c (1.96), "Exp", lines: +10 -10 Same treatment for MAN_HALT as for MDOC_HALT. 2011-01-03 11:27 kristaps Changed: mdoc.3 (1.53), "Exp", lines: +14 -14 mdoc.c (1.177), "Exp", lines: +9 -10 Clarified the role of MDOC_HALT in libmdoc functions by having accessor functions assert() if they're called after MDOC_HALT is set. This makes more sense than returning 0 because this return value is used for parse errors, not programme-flow errors, and it's inconsistent to use the same value for both. Plus, prior to this, I'd return 0 without printing an error message, which would cause failure to go unreported to the operator. 2011-01-02 20:34 kristaps Changed: tbl.c (1.19), "Exp", lines: +1 -6 tbl_layout.c (1.8), "Exp", lines: +2 -2 tree.c (1.30), "Exp", lines: +29 -12 Fix table to print nicely (merging error). Also have -Ttree push out some header stuff. 2011-01-02 12:21 kristaps Added: tbl_term.c (1.1) Changed: Makefile (1.305), "Exp", lines: +4 -3 man_term.c (1.92), "Exp", lines: +2 -1 mdoc_term.c (1.207), "Exp", lines: +2 -1 term.h (1.77), "Exp", lines: +2 -1 term_ascii.c (1.11), "Exp", lines: +2 -1 Turn on -Tascii tbl printing. The output still has some issues---I'm not sure whether it's in the header calculation or term.c squashing spaces or whatever, but let's get this in for general testing as soon as possible. 2011-01-02 12:04 kristaps Changed: mandoc.h (1.44), "Exp", lines: +6 -1 tbl.c (1.18), "Exp", lines: +4 -1 tbl_data.c (1.9), "Exp", lines: +6 -2 tbl_layout.c (1.7), "Exp", lines: +3 -1 Add some final bits necessary in the upcoming -Tascii tbl stuff. 2011-01-02 10:10 kristaps Changed: chars.c (1.31), "Exp", lines: +12 -12 libroff.h (1.15), "Exp", lines: +15 -26 mandoc.h (1.43), "Exp", lines: +16 -1 roff.c (1.118), "Exp", lines: +6 -6 tbl.c (1.17), "Exp", lines: +19 -19 tbl_data.c (1.8), "Exp", lines: +5 -5 tbl_layout.c (1.6), "Exp", lines: +10 -10 tbl_opts.c (1.5), "Exp", lines: +14 -12 Churn to get parts of 'struct tbl' visible from mandoc.h: rename the existing 'struct tbl' as 'struct tbl_node', then move all option stuff into a 'struct tbl' in mandoc.h. This conflicted with a structure in chars.c, which was renamed. 2011-01-01 23:00 kristaps Changed: tbl.c (1.16), "Exp", lines: +166 -1 Merge in the width, decimal, and positioning code for individual data rows from tbl.bsd.lv. This is more or less verbatim, less queue macros and also a check for NULL layout. This concludes the back-end parsing for a little while, as the front-end display may now be configured. 2011-01-01 22:27 kristaps Changed: main.c (1.131), "Exp", lines: +5 -1 mandoc.h (1.42), "Exp", lines: +6 -1 tbl_data.c (1.7), "Exp", lines: +4 -1 tree.c (1.29), "Exp", lines: +2 -2 Add a warning if a data cell has no layout. Also make -Ttree show this with a little star next to the entry (yeah, this is mostly for testing). 2011-01-01 22:19 kristaps Changed: libroff.h (1.14), "Exp", lines: +3 -1 mandoc.h (1.41), "Exp", lines: +21 -1 tbl.c (1.15), "Exp", lines: +9 -5 tbl_layout.c (1.5), "Exp", lines: +122 -18 Plug in the "head" concept for tables. A tbl_head specifies the full layout for each row, including vertical spacers. One grabs the tbl_head for a row and iterates through each entry, plugging data from the tbl_span into the header as appropriate. This is pulled in more or less verbatim from tbl.bsd.lv. In fact, this is verbatim except that lists macros are made into hard-coded lists (for compatibility, as long-ago noted by joerg@). 2011-01-01 21:23 kristaps Changed: tbl_data.c (1.6), "Exp", lines: +2 -1 tbl_layout.c (1.4), "Exp", lines: +2 -1 Add bits for compilation on Mac. 2011-01-01 17:10 kristaps Changed: mandoc.h (1.40), "Exp", lines: +17 -9 tbl_data.c (1.5), "Exp", lines: +11 -9 tree.c (1.28), "Exp", lines: +44 -16 Make some bit-flags into enums as they should be. Make printing of -Ttree tables a little bit smarter. 2011-01-01 16:18 kristaps Changed: main.c (1.130), "Exp", lines: +2 -5 roff.3 (1.10), "Exp", lines: +3 -4 roff.c (1.117), "Exp", lines: +9 -4 roff.h (1.22), "Exp", lines: +2 -2 More checks for proper table exit. 2011-01-01 16:10 kristaps Changed: libroff.h (1.13), "Exp", lines: +2 -2 roff.c (1.116), "Exp", lines: +2 -2 tbl.c (1.14), "Exp", lines: +8 -2 Raise an error if a table is closed without data. 2011-01-01 15:45 kristaps Changed: libroff.h (1.12), "Exp", lines: +5 -2 main.c (1.129), "Exp", lines: +2 -1 mandoc.h (1.39), "Exp", lines: +2 -1 roff.3 (1.9), "Exp", lines: +13 -3 roff.c (1.115), "Exp", lines: +7 -3 tbl.c (1.13), "Exp", lines: +12 -2 Add documentation bits for libroff's new roff_span(). Add bits to remember tbl's invocation point. Add ERROR class message if no data's in the table. 2011-01-01 14:09 kristaps Changed: tree.c (1.27), "Exp", lines: +3 -2 Make -Ttree a bit more readable. 2011-01-01 13:54 kristaps Changed: man.c (1.95), "Exp", lines: +2 -1 tree.c (1.26), "Exp", lines: +47 -19 Make -Ttree spit out table columns. Add forgotten assignment of span to -man's TBL nodes. 2011-01-01 13:37 kristaps Changed: main.c (1.128), "Exp", lines: +14 -3 tbl.c (1.12), "Exp", lines: +5 -5 tbl_data.c (1.4), "Exp", lines: +2 -2 Switch on tbl rows being added to the parse stream. Here we go! 2011-01-01 12:59 kristaps Changed: man.3 (1.28), "Exp", lines: +10 -2 man.c (1.94), "Exp", lines: +57 -23 man.h (1.50), "Exp", lines: +6 -2 man_html.c (1.58), "Exp", lines: +6 -13 man_term.c (1.91), "Exp", lines: +10 -2 man_validate.c (1.57), "Exp", lines: +12 -4 mdoc.c (1.176), "Exp", lines: +3 -1 Add -man support for tables. Like -mdoc, this consists of an external-facing function man_addspan() (this required shuffling around the descope routine) and hooks elsewhere. Also fixed mdoc.c's post-validation of tables. 2011-01-01 12:56 kristaps Changed: tree.c (1.25), "Exp", lines: +13 -1 Add basic -Ttree support for tables. 2011-01-01 12:18 kristaps Changed: mdoc.3 (1.52), "Exp", lines: +10 -2 mdoc.c (1.175), "Exp", lines: +37 -1 mdoc.h (1.114), "Exp", lines: +5 -1 mdoc_html.c (1.140), "Exp", lines: +3 -1 mdoc_term.c (1.206), "Exp", lines: +23 -8 mdoc_validate.c (1.150), "Exp", lines: +17 -4 Add table processing structures to -mdoc. This consists of an external-facing function mdoc_addspan(), then various bits to prohibit printing and scanning (this requires some if's to be converted into switch's). 2011-01-01 10:51 kristaps Changed: man.c (1.93), "Exp", lines: +7 -7 mdoc.c (1.174), "Exp", lines: +17 -15 Clean up {mdoc,man}_pmsg and vmsg invocations (ignore return values). 2010-12-31 18:19 kristaps Changed: libroff.h (1.11), "Exp", lines: +2 -57 mandoc.h (1.38), "Exp", lines: +70 -1 roff.c (1.114), "Exp", lines: +8 -1 roff.h (1.21), "Exp", lines: +2 -1 tbl.c (1.11), "Exp", lines: +8 -1 Expose the parsed table API to the world and add accessors through the roff.h interface. 2010-12-31 14:52 kristaps Changed: libroff.h (1.10), "Exp", lines: +2 -1 roff.c (1.113), "Exp", lines: +21 -11 tbl.c (1.10), "Exp", lines: +32 -60 Put parsed tables into a queue that's cleared at the end of parsing. This completes the parsing phase of the new tbl implementation. 2010-12-30 10:26 kristaps Changed: libroff.h (1.9), "Exp", lines: +3 -1 tbl_data.c (1.3), "Exp", lines: +32 -1 Assign layout cells to parsed data. This follows primarily from tbl.bsd.lv, although it has been reimplemented. 2010-12-30 09:34 kristaps Changed: libroff.h (1.8), "Exp", lines: +7 -4 tbl.c (1.9), "Exp", lines: +27 -20 tbl_data.c (1.2), "Exp", lines: +12 -6 tbl_layout.c (1.3), "Exp", lines: +6 -6 Move clean-up of parsed tbl nodes into the tbl_clear() function, called once per invocation. 2010-12-30 00:51 schwarze Changed: TODO (1.71), "Exp", lines: +6 -1 Plan9 has a man(7) implementation that looks extremely archaic, even more archaic than Solaris/Heirloom stuff; so that is quite interesting from a perspective of compatibility and history. 2010-12-29 16:44 kristaps Added: tbl_data.c (1.1) Changed: Makefile (1.304), "Exp", lines: +3 -3 libroff.h (1.7), "Exp", lines: +20 -1 tbl.c (1.8), "Exp", lines: +15 -2 Initial check-in of table data-row processing. For the time being, this parses table data then throws it away immediately. It does not yet try to cross-check data rows against layout or anything. This copied more or less completely from tbl.bsd.lv. 2010-12-29 16:18 kristaps Changed: man.7 (1.93), "Exp", lines: +4 -4 Use `Dl' instead of `D1' for code examples. 2010-12-29 16:16 kristaps Changed: mdoc.7 (1.173), "Exp", lines: +94 -94 In mdoc.7, don't use `D1' in place of `Dl' for code examples. 2010-12-29 15:21 kristaps Changed: roff.7 (1.19), "Exp", lines: +88 -2 tbl_layout.c (1.2), "Exp", lines: +7 -30 Update (still-commented) manual bits for tbl. Also removed lots of superfluous switch cases by using tolower() and handling only the lowercase keys. 2010-12-29 14:53 kristaps Changed: libroff.h (1.6), "Exp", lines: +2 -1 roff.c (1.112), "Exp", lines: +17 -1 tbl.c (1.7), "Exp", lines: +9 -1 Add handling for `T&', which restarts a table except for its options. 2010-12-29 14:38 kristaps Added: tbl_layout.c (1.1) Changed: Makefile (1.303), "Exp", lines: +3 -3 libroff.h (1.5), "Exp", lines: +41 -3 main.c (1.127), "Exp", lines: +3 -1 mandoc.h (1.37), "Exp", lines: +3 -1 tbl.c (1.6), "Exp", lines: +18 -2 tbl_opts.c (1.4), "Exp", lines: +2 -3 Merge, with considerable changes, tbl.bsd.lv's layout-handling code. 2010-12-29 10:19 kristaps Changed: roff.7 (1.18), "Exp", lines: +48 -2 Initial documentation for TBL, which for the time being is commented-out. 2010-12-29 01:18 kristaps Changed: libroff.h (1.4), "Exp", lines: +1 -2 Whack removed function from libroff. 2010-12-29 01:16 kristaps Changed: libroff.h (1.3), "Exp", lines: +8 -15 main.c (1.126), "Exp", lines: +3 -1 mandoc.h (1.36), "Exp", lines: +3 -1 roff.c (1.111), "Exp", lines: +2 -2 tbl.c (1.5), "Exp", lines: +24 -63 tbl_opts.c (1.3), "Exp", lines: +131 -68 Significant update to options handling, which now departs almost completely with the BSD.lv code due to performance issues and flat-out errors. Performance issues: functions called per character. Ugly. Flat-out errors: disallowing "reserved" tokens as arguments to those options accepting arguments. Also added are two mandoc.h error codes for general tbl syntax errors and for bad options. 2010-12-28 13:47 kristaps Changed: tbl.c (1.4), "Exp", lines: +2 -2 tbl_opts.c (1.2), "Exp", lines: +2 -2 Fix copyright email. 2010-12-28 13:46 kristaps Added: tbl_opts.c (1.1) Changed: Makefile (1.302), "Exp", lines: +3 -3 libroff.h (1.2), "Exp", lines: +36 -2 tbl.c (1.3), "Exp", lines: +61 -10 Adding initial options processing (not hooked into parse yet). This is more or less copied from tbl.bsd.lv and still needs integration with the general mandoc framework, e.g., with error messages. 2010-12-28 10:59 kristaps Changed: roff.c (1.110), "Exp", lines: +3 -2 Temporarily remove check for r->tbl at end of parse since we need the original parse point to generate a useful error message. 2010-12-28 10:55 kristaps Changed: tbl.c (1.2), "Exp", lines: +2 -2 Fixed enum rofferr return value in tbl_read() (oops). 2010-12-28 10:51 kristaps Added: libroff.h (1.1) tbl.c (1.1) Changed: Makefile (1.301), "Exp", lines: +4 -4 roff.c (1.109), "Exp", lines: +66 -58 roff.h (1.20), "Exp", lines: +2 -1 Initial tbl framework. Parse point is in libroff, which keeps a reference to a current tbl parse and routes ALL text into the tbl parse after stripping reserved words and making block-level pre-processing (e.g., `ig'). This is consistent with an analysis of embedded `TS/TE' in manuals with sprinkled -mdoc, roff, and -man macros. Fact of a parse is exposed to main.c by a return value (ROFF_TBL), which will trigger main.c to add a foreign parsed body to the -mdoc or -man parse stream. This interface isn't in yet, but will follow the parse-text functions in both libraries. I put this login in main.c because I don't want libroff calling directly into libmdoc or libman. As a consequence, a parsed row can be pushed directly into any -mdoc or -man context (put a `Bd -literal -offset indent' into a `TE/TS' block to see why this is necessary). It will then absorb formatting cues in the front-ends. A note on naming. I decided on libroff.h instead of tbl.h because this is purely within the roff layer. Separate tbl implementations will need, then, to interface with libroff. This is "how it should be" because tbl is tightly linked with roff in terms of `ds' and other formatting macros, as well as, of course, special characters and other roffisms. 2010-12-27 21:41 schwarze Changed: html.c (1.124), "Exp", lines: +14 -10 In case an ID attribute is written in pieces, only protect the first piece with a prepended 'x', not each piece, such that quoted and unquoted .Sh, .Ss, and .Sx arguments are compatible with each other. Fixing a bug reported by Nicolas Joly <njoly at NetBSD dot org>, avoiding a regression in my first patch as pointed out by njoly as well. "feel free to do so" kristaps@ 2010-12-27 20:39 kristaps Changed: mdoc.7 (1.172), "Exp", lines: +7 -2 Note `Sx's connection to `Sh' and `Ss'. 2010-12-26 14:44 kristaps Changed: man.h (1.49), "Exp", lines: +1 -2 mdoc.h (1.113), "Exp", lines: +1 -2 Whack MDOC_ACTED and MAN_ACTED (these no longer exist). 2010-12-26 14:38 kristaps Changed: TODO (1.70), "Exp", lines: +3 -1 pod2man re-writes this and that using `tr', which we don't implement. Noted by Andreas Vogele. 2010-12-25 23:27 kristaps Changed: mdoc_term.c (1.205), "Exp", lines: +5 -5 As pointed out by schwarze@, %T/%J renders with a normal double-quote, not the fancy double-quote. 2010-12-25 23:25 kristaps Changed: mdoc.h (1.112), "Exp", lines: +2 -2 mdoc_term.c (1.204), "Exp", lines: +4 -4 mdoc_validate.c (1.149), "Exp", lines: +4 -17 Implement schwarze@'s much more elegant version of my %T/%J fix. 2010-12-25 13:50 kristaps Changed: TODO (1.69), "Exp", lines: +1 -5 mdoc.c (1.173), "Exp", lines: +3 -1 mdoc.h (1.111), "Exp", lines: +6 -1 mdoc_term.c (1.203), "Exp", lines: +43 -4 mdoc_validate.c (1.148), "Exp", lines: +17 -2 Specifying both %T and %J in an `Rs' block causes the title to be quoted instead of underlined. This only happens in -Tascii, as -T[x]html both underlines and italicises. 2010-12-24 22:51 kristaps Changed: style.css (1.20), "Exp", lines: +2 -3 Whack superfluous font-family in mdocml's www style.css. Noted by Anthony J. Bentley. Thanks! 2010-12-24 22:47 kristaps Changed: mdoc_html.c (1.139), "Exp", lines: +3 -3 Make `Fo' use a B instead of SPAN (left-over). 2010-12-24 14:20 tag VERSION_1_10_8 2010-12-24 14:20 kristaps Changed: Makefile (1.300), "Exp", lines: +7 -3 Have Makefile build XHTML files too. 2010-12-24 14:14 kristaps Changed: Makefile (1.299), "Exp", lines: +1 -1 example.style.css (1.40), "Exp", lines: +2 -2 html.c (1.123), "Exp", lines: +1 -2 html.h (1.36), "Exp", lines: +1 -2 index.sgml (1.99), "Exp", lines: +2 -2 mdoc_html.c (1.138), "Exp", lines: +1 -2 style.css (1.19), "Exp", lines: +2 -2 Apparently the U tag is deprecated, so use a SPAN instead (blah). Bump version date for release. 2010-12-24 14:00 kristaps Changed: mdoc.c (1.172), "Exp", lines: +45 -7 mdoc.h (1.110), "Exp", lines: +2 -11 mdoc_argv.c (1.62), "Exp", lines: +2 -2 mdoc_html.c (1.137), "Exp", lines: +25 -25 mdoc_term.c (1.202), "Exp", lines: +25 -25 mdoc_validate.c (1.147), "Exp", lines: +59 -79 As per schwarze@'s suggestions, roll back the refcount structure in favour of a simpler shim for normalised data in the node allocation and free routines. This removes the need to bump and copy references within validator handlers, removes a pointer redirect, and also kills the refcount structure itself. Data is assumed to "live" either in a MDOC_BLOCK or MDOC_ELEM and is copied accordingly. 2010-12-24 00:46 kristaps Changed: example.style.css (1.39), "Exp", lines: +4 -5 html.c (1.122), "Exp", lines: +25 -27 html.h (1.35), "Exp", lines: +5 -5 man_html.c (1.57), "Exp", lines: +24 -29 Drastically fix -T[x]html's handling of font-escape mode changes (i.e., using \fI or \fP). Now, using these modes will cause a font to be rendered for each word; furthermore, setting mode within a word will do the correct thing. Second, make -man use real font tags (B, I, SMALL) to set its font instead of using font modes and fix up the pre-macro unsetting of the current mode. This fixes how roff.7 wasn't validating (<P> closing out a font mode) and has been checked against gcc.1 (more will come). I considered failure to validate OUR manual to be a show-stopper for the up-coming release. 2010-12-23 00:45 kristaps Changed: mdoc_html.c (1.136), "Exp", lines: +6 -6 Ensure -Thtml has DIV as child of BLOCKQUOTE. 2010-12-23 00:30 kristaps Changed: Makefile (1.298), "Exp", lines: +2 -2 index.sgml (1.98), "Exp", lines: +14 -13 Added last version notes and bumped version number and date. 2010-12-22 23:53 schwarze Changed: mdoc.7 (1.171), "Exp", lines: +9 -7 minor tweaks: 1. improve .Bl wording (from jmc@) 2. jmc@ noted that the .Mt default (the same as in groff) makes no sense, and there is no better default we could use; thus, regard it as implementation dependent and do not document it 3. fix formatting of one COMPATIBILITY note: move "and" out of .Sx ok kristaps@, jmc@ 2010-12-22 22:05 schwarze Changed: mdoc_validate.c (1.146), "Exp", lines: +6 -4 At the beginning of .Bl, .Sm is allowed, and .Lp should cause a warning, not an error. "I don't suppose I mind this." kristaps@ 2010-12-22 11:58 kristaps Changed: Makefile (1.297), "Exp", lines: +4 -0 index.sgml (1.97), "Exp", lines: +9 -1 style.css (1.18), "Exp", lines: +3 -1 Build xhtml files for www site exemplaria. 2010-12-22 11:38 kristaps Changed: main.c (1.125), "Exp", lines: +2 -2 mandoc.h (1.35), "Exp", lines: +2 -2 Revert IGNPAR to a warning after clue-stick applied by schwarze@: although technically-speaking a lost macro is an error (e.g., MANDOCERR_MACRO), casting out some extra whitespace (note, IGNPAR only happens in conditions where whitespace already exists!) is hardly an error matter. 2010-12-22 11:15 kristaps Changed: example.style.css (1.38), "Exp", lines: +3 -3 html.c (1.121), "Exp", lines: +3 -2 html.h (1.34), "Exp", lines: +2 -1 mdoc.c (1.171), "Exp", lines: +7 -23 mdoc.h (1.109), "Exp", lines: +16 -7 mdoc_argv.c (1.61), "Exp", lines: +2 -3 mdoc_html.c (1.135), "Exp", lines: +32 -32 mdoc_term.c (1.201), "Exp", lines: +25 -30 mdoc_validate.c (1.145), "Exp", lines: +77 -75 Implement reference-counted version of original union mdoc_data. This simplifies clean-up and allows for more types without extra hassle. Also made in-line literal types in -T[x]html use CODE instead of SPAN to match how literal blocks use PRE. 2010-12-22 09:51 kristaps Changed: man_html.c (1.56), "Exp", lines: +79 -97 Throw out negative margin garbage in -man -T[x]html in favour of using TABLE and P and so on. Now renders in text-based browsers. 2010-12-21 01:46 schwarze Changed: roff.c (1.108), "Exp", lines: +44 -12 Sync to OpenBSD: 1) Now that growing buffers in main.c is safe, bring back the bugfix distinguishing empty and undefined macros that was backed out in the previous roff.c commit: `de' initializes to "", not to NULL. 2) Roff only interpolates \* strings when the leading backslash is not escaped; using optimizations suggested by joerg@ and kristaps@. ok kristaps@ 2010-12-21 01:22 schwarze Changed: main.c (1.124), "Exp", lines: +2 -2 Sane behaviour for the growing of very small buffers: Always grow at least to the minimum requested size. Before this, a buffer of 1 byte was grown to 2 bytes, which was too small and sometimes caused segfaults. ok kristaps@ 2010-12-20 13:57 kristaps Changed: index.css (1.8), "Exp", lines: +2 -0 index.sgml (1.96), "Exp", lines: +8 -4 mandoc.1 (1.83), "Exp", lines: +8 -10 Clarify style inclusions and update release information. 2010-12-20 13:39 kristaps Changed: example.style.css (1.37), "Exp", lines: +4 -3 mdoc_html.c (1.134), "Exp", lines: +14 -13 style.css (1.17), "Exp", lines: +20 -20 Fix list-type being clobbered by margins. Last default styles in place. Added `Sx' to be default-italic (as in OpenBSD's cvsweb). Added `diag' formatting, which had been lost. 2010-12-20 13:07 kristaps Changed: example.style.css (1.36), "Exp", lines: +17 -12 html.c (1.120), "Exp", lines: +3 -1 html.h (1.33), "Exp", lines: +3 -1 mdoc_html.c (1.133), "Exp", lines: +18 -11 More use default tags, this time I and U. Also fix a stack overflow segfault in the last commit. 2010-12-20 10:40 kristaps Changed: example.style.css (1.35), "Exp", lines: +10 -10 html.c (1.119), "Exp", lines: +15 -15 html.h (1.32), "Exp", lines: +3 -3 mdoc_html.c (1.132), "Exp", lines: +53 -21 Give header and footer table cells default widths (using WIDTH and ALIGN atttributes) if no style is specified. Give the default-bold elements a B tag instead of a SPAN tag, as this can be overriden in the stylesheet. Prune some unused attributes from html.h. 2010-12-19 12:14 kristaps Changed: mdoc_html.c (1.131), "Exp", lines: +3 -2 Migrate schwarze@'s `Bk' argument patch to -T[x]html. 2010-12-19 12:11 schwarze Changed: mdoc_term.c (1.200), "Exp", lines: +3 -2 Handle .Bk the same way as groff 1.20.1: .Bk without arguments defaults to -words. .Bk with invalid arguments (including -lines) has no effect. ok kristaps@ 2010-12-18 19:32 schwarze Changed: roff.7 (1.17), "Exp", lines: +140 -90 Sync to the installed version in OpenBSD, excluding .ft documentation: Be more careful to not confuse requests, macros and escape sequences. Add more info at various places, including new SEE ALSO and HISTORY sections. OK jmc@ kristaps@ 2010-12-18 19:12 schwarze Changed: mdoc.7 (1.170), "Exp", lines: +9 -5 Sync to OpenBSD: More precise description of .Xo, and don't talk about deprecation, because there are cases were choosing .Xo or backslash line continuation is merely a matter of taste, not a difference in readability, and well-used .Xo is even slightly more portable. OK jmc@ 2010-12-17 13:03 kristaps Changed: example.style.css (1.34), "Exp", lines: +4 -4 style.css (1.16), "Exp", lines: +5 -5 Tweak default styles. 2010-12-17 12:57 kristaps Changed: mdoc_html.c (1.130), "Exp", lines: +3 -3 Don't use EM for default widths; use BU instead. 2010-12-17 11:42 kristaps Changed: index.css (1.7), "Exp", lines: +2 -2 index.sgml (1.95), "Exp", lines: +24 -1 style.css (1.15), "Exp", lines: +118 -50 Merged example.style.css into style.css. Adding version stuff. 2010-12-17 11:41 kristaps Changed: man.3 (1.27), "Exp", lines: +3 -3 mdoc.3 (1.51), "Exp", lines: +3 -3 Correctly labelled command-line as `Dl'. 2010-12-17 11:19 kristaps Changed: mdoc_html.c (1.129), "Exp", lines: +4 -5 Prevent double-printing of `D1' or `Dl' DIV. 2010-12-17 11:18 kristaps Changed: mandoc.1 (1.82), "Exp", lines: +5 -5 Correctly mark the examples as `Dl', not `D1'. 2010-12-17 11:01 kristaps Changed: example.style.css (1.33), "Exp", lines: +3 -2 mdoc_html.c (1.128), "Exp", lines: +5 -2 Add a "list" top-level tag, too. 2010-12-17 10:43 kristaps Changed: mdoc_html.c (1.127), "Exp", lines: +10 -4 Remove useless DIVs in favour of BRs. Fix `Ex' by having it print a prior BR. Fix `Rv' by only having it print a BR if there's a prior. 2010-12-17 10:37 kristaps Changed: example.style.css (1.32), "Exp", lines: +5 -1 html.c (1.118), "Exp", lines: +2 -1 html.h (1.31), "Exp", lines: +2 -1 mdoc_html.c (1.126), "Exp", lines: +22 -30 Make literal `Bd' use a PRE in -Thtml. Make `Bd' output in general use only a single DIV or PRE. Tag all displays with display class. 2010-12-17 08:26 kristaps Changed: example.style.css (1.31), "Exp", lines: +2 -2 man_html.c (1.55), "Exp", lines: +19 -32 Banished -man -Thtml header and footer to example.style.css as well. 2010-12-17 08:17 kristaps Changed: example.style.css (1.30), "Exp", lines: +10 -3 html.c (1.117), "Exp", lines: +5 -1 mdoc_html.c (1.125), "Exp", lines: +23 -43 Have synopsis_pre() in -Thtml emit P or BR, not DIVs. Banish header and footer TABLE styling to example.style.css. 2010-12-17 01:02 kristaps Changed: example.style.css (1.29), "Exp", lines: +8 -4 mdoc_html.c (1.124), "Exp", lines: +34 -56 Make SYNOPSIS `Nm' use a TABLE in -T[x]html mode. Also fix `Nd' using desc-body instead of desc as its CSS key. 2010-12-17 00:18 kristaps Changed: example.style.css (1.28), "Exp", lines: +5 -9 man_html.c (1.54), "Exp", lines: +13 -57 mdoc_html.c (1.123), "Exp", lines: +24 -71 Significantly clean up Sh, Ss, SH, and SS handling in -Thtml. Now a top-level DIV is used with only an H1 or H2 as the section header. This makes manuals much more readable in lynx, less complicated, and relegates left-margin widths to example.style.css. 2010-12-16 23:23 kristaps Changed: example.style.css (1.27), "Exp", lines: +9 -9 Some default styles for lists. Needs more testing, but seems safe enough. 2010-12-16 23:07 kristaps Changed: mandoc.1 (1.81), "Exp", lines: +7 -8 Note that we use CSS1, not CSS2. Remove superfluous language in output-mode short description. 2010-12-16 22:57 kristaps Changed: mdoc_html.c (1.122), "Exp", lines: +18 -7 Get widths to be propertly represented in -T[x]html. 2010-12-16 17:14 kristaps Changed: mdoc.c (1.170), "Exp", lines: +4 -1 mdoc.h (1.108), "Exp", lines: +2 -2 mdoc_term.c (1.199), "Exp", lines: +3 -3 mdoc_validate.c (1.144), "Exp", lines: +8 -5 Migrate `An' to use a pointer in its data, like everybody else. This is the first step to having a simpler ref-counted system for "data" associated with a node. 2010-12-16 11:23 kristaps Changed: mandoc.1 (1.80), "Exp", lines: +2 -8 Remove stray note on `i', which we no longer support. 2010-12-16 01:00 kristaps Changed: TODO (1.68), "Exp", lines: +3 -5 Note that `Sh' and `Ss' are now rigorously checked for paragraph macros. Merge other TODO regarding `It' and paragraphs. 2010-12-16 00:57 kristaps Changed: mdoc_validate.c (1.143), "Exp", lines: +3 -18 Back out last: apparently `Bl', `It', and `Pp' need a little bit more study to see exactly what's legal and what's not. 2010-12-16 00:53 kristaps Changed: mdoc_validate.c (1.142), "Exp", lines: +18 -3 Allow `It' to have a trailing paragraph if the surrounding list is in compact mode. 2010-12-16 00:25 kristaps Changed: mdoc_validate.c (1.141), "Exp", lines: +16 -14 First, make `Pp' (next to `Sm') be allowed as the first element of a `Bl' (before any `It' have been invoked). Next, have the existence of either macro raise a warning, as it's technically not legal according to mdoc.7. Second, delete any `Pp' as the first element of a `Bl' (i.e., before an `It') ONLY when -compact has not been specified. This matches with the latest version of groff. This deletion happens prior to the above check, so double-warnings will not be issued. 2010-12-15 23:44 kristaps Changed: mdoc_html.c (1.121), "Exp", lines: +1 -6 mdoc_term.c (1.198), "Exp", lines: +1 -6 Remove `Pp' and `Lp' checks in front-ends to make sure we're not printing as the first or last child of an `Ss' or `Sh': this is now ensured within the validator. 2010-12-15 23:39 kristaps Changed: main.c (1.123), "Exp", lines: +2 -2 mandoc.h (1.34), "Exp", lines: +2 -2 mdoc.c (1.169), "Exp", lines: +3 -1 mdoc.h (1.107), "Exp", lines: +2 -1 mdoc_macro.c (1.99), "Exp", lines: +4 -1 mdoc_validate.c (1.140), "Exp", lines: +27 -7 Add a "last child" member of struct mdoc_node. Remove `Pp' or `Lp' if it is the FIRST or LAST child of an `Sh' or `Sh' body. Make "skipping paragraph" be an error, not a warning, as information (an invoked macro) is ignored. 2010-12-15 17:21 kristaps Changed: example.style.css (1.26), "Exp", lines: +6 -2 Add some more bits to CSS example. 2010-12-15 17:19 kristaps Changed: html.c (1.116), "Exp", lines: +2 -1 html.h (1.30), "Exp", lines: +2 -1 man_html.c (1.53), "Exp", lines: +2 -9 mdoc_html.c (1.120), "Exp", lines: +34 -30 Use a single P tag for paragraph breaks (which can be configured for paragraph breaking in CSS). Use -man's handling of `sp' and `br', which accomodates for scaling widths (-mdoc wasn't). 2010-12-15 16:35 kristaps Changed: mdoc_html.c (1.119), "Exp", lines: +16 -21 Make sure that new list types don't emit whitespace before or after (we have to do this manually). 2010-12-15 16:22 kristaps Changed: example.style.css (1.25), "Exp", lines: +21 -22 Clarifying styles. 2010-12-15 16:08 kristaps Changed: example.style.css (1.24), "Exp", lines: +7 -3 mdoc_html.c (1.118), "Exp", lines: +11 -7 Clarify purpose of "lit". Make `Dl' and `D1' both use BLOCKQUOTE instead of DIVs. 2010-12-15 15:59 kristaps Changed: example.style.css (1.23), "Exp", lines: +6 -5 html.c (1.115), "Exp", lines: +2 -1 html.h (1.29), "Exp", lines: +2 -1 mandoc.1 (1.79), "Exp", lines: +2 -11 mdoc_html.c (1.117), "Exp", lines: +1 -7 Remove stupid outer DIV tag in favour of regular BODY and HTML that can be handled in CSS. Clarified "lit" tag (will be the subject of future clarification). Removed CSS2 note in mandoc.1, which is no longer the case. 2010-12-15 15:32 kristaps Changed: example.style.css (1.22), "Exp", lines: +42 -1 mdoc_html.c (1.116), "Exp", lines: +13 -12 Added list-type style tips. 2010-12-15 14:52 kristaps Changed: html.c (1.114), "Exp", lines: +5 -8 html.h (1.28), "Exp", lines: +5 -11 mdoc.h (1.106), "Exp", lines: +3 -2 mdoc_html.c (1.115), "Exp", lines: +153 -241 In-progress move from -T[x]html using DIVs for its lists to using DL, OL, and UL. Issue raised by Will Backman, solution proposed by schwarze@. 2010-12-11 14:40 schwarze Changed: mdoc_term.c (1.197), "Exp", lines: +15 -2 Make SYNOPSIS sections and code having .nr nS enabled behave as if the whole code were wrapped in .Bk/.Ek, i.e. keeping input lines together on output lines. This is compatible with new groff behaviour and deviates from historical groff. Tweaked version of a patch sent by kristaps@ on July 16, 2010. ok kristaps@ jmc@ sobrado@ millert@ 2010-12-10 20:58 schwarze Changed: main.c (1.122), "Exp", lines: +12 -3 mandoc.h (1.33), "Exp", lines: +2 -1 roff.7 (1.16), "Exp", lines: +8 -2 Abort endless loops during roff macro and string expansion. For now, use the simplest conceivable approach, like groff does: Just a fixed, ugly input stack limit. "check it in" kristaps@ 2010-12-09 23:44 schwarze Changed: TODO (1.67), "Exp", lines: +10 -23 done: .de; todo: """"; loops in macro and string expansion 2010-12-09 10:32 kristaps Changed: TODO (1.66), "Exp", lines: +1 -4 mdoc_validate.c (1.139), "Exp", lines: +10 -10 Allow quote macros (`Op', `Aq', `Bq', `Dq', `Pq', `Ql', `Qq', `Sq', and `Brq') to have zero arguments without warning. This makes sense because the multi-line quote macros (`Oo/Oc' etc.) allow zero children anyway. Furthermore, the documentation doesn't state that they're required to have children. Originally reported by Alex Kozlov, thanks! 2010-12-08 10:58 kristaps Changed: man.7 (1.92), "Exp", lines: +8 -41 man.c (1.92), "Exp", lines: +5 -5 man.h (1.48), "Exp", lines: +1 -3 man_html.c (1.52), "Exp", lines: +1 -3 man_macro.c (1.54), "Exp", lines: +1 -3 man_term.c (1.90), "Exp", lines: +1 -3 man_validate.c (1.56), "Exp", lines: +1 -3 Remove `i' and `r' macro handlers. These macros, originally part of the me package, aren't recognised by "groff -mandoc" so we don't need to do so either. Discussed on tech@ with schwarze@. While at it, remove references to `b' in man.7. As far as I know, this was never supported anyway. 2010-12-06 17:07 tag VERSION_1_10_7 2010-12-06 17:07 kristaps Changed: Makefile (1.296), "Exp", lines: +2 -2 Tag an internal release, 1.10.7, that marks being in sync with OpenBSD's changes these last months (less tbl). There are still some issues that require thought, but this extends beyond synchronisation. This WILL NOT be pushed to the main site; it's merely a logical tag so that there's a common fall-back in future changes. Note that the TODO file is NOT up to date. This is ok since the tag is purely internal. 2010-12-06 16:55 kristaps Changed: main.c (1.121), "Exp", lines: +53 -44 mandoc.h (1.32), "Exp", lines: +55 -43 Bring schwarze@'s mandoc.h and main.c errors and warnings entirely in sync, except for the tbl one which will be the focus of later study. 2010-12-06 16:37 kristaps Changed: mdoc.7 (1.169), "Exp", lines: +6 -11 roff.7 (1.15), "Exp", lines: +272 -84 Import changes by schwarze@ and Jason McIntyre into manuals. These are for the new libroff macros, the new libman macros, and for the sake of general clarity. Note that `ft' documentation is NOT included, as I've kept it in -man: it's highly confusing to have it in roff.7 when it's not implemented for both -man and -mdoc, as at least in theory, roff.7 should include only macros recognised by BOTH formats. 2010-12-06 15:31 kristaps Changed: man_html.c (1.51), "Exp", lines: +2 -2 Typo: man_in_pre -> man_ign_pre for `ft'. 2010-12-06 15:31 kristaps Changed: main.c (1.120), "Exp", lines: +2 -1 man.7 (1.91), "Exp", lines: +8 -3 man.c (1.91), "Exp", lines: +2 -2 man.h (1.47), "Exp", lines: +2 -1 man_html.c (1.50), "Exp", lines: +2 -1 man_macro.c (1.53), "Exp", lines: +2 -1 man_term.c (1.89), "Exp", lines: +44 -1 man_validate.c (1.55), "Exp", lines: +56 -1 mandoc.h (1.31), "Exp", lines: +2 -1 Add support for `ft' macro found in groff(7). Based on a patch by schwarze@, but without the -T[x]html handling, which structurally does not work. Also add man.7 documentation (not in original patch). 2010-12-06 14:12 kristaps Changed: man_html.c (1.49), "Exp", lines: +3 -7 Small merges from schwarze@'s man_html.c edits. 2010-12-06 14:07 kristaps Changed: man_html.c (1.48), "Exp", lines: +3 -7 Let some man_term.c cleanups bleed into man_html.c. 2010-12-06 14:04 kristaps Changed: man_term.c (1.88), "Exp", lines: +50 -80 My favourite: removing lots of code in favour of smaller, tighter code. Merge patch by schwarze@ consolidating RB, BR, etc. into one function. man_html.c already does this. 2010-12-06 13:56 kristaps Changed: man_validate.c (1.54), "Exp", lines: +21 -19 Make return(man_nmsg(...)) by a simple declaration. Make non-uppercase warning only occur once. Make scope-open-on-error warning only occur once. 2010-12-06 13:53 kristaps Changed: man_html.c (1.47), "Exp", lines: +5 -2 man_term.c (1.87), "Exp", lines: +2 -2 Header for `PP', `P', and `LP' should never be printed. 2010-12-06 13:50 kristaps Changed: man_validate.c (1.53), "Exp", lines: +2 -4 Allow HP/IP/etc. to have no arguments, as they're optional. From a field- tested patch by schwarze@. 2010-12-06 13:49 kristaps Changed: man.c (1.90), "Exp", lines: +10 -26 Allow multiple ELINE macros without raising a fatal error. From a field- tested patch by schwarze@. 2010-12-06 13:25 kristaps Changed: roff.c (1.107), "Exp", lines: +22 -10 term.c (1.175), "Exp", lines: +2 -2 Track down a bug of empty `de XX' macros causing uncertain behaviour by returning empty strings in roff_getstrn() instead of NULL. This caused maddeningly irregular segfaults in the pod2man preamble for `de IX'. But only on DEC alpha. Also integrate the kinda-probably-safe assertion relaxation in term.c, field-tested by schwarze@. This allows ALL [unpreprocessed] base and xenocara manuals for all BSD systems to run without segfault. 2010-12-06 11:01 kristaps Changed: main.c (1.119), "Exp", lines: +2 -1 mandoc.h (1.30), "Exp", lines: +2 -1 mdoc.c (1.168), "Exp", lines: +2 -4 mdoc_macro.c (1.98), "Exp", lines: +22 -22 Merge schwarze@'s relaxation of scope-breaking rules: allow implicit ending of scopes and drop stray scope-endings. 2010-12-05 16:14 kristaps Changed: man.3 (1.26), "Exp", lines: +4 -20 man.7 (1.90), "Exp", lines: +2 -26 man.c (1.89), "Exp", lines: +2 -3 man.h (1.46), "Exp", lines: +1 -4 man_html.c (1.46), "Exp", lines: +2 -10 man_macro.c (1.52), "Exp", lines: +1 -4 man_term.c (1.86), "Exp", lines: +2 -7 man_validate.c (1.52), "Exp", lines: +1 -5 Remove `Sp', `Vb', and `Ve' (as per schwarze@'s changes in OpenBSD), which are now accomodated for the new libroff modifications. 2010-12-05 15:59 kristaps Changed: mdoc_validate.c (1.138), "Exp", lines: +2 -7 Remove repeat notification of -width omission. From a patch by schwarze@. 2010-12-05 15:55 kristaps Changed: main.c (1.118), "Exp", lines: +1 -2 mandoc.h (1.29), "Exp", lines: +1 -3 mdoc_validate.c (1.137), "Exp", lines: +3 -4 Remove long-standing FIXME regarding the consolidation of WIDTHARG and NOARGV warnings. From patch by schwarze@. 2010-12-05 15:49 kristaps Changed: main.c (1.117), "Exp", lines: +2 -2 mandoc.h (1.28), "Exp", lines: +2 -2 mdoc_validate.c (1.136), "Exp", lines: +7 -4 Merge schwarze@'s patch to allow uname() to fail without causing an exit. 2010-12-05 15:37 kristaps Changed: main.c (1.116), "Exp", lines: +2 -2 mandoc.h (1.27), "Exp", lines: +2 -3 mdoc.7 (1.168), "Exp", lines: +6 -1 mdoc_html.c (1.114), "Exp", lines: +5 -1 mdoc_term.c (1.196), "Exp", lines: +5 -1 mdoc_validate.c (1.135), "Exp", lines: +7 -11 Merge schwarze@'s changes allowing nested displays. Tweak the patch by making sure output doesn't add a superfluous newline with the nested displays. Also add a COMPATIBILITY note. Rename a macro (DATESIZ) to be in line with OpenBSD (DATESIZE). 2010-12-02 20:41 schwarze Changed: main.c (1.115), "Exp", lines: +19 -14 Track the parser status both per file (file_status), such that we can for example skip rendering on FATAL parsing errors, and globally (exit_status), such that we know what to return. Without this, following files produced no rendered output once a single file suffered from a FATAL error. Bug reported by kristaps@, fix by me. 2010-12-02 10:53 kristaps Changed: roff.c (1.106), "Exp", lines: +214 -73 Merge schwarze@'s changes to allow for user-defined strings. This primarily adds a roff_userdef() function for parsing new defines and modifies the look-up procedure. NOTE: there is a bug hidden away in this update that causes an infinite loop in some pages. The cause is for the moment unknown. 2010-12-01 17:00 kristaps Changed: main.c (1.114), "Exp", lines: +4 -3 Fix enum/int mixing. 2010-12-01 16:54 kristaps Changed: main.c (1.113), "Exp", lines: +3 -1 mandoc.h (1.26), "Exp", lines: +3 -1 roff.c (1.105), "Exp", lines: +28 -1 Merge OpenBSD's `so' handling (plus some documentation). Great work to schwarze@ and joerg@ for his comments! 2010-12-01 16:38 kristaps Changed: mdoc.c (1.167), "Exp", lines: +3 -1 Make sure that the manual section defaults to `1' if it's unset. This behaviour only happens if `Dt' isn't specified, which can be exhibited by running mandoc -mdoc on a man manual. 2010-12-01 16:28 kristaps Changed: main.c (1.112), "Exp", lines: +158 -87 Fix a subtle error in the new main.c where the parse type (mdoc/man) was being inherited during the parse sequence, making pset() meaningless. Make sure that the mdoc/man curp pointer is set for each parse from a persistent object. This flushes out an obscure error where `man' pages called with `mdoc' will parse and segfault due to a missing title. Never happened earlier because `mdoc' pages were guaranteed to have a prologue. Fix this later. Also document the new main.c functions. Please make sure these sort of things are documented! Throw in some whitespace to make things a bit more readable. 2010-12-01 15:09 kristaps Changed: main.c (1.111), "Exp", lines: +214 -130 roff.h (1.19), "Exp", lines: +4 -1 Merge restructuring of main.c code. This provided by schwarze@ and inspected carefully by joerg@. Merge roff.h header for compilation's sake (this is not yet implemented in roff.c.). THIS IS A BUGGY CHECK-IN. The manual type is erroneously kept between runs of the compiler. This is a known bug. 2010-12-01 13:05 kristaps Changed: mdoc_validate.c (1.134), "Exp", lines: +2 -2 Fixed a goddamn subtle error causing MDOC_LITERAL to remain set after a call to `Dl' or `Bd -literal' or unfilled. 2010-12-01 10:31 kristaps Changed: main.c (1.110), "Exp", lines: +2 -1 mandoc.h (1.25), "Exp", lines: +2 -1 roff.c (1.104), "Exp", lines: +13 -5 Re-ordering of roff requests as per OpenBSD. Made `rm' be an error (again, OpenBSD...). 2010-12-01 10:21 kristaps Changed: roff.c (1.103), "Exp", lines: +13 -5 Low-hanging fruit: add OpenBSD's `ad', `hy', `ne', and `nh' handling. Rename roff_line() -> roff_line_ignore(). 2010-11-30 21:44 schwarze Changed: mdoc.7 (1.167), "Exp", lines: +2 -2 Restore the Id tag that i clobbered in my previous commit, as pointed out by kristaps@. Sorry! 2010-11-30 20:45 schwarze Changed: mdoc.7 (1.166), "Exp", lines: +25 -15 Merge OpenBSD mdoc.7 rev. 1.56 and 1.57: Define the terms "callable" and "parsed" with more precision. Be more specific about what .Xo can be used for. Be more specific about what "historic groff" refers to. Explicitely mention the nine argument limit below COMPATIBILITY. feedback and ok jmc@ 2010-11-30 15:36 kristaps Deleted: man_action.c (1.44) Changed: Makefile (1.295), "Exp", lines: +3 -3 libman.h (1.44), "Exp", lines: +1 -3 man.c (1.88), "Exp", lines: +1 -3 man_macro.c (1.51), "Exp", lines: +1 -9 Kill man_action.c. 2010-11-30 15:24 kristaps Changed: man_action.c (1.43), "Exp", lines: +8 -191 man_validate.c (1.51), "Exp", lines: +192 -9 Move all man_action.c routines into man_validate.c 2010-11-30 14:27 kristaps Changed: mdoc_validate.c (1.133), "Exp", lines: +158 -169 Simplify the many if ( ! mdoc_nmsg()) return(0) etc. calls with just the error printing, as this is superseded by exit_status in main.c. Make check_argv() and check_text() return void. Make MDOC_Std test in check_argv() to pre_std(). Re-write post_root() to check more conditions before returning. 2010-11-30 13:04 kristaps Deleted: mdoc_action.c (1.89) Changed: Makefile (1.294), "Exp", lines: +3 -5 libmdoc.h (1.63), "Exp", lines: +1 -4 mdoc.c (1.166), "Exp", lines: +1 -5 mdoc_macro.c (1.97), "Exp", lines: +3 -11 mdoc_action.c is no more. Attic it and remove it from the Makefile. Remove references to MDOC_ACTED (it was only assertions) and the pre- and post-action functions. 2010-11-30 12:59 kristaps Changed: mdoc_action.c (1.88), "Exp", lines: +6 -264 mdoc_validate.c (1.132), "Exp", lines: +295 -75 Moved all prologue actions from mdoc_action.c into mdoc_validate.c. The file is now ready for removal. 2010-11-30 12:35 kristaps Changed: mdoc_action.c (1.87), "Exp", lines: +3 -153 mdoc_validate.c (1.131), "Exp", lines: +156 -1 Move post_bl() and subfunctions from mdoc_action.c into mdoc_validate.c. 2010-11-30 10:32 kristaps Changed: mdoc_action.c (1.86), "Exp", lines: +1 -57 mdoc_validate.c (1.130), "Exp", lines: +57 -12 Move -column list validation and normal-formisation from mdoc_action.c into mdoc_validate.c. 2010-11-29 16:06 kristaps Changed: mdoc.7 (1.165), "Exp", lines: +5 -2 mdoc_action.c (1.85), "Exp", lines: +3 -45 mdoc_validate.c (1.129), "Exp", lines: +38 -7 Migrate `Nm' and `Pa' handling from mdoc_action.c into mdoc_validate.c. Document that `Pa' is replaced by a tilde, just like `Mt'. 2010-11-29 15:45 kristaps Changed: main.c (1.109), "Exp", lines: +2 -3 mandoc.h (1.24), "Exp", lines: +2 -3 mdoc_action.c (1.84), "Exp", lines: +4 -89 mdoc_validate.c (1.128), "Exp", lines: +74 -11 Remove left-over rsord[] in mdoc_actions.c. Remove MANDOCERR_BADLIB (not used). Moved `St' handling from mdoc_action.c into mdoc_validate.c. Moved relevant MDOC_LITERAL macros (`Dl', `Bd' subtypes) from mdoc_action.c into mdoc_validate.c. 2010-11-29 14:56 kristaps Changed: mdoc_action.c (1.83), "Exp", lines: +2 -36 mdoc_validate.c (1.127), "Exp", lines: +26 -5 Move `Lb' handling from mdoc_action.c into mdoc_validate.c. 2010-11-29 14:50 kristaps Changed: mdoc_action.c (1.82), "Exp", lines: +2 -44 mdoc_validate.c (1.126), "Exp", lines: +36 -6 Move `At' handling from mdoc_action.c into mdoc_validate.c. 2010-11-29 13:51 kristaps Changed: mdoc_action.c (1.81), "Exp", lines: +2 -60 mdoc_validate.c (1.125), "Exp", lines: +46 -28 Move `Sh' validation from mdoc_action.c. into mdoc_validate.c. Surprisingly, both functions were doing pretty much the same thing. Make sure that the changes incorporate the union of both. 2010-11-29 13:12 kristaps Changed: mdoc_validate.c (1.124), "Exp", lines: +10 -8 Clarifying role of pre_pp (now pre_par), which was confusing me due to its name. Added some more documentation just for clarity's sake. No functional change. 2010-11-29 13:04 kristaps Changed: TODO (1.65), "Exp", lines: +5 -1 Note that `Rv' and `Ex' have different values if a manual name has been specified or not. 2010-11-29 13:02 kristaps Changed: mdoc.7 (1.164), "Exp", lines: +5 -2 mdoc_action.c (1.80), "Exp", lines: +3 -50 mdoc_html.c (1.113), "Exp", lines: +2 -2 mdoc_macro.c (1.96), "Exp", lines: +2 -2 mdoc_term.c (1.195), "Exp", lines: +2 -2 mdoc_validate.c (1.123), "Exp", lines: +47 -5 Move `Mt', `Ar', and `Li' handling from mdoc_action.c into mdoc_validate.c. Clarify that `Mt' gets a default `~' (as per groff 1.20) and document it in mdoc.7. Made `Lk' be removed in mdoc_macro.c if it has no arguments. This fixes segfaults in mdoc_{term,html}.c that nobody's managed to raise yet. 2010-11-29 12:22 kristaps Changed: mdoc_action.c (1.79), "Exp", lines: +2 -68 mdoc_validate.c (1.122), "Exp", lines: +104 -35 Migrate action for `Rs' into mdoc_validate.c. Remove superfluous in-line order_rs function. Merge `Rs' validations {BLOCK, BODY} -> {BODY}. Make invalid children of `Rs' raise an error but otherwise be allowed. 2010-11-03 12:07 schwarze Changed: TODO (1.64), "Exp", lines: +14 -1 new: parametric .de, and header lines of excessive length 2010-10-29 13:05 schwarze Changed: TODO (1.63), "Exp", lines: +21 -1 a bunch of small issues collected during p2k10 2010-10-29 10:38 schwarze Changed: mdoc.7 (1.163), "Exp", lines: +4 -4 Referring to terms explained in other manuals, always use .Xr. Otherwise, hyperlinks can't be produced and people will likely miss the additional information available. Suggested by deraadt@. 2010-10-29 00:05 schwarze Changed: mandoc_char.7 (1.40), "Exp", lines: +3 -4 Remove a left-over ".Xr groff 1"; patch from jmc@. 2010-10-24 14:49 schwarze Changed: mdoc.7 (1.162), "Exp", lines: +4 -1 When mentioning a function documented elsewhere, .Xr is often better than .Fn. Prodded by guenther@, ok jmc@. 2010-10-23 23:31 schwarze Changed: mdoc_html.c (1.112), "Exp", lines: +2 -2 mdoc_term.c (1.194), "Exp", lines: +2 -2 let .Bsx print just "BSD/OS" like in modern groff from Ulrich Spoerlein <uqs at spoerlein dot net> 2010-10-23 22:40 schwarze Changed: TODO (1.62), "Exp", lines: +8 -4 new: escape sequence handling done: nested displays 2010-10-19 21:40 schwarze Changed: TODO (1.61), "Exp", lines: +14 -1 two new TODOs based on submissions by Ulrich Spoerlein 2010-10-17 21:10 schwarze Changed: TODO (1.60), "Exp", lines: +19 -6 dream about .de support, and remove irrelevant stuff regarding tbl now that it's imported into OpenBSD 2010-10-11 15:46 kristaps Changed: main.c (1.108), "Exp", lines: +2 -2 mandoc.h (1.23), "Exp", lines: +2 -2 mdoc_validate.c (1.121), "Exp", lines: +6 -5 Use proper error for `An' multiple arguments. Making IGNARGV be an ERROR, not a WARNING, as information is lost. 2010-10-11 15:45 kristaps Changed: man_action.c (1.42), "Exp", lines: +2 -1 man_validate.c (1.50), "Exp", lines: +2 -1 Quiesce Linux header-inclusion warnings. 2010-10-11 13:24 kristaps Changed: mdoc_validate.c (1.120), "Exp", lines: +130 -88 Initial commit of cleaned-up validation code for -mdoc. Remove those ugly CPP macros in favour of real functions. Enumerate areas of short- term future cleanup, too. 2010-10-10 09:59 kristaps Changed: TODO (1.59), "Exp", lines: +1 -4 mdoc_html.c (1.111), "Exp", lines: +13 -2 mdoc_term.c (1.193), "Exp", lines: +3 -1 `Sm' no longer produces a linebreak when used in `Bd'. 2010-10-10 09:47 kristaps Changed: Makefile (1.293), "Exp", lines: +12 -7 man.3 (1.25), "Exp", lines: +9 -53 mdoc.3 (1.50), "Exp", lines: +9 -31 Cleaned up library manuals: removed old escapes, added EXAMPLES, stripped out some superfluous stuff. 2010-10-04 07:01 kristaps Changed: man.h (1.45), "Exp", lines: +93 -1 mandoc.h (1.22), "Exp", lines: +29 -407 mdoc.h (1.105), "Exp", lines: +385 -8 Revert merging of {mdoc,man}.h -> mandoc.h. While I'm add it, properly document all structures in these files. 2010-10-02 15:15 schwarze Changed: term.c (1.174), "Exp", lines: +15 -23 style cleanup, no functional change: * make the initial maxvis/mmax calculation easier to understand * where real, non-indexing casts happen, make them explicit * avoid a few lint warnings that can easily be fixed * remove one needless LINTED comment "I like this" kristaps@ 2010-10-02 10:14 kristaps Changed: man.h (1.44), "Exp", lines: +1 -79 mandoc.h (1.21), "Exp", lines: +401 -12 mdoc.h (1.104), "Exp", lines: +1 -328 Unify mdoc and man enums and structs into mandoc.h. This is part of the slow process of logically splitting formatting frontend and parser backend without pollution. 2010-10-01 21:51 schwarze Changed: TODO (1.58), "Exp", lines: +1 -13 html.c (1.113), "Exp", lines: +3 -1 mdoc_html.c (1.110), "Exp", lines: +5 -6 mdoc_macro.c (1.95), "Exp", lines: +3 -3 mdoc_term.c (1.192), "Exp", lines: +4 -5 term.c (1.173), "Exp", lines: +2 -2 * need a space before .No even if it starts with a closing delimiter * slightly simplify .Pf *_IGNDELIM code, and share part of it with .No * do not let opening delimiters fall out of the front of .Ns (from kristaps@) This fixes a few spacing issues in csh(1) and ksh(1). OK kristaps@ 2010-10-01 12:09 kristaps Changed: mdoc_html.c (1.109), "Exp", lines: +2 -1 Fix small regression where `Op' had an extra space between the "[" and the SPAN. 2010-09-27 23:03 schwarze Changed: mdoc.c (1.165), "Exp", lines: +5 -8 mdoc_term.c (1.191), "Exp", lines: +1 -2 mdoc_validate.c (1.119), "Exp", lines: +2 -2 term_ps.c (1.45), "Exp", lines: +2 -2 Merge from OpenBSD right after 1.10.6; now back to full sync. * mdoc.c: blank lines outside literal mode are more similar to .sp than .Pp * backslashes do not terminate macros; partial revert of mdoc.c 1.164; the intention of that commit is fully achieved in roff.c * mdoc_term.c: no need to list the same prototype twice * mdoc_validate.c: drop .Pp before .sp just like .Pp before .Pp * fix off-by-one found by jsg@ with parfait, OpenBSD term_ps.c 1.12 ok kristaps@ 2010-09-27 22:42 kristaps Changed: TODO (1.57), "Exp", lines: +5 -1 Added TODO for more `Pp' warnings. 2010-09-27 21:33 schwarze Changed: TODO (1.56), "Exp", lines: +5 -1 A minor issue with \& between .Pp found while merging 1.10.6. 2010-09-27 12:34 tag VERSION_1_10_6 2010-09-27 12:34 kristaps Changed: Makefile (1.292), "Exp", lines: +2 -2 index.sgml (1.94), "Exp", lines: +16 -1 Prepping for version. 2010-09-27 11:25 kristaps Changed: mdoc_validate.c (1.118), "Exp", lines: +7 -2 Consider both `Lp' and `Pp' when stripping prior paragraph marks. 2010-09-27 11:21 kristaps Changed: TODO (1.55), "Exp", lines: +1 -4 mdoc.7 (1.161), "Exp", lines: +4 -3 mdoc_html.c (1.108), "Exp", lines: +21 -1 mdoc_term.c (1.190), "Exp", lines: +21 -1 Suppress whitespace following Pp, Lp, sp, and the other newline-emitting macros within an unfilled or literal `Bd'. 2010-09-27 10:47 kristaps Changed: TODO (1.54), "Exp", lines: +1 -3 Remove finished TODO. 2010-09-27 09:26 kristaps Changed: TODO (1.53), "Exp", lines: +1 -5 main.c (1.107), "Exp", lines: +2 -1 mandoc.h (1.20), "Exp", lines: +2 -1 mdoc_validate.c (1.117), "Exp", lines: +24 -4 Ignore double-`Pp' and `Pp' before `Bd' and `Bl' (unless -compact is specified). 2010-09-27 06:56 kristaps Changed: arch.in (1.10), "Exp", lines: +2 -1 mdoc.7 (1.160), "Exp", lines: +3 -2 Added MIPS64. From a patch by Jason McIntyre. 2010-09-26 23:05 schwarze Changed: mandoc.1 (1.78), "Exp", lines: +4 -4 sync to OpenBSD: new sentence, new line; from jmc@ 2010-09-26 20:22 schwarze Changed: main.c (1.106), "Exp", lines: +2 -3 mandoc.h (1.19), "Exp", lines: +2 -3 mdoc_macro.c (1.94), "Exp", lines: +5 -9 If an explicit scope is still open at the end of an input file, report an ERROR: We can still render the page by just closing the open scope, but it is likely that information will be missing or document structure mangled. Before, man(7) only reported a WARNING (which is dangerous because we cannot be sure rendering is correct) and mdoc(7) ran into FATAL (which is too drastic, there is no reason not to show what we have). "looks good" kristaps@ 2010-09-26 19:46 schwarze Changed: man.7 (1.89), "Exp", lines: +7 -4 mdoc.7 (1.159), "Exp", lines: +5 -3 sync to OpenBSD: note that IMPLEMENTATION NOTES is not used in OpenBSD add missing comma in "sections 1, 6, & 8 only" below EXIT STATUS below SEE ALSO, add an .Xr to man(1), and from man(7) to mdoc(7) 2010-09-26 10:32 kristaps Changed: mdoc_html.c (1.107), "Exp", lines: +143 -214 Consolidated all -T[x]html punctuation macros into one function. 2010-09-26 10:00 kristaps Changed: mdoc_term.c (1.189), "Exp", lines: +3 -1 Linted function arguments. 2010-09-26 09:16 kristaps Changed: mdoc_term.c (1.188), "Exp", lines: +118 -226 Big clean-up consolidating all punctuation opening/closing functions into a single one. This makes code auditing easier and cuts down on bytesize. I also removed some NOSPACE clauses that were handled implicitly by the punctuation itself, e.g., a NOSPACE prior to printing ')', which in term.c has its leading whitespace automatically suppressed. 2010-09-25 16:52 kristaps Changed: TODO (1.52), "Exp", lines: +2 -5 Remove fixed TODO and add a new one. 2010-09-25 16:41 kristaps Changed: TODO (1.51), "Exp", lines: +1 -5 mdoc_html.c (1.106), "Exp", lines: +4 -2 mdoc_term.c (1.187), "Exp", lines: +4 -2 A `%T' invoked outside of `Rs' should not produce trailing punctuation. This from a TODO entry. Also stripped the superfluous NOSPACE, which is handled in term_word() or print_text() anyway. 2010-09-25 15:51 kristaps Changed: TODO (1.50), "Exp", lines: +1 -3 mdoc_html.c (1.105), "Exp", lines: +4 -7 mdoc_term.c (1.186), "Exp", lines: +6 -2 Add `Rs' vertical-space in -T[x]html "SEE ALSO" section. Remove corresponding TODO entry. Also have the "." after an `Rs' block trigger inter-sentence spacing. 2010-09-25 15:29 kristaps Changed: TODO (1.49), "Exp", lines: +1 -5 Removed TODO that was fixed by parsing escapes in offset strings. 2010-09-23 20:40 schwarze Changed: mdoc_term.c (1.185), "Exp", lines: +13 -7 When the HEAD of an .Nm block in the SYNOPSIS might be wider than the column containing it, the TERMP_HANG flag is required, but avoid the flag when we know that the HEAD is shorter, because in that case, the flag might ruin the alignment. Problem originally reported by jmc@, who also spotted a regression in an earlier version of this patch. "feel free to commit" kristaps@ 2010-09-23 20:26 schwarze Changed: term.c (1.172), "Exp", lines: +5 -3 Count trailing escaped blanks correctly; those ruined the alignment of columns. Tested by jmc@, and kristaps@ agrees with the direction. 2010-09-23 19:52 schwarze Changed: TODO (1.48), "Exp", lines: +4 -1 enclosures sometimes cause bogus end-of-sentence 2010-09-15 14:36 kristaps Changed: TODO (1.47), "Exp", lines: +1 -6 man_term.c (1.85), "Exp", lines: +5 -1 term.c (1.171), "Exp", lines: +43 -7 Allow string lengths to account for escapes. Now all calls to calculate column width in -Tascii, -Tpdf, and -Tps will account for "more real" string lengths. Example: .Bl -tag -width \s[+123424]foo .It bar baz .El The size escape will be correctly tossed. .Bl -tag -width \(aqbar .It \(aqbar baz .El The \(aq will be correctly handled. 2010-09-15 13:10 kristaps Changed: TODO (1.46), "Exp", lines: +1 -6 chars.c (1.30), "Exp", lines: +2 -2 chars.in (1.35), "Exp", lines: +3 -16 Remove last pod2man escapes. These render ok, although \*(-- renders as O- because the underlying macro depends on \(*W, which a prior pod2man preamble `tr' macro rewrites as "-". This is an error in groff as this tramples on the real \(*W, or Greek omega. 2010-09-13 20:15 schwarze Changed: mdoc_argv.c (1.60), "Exp", lines: +2 -2 Prevent .Lp from looping endlessly on punctuation. Same fix as the previous one. 2010-09-13 12:21 kristaps Changed: mdoc_argv.c (1.59), "Exp", lines: +2 -2 Prevent `Pp' from looping endlessly on punctuation. Bug reported by Marc Espie. 2010-09-08 11:57 kristaps Changed: TODO (1.45), "Exp", lines: +3 -1 Found nit in -T[x]html. 2010-09-04 20:18 kristaps Changed: chars.c (1.29), "Exp", lines: +3 -3 html.c (1.112), "Exp", lines: +3 -3 main.c (1.105), "Exp", lines: +9 -8 mandoc.c (1.35), "Exp", lines: +5 -5 mdoc_html.c (1.104), "Exp", lines: +2 -2 roff.c (1.102), "Exp", lines: +1 -3 term.c (1.170), "Exp", lines: +3 -3 term_ascii.c (1.10), "Exp", lines: +2 -1 term_ps.c (1.44), "Exp", lines: +4 -3 Churny commit to quiet lint. No functional changes. 2010-09-04 19:01 kristaps Added: regress/mdoc/Rs/one_author.in (1.1) regress/mdoc/Rs/three_authors.in (1.1) regress/mdoc/Rs/two_authors.in (1.1) Changed: TODO (1.44), "Exp", lines: +1 -7 mdoc_html.c (1.103), "Exp", lines: +10 -1 mdoc_term.c (1.184), "Exp", lines: +26 -2 Properly handle -mdoc %A in all outputs. This has two-author entires separated by only "and" while two or more are with ", and" for the last author. Also remove relevant TODO and add regression tests. 2010-09-04 18:52 kristaps Changed: TODO (1.43), "Exp", lines: +1 -4 Removed 'br\} comment from TODO. This was fixed a few weeks ago. 2010-09-04 18:31 kristaps Changed: roff.c (1.101), "Exp", lines: +4 -6 Fix premature return from sub-conditional roff statements. This fix fully accomodates for the pod2man standard preamble! 2010-09-04 17:22 kristaps Changed: man.7 (1.88), "Exp", lines: +3 -3 mdoc.7 (1.158), "Exp", lines: +3 -3 mdoc.template (1.9), "Exp", lines: +1 -1 Clarified EXIT STATUS sections. Discussed among schwarze@, Thomas, and Jason. Patch by Jason. 2010-08-29 11:36 kristaps Changed: chars.c (1.28), "Exp", lines: +2 -2 chars.in (1.34), "Exp", lines: +3 -10 Remove the pod2man table entries. They can now be properly read and assigned within the pod2man preamble. 2010-08-29 11:29 kristaps Changed: mdoc.c (1.164), "Exp", lines: +6 -3 roff.c (1.100), "Exp", lines: +10 -3 Allow `.xx\}' where xx is a macro (e.g., `.br\}') to close scope. This is experimental and hasn't been rigorously tested. It's only implemented in -mdoc for the time being. This is absolutely required for pod2man. It does, however, make the pod2man preamble be processed in full. 2010-08-29 11:28 kristaps Changed: man.7 (1.87), "Exp", lines: +4 -2 mandoc.c (1.34), "Exp", lines: +3 -3 mdoc.7 (1.157), "Exp", lines: +4 -2 out.c (1.29), "Exp", lines: +3 -1 Remove overstrike `\o'. This isn't the best solution because we really should be printing the contents, but for the time being, this is good enough. 2010-08-29 10:30 kristaps Changed: mdoc_validate.c (1.116), "Exp", lines: +4 -4 Made -mdoc `Pp', `Lp', and `br' not FATAL when having arguments. 2010-08-28 22:08 kristaps Changed: man.7 (1.86), "Exp", lines: +9 -7 mdoc.7 (1.156), "Exp", lines: +9 -7 mdoc.template (1.8), "Exp", lines: +8 -6 Move mdoc/man template "The next is for" into the section itself. Added OpenBSD compatibility notes. Based on a patch by Jason McIntyre. 2010-08-26 13:00 kristaps Changed: term_ps.c (1.43), "Exp", lines: +2 -2 "sys/param.h is for kernel interface programs. sys/types.h is the file you want to include." From a downstream fix by deraadt@. 2010-08-24 14:03 kristaps Changed: mdoc.7 (1.155), "Exp", lines: +2 -2 Fixed HISTORY to note mdoc's rewrite in groff-1.17, not groff-1.20. 2010-08-24 13:56 kristaps Changed: mandoc.c (1.33), "Exp", lines: +25 -2 out.c (1.28), "Exp", lines: +21 -1 Handle nested, recursive mathematical subexpressions. This is definitely not general, but it's good enough for pod2man definitions (after I clean up the roff, which will be addressed in later fixes). 2010-08-24 13:39 kristaps Changed: man.7 (1.85), "Exp", lines: +3 -1 mandoc.c (1.32), "Exp", lines: +2 -2 mdoc.7 (1.154), "Exp", lines: +3 -1 out.c (1.27), "Exp", lines: +3 -1 Strip out `\k' escape. 2010-08-24 13:07 kristaps Changed: man.7 (1.84), "Exp", lines: +5 -4 mandoc.c (1.31), "Exp", lines: +7 -3 mdoc.7 (1.153), "Exp", lines: +5 -4 out.c (1.26), "Exp", lines: +7 -1 Stripping out of `\w' groff escape. Yet another for pod2man... 2010-08-24 12:48 kristaps Changed: roff.c (1.99), "Exp", lines: +26 -3 Have the `ds' processor strip out `\\' as stipulated in groff.7. I only care because pod2man uses this construct. 2010-08-24 12:18 kristaps Changed: man.7 (1.83), "Exp", lines: +4 -2 mandoc.c (1.30), "Exp", lines: +8 -1 mdoc.7 (1.152), "Exp", lines: +3 -1 out.c (1.25), "Exp", lines: +11 -2 Strip out the `\z' escape. This is the first recursive sequence, getting mandoc ready to handle pod2man's complex escapes. 2010-08-22 15:49 kristaps Changed: mdoc.7 (1.151), "Exp", lines: +13 -2 Add a short HISTORY section to mdoc.7. Facts provided by schwarze@'s detective-work in the UNIX archives. 2010-08-22 14:54 kristaps Changed: man.7 (1.82), "Exp", lines: +27 -12 mdoc.7 (1.150), "Exp", lines: +105 -112 Sort COMPATIBILITY in mdoc(7) (from schwarze@). Update escape COMPATIBILITY in mdoc(7) and man(7) (ok schwarze@). 2010-08-21 14:04 schwarze Changed: mdoc_term.c (1.183), "Exp", lines: +1 -14 Backout previous. As Kristaps found out, i was wrong: .Bl -column phrases do not ignore spacing rules for trailing punctuation in general. In particular, - the rightmost column of a column list is unaffected - columns terminated by the .Ta macro instead of a tab are unaffected - columns ending in a blank are unaffected Spacing rules for trailing punctuation are only ignored when the tab follows the punctuation immediately, without a blank in between, because then the combination of punctuation and tab is treated by roff as a word, and the punctuation is not recognized as isolated. The reason this doesn't work in mandoc is that in the special case of .Bl -column (not in general!), mandoc treats tabs as word delimiters. We either need to solve this differently, or call it a bug in roff. 2010-08-20 23:34 schwarze Changed: term.c (1.169), "Exp", lines: +4 -11 Centralize handling of literal tabs in term_flushln() in one place, making the code simpler and easier to understand. No functional change. 2010-08-20 23:22 schwarze Changed: term.c (1.168), "Exp", lines: +7 -1 When a column contains trailing spaces, calculate the padding to the start of the next column correctly. Fixing a problem found by jmc@ in sysctl(3), reminded by kettenis@. 2010-08-20 22:51 schwarze Changed: TODO (1.42), "Exp", lines: +8 -1 mdoc_term.c (1.182), "Exp", lines: +14 -1 .Bl -column phrases ignore spacing rules for trailing punctuation and render it just like normal text. Minimal fix of a formatting bug in operator(7) reported by ray@. 2010-08-20 08:13 schwarze Changed: main.c (1.104), "Exp", lines: +9 -9 fix previous: when bailing out due to -Wstop, skip output functions, but not *_endparse; problem reported by kristaps@ 2010-08-20 05:52 kristaps Changed: Makefile (1.291), "Exp", lines: +4 -4 Fixed Makefile auto-generation of manuals not to use -fstrict and [old] -Werror. 2010-08-20 01:02 schwarze Changed: chars.c (1.27), "Exp", lines: +3 -3 html.c (1.111), "Exp", lines: +3 -3 libman.h (1.43), "Exp", lines: +1 -2 libmdoc.h (1.62), "Exp", lines: +1 -2 main.c (1.103), "Exp", lines: +137 -230 man.3 (1.24), "Exp", lines: +3 -8 man.c (1.87), "Exp", lines: +7 -27 man.h (1.43), "Exp", lines: +2 -5 man_validate.c (1.49), "Exp", lines: +3 -7 mandoc.1 (1.77), "Exp", lines: +143 -59 mandoc.c (1.29), "Exp", lines: +5 -5 mandoc.h (1.18), "Exp", lines: +13 -2 mdoc.3 (1.49), "Exp", lines: +3 -8 mdoc.c (1.163), "Exp", lines: +7 -30 mdoc.h (1.103), "Exp", lines: +2 -6 mdoc_html.c (1.102), "Exp", lines: +2 -2 mdoc_validate.c (1.115), "Exp", lines: +3 -7 roff.3 (1.8), "Exp", lines: +3 -7 roff.c (1.98), "Exp", lines: +9 -25 roff.h (1.18), "Exp", lines: +2 -2 term.c (1.167), "Exp", lines: +3 -3 term_ps.c (1.42), "Exp", lines: +4 -3 Implement a simple, consistent user interface for error handling. We now have sufficient practical experience to know what we want, so this is intended to be final: - provide -Wlevel (warning, error or fatal) to select what you care about - provide -Wstop to stop after parsing a file with warnings you care about - provide consistent exit status codes for those warnings you care about - fully document what warnings, errors and fatal errors mean - remove all other cruft from the user interface, less is more: - remove all -f knobs along with the whole -f option - remove the old -Werror because calling warnings "fatal" is silly - always finish parsing each file, unless fatal errors prevent that This commit also includes a couple of related simplifications behind the scenes regarding error handling. Feedback and OK kristaps@; Joerg Sonnenberger (NetBSD) and Sascha Wildner (DragonFly BSD) agree with the general direction. 2010-08-19 20:49 kristaps Changed: index.sgml (1.93), "Exp", lines: +4 -4 Updated hypermail link to summary.html. 2010-08-18 15:57 kristaps Changed: index.sgml (1.92), "Exp", lines: +14 -6 Added mail archive periodically generated by hypermail. 2010-08-18 08:41 kristaps Changed: mandoc.1 (1.76), "Exp", lines: +4 -7 Migrate `Xr groff 1' -> GNU troff. I no longer assume that groff is installed on the host system. 2010-08-18 08:40 kristaps Changed: mandoc.1 (1.75), "Exp", lines: +2 -13 Remove references to \s in mandoc.1: we no longer document these and just flat-out ignore them. 2010-08-18 08:39 kristaps Changed: TODO (1.41), "Exp", lines: +4 -1 Add joerg@'s note that br\} needs work in libroff. 2010-08-16 09:51 kristaps Changed: TODO (1.40), "Exp", lines: +5 -1 chars.c (1.26), "Exp", lines: +2 -2 chars.in (1.33), "Exp", lines: +1 -2 man.3 (1.23), "Exp", lines: +2 -3 Remove \*(C+ from the pre-predefined strings. It is always `ds'-defined when being used in manuals. Since we now support `ds', it's no longer necessary to account for it. From a bug report originally by Thomas Jeunet. 2010-08-16 09:37 kristaps Changed: mandoc.c (1.28), "Exp", lines: +12 -10 out.c (1.24), "Exp", lines: +11 -8 Add \v and \h to ignored escapes. These are in the category of \s. Also made sign-less \s-style escapes be ok (this is technically against what's in the groff.7 manual, but seems pretty widespread). Noted by Thomas Jeunet as uglifying the gcc.1 manual. 2010-08-15 17:38 schwarze Changed: TODO (1.39), "Exp", lines: +36 -2 OpenBSD src/sbin was used as a tool to hunt bugs in mandoc. 2010-08-15 16:38 schwarze Changed: TODO (1.38), "Exp", lines: +41 -2 OpenBSD src/bin was used as a tool to hunt bugs in mandoc. 2010-08-14 09:48 kristaps Changed: TODO (1.37), "Exp", lines: +4 -3 Note first that TODO file should be up to date. Note also that the PDF file should be reduced in case I somehow forget. 2010-08-09 00:07 kristaps Changed: mdoc.7 (1.149), "Exp", lines: +7 -3 Correctly make quotes around `Lk' link-name argument. Noted by Aldis Berzoja. Also note COMPATIBILITY of groff misformatting `Lk'. 2010-08-09 00:00 kristaps Changed: mdoc_term.c (1.181), "Exp", lines: +8 -6 Correctly print `Lk' arguments in -Tascii. Issue raised by Aldis Berzoja. Behaviour ok'd by schwarze@. 2010-08-08 14:51 schwarze Changed: man.c (1.86), "Exp", lines: +8 -8 mdoc.c (1.162), "Exp", lines: +6 -9 simplify the code copying the macro name, and sync the accompagnying comment between man_pmacro() and mdoc_pmacro(); ok'd by kristaps@ together with main.c rev. 1.102 2010-08-08 14:45 schwarze Changed: main.c (1.102), "Exp", lines: +4 -3 Make sure we really throw away non-ASCII characters. For example, on OpenBSD without locale settings, isgraph(3) returns true for some eight-bit characters. ok kristaps@ 2010-08-07 20:57 kristaps Changed: man.c (1.85), "Exp", lines: +2 -12 mdoc.c (1.161), "Exp", lines: +2 -13 Clean out the isgraph() checks in mdoc.c and man.c. These code paths were never taken since main.c begin skipping over unrecognisable characters, so they were noops. 2010-08-07 20:33 kristaps Changed: mdoc.c (1.160), "Exp", lines: +16 -7 "Groff allows the initial macro on a line to be delimited by a space of by a tab; so allow the tab in mandoc, too." Original problem noted by schwarze@. Sync with OpenBSD. 2010-08-07 17:52 kristaps Changed: TODO (1.36), "Exp", lines: +4 -1 Add TODO noted by Alex Kozlov. 2010-08-07 17:46 kristaps Changed: mandoc.1 (1.74), "Exp", lines: +2 -12 Remove mandoc.1 compatibility notes that are no longer relevant. 2010-08-07 17:20 schwarze Changed: mdoc_html.c (1.101), "Exp", lines: +5 -5 same as mdoc_term.c rev. 1.180: preserve blank lines at the end of .Bd -literal patch from kristaps@, who asked me to commit this 2010-08-07 17:11 schwarze Changed: mdoc_term.c (1.180), "Exp", lines: +5 -3 merge from OpenBSD mdoc_term.c rev. 1.100: preserve blank lines in .Bd -literal, both in the middle and at the end of the display ok kristaps@ 2010-08-07 10:31 kristaps Changed: mdoc.7 (1.148), "Exp", lines: +2 -2 Removed cross-reference to groff(1) in favour of simply mentioning GNU troff. This removes the last groff(1) `Xr'. 2010-08-07 10:26 kristaps Changed: mdoc.7 (1.147), "Exp", lines: +6 -6 Added serial comma. Put "remarks" for `%C' into COMPATIBILITY. 2010-08-07 10:18 kristaps Changed: mdoc.7 (1.146), "Exp", lines: +3 -3 `In' comes before `Vt' in function example of SYNOPSIS. 2010-08-07 09:56 kristaps Changed: mdoc.7 (1.145), "Exp", lines: +2 -2 Clarify that predefined strings aren't groff-isms, they're troff-isms. 2010-08-06 17:09 schwarze Changed: mdoc.7 (1.144), "Exp", lines: +43 -38 tweaks from jmc@: * correct a few obvious mistakes * adopt some of jmc@'s recent changes to man(7) * cut down just a little on the awful tendency to stick a hyphen between two words. 2010-08-06 17:07 schwarze Changed: man.7 (1.81), "Exp", lines: +4 -6 mdoc.7 (1.143), "Exp", lines: +4 -6 merge from OpenBSD: - HISTORY is interesting even when there are STANDARDS - more precise instructions what to put into AUTHORS - add the version argument to the mdoc(7) .Os macro 2010-08-06 16:07 kristaps Changed: term_ps.c (1.41), "Exp", lines: +8 -4 IMPORTANT FIX: add missing braces around alloc failure conditional in fuction-isation of PS_GROWBUF. Obviously the original commit was never actually tested, as -Tps and -Tpdf errored out immediately. 2010-08-01 15:46 joerg Changed: term_ps.c (1.40), "Exp", lines: +19 -16 Turn the non-trivial PS_GROWBUF macro into a function. Don't use MAX, it doesn't exist in the default namespace on Solaris. 2010-07-31 23:52 schwarze Changed: chars.c (1.25), "Exp", lines: +2 -2 chars.h (1.6), "Exp", lines: +2 -2 chars.in (1.32), "Exp", lines: +2 -2 main.h (1.10), "Exp", lines: +2 -2 man.h (1.42), "Exp", lines: +2 -2 man_action.c (1.41), "Exp", lines: +2 -2 man_hash.c (1.23), "Exp", lines: +2 -2 man_macro.c (1.50), "Exp", lines: +2 -2 man_validate.c (1.48), "Exp", lines: +2 -2 mdoc_strings.c (1.24), "Exp", lines: +2 -2 st.in (1.15), "Exp", lines: +2 -2 Sync to OpenBSD: add missing Copyright years. I checked that substantial changes were committed to these files during these years. 2010-07-30 17:14 joerg Changed: mdoc_action.c (1.78), "Exp", lines: +8 -1 Don't crash for the following test case as reported by Jordan Gordeev: .Bl -tag .It foo ... 2010-07-29 22:00 joerg Changed: main.c (1.101), "Exp", lines: +5 -1 Use 0 for MAP_FILE if it doesn't exist. From Hans Rosenfeld. 2010-07-27 20:16 tag VERSION_1_10_5 2010-07-27 20:16 kristaps Changed: Makefile (1.290), "Exp", lines: +15 -13 index.sgml (1.91), "Exp", lines: +25 -10 Add PDF files to www. We also show text and ps, just to show off. 2010-07-27 20:02 kristaps Changed: Makefile (1.289), "Exp", lines: +2 -2 index.sgml (1.90), "Exp", lines: +3 -3 Get version bits in: 1.10.5. 2010-07-27 19:56 kristaps Changed: roff.c (1.97), "Exp", lines: +2 -2 No-op to shut up lint. 2010-07-27 13:16 kristaps Changed: roff.7 (1.14), "Exp", lines: +11 -2 roff.c (1.96), "Exp", lines: +24 -13 Fix `ds' handling. This was stripping characters from "val", when the syntax of `ds' is such that ALL text following the first non-space/non-double-quote is part of the value. This also fixes the warning of *(string++) = NULL report by kristaps@ and joerg@. 2010-07-27 08:50 kristaps Changed: index.css (1.6), "Exp", lines: +2 -1 Nit-picking style of www page. 2010-07-27 08:48 kristaps Changed: index.sgml (1.89), "Exp", lines: +10 -7 Fill in more version notes. 2010-07-27 08:46 kristaps Changed: TODO (1.35), "Exp", lines: +4 -1 Update TODO to note that %A needs "and" before final author and that joerg@ has some tbl(1) patches lying around that need merging. 2010-07-27 08:39 kristaps Changed: TODO (1.34), "Exp", lines: +1 -12 Removed boot_config.8 breakage, which was fixed by the last commit of `Bd -literal' and `Bd -unfilled' unbreakage. 2010-07-27 08:38 kristaps Changed: mdoc_html.c (1.100), "Exp", lines: +5 -8 mdoc_term.c (1.179), "Exp", lines: +4 -8 Fix how `Bd -unfilled' and `Bd -literal' break lines. This unbreaks displays to work as old groff shows them; however, new groff still does some fancy shit. 2010-07-26 22:35 kristaps Changed: example.style.css (1.21), "Exp", lines: +2 -2 mdoc_term.c (1.178), "Exp", lines: +2 -2 `Ad' is supposed to underline. Found whilst trolling through manuals. 2010-07-26 22:26 kristaps Changed: html.c (1.110), "Exp", lines: +3 -1 term.c (1.166), "Exp", lines: +3 -1 Make `Sm' start no-spacing after the first output word. Fix in both -T[x]html and -T{pdf,ps,ascii}. Reported by Jason McIntyre. 2010-07-26 21:58 kristaps Changed: term.c (1.165), "Exp", lines: +15 -20 Clean up some tight spots in mandoc's default mode: pessimistically pre-allocate the output buffer for words and in-line the buffera() function, which was only called in one place anyway. 2010-07-26 13:59 kristaps Changed: chars.c (1.24), "Exp", lines: +9 -10 chars.in (1.31), "Exp", lines: +372 -372 Remove asciisz from chars.in. It frees up a nice chunk of memory and at the overhead of running strlen() for ASCII strings (yes, I benchmarked this running mandoc_char(7) as input again and again with hundredth-second penalties... on my slow-ass alpha). 2010-07-26 13:45 kristaps Changed: mdoc.7 (1.142), "Exp", lines: +11 -5 mdoc_action.c (1.77), "Exp", lines: +6 -1 mdoc_validate.c (1.114), "Exp", lines: +2 -2 Note that `Dd' can be empty. This found following a thread on discuss@ started by Sascha Wildner, 07/25/2010 06:30 AM. 2010-07-26 12:51 kristaps Changed: mdoc.7 (1.141), "Exp", lines: +231 -223 Merge schwarze@'s pass over mdoc.7. Fixed small new-sentence-new-line nit noted by Jason McIntyre. "your diff looks ok" (Jason McIntyre) 2010-07-26 10:20 kristaps Changed: chars.in (1.30), "Exp", lines: +7 -7 Fix chars.in fall-through to ASCII mode. This bug only affected -T[x]html. 2010-07-26 10:00 kristaps Changed: index.sgml (1.88), "Exp", lines: +2 -1 Note -Tpdf in www. 2010-07-26 10:00 kristaps Changed: man.7 (1.80), "Exp", lines: +23 -26 Merge Jason McIntyre's corrections to man.7. "urgle": Jason McIntyre. "This is all ok" schwarze@. 2010-07-25 22:56 kristaps Changed: term.c (1.164), "Exp", lines: +4 -4 Avoid running the "width" termp callback for each whitespace. 2010-07-25 22:15 kristaps Changed: term.h (1.76), "Exp", lines: +6 -4 term_ps.c (1.39), "Exp", lines: +44 -15 Fully-working -Tpdf: xref table is now generated. This works for both single and multiple-manual mode (e.g., mandoc -Tpdf foo.1 bar.1). 2010-07-25 19:37 kristaps Changed: term_ps.c (1.38), "Exp", lines: +52 -64 Make PDF sections contiguous. 2010-07-25 19:05 joerg Changed: mandoc.c (1.27), "Exp", lines: +2 -2 Ensure that isalnum is called with unsigned char argument. 2010-07-25 18:22 schwarze Changed: TODO (1.33), "Exp", lines: +18 -1 list two additional issues 2010-07-25 11:44 kristaps Changed: main.c (1.100), "Exp", lines: +12 -3 main.h (1.9), "Exp", lines: +3 -2 mandoc.1 (1.73), "Exp", lines: +14 -2 term.h (1.75), "Exp", lines: +6 -2 term_ps.c (1.37), "Exp", lines: +227 -47 Initial PDF shim over PS. This produces working PDF output with -Tpdf. It's currently missing the xref table, so you'll get a warning in most PDF viewers). It also produces lots of redundant output, which will go away once I get a better handle on the PDF spec. The code doesn't really touch any existing functionality; it's a bunch of conditionals atop the -Tps (term_ps.c) implementation. I'm checking it in now to have it exist and be auditable. It needs clean-up, polish, and general care (and xref!). 2010-07-23 13:22 tag VERSION_1_10_5_PREPDF 2010-07-23 13:22 kristaps Changed: man_term.c (1.84), "Exp", lines: +18 -19 Collapse `nf', `fi', `Vb', and `Ve' into one function as in man_html.c. 2010-07-23 12:27 kristaps Changed: index.sgml (1.87), "Exp", lines: +2 -1 man_html.c (1.45), "Exp", lines: +65 -19 Enable literal contexts (Vb/nf) in -T[x]html -man. This requires that a new struct pass down in the call-tree (as also in man_term.c). Also add a line-break for `in', which isn't otherwise supported (yet). Now -Thtml -man cvs.1 for GNU's cvs.1 isn't as ugly. 2010-07-23 00:08 kristaps Changed: html.c (1.109), "Exp", lines: +6 -2 html.h (1.27), "Exp", lines: +2 -1 mdoc_html.c (1.99), "Exp", lines: +20 -2 Add support for `Sm' in -T[x]html -mdoc. 2010-07-22 23:53 kristaps Changed: man_html.c (1.44), "Exp", lines: +2 -2 Fix broken compilation, hopefully before anybody notices. 2010-07-22 23:03 kristaps Changed: man.7 (1.79), "Exp", lines: +12 -1 man.c (1.84), "Exp", lines: +2 -1 man.h (1.41), "Exp", lines: +2 -1 man_action.c (1.40), "Exp", lines: +2 -1 man_html.c (1.43), "Exp", lines: +2 -1 man_macro.c (1.49), "Exp", lines: +2 -1 man_term.c (1.83), "Exp", lines: +44 -1 man_validate.c (1.47), "Exp", lines: +6 -5 out.c (1.23), "Exp", lines: +2 -1 Added `in' macro support for -man -Tascii. This is not yet supported in -Thtml (I'm surprised to note that neither is LITERAL mode). 2010-07-22 14:30 kristaps Changed: index.sgml (1.86), "Exp", lines: +19 -1 Start putting in release notes. A record is good because this release will have lots of small, incremental improvements. 2010-07-22 14:03 kristaps Changed: mandoc.c (1.26), "Exp", lines: +4 -1 out.c (1.22), "Exp", lines: +4 -1 Accept "\s0" (i.e., properly ignore it). Found in the wild (e.g., gfdl.7). 2010-07-22 13:47 kristaps Changed: man_term.c (1.82), "Exp", lines: +11 -16 Bring `sp', `Sp', and `br' behaviour for -man in line with how -mdoc's is handled: correctly. This removes superfluous line breaks in many -man manuals. 2010-07-22 13:36 kristaps Changed: man_term.c (1.81), "Exp", lines: +3 -1 Have `nf' and `fi' flush lines. This is necessary or the LITERAL will be meaningless when invoked within a non-flushing context. This based on a formatting bug report submitted by Jonathon Gray (jsg@) via Christian Weisgerber (naddy@). 2010-07-21 21:55 schwarze Changed: mdoc_term.c (1.177), "Exp", lines: +3 -2 In the SYNOPSIS, .Nm at the beginning of an input line starts an .Nm block, and gets special handling (new line, indentation). But .Nm in the middle of a line is just a normal in-line element, so make sure it does NOT get the special handling. Partly fixes the test(1) SYNOPSIS; indentation after "[" is still excessive, which is an unrelated and more difficult issue. Reminded of the problem by jmc@; OK kristaps@. 2010-07-21 20:35 kristaps Changed: html.c (1.108), "Exp", lines: +10 -4 mandoc.c (1.25), "Exp", lines: +2 -2 out.c (1.21), "Exp", lines: +2 -2 out.h (1.14), "Exp", lines: +4 -3 term.c (1.163), "Exp", lines: +9 -4 Accomodate for groff's crappy behaviour wherein an unrecognised single-character escape (and ONLY this type of escape) will map back into itself: "If a backslash is followed by a character that does not constitute a defined escape sequence the backslash is silently ignored and the character maps to itself." (From groff.7.) Found by Jason McIntyre. 2010-07-21 10:10 kristaps Changed: index.sgml (1.85), "Exp", lines: +3 -3 Clarified mailing list purposes. 2010-07-21 09:59 kristaps Changed: index.css (1.5), "Exp", lines: +1 -4 index.sgml (1.84), "Exp", lines: +51 -89 Tidy up the www page. 2010-07-21 09:36 kristaps Changed: mdoc_argv.c (1.58), "Exp", lines: +4 -2 Nit-picking assign in decl. 2010-07-21 09:15 kristaps Changed: roff.c (1.95), "Exp", lines: +6 -6 Lint-fixes (NetBSD). 2010-07-21 09:08 kristaps Changed: mdoc.h (1.102), "Exp", lines: +32 -31 mdoc_argv.c (1.57), "Exp", lines: +4 -4 mdoc_validate.c (1.113), "Exp", lines: +4 -2 Finally make mdoc argv CPP-defines into a proper enum. 2010-07-21 08:24 kristaps Changed: term_ps.c (1.36), "Exp", lines: +8 -8 The "wx" value is quite small, so use a u_short instead of a size_t. 2010-07-20 14:56 kristaps Changed: main.c (1.99), "Exp", lines: +23 -1 man_validate.c (1.46), "Exp", lines: +26 -20 mandoc.h (1.17), "Exp", lines: +2 -1 mdoc_validate.c (1.112), "Exp", lines: +20 -20 Strip non-graphable input characters from input. The manuals specifically say that this is not allowed, and were it allowed, output would be inconsistent across output media (-Tps will puke, non-your-charset terminals will puke, etc.). With this done, simplify check_text() to only check escapes and for tabs. Add in a new tab warning, too. 2010-07-20 10:56 kristaps Changed: term_ps.c (1.35), "Exp", lines: +5 -5 Use floating-point -Tps "moveto" arguments to smooth out column and row misalignments. 2010-07-19 23:21 schwarze Changed: man.7 (1.78), "Exp", lines: +31 -19 sync to OpenBSD: * briefly mention the HISTORY of the man(7) language * update the copyright notice * improve the wording in a few places * fix a couple of typos including two suggestions from J.C. Roberts feedback and ok jmc@, ok sobrado@ and kristaps@ 2010-07-19 21:59 kristaps Changed: mdoc.7 (1.140), "Exp", lines: +53 -15 All macros in mdoc.7 are now documented. 2010-07-19 15:43 kristaps Changed: arch.in (1.9), "Exp", lines: +3 -1 mdoc.7 (1.139), "Exp", lines: +121 -7 st.in (1.14), "Exp", lines: +3 -1 Finished document -mdoc macros. Note `br' and `sp' remain. Noted in arch.in and st.in that mdoc.7 must be updated if entries are added. 2010-07-19 15:28 kristaps Changed: mdoc.7 (1.138), "Exp", lines: +171 -110 Added documentation for several more macros. Only a few remaining! Applied "new-sentence, new-line" here and there. Refer to "whitespace", not "white-space". Remove long-commented-out CAVEATS, all of which have been addressed or at least discussed to some extent or another. 2010-07-19 11:11 kristaps Changed: mdoc_html.c (1.98), "Exp", lines: +2 -2 mdoc_term.c (1.176), "Exp", lines: +2 -2 mdoc_validate.c (1.111), "Exp", lines: +1 -2 Remove some FIXMEs: `Ms' accepts arbitrary text, so it can't/shouldn't be converted into a symbol. The `Pp' issue has also been fixed. 2010-07-19 11:06 kristaps Changed: TODO (1.32), "Exp", lines: +1 -4 mdoc_html.c (1.97), "Exp", lines: +6 -1 mdoc_term.c (1.175), "Exp", lines: +6 -1 Fix spurrious newline emitted by `Pp' when specified before or after `Sh'/`Ss'. Reported by Jason McIntyre. 2010-07-19 10:49 kristaps Changed: chars.in (1.29), "Exp", lines: +3 -3 Changed Unicode codepoint of left-arrow right-arrow to be the regular ASCII symbols. 2010-07-19 10:48 kristaps Changed: man.7 (1.77), "Exp", lines: +5 -2 mdoc.7 (1.137), "Exp", lines: +6 -3 Note discarding of \m, \M, and \s in COMPATIBILITY sections. 2010-07-19 09:21 kristaps Changed: TODO (1.31), "Exp", lines: +1 -10 Remove \s TODO: these are intelligently ignored along with \m and \M. 2010-07-19 09:19 kristaps Changed: man.7 (1.76), "Exp", lines: +4 -31 mdoc.7 (1.136), "Exp", lines: +3 -24 Removed \s documentation, as we (1) never supported it, and (2) never will. Also whack the dot-separator from the embedded man.7 manual. 2010-07-19 07:53 kristaps Changed: out.c (1.20), "Exp", lines: +6 -16 Double-up DECO_RESERVED switch branch for colours. 2010-07-18 23:06 kristaps Changed: TODO (1.30), "Exp", lines: +1 -4 out.c (1.19), "Exp", lines: +17 -1 Properly discard \m colour escapes. Noted by J.C. Roberts. 2010-07-18 22:55 kristaps Changed: mandoc.c (1.24), "Exp", lines: +62 -3 out.c (1.18), "Exp", lines: +91 -180 out.h (1.13), "Exp", lines: +1 -2 Throw out a2roffdeco() in out.c for a readable version. The prior one was completely unmaintainable. The new one is both readable and quite similar to mandoc_special(), which in future versions will easily allow throwing-away of unsupported escapes (such as \m). It's also a fair bit smaller. DECO_SIZE has been removed: this crap, like colours, will not be supported. mandoc_special() also has #if 0'd switch branches for ALL groff.7 escapes and some lint fixes. 2010-07-18 18:04 kristaps Changed: TODO (1.29), "Exp", lines: +2 -3 chars.in (1.28), "Exp", lines: +2 -2 Make "\ " produce non-breaking space. Noted by Theo de Raadt. Ok schwarze@. 2010-07-18 17:00 schwarze Changed: libmandoc.h (1.9), "Exp", lines: +3 -3 man.c (1.83), "Exp", lines: +2 -2 mandoc.c (1.23), "Exp", lines: +13 -10 mdoc.c (1.159), "Exp", lines: +2 -2 mdoc_macro.c (1.93), "Exp", lines: +3 -3 Text ending in a full stop, exclamation mark or question mark should not flag the end of a sentence if: 1) The punctuation is followed by closing delimiters and not preceded by alphanumeric characters, like in "There is no full stop (.) in this sentence" or 2) The punctuation is a child of a macro and not preceded by alphanumeric characters, like in "There is no full stop .Pq \&. in this sentence" "looks fine" to kristaps@; tested by jmc@ and sobrado@ 2010-07-18 16:42 schwarze Changed: TODO (1.28), "Exp", lines: +15 -11 fixed .Sm spacing, but there are four new issues 2010-07-18 12:10 kristaps Changed: chars.c (1.23), "Exp", lines: +3 -2 mandoc.c (1.22), "Exp", lines: +63 -151 Clean up mandoc_special() (in order later to catch \m). It also flags several syntactic errors that weren't caught before. Also un-puke chars.c on zero-length \[]. 2010-07-17 12:01 kristaps Changed: term.c (1.162), "Exp", lines: +7 -8 Avoid letter-by-letter encoding by using strcspn() in term_word(). 2010-07-17 09:21 kristaps Changed: chars.c (1.22), "Exp", lines: +9 -10 chars.in (1.27), "Exp", lines: +371 -371 By letting strncmp() do its job and not helping it with a prior length check, we can remove the hard-coded length of all escape patterns. This frees up a nice chunk of memory. 2010-07-16 22:33 kristaps Changed: TODO (1.27), "Exp", lines: +5 -1 chars.c (1.21), "Exp", lines: +65 -24 chars.h (1.5), "Exp", lines: +5 -3 chars.in (1.26), "Exp", lines: +371 -371 html.c (1.107), "Exp", lines: +17 -9 term.c (1.161), "Exp", lines: +3 -3 Change chars.in HTML encoding to be a Unicode codepoint (int), which is later formatted in html.c. 2010-07-16 22:10 kristaps Changed: TODO (1.26), "Exp", lines: +0 -4 Removed completed TODO. 2010-07-16 21:09 kristaps Changed: mdoc.7 (1.135), "Exp", lines: +4 -4 Fixed dquote to be \*q. 2010-07-16 10:25 kristaps Changed: man.7 (1.75), "Exp", lines: +4 -4 Fix which escapes are used to format \". 2010-07-16 00:03 schwarze Changed: mdoc_term.c (1.174), "Exp", lines: +5 -3 After .Sm on, spacing ought to restart right away, before the next token, and not with a delay, after the next token. But be careful not to cause leading white space at the beginning of a line or column. In OpenBSD, improves chmod(1), ksh(1), tar(1), ps(1) and probably many more. ok kristaps@ and tested by jmc@ and sobrado@ 2010-07-15 23:50 schwarze Changed: mdoc.7 (1.134), "Exp", lines: +13 -1 document .Sm; prodded by kristaps@ 2010-07-13 23:53 schwarze Changed: html.c (1.106), "Exp", lines: +2 -2 html.h (1.26), "Exp", lines: +2 -2 libman.h (1.42), "Exp", lines: +2 -2 libmdoc.h (1.61), "Exp", lines: +2 -2 man.c (1.82), "Exp", lines: +2 -2 man_html.c (1.42), "Exp", lines: +2 -2 man_term.c (1.80), "Exp", lines: +2 -2 mandoc.1 (1.72), "Exp", lines: +2 -2 mdoc.h (1.101), "Exp", lines: +2 -2 mdoc_action.c (1.76), "Exp", lines: +2 -2 mdoc_argv.c (1.56), "Exp", lines: +2 -2 mdoc_html.c (1.96), "Exp", lines: +2 -2 mdoc_validate.c (1.110), "Exp", lines: +2 -2 roff.3 (1.7), "Exp", lines: +2 -3 term.h (1.74), "Exp", lines: +2 -2 term_ascii.c (1.9), "Exp", lines: +2 -2 term_ps.c (1.34), "Exp", lines: +2 -2 correct lots of copyright notices; ok kristaps@ 2010-07-11 23:07 tag VERSION_1_10_4 2010-07-11 23:07 kristaps Changed: Makefile (1.288), "Exp", lines: +2 -2 index.sgml (1.83), "Exp", lines: +22 -1 Pre-tag checkin of release bits and shortlist. 2010-07-11 22:39 schwarze Changed: TODO (1.25), "Exp", lines: +0 -17 remove three issues fixed near the end of the c2k10 hackathon 2010-07-07 15:04 kristaps Deleted: regs.h (1.7) Changed: Makefile (1.287), "Exp", lines: +1 -1 libman.h (1.41), "Exp", lines: +1 -2 libmdoc.h (1.60), "Exp", lines: +1 -2 main.c (1.98), "Exp", lines: +1 -2 man.3 (1.22), "Exp", lines: +1 -2 man.c (1.81), "Exp", lines: +1 -2 man_html.c (1.41), "Exp", lines: +1 -2 man_term.c (1.79), "Exp", lines: +1 -2 mdoc.3 (1.48), "Exp", lines: +2 -3 mdoc.c (1.158), "Exp", lines: +1 -2 mdoc_html.c (1.95), "Exp", lines: +1 -2 mdoc_term.c (1.173), "Exp", lines: +1 -2 roff.3 (1.6), "Exp", lines: +2 -58 roff.7 (1.13), "Exp", lines: +16 -7 roff.c (1.94), "Exp", lines: +123 -64 term.c (1.160), "Exp", lines: +1 -7 tree.c (1.24), "Exp", lines: +1 -2 Re-constitution of `ds' symbol processing. First, push the roff_getstr() family of functions into roff.c with the "first_string" directly in struct roff. Second, pre-process each line for reserved words in libroff, splicing and re-running a line if it has one (this allows defined symbols to be macros). Remove term.c's invocation of the roff_getstrn() function. Removed function documentation in roff.3 and added roff.7 `ds' documentation. 2010-07-06 22:08 kristaps Deleted: libmandoc.c (1.2) Changed: Makefile (1.286), "Exp", lines: +5 -5 Revert Makefile to using mandoc.c instead of libmandoc.c. Remove newborn libmandoc.c. While here, remove superfluous dep of libman on mandoc.c. 2010-07-06 22:04 kristaps Changed: mandoc.c (1.21), "Exp", lines: +0 -0 Resurrect mandoc.c after bogus removal (was: libmandoc.c). 2010-07-06 12:37 kristaps Changed: html.c (1.105), "Exp", lines: +19 -5 html.h (1.25), "Exp", lines: +4 -2 mdoc_html.c (1.94), "Exp", lines: +48 -2 Give -T[x]html `Bk -words' capability. 2010-07-06 11:10 kristaps Changed: html.c (1.104), "Exp", lines: +8 -8 Brought function arguments and style in ine with term_word() in term.c to make sharing of TERMP_KEEP easier. 2010-07-06 11:07 kristaps Changed: mdoc.7 (1.133), "Exp", lines: +14 -12 Clarified `Bk' operation in mdoc.7. 2010-07-06 10:55 kristaps Changed: mdoc.7 (1.132), "Exp", lines: +111 -2 Documented `En', `Es', `Hf', `Ic', `Lp', `Nd', `No', `Oc', `Oo', `Op', `Pa', `Pc', `Po', `Pq', `Pp', and `Va'. 2010-07-06 10:54 kristaps Changed: mdoc_term.c (1.172), "Exp", lines: +18 -1 Proper `Bk -words' support: only suppress breaks within a line, but allow end-of-line to break. This fixes the bad behaviour found when macros within `Bk' never break. "Excellent" schwarze@ 2010-07-05 20:10 kristaps Changed: mandoc.h (1.16), "Exp", lines: +38 -4 regs.h (1.6), "Exp", lines: +1 -23 Move register information into mandoc.h, which is where it should have been in the first place (mandoc.h contains system-wide declarations). 2010-07-05 20:00 kristaps Deleted: mandoc.c (1.20) Added: libmandoc.c (1.1) Changed: Makefile (1.285), "Exp", lines: +5 -5 Renamed mandoc.c to libmandoc.c. This is in the efforts of getting a cleaner namespace for functions across the entire system (mandoc.h: getting parsed-string values, or declarations necessary for the AST data), and compiler functions (libmandoc.h: back-end functions and declarations). 2010-07-05 13:12 kristaps Changed: mdoc.7 (1.131), "Exp", lines: +58 -17 Manual clean-ups. Add syntax message for `Bd', `Bk', and `Bl'. Document `Eo' and `Ec'. Add context-end notes `Ec' and `Fc'. 2010-07-05 10:45 kristaps Changed: TODO (1.24), "Exp", lines: +0 -5 Remove caching TODO: this has been committed. 2010-07-05 08:46 kristaps Changed: term_ps.c (1.33), "Exp", lines: +2 -6 Suppress duplicate "Page: 1 1" -Tps printing and instead relay on PS_NEWPAGE to do the job for us. Noted by Dillo. 2010-07-04 22:04 schwarze Changed: main.c (1.97), "Exp", lines: +3 -2 mdoc.3 (1.47), "Exp", lines: +4 -3 mdoc.7 (1.130), "Exp", lines: +4 -3 mdoc.c (1.157), "Exp", lines: +3 -2 mdoc_macro.c (1.92), "Exp", lines: +3 -2 mdoc_term.c (1.171), "Exp", lines: +3 -2 regs.h (1.5), "Exp", lines: +2 -1 roff.3 (1.5), "Exp", lines: +3 -2 roff.7 (1.12), "Exp", lines: +3 -2 roff.c (1.93), "Exp", lines: +2 -1 term.c (1.159), "Exp", lines: +3 -2 Assert my copyright, making it explicit that i'm granting the same license on those parts of the code and text that i have written as Kristaps is. "fine with me" kristaps@ 2010-07-04 21:59 kristaps Changed: mdoc.h (1.100), "Exp", lines: +3 -1 mdoc_action.c (1.75), "Exp", lines: +4 -1 mdoc_html.c (1.93), "Exp", lines: +4 -14 mdoc_term.c (1.170), "Exp", lines: +6 -28 mdoc_validate.c (1.109), "Exp", lines: +12 -15 Cache column sizes and char pointer into mdoc_bl. Finally get rid of the loops here and there to track down the MDOC_Column arguments. 2010-07-04 20:17 kristaps Changed: term_ps.c (1.32), "Exp", lines: +25 -7 gv(1) doesn't remember the last set font when displaying new pages, so print it out for each new page. This also prevents superfluous printings of the font before the %%Page: comment has been displayed. 2010-07-04 20:06 kristaps Changed: mandoc.1 (1.71), "Exp", lines: +2 -1 term_ps.c (1.31), "Exp", lines: +6 -19 Set line-height to be 1.4em. Removed check for minimum margins that are no longer important. 2010-07-04 19:57 kristaps Changed: term_ps.c (1.30), "Exp", lines: +14 -10 Suppress printing blank eof pages in -Tps. Delay printing of Page: until actual text is ready to be displayed. 2010-07-04 19:42 kristaps Changed: term.h (1.73), "Exp", lines: +3 -2 term_ps.c (1.29), "Exp", lines: +32 -16 Suppress printing of newlines/space at start of new -Tps page. Also renamed "psstate" -> "flags" (was wrongly implying some sort of state machine). 2010-07-04 19:24 kristaps Changed: mandoc.1 (1.70), "Exp", lines: +4 -6 term_ps.c (1.28), "Exp", lines: +11 -16 Backed out margin calculations in favour of much simpler rule of thumb: margins are 1/9 the length/width. 2010-07-04 10:53 kristaps Changed: mandoc.1 (1.69), "Exp", lines: +6 -3 term_ps.c (1.27), "Exp", lines: +40 -13 Auto-margins. Documented in mandoc.1. Also bumped line-height and made sure header and footer accomodate for said line-height. 2010-07-03 17:17 kristaps Changed: mdoc_term.c (1.169), "Exp", lines: +4 -2 Allow empty `Fo' to get by without an assertion. 2010-07-03 16:09 kristaps Changed: TODO (1.23), "Exp", lines: +9 -0 Note to myself on what I need to do regarding inter-library functions. 2010-07-03 16:02 schwarze Changed: regs.h (1.4), "Exp", lines: +6 -1 roff.3 (1.4), "Exp", lines: +69 -2 roff.c (1.92), "Exp", lines: +115 -2 term.c (1.158), "Exp", lines: +7 -1 Rudimentary implementation of user-defined strings; no time for more refinement right now. In particular, fixes terminfo(3) and mdoc.samples(7). ok kristaps@, who will add the HTML frontend bits 2010-07-03 00:48 schwarze Changed: TODO (1.22), "Exp", lines: +9 -0 The roff escape function "\s" is definitely not urgent, but it is used in the tree and we should not forget. 2010-07-02 17:42 schwarze Changed: mdoc_validate.c (1.108), "Exp", lines: +4 -7 Not only for -tag lists, but for -hang, -ohang, -inset, -diag, and -item list as well, empty bodies are OK, they do not even warrant a warning, much less the error they were throwing. According to kristaps, joerg@ also brought this up some time ago. ok kristaps@ jmc@ 2010-07-02 15:03 kristaps Changed: mdoc.h (1.99), "Exp", lines: +12 -1 mdoc_term.c (1.168), "Exp", lines: +3 -16 mdoc_validate.c (1.107), "Exp", lines: +20 -15 Cached `An' arguments in struct mdoc_an. Note that this isn't a pointer like the other data members, as there's no need to copy it around. 2010-07-02 13:12 kristaps Changed: mdoc_validate.c (1.106), "Exp", lines: +7 -5 Fix: was checking HEAD for arguments. 2010-07-02 13:07 kristaps Changed: mdoc.7 (1.129), "Exp", lines: +40 -2 Add documentation for Bf/Ef. 2010-07-02 12:54 kristaps Changed: TODO (1.21), "Exp", lines: +0 -1 main.c (1.96), "Exp", lines: +2 -2 mandoc.h (1.15), "Exp", lines: +2 -3 mdoc.c (1.156), "Exp", lines: +10 -1 mdoc.h (1.98), "Exp", lines: +14 -2 mdoc_html.c (1.92), "Exp", lines: +17 -30 mdoc_term.c (1.167), "Exp", lines: +5 -16 mdoc_validate.c (1.105), "Exp", lines: +57 -23 Stash `Bf' parameters into struct mdoc_bf. 2010-07-02 10:53 kristaps Changed: mdoc.h (1.97), "Exp", lines: +2 -2 mdoc_macro.c (1.91), "Exp", lines: +2 -2 mdoc_term.c (1.166), "Exp", lines: +6 -3 term_ps.c (1.26), "Exp", lines: +2 -1 Lint fixes. 2010-07-02 10:50 kristaps Changed: term.c (1.157), "Exp", lines: +2 -1 Lint tweak. 2010-07-02 10:43 kristaps Changed: TODO (1.20), "Exp", lines: +4 -0 Added TODO to sanitise `Nm' blocks such that HEAD optionally contains only a TEXT element consisting of the name. 2010-07-02 10:42 kristaps Changed: mdoc_html.c (1.91), "Exp", lines: +62 -9 Implemented -Thtml bits for handling `Nm' blocks. 2010-07-01 23:01 kristaps Changed: mdoc.c (1.155), "Exp", lines: +3 -4 Remove my own dumb FIXME and mark a static function defn as static. 2010-07-01 22:56 kristaps Changed: mdoc.c (1.154), "Exp", lines: +13 -5 mdoc.h (1.96), "Exp", lines: +3 -3 mdoc_action.c (1.74), "Exp", lines: +12 -25 mdoc_argv.c (1.55), "Exp", lines: +3 -2 mdoc_html.c (1.90), "Exp", lines: +17 -14 mdoc_term.c (1.165), "Exp", lines: +25 -23 mdoc_validate.c (1.104), "Exp", lines: +66 -53 Make struct_bl and struct_bd into pointers. This removes the need to do copying on internals after modification. Even more importantly, if an ENDBODY token is provided, it would have been impossible for post-change copying of the data to take place in the BLOCK. This allows it to happen by dint of pointers. Also did some bikeshedding in mdoc_term.c: checking against enum type and explicitly casting to the "post" function to void. This is for my own readability. 2010-07-01 22:35 schwarze Changed: libmdoc.h (1.59), "Exp", lines: +2 -1 mdoc.c (1.153), "Exp", lines: +19 -15 mdoc_action.c (1.73), "Exp", lines: +12 -1 mdoc_macro.c (1.90), "Exp", lines: +5 -2 In the mdoc(7) parser, inspect roff registers early such that all parts of the parser can use the resulting cues. In particular, this allows to use .nr nS to force SYNOPSIS-style .Nm indentation outside the SYNOPSIS as needed by ifconfig(8). To actually make this useable, .Pp must rewind .Nm, or the rest of the section would end up indented. Implement a quick hack for now, a generic solution can be designed later. ok kristaps@ and tested by sobrado@ 2010-07-01 21:44 kristaps Changed: mdoc_validate.c (1.103), "Exp", lines: +3 -1 Prevent validator from puking on ENDBODY `Bl' nodes. 2010-07-01 21:12 schwarze Changed: mdoc_macro.c (1.89), "Exp", lines: +4 -1 Correct handling of trailing punctuation in MDOC_DELIM blk_full HEADs. The bug was uncovered by SYNOPSIS .Nm as this happened to be the first block with this particular combination of properties. Found the hard way by kristaps@ in NetBSD gcc-contrib(1), fix by me. 2010-07-01 15:38 schwarze Changed: main.c (1.95), "Exp", lines: +4 -3 mandoc.h (1.14), "Exp", lines: +4 -3 mdoc.7 (1.128), "Exp", lines: +62 -2 mdoc_macro.c (1.88), "Exp", lines: +20 -11 mdoc_term.c (1.164), "Exp", lines: +43 -3 Improve .Nm indentation in the SYNOPSIS; kristaps@ will do the missing HTML part soon. "looks nicer" jmc@ "seems perfect to me" sobrado@ "slap it in" kristaps@ 2010-07-01 14:34 kristaps Changed: mdoc_html.c (1.89), "Exp", lines: +3 -3 mdoc_term.c (1.163), "Exp", lines: +2 -2 More reality-checks for the p->end type. 2010-07-01 14:28 kristaps Changed: mdoc_macro.c (1.87), "Exp", lines: +3 -3 p->end is an enum: treat it as such. 2010-07-01 14:23 kristaps Changed: mandoc.1 (1.68), "Exp", lines: +13 -4 term_ps.c (1.25), "Exp", lines: +41 -15 First, I'm defaulting to 11-point font, which renders much nicer (the "Internet" vaguely suggests using 11- or 9-Point for serifed fonts). This verified on GNU/Linux, Mac OSX, Windows, and OpenBSD. Noted in mandoc.1. Then added a3, a4, a5, letter, legal, and custom page dimensions. These seem to be the main players. Noted in mandoc.1. Lintified the casting. 2010-07-01 09:33 kristaps Changed: mdoc.3 (1.46), "Exp", lines: +26 -19 "Tweak previous": "badly nested" becomes badly-nested, some typos corrected, and a bit of clarity for my own sake. 2010-06-30 23:57 schwarze Changed: TODO (1.19), "Exp", lines: +1 -27 remove a couple of issues that have been fixed 2010-06-30 20:57 kristaps Changed: mandoc.1 (1.67), "Exp", lines: +3 -3 term_ps.c (1.24), "Exp", lines: +271 -271 Now using Times AFM provided by Dillo. Verified on OpenBSD by me and Mac OSX by M. Deksters. 2010-06-30 20:32 schwarze Changed: main.c (1.94), "Exp", lines: +43 -27 mandoc.h (1.13), "Exp", lines: +11 -7 improve error reporting: * avoid error exit code after mere warnings * add ERROR: and FATAL: to messages when appropriate * sort the code in mmsg() to make it easier on the eye * make the mandocerrs[] list easier to maintain * update a few comments in mandoc.h ok kristaps@ 2010-06-30 15:05 kristaps Changed: term_ps.c (1.23), "Exp", lines: +5 -6 Correct dimensions for DocumentMedia. Noted by schwarze@, as gv(1) was puking on input. 2010-06-30 13:16 kristaps Changed: term_ps.c (1.22), "Exp", lines: +289 -289 Embedding Charter proportional-width glyphs. Nice-looking output. 2010-06-30 13:00 kristaps Changed: term.h (1.72), "Exp", lines: +2 -1 term_ps.c (1.21), "Exp", lines: +28 -18 PostScript can now handle scaled glyph sizes (see "scale" in struct termp_ps) to arbitrarily scale font. Tested with 10 (default), 12, 14. 2010-06-30 12:30 kristaps Changed: term.c (1.156), "Exp", lines: +7 -2 term.h (1.71), "Exp", lines: +2 -2 term_ascii.c (1.8), "Exp", lines: +4 -10 term_ps.c (1.20), "Exp", lines: +4 -10 Pushed normalisation of scaling units into term_hspan(). 2010-06-30 12:27 kristaps Changed: term.c (1.155), "Exp", lines: +2 -35 term.h (1.70), "Exp", lines: +3 -1 term_ascii.c (1.7), "Exp", lines: +57 -8 term_ps.c (1.19), "Exp", lines: +66 -7 Move term_hspan() calculation into the output devices, where it belongs. 2010-06-30 11:45 kristaps Changed: term.h (1.69), "Exp", lines: +11 -11 term_ps.c (1.18), "Exp", lines: +22 -21 Push paper calculation out of getsubopt() loop. Make all points be AFM glyph units to make positioning more precise. 2010-06-30 04:05 schwarze Changed: mdoc_macro.c (1.86), "Exp", lines: +43 -4 Closing of full blocks (Bd Bf Bk Bl It Fo Nd Rs Sh Ss) may never be delayed: It must either succeed right away or fail outright. As noticed by Kristaps, neglecting to fail properly when required could make invalid input screw up the syntax tree and ultimately trigger assertions in other, unrelated parts of the program. This fix tested by and OK by kristaps@. While here, comment the rather tricky function rew_dohalt(). This function will probably need more tweaks later on. 2010-06-29 22:35 schwarze Changed: TODO (1.18), "Exp", lines: +3 -0 let's not forget the remaining badly nested block issue, even though there are no more urgent problems 2010-06-29 19:45 schwarze Changed: mdoc_macro.c (1.85), "Exp", lines: +2 -2 fix a typo in the function declaration; seems like gcc3 didn't catch it :-( thanks to thib@ and kristaps@ for reporting 2010-06-29 19:24 schwarze Changed: mdoc_macro.c (1.84), "Exp", lines: +70 -207 Considerably simplify block rewind rules; no functional change intended. * Let rew_alt() always succeed, obsoleting tons of case statements. * Merge rew_dobreak() into rew_dohalt(). * Encode all rewinding cases uniformly in terms of "enum rew". Required because i'm too dumb to get SYNOPSIS .Nm rewinding right without cleaning this up first. "get it in" kristaps@ 2010-06-29 19:20 schwarze Changed: libmdoc.h (1.58), "Exp", lines: +4 -1 mdoc.3 (1.45), "Exp", lines: +68 -5 mdoc.c (1.152), "Exp", lines: +19 -1 mdoc.h (1.95), "Exp", lines: +9 -1 mdoc_html.c (1.88), "Exp", lines: +3 -3 mdoc_macro.c (1.83), "Exp", lines: +195 -73 mdoc_term.c (1.162), "Exp", lines: +25 -8 tree.c (1.23), "Exp", lines: +5 -2 Support for badly nested blocks, written around the time of the Rostock mandoc hackathon and tested and polished since, supporting constructs like: .Ao Bo Ac Bc (exp breaking exp) .Aq Bo eol Bc (imp breaking exp) .Ao Bq Ac eol (exp breaking imp) .Ao Bo So Bc Ac Sc (double break, inner before outer) .Ao Bo So Ac Bc Sc (double break, outer before inner) .Ao Bo Ac So Bc Sc (broken breaker) .Ao Bo So Bc Do Ac Sc Dc (broken double breaker) There are still two known issues which are tricky: 1) Breaking two identical explicit blocks (Ao Bo Bo Ac or Aq Bo Bo eol) fails outright, triggering a bogus syntax error. 2) Breaking a block by two identical explicit blocks (Ao Ao Bo Ac Ac Bc or Ao Ao Bq Ac Ac eol) still has a minor rendering error left: "<ao1 <ao2 [bo ac2> ac1> bc]>" should not have the final ">". We can fix these later in the tree, let's not grow this diff too large. "get it in" kristaps@ 2010-06-29 15:00 tag VERSION_1_10_3 2010-06-29 15:00 kristaps Changed: Makefile (1.284), "Exp", lines: +2 -2 Inter-release tag. 2010-06-29 14:55 kristaps Changed: mandoc.1 (1.66), "Exp", lines: +108 -142 Remove some incorrect data from mandoc.1 (that of non-macro lines and spacing, which is for mdoc.7/man.7 anyway). Also document -Opage=xxx and push the per-output options into the output subsections. Makes the manual shorter and more readable. 2010-06-29 14:53 kristaps Changed: main.c (1.93), "Exp", lines: +2 -2 main.h (1.8), "Exp", lines: +2 -2 term_ps.c (1.17), "Exp", lines: +24 -2 Add in -Opaper=xxx support for -Tps postscript. This doesn't have any functional changes beyond the getsubopt() parse in term_ps.c. If you want to test this (it only does -Opaper=a4 and -Opaper=letter; adding more is trivial), make sure you specify (e.g.) -sPAPERSIZE=a4 to gs(1). 2010-06-29 14:18 kristaps Changed: mandoc.1 (1.65), "Exp", lines: +5 -3 term.h (1.68), "Exp", lines: +15 -5 term_ps.c (1.16), "Exp", lines: +57 -24 Give -Tps better PostScript hinting. Note that we're using Adobe-3.0 constructs. Push the stupid CPP defines for page boundaries and margins into proper variables. Give enum termfont a proper TERMFONT__MAX. 2010-06-28 23:26 kristaps Changed: term.c (1.154), "Exp", lines: +19 -16 term.h (1.67), "Exp", lines: +1 -2 term_ps.c (1.15), "Exp", lines: +12 -10 Clean-up of variable-width glyph support. Adds no new code; only restructured to make a bit more readable. Also removed an unused entry in the PS engine structure. 2010-06-28 22:46 kristaps Changed: term.c (1.153), "Exp", lines: +15 -12 term_ps.c (1.14), "Exp", lines: +14 -16 This enables variable glyph-width output. The checkin will be followed by a [functionless] clean-up in term_ps.c, but this makes the appropriate changes to "enable" initial proportional-width functionality in term.c and fixes some areas of term_ps.c that were causing errors. 2010-06-28 14:39 kristaps Changed: man_validate.c (1.45), "Exp", lines: +6 -1 mdoc_validate.c (1.102), "Exp", lines: +6 -1 Notes: this must be done later. \b in the input will cause havoc. 2010-06-28 13:45 kristaps Changed: term_ps.c (1.13), "Exp", lines: +342 -15 Initial encoding of glyph widths. From /usr/X11R6/lib/X11/fonts/Type1. These continues proportional-width glyph encoding. 2010-06-28 09:48 kristaps Changed: term.c (1.152), "Exp", lines: +5 -4 Tiny commit clarifying flushln() documentation as to what refers to visual screen output and what's an array index (getting closer to variable-width fonting). 2010-06-27 17:53 schwarze Changed: mdoc_term.c (1.161), "Exp", lines: +14 -4 mdoc_validate.c (1.101), "Exp", lines: +4 -4 minor .Bk fixes: * do not print invalid arguments verbatim (no groffs prints them, either) * do not trigger TERMP_PREKEEP twice * do not die from invlid arguments (groff won't die, either) * continue to ignore even valid arguments (just like groff) ok kristaps@ on the previous version, before removing my last bug ;) 2010-06-27 17:31 schwarze Changed: TODO (1.17), "Exp", lines: +12 -8 remove .Bk which is done while here, add .ds as a desideratum 2010-06-27 16:36 kristaps Changed: mdoc.c (1.151), "Exp", lines: +10 -1 mdoc_validate.c (1.100), "Exp", lines: +3 -1 regs.h (1.3), "Exp", lines: +15 -4 roff.7 (1.11), "Exp", lines: +7 -4 roff.c (1.91), "Exp", lines: +12 -9 Allow registers to be unset. Implement and document the `.nr nS val'. 2010-06-27 16:18 kristaps Changed: libman.h (1.40), "Exp", lines: +2 -2 libmdoc.h (1.57), "Exp", lines: +2 -2 man.3 (1.21), "Exp", lines: +6 -4 man.c (1.80), "Exp", lines: +3 -3 man.h (1.40), "Exp", lines: +2 -2 man_html.c (1.40), "Exp", lines: +2 -1 mdoc.3 (1.44), "Exp", lines: +6 -4 mdoc.c (1.150), "Exp", lines: +12 -3 mdoc.h (1.94), "Exp", lines: +3 -2 mdoc_html.c (1.87), "Exp", lines: +6 -6 mdoc_term.c (1.160), "Exp", lines: +7 -7 Following clue-stick applied by schwarze@, back out const-ness of regset passed in to libmdoc and libman. Fix mdoc.3 and man.3 EXAMPLE sections to include regset. Add MDOC_SYNPRETTY flag cueing front-end to nicely format certain values as if SEC_SYNOPSIS were the current section. 2010-06-27 15:52 kristaps Changed: Makefile (1.283), "Exp", lines: +0 -4 libman.h (1.39), "Exp", lines: +8 -8 libmdoc.h (1.56), "Exp", lines: +8 -8 main.c (1.92), "Exp", lines: +10 -9 man.3 (1.20), "Exp", lines: +8 -4 man.c (1.79), "Exp", lines: +9 -11 man.h (1.39), "Exp", lines: +3 -5 man_html.c (1.39), "Exp", lines: +1 -2 mdoc.3 (1.43), "Exp", lines: +8 -4 mdoc.c (1.149), "Exp", lines: +18 -26 mdoc.h (1.93), "Exp", lines: +4 -7 mdoc_action.c (1.72), "Exp", lines: +6 -1 mdoc_macro.c (1.82), "Exp", lines: +16 -25 roff.3 (1.3), "Exp", lines: +7 -3 roff.c (1.90), "Exp", lines: +19 -18 roff.h (1.17), "Exp", lines: +4 -4 Downstream maintainers: this removes UGLY! I don't want diverging functionality and UGLY works quite well thanks to schwarze@'s careful attention. This also backs out function-prototype changes for struct regset, instead stuffing a pointer to the regset directly into struct mdoc/man/roff. 2010-06-27 13:30 schwarze Changed: mdoc.7 (1.127), "Exp", lines: +22 -1 Document .Bk and .Ek; reminded by kristaps@. 2010-06-27 01:26 schwarze Changed: mdoc_term.c (1.159), "Exp", lines: +22 -2 term.c (1.151), "Exp", lines: +8 -3 term.h (1.66), "Exp", lines: +3 -1 Basic implementation of .Bk/.Ek; from OpenBSD. OK and one stylistic tweak by kristaps@. 2010-06-26 16:07 kristaps Changed: libman.h (1.38), "Exp", lines: +8 -3 libmdoc.h (1.55), "Exp", lines: +8 -3 man.c (1.78), "Exp", lines: +8 -5 man_macro.c (1.48), "Exp", lines: +4 -1 mdoc.c (1.148), "Exp", lines: +26 -18 mdoc_macro.c (1.81), "Exp", lines: +19 -16 Mechanical diff allowing the const struct regset to propogate through libman and libmdoc. 2010-06-26 15:36 kristaps Changed: libman.h (1.37), "Exp", lines: +2 -1 libmdoc.h (1.54), "Exp", lines: +2 -1 main.c (1.91), "Exp", lines: +3 -3 man.3 (1.19), "Exp", lines: +8 -2 man.c (1.77), "Exp", lines: +4 -2 man.h (1.38), "Exp", lines: +4 -2 man_html.c (1.38), "Exp", lines: +2 -1 man_term.c (1.78), "Exp", lines: +2 -1 mdoc.3 (1.42), "Exp", lines: +9 -3 mdoc.c (1.147), "Exp", lines: +4 -2 mdoc.h (1.92), "Exp", lines: +4 -2 mdoc_html.c (1.86), "Exp", lines: +2 -1 mdoc_term.c (1.158), "Exp", lines: +2 -1 regs.h (1.2), "Exp", lines: +1 -5 term.c (1.150), "Exp", lines: +1 -3 tree.c (1.22), "Exp", lines: +2 -1 Churn-ish check-in getting mdoc_parseln() and man_parseln() to accept a const struct regset pointer. No functionality. 2010-06-26 15:22 kristaps Added: regs.h (1.1) Changed: Makefile (1.282), "Exp", lines: +1 -1 main.c (1.90), "Exp", lines: +6 -3 mdoc.h (1.91), "Exp", lines: +2 -1 roff.3 (1.2), "Exp", lines: +3 -2 roff.7 (1.10), "Exp", lines: +36 -2 roff.c (1.89), "Exp", lines: +80 -9 roff.h (1.16), "Exp", lines: +3 -3 First step of adding register support. This is inspired by a significant patch by schwarze@. This commit adds support to libroff parsing `nr' into register set defined in regs.h. This will propogate into libmdoc and libman in later commits. 2010-06-25 19:50 kristaps Changed: html.c (1.103), "Exp", lines: +6 -6 out.c (1.17), "Exp", lines: +1 -3 out.h (1.12), "Exp", lines: +3 -6 term_ascii.c (1.6), "Exp", lines: +2 -1 term_ps.c (1.12), "Exp", lines: +2 -1 Remove "pt" from struct roffsu, as CSS (the only reason it was there) is unclear about which units accept floats/integers, which leads me to assume that it handles either and rounds as appropriate. 2010-06-25 19:02 kristaps Changed: mandoc.1 (1.64), "Exp", lines: +12 -8 Allow OpenBSD's nroff to process mandoc.1 without puking on long `It' lines. 2010-06-25 18:53 kristaps Changed: man_term.c (1.77), "Exp", lines: +39 -41 mdoc_term.c (1.157), "Exp", lines: +42 -40 term.c (1.149), "Exp", lines: +23 -5 term.h (1.65), "Exp", lines: +8 -3 term_ascii.c (1.5), "Exp", lines: +14 -1 term_ps.c (1.11), "Exp", lines: +13 -1 Initial chunks for variable-width fonts. Pushes all width calculations in mdoc_term.c and man_term.c down into term.c. This is still not implemented in term.c, although stubs for width calculations are in place. From now on, offset, rmargin, and other layout variables are abstract screen widths. They will resolve to the the familiar values for -Tascii but -Tps will eventually use points instead of chars. 2010-06-19 20:51 tag VERSION_1_10_2 2010-06-19 20:51 kristaps Changed: Makefile (1.281), "Exp", lines: +1 -1 Fix slipped in after tag: install PS files with installwww. 2010-06-19 20:46 kristaps Changed: arch.c (1.8), "Exp", lines: +2 -2 arch.in (1.8), "Exp", lines: +2 -2 att.c (1.8), "Exp", lines: +2 -2 att.in (1.6), "Exp", lines: +2 -2 chars.c (1.20), "Exp", lines: +2 -2 chars.h (1.4), "Exp", lines: +2 -2 chars.in (1.25), "Exp", lines: +2 -2 html.c (1.102), "Exp", lines: +2 -2 html.h (1.24), "Exp", lines: +2 -2 lib.c (1.8), "Exp", lines: +2 -2 lib.in (1.9), "Exp", lines: +2 -2 libman.h (1.36), "Exp", lines: +2 -2 libmandoc.h (1.8), "Exp", lines: +2 -2 libmdoc.h (1.53), "Exp", lines: +2 -2 main.c (1.89), "Exp", lines: +2 -2 main.h (1.7), "Exp", lines: +2 -2 man.c (1.76), "Exp", lines: +2 -2 man.h (1.37), "Exp", lines: +2 -2 man_argv.c (1.4), "Exp", lines: +2 -2 man_hash.c (1.22), "Exp", lines: +2 -2 man_html.c (1.37), "Exp", lines: +2 -2 man_macro.c (1.47), "Exp", lines: +2 -2 man_term.c (1.76), "Exp", lines: +2 -2 man_validate.c (1.44), "Exp", lines: +2 -2 mandoc.c (1.19), "Exp", lines: +2 -2 mdoc.h (1.90), "Exp", lines: +2 -2 mdoc_action.c (1.71), "Exp", lines: +2 -2 mdoc_argv.c (1.54), "Exp", lines: +2 -2 mdoc_hash.c (1.16), "Exp", lines: +2 -2 mdoc_html.c (1.85), "Exp", lines: +2 -2 mdoc_macro.c (1.80), "Exp", lines: +2 -2 mdoc_strings.c (1.23), "Exp", lines: +2 -2 mdoc_term.c (1.156), "Exp", lines: +2 -2 msec.in (1.6), "Exp", lines: +2 -2 out.c (1.16), "Exp", lines: +2 -2 out.h (1.11), "Exp", lines: +2 -2 st.c (1.8), "Exp", lines: +2 -2 st.in (1.13), "Exp", lines: +2 -2 term.c (1.148), "Exp", lines: +2 -2 term.h (1.64), "Exp", lines: +2 -2 term_ascii.c (1.4), "Exp", lines: +2 -2 term_ps.c (1.10), "Exp", lines: +2 -2 tree.c (1.21), "Exp", lines: +2 -2 vol.c (1.8), "Exp", lines: +2 -2 vol.in (1.6), "Exp", lines: +2 -2 Churn as I finish email address migration kth.se -> bsd.lv. 2010-06-19 20:43 kristaps Changed: Makefile (1.280), "Exp", lines: +2 -2 index.sgml (1.82), "Exp", lines: +12 -1 Version notes for 1.10.2. 2010-06-13 22:44 kristaps Changed: TODO (1.16), "Exp", lines: +3 -27 Removed finished TODOs 2010-06-13 22:05 kristaps Changed: mdoc_term.c (1.155), "Exp", lines: +15 -45 Remove arg_getattrs(), as we only have arg_getattr()-like calls now that -width is cached. 2010-06-13 21:41 kristaps Changed: mdoc_html.c (1.84), "Exp", lines: +4 -4 mdoc_term.c (1.154), "Exp", lines: +11 -10 Switch on cached -width usage in front-ends. 2010-06-13 21:02 kristaps Changed: mdoc.h (1.89), "Exp", lines: +2 -1 mdoc_action.c (1.70), "Exp", lines: +51 -40 mdoc_term.c (1.153), "Exp", lines: +2 -1 mdoc_validate.c (1.99), "Exp", lines: +14 -12 Allow -width for lists to be cached in mdoc_bl. This requires some trickery because widths may be on-the-fly recalculated. I don't like how these are split between mdoc_action.c and mdoc_validate.c, but for the time being, it'll do. 2010-06-13 20:05 kristaps Changed: mdoc_action.c (1.69), "Exp", lines: +36 -38 Small optimisations in mdoc_action list processing. Cleanups making way for "width" cached argument. 2010-06-12 12:38 kristaps Added: regress/mdoc/Bl/empty-offset.in (1.1) Changed: mdoc.h (1.88), "Exp", lines: +2 -1 mdoc_action.c (1.68), "Exp", lines: +2 -42 mdoc_html.c (1.83), "Exp", lines: +5 -9 mdoc_term.c (1.152), "Exp", lines: +11 -11 mdoc_validate.c (1.98), "Exp", lines: +16 -7 Cached `Bl -offset' into mdoc_bl. Removed erroneous "-offset defaults to 6n if no value is specified" and added regression tests for `Bl' testing against the empty -offset argument. 2010-06-12 12:21 kristaps Changed: mdoc_term.c (1.151), "Exp", lines: +10 -7 Reverted to mdoc_term.c 1.149 (`It' does not inherit `Bl's cache, obviously, which was causing fallout) and again remove the loop code. Tested more thoroughly. 2010-06-12 12:10 kristaps Changed: mdoc.h (1.87), "Exp", lines: +6 -5 mdoc_html.c (1.82), "Exp", lines: +3 -5 mdoc_term.c (1.150), "Exp", lines: +10 -11 mdoc_validate.c (1.97), "Exp", lines: +14 -13 Moved `Bl -compact' into cached data. This allowed the removal of scanning the argv list in print_bvspace(), and thus the parent pointer. 2010-06-12 11:58 kristaps Changed: mdoc.c (1.146), "Exp", lines: +5 -5 mdoc.h (1.86), "Exp", lines: +6 -2 mdoc_argv.c (1.53), "Exp", lines: +2 -2 mdoc_html.c (1.81), "Exp", lines: +4 -4 mdoc_term.c (1.149), "Exp", lines: +6 -5 mdoc_validate.c (1.96), "Exp", lines: +14 -13 `Bl' is now using a struct instead of a single enum mdoc_list for its cached values. You can probably guess where this is going. 2010-06-12 11:41 kristaps Added: regress/mdoc/Bd/bd-compact.in (1.1) regress/mdoc/Bd/bd-empty-offset.in (1.1) Changed: main.c (1.88), "Exp", lines: +2 -1 mandoc.h (1.12), "Exp", lines: +3 -1 mdoc.7 (1.126), "Exp", lines: +11 -18 mdoc_validate.c (1.95), "Exp", lines: +3 -18 regress/mdoc/Cd/cd.in (1.2), "Exp", lines: +3 -1 Removed stipulation that an empty `Bd -offset' will default to 6n. Not sure where this came about. Added regression tests to convince myself that this is so. Also consolidated COMPATIBILITY notes regarding `Bd'. Added COMPATIBILITY note to the effect that old groff pukes on `Bd -compact -ragged' (regression test will fail on old groff). 2010-06-12 11:21 kristaps Added: regress/mdoc/Bd/bd0.in (1.1) Changed: mdoc.h (1.85), "Exp", lines: +8 -2 mdoc_action.c (1.67), "Exp", lines: +3 -5 mdoc_html.c (1.80), "Exp", lines: +10 -22 mdoc_term.c (1.148), "Exp", lines: +16 -19 mdoc_validate.c (1.94), "Exp", lines: +60 -13 Cache all of `Bd's resolved arguments into mdoc_bd, which is stashed in the "data" union in mdoc_node. Allows me to remove some ugly loops in the front-end and duplicate tests in mdoc_action.c. Add a regression test to make sure we're not doing anything bad (more to come). 2010-06-12 10:09 kristaps Changed: main.c (1.87), "Exp", lines: +3 -2 mandoc.h (1.11), "Exp", lines: +3 -3 mdoc.7 (1.125), "Exp", lines: +7 -1 mdoc.h (1.84), "Exp", lines: +12 -2 mdoc_action.c (1.66), "Exp", lines: +5 -9 mdoc_html.c (1.79), "Exp", lines: +5 -15 mdoc_term.c (1.147), "Exp", lines: +7 -42 mdoc_validate.c (1.93), "Exp", lines: +43 -21 Added enum mdoc_disp (similar to enum mdoc_list). Display types are now only calculated once in mdoc_validate.c. Noted that `Bd -file xxx' is not supported: it now raises a fatal warning. This is noted in mdoc.7. Empty `Bd' now defaults to LIST_ragged, which is not quite what groff does, but close enough (gross just throws away the `Bd' and gets upset when it encounters an `Ed'). 2010-06-11 23:40 kristaps Changed: lib.in (1.8), "Exp", lines: +26 -1 Add FreeBSD libraries (provided by Ulrich Spoerlein). 2010-06-11 16:58 kristaps Changed: term.h (1.63), "Exp", lines: +2 -1 term_ps.c (1.9), "Exp", lines: +134 -62 Implement font-switching for PostScript. -Tps now supports TERMFONT_BOLD (Courier-Bold) and TERMFONT_UNDER (Courier-Oblique). It doesn't look half bad. This accomplished through tricksy juggling of the one-char back-buffer. 2010-06-11 15:26 kristaps Changed: term_ps.c (1.8), "Exp", lines: +42 -21 Delay opening a word state until a character is ready to be output. This paves the way for closing/reopening scope in the event that a font changes. 2010-06-11 07:23 kristaps Changed: term.c (1.147), "Exp", lines: +2 -5 term.h (1.62), "Exp", lines: +2 -1 term_ps.c (1.7), "Exp", lines: +31 -2 Teach -Tps to ignore backspace-encoding by using a one-char buffer and a simple state machine. This paves the way for decorated text. 2010-06-11 07:15 kristaps Changed: mandoc.1 (1.63), "Exp", lines: +2 -2 Note that we use PostScript level 2, not 1 (the /Courier invocation). 2010-06-10 23:56 kristaps Changed: term_ps.c (1.6), "Exp", lines: +5 -4 Allow open word contexts in -Tps to preserve whitespace, as whitespace apparently doesn't collapse in PostScript (surprise!). Makes output files much more compact. 2010-06-10 23:24 schwarze Changed: man_term.c (1.75), "Exp", lines: +3 -3 mdoc_term.c (1.146), "Exp", lines: +3 -4 Fix a regression that crept in in man_term.c 1.73 and mdoc_term.c 1.144. When the title line uses special characters, mandoc will segfault. Thus, first set up the character tables, then print the header, as we always did. Found in OpenBSD /usr/src/usr.sbin/bind/bin/check/named-checkconf.8. While here, set p->tabwidth in terminal_man() for symmetry with terminal_mdoc(), as suggested by millert@ (and already committed to OpenBSD earlier). Since 5 is the default, this is not strictly required, but it is certainly clearer and more robust. "looks fine" kristaps@ 2010-06-10 21:42 kristaps Changed: roff.7 (1.9), "Exp", lines: +15 -4 roff.c (1.88), "Exp", lines: +89 -34 Fix adding some minimal intelligence to conditional parser. See roff.7 for what's supported. This simplified the roff_cond() function quite nicely. From a bug report by uqs@. Added regression test based on bug-report example by uqs@. Also added ROFF_DEBUG to see what the hell the parser is actually doing. Obviously turned off by default. 2010-06-09 20:00 kristaps Changed: roff.c (1.87), "Exp", lines: +12 -2 Make "sub" for conditionals run roffnode_cleanscope() before calling down to sub-arguments. From a bug report by Ulrich Spoerlein. 2010-06-09 19:22 kristaps Changed: libman.h (1.35), "Exp", lines: +2 -2 libmandoc.h (1.7), "Exp", lines: +2 -2 man_validate.c (1.43), "Exp", lines: +4 -4 mandoc.c (1.18), "Exp", lines: +54 -30 mdoc_validate.c (1.92), "Exp", lines: +8 -11 Squash bug noted by Ulrich Spoerlein where "-" were being converted to ASCII_HYPH, as per normal, but were screwing up mandoc_special(). Fixed by making mandoc_special() first check isspace() instead of ! isgraph(), then normalise its string as it passes out. This require de-constifying some validation routines not already de-constified (those in libman), but that's ok, because I'd like to be pushing actions into validation routines to save on space and redundant calculations. 2010-06-09 08:31 kristaps Changed: term_ps.c (1.5), "Exp", lines: +4 -2 Forgot to increment into the nil terminator. And call va_end() while we're at it. 2010-06-09 08:07 kristaps Changed: man_term.c (1.74), "Exp", lines: +2 -2 mdoc_term.c (1.145), "Exp", lines: +6 -7 term.h (1.61), "Exp", lines: +10 -7 term_ascii.c (1.3), "Exp", lines: +1 -2 term_ps.c (1.4), "Exp", lines: +139 -55 Have the standard manpage header and footer print on every page of -Tps output. This is more tricky than you may think: we can't just call the header function out-of-state (i.e., before a flushln has occured) because we'd clobber our current state. Thus, we call at the beginning and dump the output into an auxiliary buffer. For the record, I don't think there's any other clean way to do this. The only other Way That Works is to copy-aside *all* termp state, zero it, and do the necessary headf/footf. This is just as complex, as memory needs to be alloc'd and free'd per margin. Unfortunately, this prohibits page numbering (the margin is only printed once), so I'll probably end up re-writing this down the line. 2010-06-08 15:06 kristaps Changed: term_ascii.c (1.2), "Exp", lines: +2 -1 term_ps.c (1.3), "Exp", lines: +2 -1 Lint noops. Also fixed getsubopt() to be in unistd.h (noted by joerg@). 2010-06-08 15:00 kristaps Added: term_ascii.c (1.1) Changed: Makefile (1.279), "Exp", lines: +5 -3 term.c (1.146), "Exp", lines: +13 -242 term.h (1.60), "Exp", lines: +18 -7 term_ps.c (1.2), "Exp", lines: +173 -1 Broke ascii_*() functions into term_ascii.c Made low-level engine functions into function pointers. 2010-06-08 13:22 kristaps Added: term_ps.c (1.1) Changed: Makefile (1.278), "Exp", lines: +7 -3 main.c (1.86), "Exp", lines: +3 -2 main.h (1.6), "Exp", lines: +5 -2 term.c (1.145), "Exp", lines: +29 -36 term.h (1.59), "Exp", lines: +3 -1 No functionality changes: just restructuring. Deprecated terminal_free() in favour of ps_free() and ascii_free(). Moved ps_*() functions into term_ps.c so that they don't clutter up term.c. 2010-06-08 09:20 tag VERSION_1_10_1 2010-06-08 09:20 kristaps Changed: term.c (1.144), "Exp", lines: +2 -1 Missing prototype for getsubopt() on NetBSD fixed. 2010-06-08 09:15 kristaps Changed: index.sgml (1.81), "Exp", lines: +1 -2 Fixed missing tag in www index. 2010-06-07 21:05 kristaps Changed: index.sgml (1.80), "Exp", lines: +77 -51 Updated version bits with PostScript goodies. 2010-06-07 21:03 kristaps Changed: TODO (1.15), "Exp", lines: +3 -0 term.c (1.143), "Exp", lines: +2 -2 Lint fix. Added J.C. Roberts' TODO note. 2010-06-07 20:57 kristaps Changed: Makefile (1.277), "Exp", lines: +13 -9 main.c (1.85), "Exp", lines: +25 -9 main.h (1.5), "Exp", lines: +2 -1 man_term.c (1.73), "Exp", lines: +15 -9 mandoc.1 (1.62), "Exp", lines: +11 -2 mdoc_term.c (1.144), "Exp", lines: +15 -7 term.c (1.142), "Exp", lines: +236 -20 term.h (1.58), "Exp", lines: +23 -1 First check-in of PostScript output. This does not change any logic within term.c, but does add a small shim over putchar() that switches on the output engine. Prints, for this initial version, only monospace and without font decorations. It's a start. 2010-06-07 12:20 kristaps Changed: Makefile (1.276), "Exp", lines: +1 -1 index.sgml (1.79), "Exp", lines: +12 -3 mdoc.7 (1.124), "Exp", lines: +7 -7 Added version bits for 1.10.1. Spell-checked manuals. 2010-06-07 11:14 kristaps Changed: mdoc.7 (1.123), "Exp", lines: +4 -4 I really should run -Tlint on my own manuals before committing them. EOLN whitespace fixed. 2010-06-07 11:01 kristaps Deleted: regress/mdoc/Fd/fd.in (1.2) regress/mdoc/Fo/fo0.in (1.2) regress/mdoc/Ft/ft0.in (1.2) regress/mdoc/In/in.in (1.2) Added: regress/mdoc/Cd/cd.in (1.1) Changed: mdoc.7 (1.122), "Exp", lines: +47 -46 mdoc_html.c (1.78), "Exp", lines: +67 -61 mdoc_term.c (1.143), "Exp", lines: +91 -77 Normalise SYNOPSIS behaviour after I gave up on following groff's inconsistent behaviour. In short: Some macros are displayed differently in the SYNOPSIS section, particularly Nm, Cd, Fd, Fn, Fo, In, Vt, and Ft. All of these macros are output on their own line. If two such dissimilar macros are pair-wise invoked (except for Ft before Fo or Fn), they are separated by a vertical space, unless in the case of Fo, Fn, and Ft, which are always separated by vertical space. Behaviour ok Jason McIntyre, ingo@. Fallout will be treated case-by-case. I had to clear out some regressions that were testing against groff's stranger behaviours: these will now break, as we don't care about such invocations. Also removed the newline for `Cd' invocation in a non-SYNOPSIS context. 2010-06-07 10:55 kristaps Changed: mandoc.1 (1.61), "Exp", lines: +14 -4 Forgot to check in manual along with -Owidth=width patch. 2010-06-07 10:52 kristaps Changed: html.c (1.101), "Exp", lines: +1 -3 main.c (1.84), "Exp", lines: +2 -2 main.h (1.4), "Exp", lines: +5 -2 term.c (1.141), "Exp", lines: +25 -6 Add -Owidth=width option to mandoc -Tascii. Asked for by joerg@ about a thousand years ago. Note that this is normalised to >=60. 2010-06-06 22:25 kristaps Changed: mdoc.7 (1.121), "Exp", lines: +5 -5 Small fix to preserve trailing semicolons in examples. 2010-06-06 22:08 schwarze Changed: mdoc_term.c (1.142), "Exp", lines: +4 -1 Merge a fix to avoid a regression in OpenBSD: Restore the blank line before .In in SYNOPSIS except right after .Sh or right after another .In. Even though Kristaps says SYNOPSIS blank-line handling is still very much work in progress and more is probably needed, this one is useful to keep in sync with OpenBSD. "fine" kristaps@ 2010-06-06 20:44 joerg Changed: main.c (1.83), "Exp", lines: +2 -2 Add MAP_SHARED for mmap, at least NetBSD with DIAGNOSTIC is quite noisy otherwise. 2010-06-06 10:57 kristaps Changed: regress/regress.sh (1.6), "Exp", lines: +6 -0 Have regress.sh bail out if $MANDOC isn't found. 2010-06-06 10:50 kristaps Added: regress/mdoc/Fo/fo0.in (1.1) regress/mdoc/Ft/before-fn.in (1.1) regress/mdoc/Ft/before-fo.in (1.1) regress/mdoc/Ft/ft0.in (1.1) Changed: mdoc_html.c (1.77), "Exp", lines: +24 -14 mdoc_term.c (1.141), "Exp", lines: +33 -33 Fixed -Tascii and -Thtml rendering of `Ft' and `Fo'. 2010-06-06 10:49 kristaps Changed: mdoc.7 (1.120), "Exp", lines: +150 -36 Shortened "its calling syntax" -> "its syntax". Better documentation for `Fa' and some others. Added `Ft', `Fo', and some COMPATIBILITY notes. 2010-06-04 22:26 kristaps Changed: mdoc_html.c (1.76), "Exp", lines: +5 -1 mdoc_term.c (1.140), "Exp", lines: +4 -2 Fix following the first: `Ft' is given special treatment if specified before `Fn'. 2010-06-04 22:16 kristaps Changed: mdoc.7 (1.119), "Exp", lines: +34 -1 mdoc_html.c (1.75), "Exp", lines: +3 -2 mdoc_term.c (1.139), "Exp", lines: +10 -3 Fixed `Fn' newline behaviour and added some regression tests to this extent. Documented `Fn'. Please note the COMPATIBILITY note regarding historic groff. 2010-06-04 21:49 kristaps Added: regress/mdoc/In/in.in (1.1) Changed: mdoc.7 (1.118), "Exp", lines: +23 -4 mdoc_html.c (1.74), "Exp", lines: +5 -17 mdoc_term.c (1.138), "Exp", lines: +15 -18 Documented `In' in full. Fixed `In' to behave properly: it wasn't properly breaking lines, formatting, or really anything else. Noted COMPATIBILITY with OpenBSD's groff, which pukes all over `In'. 2010-06-04 21:05 kristaps Added: regress/mdoc/Fd/fd.in (1.1) Changed: mdoc_html.c (1.73), "Exp", lines: +12 -13 mdoc_term.c (1.137), "Exp", lines: +1 -6 Fixed `Fd' to format in the right way. Found when confused by what the hell `Fd' is supposed to do anyway (answer: it's a historical macro and we shouldn't be doing anything with it anyway). 2010-06-04 20:57 kristaps Changed: mdoc.7 (1.117), "Exp", lines: +38 -1 Documented `Db', `El', `Fa', and `Fd'. 2010-06-03 15:54 kristaps Changed: mdoc.7 (1.116), "Exp", lines: +10 -1 Document the `Mt' macro. 2010-06-03 15:39 kristaps Deleted: manuals.7 (1.21) Changed: Makefile (1.275), "Exp", lines: +4 -4 index.sgml (1.78), "Exp", lines: +3 -6 Remove manuals.7 (see http://manpages.bsd.lv). 2010-06-03 14:52 kristaps Changed: Makefile (1.274), "Exp", lines: +2 -2 index.sgml (1.77), "Exp", lines: +12 -2 Version bits for 1.10.1. 2010-06-03 14:52 kristaps Changed: mdoc.7 (1.115), "Exp", lines: +7 -2 Compatibility note about `Ta' being a line macro. 2010-06-03 14:29 kristaps Changed: mdoc.7 (1.114), "Exp", lines: +97 -18 Complete, rigorous documentation of the `Bl' and `It' macros, including the peculiarities with `It'-less `Bl -column' invocations, column phrases, per-type syntax of `It', etc. 2010-06-03 13:44 kristaps Changed: libmdoc.h (1.52), "Exp", lines: +2 -3 main.c (1.82), "Exp", lines: +2 -2 mandoc.h (1.10), "Exp", lines: +2 -3 mdoc_action.c (1.65), "Exp", lines: +5 -59 mdoc_html.c (1.72), "Exp", lines: +5 -6 mdoc_validate.c (1.91), "Exp", lines: +105 -63 Consolidated list processing to a single loop in mdoc_validate.c. This relieves having to repeat running over the argument list in mdoc_action.c and mdoc_validate.c. Default to LIST_item for type-less lists (groff technically doesn't do this: it just ignores the `It' lines altogether). Make MANDOC_LISTTYPE be a recoverable error. 2010-06-02 12:01 kristaps Changed: mdoc.7 (1.113), "Exp", lines: +2 -5 mdoc.template (1.7), "Exp", lines: +0 -1 Strip empty-line markers from mdoc.template and its mdoc.7 embedded form (as per Jason McIntyre's suggestion for manuals in general). 2010-06-01 22:05 kristaps Changed: TODO (1.14), "Exp", lines: +4 -0 Note missing man/roff(?) feature not documented anywhere. 2010-06-01 14:54 kristaps Changed: main.c (1.81), "Exp", lines: +3 -3 mandoc.h (1.9), "Exp", lines: +3 -3 Spelling patches provided by Ulrich Spoerlein. 2010-06-01 14:51 kristaps Changed: mdoc_term.c (1.136), "Exp", lines: +2 -2 De Morgan's law not being applied properly. Noted by Ulrich Spoerlein. 2010-06-01 11:54 kristaps Changed: roff.7 (1.8), "Exp", lines: +4 -2 Noted that \} collapses into a zero-width space on the front-end. 2010-06-01 11:47 kristaps Changed: chars.c (1.19), "Exp", lines: +2 -2 chars.in (1.24), "Exp", lines: +2 -1 mandoc.c (1.17), "Exp", lines: +3 -1 roff.c (1.86), "Exp", lines: +2 -4 Fixed condition of `\}' closing a conditional at the start of the line. Fixed flushed-out condition of \} causing subsequent arguments to be truncated, when in fact the whole line should be passed through (if the conditional succeeds) to the front-end and the \} ignored there. Added regression test of this behaviour. 2010-05-31 23:49 kristaps Changed: mdoc_macro.c (1.79), "Exp", lines: +2 -3 Lint fixes (noops). 2010-05-31 23:40 kristaps Changed: TODO (1.13), "Exp", lines: +2 -0 main.c (1.80), "Exp", lines: +2 -2 mandoc.h (1.8), "Exp", lines: +2 -2 mdoc_validate.c (1.90), "Exp", lines: +14 -11 Cleanup post_bl_head() to use enum mdoc_list (avoid traversing that list). Reverted MANDOC_COLUMNS to be a bad-bad syntax error: we don't, and apparently never have, allowed mixing of -column syntaxes. This would have segfaulted if encountered. 2010-05-31 23:10 kristaps Changed: mdoc_validate.c (1.89), "Exp", lines: +40 -72 Clean up the validation code for `It' macros: use enum mdoc_list instead of iterating over arguments and only scan with `-column', which needs the count of arguments. 2010-05-31 22:39 kristaps Changed: mdoc_macro.c (1.78), "Exp", lines: +1 -21 Remove now-superfluous check on `Ta' context. 2010-05-31 21:32 kristaps Changed: mdoc.c (1.145), "Exp", lines: +2 -1 Fixed my breaking of Ingo's eoln-whitespace detection code, where a hyphen wasn't resetting the fact of being whitespace. Noted by Jason McIntyre. 2010-05-31 20:14 kristaps Changed: TODO (1.12), "Exp", lines: +2 -0 mdoc.c (1.144), "Exp", lines: +56 -11 Macro lines now infer an `It' if they immediately follow a `Bl -column' or a closed-out `It' block within a `Bl -column' (which only happens when a macro or free-form text is encountered prior to an `It'). Added some regression tests for this behaviour. 2010-05-31 15:50 kristaps Changed: mdoc.c (1.143), "Exp", lines: +3 -2 Strengthened constraint for passing into `It'. Added regression test for constrained condition. 2010-05-31 15:42 kristaps Changed: TODO (1.11), "Exp", lines: +3 -0 libmdoc.h (1.51), "Exp", lines: +2 -1 mdoc.c (1.142), "Exp", lines: +26 -2 mdoc_macro.c (1.77), "Exp", lines: +12 -2 Add ability to interpret initial free-form lines as part of a `Bl -column' up until the first `It'. This is UGLY and should have all sorts of warnings, and will. On the one hand, it fits with groff's notion of tabs and tab-spaces. On the other hand, it's not really "free-form" text any more. Note that this does not yet accomodate for macros coming on these lines. 2010-05-31 13:39 kristaps Changed: mdoc_argv.c (1.52), "Exp", lines: +12 -12 Getting args() function ready to handle no-context (*pos can == 0) processing. 2010-05-31 11:52 kristaps Changed: mdoc_macro.c (1.76), "Exp", lines: +5 -2 `Ta' scope-checks need to be more specific (until implicit `It' handling comes into play). 2010-05-31 10:28 kristaps Changed: mdoc.c (1.141), "Exp", lines: +2 -2 mdoc.h (1.83), "Exp", lines: +2 -1 mdoc_action.c (1.64), "Exp", lines: +2 -1 mdoc_argv.c (1.51), "Exp", lines: +10 -2 mdoc_html.c (1.71), "Exp", lines: +2 -1 mdoc_macro.c (1.75), "Exp", lines: +97 -23 mdoc_term.c (1.135), "Exp", lines: +2 -1 mdoc_validate.c (1.88), "Exp", lines: +2 -1 Remove enum mdocargerr from phrase() (unused). Add `Ta' macro, which is basically a NULL case everywhere but in mdoc_macro.c, where it closes out an existing `It' body scope and opens a new one, then continues parsing as in phrase() (TODO: merge these two?). Fix where scope-breaking was silently just dying instead of printing an error. Fix where trailing `Ta' or tab weren't creating a new MDOC_BODY context. We now support arbitrarily complex `It' contents for `Bl -column'. 2010-05-31 10:19 kristaps Changed: mdoc.7 (1.112), "Exp", lines: +5 -5 Fix unescaped `Ta' invocations in mdoc.7. 2010-05-30 23:59 kristaps Changed: mdoc_argv.c (1.50), "Exp", lines: +4 -17 Have mdoc_args() use enum mdoc_list instead of scanning. 2010-05-30 22:56 kristaps Changed: TODO (1.10), "Exp", lines: +5 -1 mdoc.3 (1.41), "Exp", lines: +6 -6 mdoc_html.c (1.70), "Exp", lines: +20 -23 mdoc_macro.c (1.74), "Exp", lines: +20 -14 mdoc_term.c (1.134), "Exp", lines: +25 -17 mdoc_validate.c (1.87), "Exp", lines: +10 -8 Migrate `Bl -column' phrases to be MDOC_BODY instead of MDOC_HEAD. This will make it easy for re-entrant parsing of `Ta' macros to fit in with standard closure rules. Added some more regressions for `Bl -column'. Note that one should fail, as documented in the TODO file. Recorded change of AST BNF in mdoc.3. 2010-05-30 21:50 kristaps Changed: mdoc_macro.c (1.73), "Exp", lines: +18 -5 Final word on lac/ac. Document flow as it relates to phrasing, as I'll be changing this around and want a record in CVS of what was happening beforehand. 2010-05-30 21:41 kristaps Changed: mdoc_macro.c (1.72), "Exp", lines: +4 -2 Obvious fix to last patch: have ARGS_PEND also be flagged for phrase() handling. 2010-05-30 21:28 kristaps Changed: mdoc_macro.c (1.71), "Exp", lines: +13 -9 First in several iterative patches in getting complex -column lists supported (which works but is tricky enough that it should be broken down into digestable parts). This simply moves around the propogation of ARGS_PEND into one recognised by phrase(). Added a few regressions for simple -column lists. 2010-05-30 11:47 kristaps Changed: mdoc_validate.c (1.86), "Exp", lines: +2 -4 Make check for case a little more intuitive (suggested by joerg@). 2010-05-30 11:00 kristaps Changed: mdoc.7 (1.111), "Exp", lines: +9 -7 mdoc.c (1.140), "Exp", lines: +4 -4 mdoc_action.c (1.63), "Exp", lines: +6 -5 mdoc_validate.c (1.85), "Exp", lines: +25 -4 Made `Dt' default to LOCAL and UNKNOWN instead of local and unknown (note case). Have `Dt' default to UNKNOWN if it's an empty string. Raise a warning if `Dt' title isn't capitalised. Sync'd `Dt' documentation with reality. 2010-05-30 10:36 kristaps Changed: index.sgml (1.76), "Exp", lines: +4 -4 Fixed tech@ mailing list pointer (noted by Ulrich Spoerlein). Fixed case of some anchor tag closings (no-op). 2010-05-29 19:48 kristaps Added: regress/mdoc/Ar/empty2.in (1.1) Added a final regression for `Ar' (won't work on old groff). 2010-05-29 19:45 kristaps Changed: Makefile (1.273), "Exp", lines: +2 -2 Bump 1.10.0 version in Makefile. 2010-05-29 19:45 kristaps Changed: index.css (1.4), "Exp", lines: +11 -7 index.sgml (1.75), "Exp", lines: +107 -102 Added version bits to www pages. Cleaned up www to be more compact and add a header for sections. 2010-05-29 19:41 kristaps Changed: roff.c (1.85), "Exp", lines: +73 -23 Give libroff an extremely simple table-lookup instead of iterating over each and every macro. The table keys on the first character then walks a chain. Good enough for now. 2010-05-29 18:58 kristaps Changed: mdoc_action.c (1.62), "Exp", lines: +24 -2 mdoc_html.c (1.69), "Exp", lines: +1 -3 mdoc_term.c (1.133), "Exp", lines: +1 -3 Moved printing of empty word [back] into mdoc_action.c so that it's not mirrored across front-ends. 2010-05-29 18:50 kristaps Added: regress/mdoc/Ar/empty.in (1.1) Adding `Ar' regression for empty-prior-closing-punctuation checkin. NOTE: this will not work on old groff, which forgets to print `file ...' when encountering an empty Ar node. 2010-05-29 18:47 kristaps Added: regress/mdoc/Fl/empty.in (1.1) regress/mdoc/Li/empty.in (1.1) regress/mdoc/Li/empty2.in (1.1) Changed: mdoc_html.c (1.68), "Exp", lines: +3 -1 mdoc_macro.c (1.70), "Exp", lines: +33 -12 mdoc_term.c (1.132), "Exp", lines: +3 -1 Commit of patch floated on discuss@ a few days ago: if an in_line scope has not been opened and closing punctuation is encountered AND the macro is marked as accepting no-content (or `Li'), then open an empty scope. Added regression tests for `Fl' and `Li' testing this behaviour. Also, squeeze hyph0.in tests into the last characters of each line so that groff doesn't hyphenate and break the test. 2010-05-26 14:03 kristaps Changed: man.7 (1.74), "Exp", lines: +5 -4 man.c (1.75), "Exp", lines: +3 -1 man.h (1.36), "Exp", lines: +2 -1 man_action.c (1.39), "Exp", lines: +13 -4 man_html.c (1.36), "Exp", lines: +5 -2 man_term.c (1.72), "Exp", lines: +5 -2 Allow bad -man dates to flow verbatim into the front-ends. Noted by Ulrich Spoerlein. 2010-05-26 10:39 kristaps Added: regress/mdoc/Ud/ud.in (1.1) Changed: mdoc.7 (1.110), "Exp", lines: +4 -2 mdoc_term.c (1.131), "Exp", lines: +5 -1 mdoc_validate.c (1.84), "Exp", lines: +17 -6 Documented `Ud'. Proper EOS handling for `Rv', `Ex', `Ud', and `Bt'. Both `Bt' and `Ud' now warn about and discard line arguments (reported by Ulrich Spoerlein). Collapsed posts_xr into posts_wtext (harmless: they're the same thing). Added regressions for `Ud' and `Bt'. 2010-05-26 09:35 kristaps Added: regress/mdoc/Lb/blank.in (1.1) regress/mdoc/Lb/body.in (1.1) regress/mdoc/Lb/custom.in (1.1) regress/mdoc/Lb/prolog.in (1.1) Changed: mdoc.7 (1.109), "Exp", lines: +26 -2 mdoc.c (1.139), "Exp", lines: +3 -1 mdoc_macro.c (1.69), "Exp", lines: +2 -2 mdoc_validate.c (1.83), "Exp", lines: +2 -3 Fixed `Lb' to be in_line (reported by Ulrich Spoerlein). Added `Lb' documentation to mdoc.7. Removed harmless but superfluous pre_lb check (was just NULL entries). Added regressions for `Lb' (NOTE that these will only run on new groff, as old groff doesn't support `Lb' at all). 2010-05-25 23:02 kristaps Changed: index.sgml (1.74), "Exp", lines: +67 -85 Made index.sgml release notes, mostly cribbed from Ingo's m2k10 report. Added libroff references to index.sgml. 2010-05-25 22:48 kristaps Changed: man.7 (1.73), "Exp", lines: +4 -3 Fix man.7 to include AT and UC in its syntax table. 2010-05-25 22:16 kristaps Added: roff.3 (1.1) Changed: Makefile (1.272), "Exp", lines: +15 -14 man.3 (1.18), "Exp", lines: +4 -5 mdoc.3 (1.40), "Exp", lines: +3 -4 Added roff.3, which documents the roff parser interface. Small fix in mdoc.3 and man.3 pointing to old mdoc_cb and man_cb. Fix in Makefile adding mandoc.h to HEADS. Collapsed all HTML files into HTMLS variable (too confusing otherwise). Removed "htmls" command from Makefile (only I used it and it's just taking up space). 2010-05-25 21:46 kristaps Changed: man.3 (1.17), "Exp", lines: +55 -55 mdoc.3 (1.39), "Exp", lines: +3 -2 Clean-up: added `Nm mdoc' to mdoc.3. Clean-up: new-sentence, new-line for man.3. Clean-up: alpha-ordered man.3 `Nm' sections and prototypes. 2010-05-25 21:38 kristaps Changed: mdoc.3 (1.38), "Exp", lines: +61 -107 Clean-up: new-sentence, new-line for mdoc.3. Clean-up: removed CAVEATS section (this should be either in the TODO file or in mdoc.7 documenting mandoc incompatibilities). Clean-up: alpha-ordered `Nm' and section headers. 2010-05-25 13:42 kristaps Changed: TODO (1.9), "Exp", lines: +16 -0 Noted areas where performance can be increased. 2010-05-25 12:44 kristaps Changed: index.sgml (1.73), "Exp", lines: +2 -1 man_validate.c (1.42), "Exp", lines: +2 -2 mdoc_validate.c (1.82), "Exp", lines: +2 -2 Smarten BADCHAR check to allow ASCII_HYPH. Fix index.sgml not to puke (the relevant section will be re-written for the release anyway, but I hate seeing errors). 2010-05-25 12:37 kristaps Changed: chars.c (1.18), "Exp", lines: +2 -1 chars.h (1.3), "Exp", lines: +1 -3 html.c (1.100), "Exp", lines: +15 -16 libmandoc.h (1.6), "Exp", lines: +2 -1 mandoc.c (1.16), "Exp", lines: +29 -1 mandoc.h (1.7), "Exp", lines: +5 -1 mdoc.c (1.138), "Exp", lines: +5 -1 term.c (1.140), "Exp", lines: +18 -7 Modified version of Ingo Schwarze's patch for hyphen-breaking. Breakable hyphens are cued in the back-ends (with ASCII_HYPH) and acted upon in term.c or ignored in html.c. Also cleaned up XML decl printing (no need for extra vars). 2010-05-24 23:54 schwarze Changed: roff.7 (1.7), "Exp", lines: +12 -4 roff.c (1.84), "Exp", lines: +17 -6 recognize ".if n" as true; nothing fancy yet, no negation, no grammer, just that one letter; from OpenBSD; "looks fine" kristaps@ 2010-05-24 22:25 schwarze Changed: roff.7 (1.6), "Exp", lines: +19 -1 roff.c (1.83), "Exp", lines: +17 -1 provide stubs to ignore .ds, .rm and .tr, which occur in the standard pod2man preamble; from OpenBSD; "sounds good" joerg@, "can be checked in" kristaps@ 2010-05-24 21:51 schwarze Changed: mdoc_term.c (1.130), "Exp", lines: +7 -9 term.c (1.139), "Exp", lines: +12 -4 term.h (1.57), "Exp", lines: +2 -1 sync to OpenBSD: save the visual cursor position in term_flushln() and use that to avoid multiple blank lines in nested lists while still putting subsequent empty list tags each on their own line; "go ahead" kristaps@ 2010-05-24 21:34 schwarze Changed: mdoc_term.c (1.129), "Exp", lines: +6 -1 term.c (1.138), "Exp", lines: +23 -3 term.h (1.56), "Exp", lines: +2 -1 Handle literal tab characters both in literal context (.Bd -literal) and outside. In literal context, tab stops are at each eigth column; outside, they are at each fifth column. from OpenBSD mdoc_term.c rev. 1.75; "commit" kristaps@ 2010-05-24 19:33 schwarze Changed: TODO (1.8), "Exp", lines: +0 -9 .Bl -tag -compact .Sm off .It ... fixed by joerg@ in mdoc_action.c bsd.lv 1.61, OpenBSD 1.38 2010-05-24 14:35 schwarze Changed: mdoc_term.c (1.128), "Exp", lines: +2 -2 fix an obvious typo in print_bvspace(): rev. 1.125 broke vertical spacing in .Bl -column 2010-05-24 13:39 schwarze Changed: mdoc.c (1.137), "Exp", lines: +52 -39 rewrite the main mdoc text parser, mdoc_ptext(), making it easier to understand and fixing various bugs: * correctly strip whitespace from the end of text lines * issue consistent warnings regarding trailing spaces and tabs * escaped backslashes no longer escape the following character ok kristaps@ 2010-05-24 13:36 kristaps Changed: man_action.c (1.38), "Exp", lines: +4 -1 Plug second meta.source leak in `UT' handling. 2010-05-24 12:31 kristaps Changed: mdoc_validate.c (1.81), "Exp", lines: +5 -4 Lifted 64-byte max width for Sh (now BUFSIZ). 2010-05-24 12:22 kristaps Changed: man_action.c (1.37), "Exp", lines: +4 -1 Fixed memory leak for `AT' (-man input). 2010-05-24 12:17 kristaps Changed: mdoc_html.c (1.67), "Exp", lines: +3 -3 Fix segfault in mixing old enum types for -Thtml -mdoc. 2010-05-24 12:05 schwarze Changed: libmdoc.h (1.50), "Exp", lines: +1 -57 remove unused enum merr; ok joerg@ 2010-05-24 11:59 joerg Changed: mdoc_action.c (1.61), "Exp", lines: +6 -3 If a .Bl -tag lacks a -width, skip all non-It macros for the implicit calculation. E.g. .Sm can occur as direct child of .Bl. OK schwarze@ 2010-05-24 01:41 schwarze Changed: mandoc.h (1.6), "Exp", lines: +2 -2 fix an obvious oversight introduced in rev. 1.5: MANDOCERR_BODYLOST is not intended to be fatal; required to unbreak the OpenBSD build 2010-05-22 20:41 joerg Changed: mdoc_term.c (1.127), "Exp", lines: +2 -1 Fix 1.125: Add missing return in termp_nm_pre. 2010-05-22 20:02 joerg Changed: regress/man/SH/blank.in (1.3), "Exp", lines: +3 -0 Test .SH with only empty paragraph. Don't test .IP without body. 2010-05-18 20:06 schwarze Changed: TODO (1.7), "Exp", lines: +12 -1 lines containing blank characters FIXED in OpenBSD, and add one new .Bl -tag issue reported by Joerg 2010-05-17 23:57 kristaps Changed: libmdoc.h (1.49), "Exp", lines: +2 -2 mdoc.h (1.82), "Exp", lines: +20 -1 mdoc_action.c (1.60), "Exp", lines: +59 -4 mdoc_html.c (1.66), "Exp", lines: +35 -80 mdoc_term.c (1.126), "Exp", lines: +48 -91 mdoc_validate.c (1.80), "Exp", lines: +11 -19 Increase performance by stashing the list type in struct mdoc_node. This will eventually be used so that mdoc_macro can known whether to dump list line arguments into the body (`Bl -column' overflowing). Remove a2list() and arg_listtype() because of this. 2010-05-17 23:50 kristaps Changed: index.sgml (1.72), "Exp", lines: +9 -2 Added tech@ mailing list. 2010-05-17 22:11 kristaps Changed: arch.c (1.7), "Exp", lines: +2 -1 att.c (1.7), "Exp", lines: +2 -1 lib.c (1.7), "Exp", lines: +2 -1 libman.h (1.34), "Exp", lines: +9 -39 libmdoc.h (1.48), "Exp", lines: +8 -15 main.c (1.79), "Exp", lines: +95 -79 man.c (1.74), "Exp", lines: +30 -85 man.h (1.35), "Exp", lines: +2 -7 man_action.c (1.36), "Exp", lines: +5 -4 man_argv.c (1.3), "Exp", lines: +5 -4 man_hash.c (1.21), "Exp", lines: +2 -1 man_html.c (1.35), "Exp", lines: +2 -1 man_macro.c (1.46), "Exp", lines: +13 -11 man_term.c (1.71), "Exp", lines: +2 -1 man_validate.c (1.41), "Exp", lines: +39 -30 mandoc.h (1.5), "Exp", lines: +65 -3 mdoc.c (1.136), "Exp", lines: +26 -112 mdoc.h (1.81), "Exp", lines: +2 -9 mdoc_action.c (1.59), "Exp", lines: +46 -22 mdoc_argv.c (1.49), "Exp", lines: +12 -10 mdoc_hash.c (1.15), "Exp", lines: +2 -1 mdoc_html.c (1.65), "Exp", lines: +7 -3 mdoc_macro.c (1.68), "Exp", lines: +19 -15 mdoc_strings.c (1.22), "Exp", lines: +2 -1 mdoc_term.c (1.125), "Exp", lines: +7 -3 mdoc_validate.c (1.79), "Exp", lines: +149 -99 msec.c (1.8), "Exp", lines: +2 -1 st.c (1.7), "Exp", lines: +2 -1 term.c (1.137), "Exp", lines: +2 -1 tree.c (1.20), "Exp", lines: +2 -1 vol.c (1.7), "Exp", lines: +2 -1 Enable the unified error/warning enumeration in mandoc.h that's stringified in main.c. Allow `An' to handle an argument and child (with a warning). Allow `Rv' and `Ex' to work without a prior `Nm' as groff does (with a warning). Allow inconsistent column syntax to only raise a warning. 2010-05-17 11:15 joerg Changed: regress/man/SH/blank.in (1.2), "Exp", lines: +3 -0 Multiple empty .PPs don't add a vspace either 2010-05-17 11:00 joerg Changed: man.7 (1.72), "Exp", lines: +11 -4 Entry for .AT and .UC 2010-05-17 10:50 joerg Changed: man.c (1.73), "Exp", lines: +2 -2 man.h (1.34), "Exp", lines: +2 -1 man_action.c (1.35), "Exp", lines: +84 -2 man_html.c (1.34), "Exp", lines: +2 -1 man_macro.c (1.45), "Exp", lines: +2 -1 man_term.c (1.70), "Exp", lines: +2 -1 man_validate.c (1.40), "Exp", lines: +2 -1 Add support for .AT. Properly implement .UC. Add regress tests. 2010-05-17 10:43 joerg Added: regress/man/SH/blank.in (1.1) regress/man/SH/blank2.in (1.1) Tests for sane and insane handling of lines before and after .SH/.SS 2010-05-17 10:26 joerg Changed: man_term.c (1.69), "Exp", lines: +3 -1 groff uses three vspaces before the footer too. 2010-05-17 02:38 kristaps Changed: Makefile (1.271), "Exp", lines: +7 -6 index.sgml (1.71), "Exp", lines: +5 -1 mdoc_html.c (1.64), "Exp", lines: +4 -3 roff.7 (1.5), "Exp", lines: +25 -1 Documented ie/el. Installing roff.7 and added it to index.sgml. Small fix for `D1' and `Bd' in -Thtml. 2010-05-17 02:19 joerg Changed: Makefile (1.270), "Exp", lines: +20 -19 Use a default prefix of /usr/local. Honour DESTDIR for install targets. 2010-05-17 02:03 schwarze Changed: term.c (1.136), "Exp", lines: +42 -45 The function term_flushln() had effectively forked in OpenBSD. This is the bsd.lv part of the main step to bring it back in sync. At the same time, this prevents trailing whitespace in the output: We delay writing blanks until we are sure printable characters follow. This is achieved by * remembering the end of the word instead of its length * and not using vbl any longer for the control of line breaking * such that vbl can sum up all kinds of white space * before writing a word, printing all the blanks collected in vbl * within the word, adding NBSP chars to vbl, then continuing with the word * after the word, adding blanks to vbl, then starting the next word "looks good" kristaps@ 2010-05-17 02:01 kristaps Changed: roff.7 (1.4), "Exp", lines: +7 -2 roff.c (1.82), "Exp", lines: +115 -61 regress/roff/ig/cond0.in (1.2), "Exp", lines: +2 -2 regress/roff/ig/redef0.in (1.2), "Exp", lines: +2 -2 regress/roff/ig/simple0.in (1.2), "Exp", lines: +2 -2 regress/roff/ig/simple2.in (1.2), "Exp", lines: +2 -2 Full support for ie/el. This completes the initial roff support. Added test files for ie/el. Using `if 0' as a baseline for "false" roff instructions instead of `if t'. 2010-05-17 00:46 kristaps Changed: roff.c (1.81), "Exp", lines: +17 -2 Oops: forgot to make roff_cblock() understand the new macros. 2010-05-17 00:37 kristaps Changed: roff.7 (1.3), "Exp", lines: +52 -4 roff.c (1.80), "Exp", lines: +33 -14 libroff now intelligently throws away `am', `ami', `am1', `de', `dei', and `de1'. This is also documented in roff.7. 2010-05-17 00:06 kristaps Added: regress/roff/ig/cond0.in (1.1) regress/roff/ig/override0.in (1.1) Changed: roff.c (1.79), "Exp", lines: +144 -81 roff.h (1.15), "Exp", lines: +2 -2 libroff now is aware of which sub-nodes should be interpreted even in a conditional-negative context so as to preserve structural integrity. Initial "rules" (deny/allow) are now inherited for future work in evaluating conditionals. Lint-fix noted by Joerg. Added regression tests for zany constructs. 2010-05-16 22:36 joerg Added: regress/man/RS/nesting.in (1.1) Add a test case for nesting of .RS/.RE 2010-05-16 22:28 kristaps Added: regress/roff/ig/end0.in (1.1) regress/roff/ig/end1.in (1.1) regress/roff/ig/redef0.in (1.1) regress/roff/ig/simple0.in (1.1) regress/roff/ig/simple1.in (1.1) regress/roff/ig/simple2.in (1.1) Changed: main.c (1.78), "Exp", lines: +3 -3 mandoc.h (1.4), "Exp", lines: +3 -3 roff.7 (1.2), "Exp", lines: +67 -7 roff.c (1.78), "Exp", lines: +125 -22 `ig' support in all its glory. Try .ig ig asdf .ig fdsa .. or .ig if asdf .if n \ foo for a laugh. It all works. Lots of regression tests supporting this and documentation for the same. 2010-05-16 20:39 joerg Added: regress/mdoc/Bl/bullet-basic.in (1.1) Add a basic regression test for .Bl -bullet and the various interactions with .Bd. 2010-05-16 19:08 kristaps Added: roff.7 (1.1) Changed: main.c (1.77), "Exp", lines: +2 -1 mandoc.h (1.3), "Exp", lines: +2 -1 roff.c (1.77), "Exp", lines: +30 -5 Regression tests in place for `.if' in libroff. Check against some strange `.if' constructs I missed. Added initial roff.7 manual. 2010-05-16 18:10 joerg Changed: regress/regress.sh (1.5), "Exp", lines: +6 -3 Fully skip first and last line for the purpose of cmp. 2010-05-16 18:02 joerg Changed: regress/regress.sh (1.4), "Exp", lines: +3 -1 Skip first line when comparing output. 2010-05-16 17:54 kristaps Changed: regress/regress.sh (1.3), "Exp", lines: +2 -2 mandoc should be a variable. Consensus is on using a *.in for regression tests (symmetry-broken by Ingo). 2010-05-16 17:41 joerg Changed: regress/regress.sh (1.2), "Exp", lines: +1 -0 Remove temp files on success. 2010-05-16 17:40 joerg Added: regress/regress.sh (1.1) Add a basic regression testing script. 2010-05-16 14:47 kristaps Changed: roff.c (1.76), "Exp", lines: +72 -124 Re-admit the simple case of `.ig' that works with groff's stranger invocations. 2010-05-16 13:49 kristaps Changed: roff.c (1.75), "Exp", lines: +78 -50 Support for the general case of `if', which will boil out into other constructs: single-level and multi-level blocks; nested, varied-level blocks; recalculating buffer (begin) boundaries pushed correctly into the back-ends, and so on. This will allow, once conditions are turned on, for things like `.ie n .TH FOO 1' then `.el .Dd Mdocdate'. Read it and weep. 2010-05-16 10:59 kristaps Changed: main.c (1.76), "Exp", lines: +31 -9 man.c (1.72), "Exp", lines: +31 -27 man.h (1.33), "Exp", lines: +2 -2 mdoc.c (1.135), "Exp", lines: +31 -29 mdoc.h (1.80), "Exp", lines: +2 -2 roff.c (1.74), "Exp", lines: +109 -32 roff.h (1.14), "Exp", lines: +7 -5 Allow roff_parseln() to be re-run. Allow roff_parseln() to manipulate the line buffer offset. This is used in situations like `.ie n .TH FOO 1' or `.ie n .ie n', where the line buffer offset is recalculated then the roff parser re-run. Fix mdoc_parseln() and man_parseln() to accept the initial line offset. WARNING: backed-out ALL roff macros whilst accomodating for how roff handles multi-line conditionals (in short, re-running the parser). 2010-05-16 01:35 schwarze Changed: chars.h (1.2), "Exp", lines: +3 -1 chars.in (1.23), "Exp", lines: +2 -2 term.c (1.135), "Exp", lines: +2 -2 sync to OpenBSD: introduce a #define to get rid of the magic number describing the ASCII character used to represent non-breaking space; ok kristaps 2010-05-16 00:04 kristaps Changed: main.c (1.75), "Exp", lines: +2 -2 man.c (1.71), "Exp", lines: +2 -2 mdoc.c (1.134), "Exp", lines: +2 -2 Fix allowing silly '\'' control character. 2010-05-15 22:49 kristaps Changed: man_hash.c (1.20), "Exp", lines: +5 -7 Removed `.' entry from -man hashtable. 2010-05-15 22:44 kristaps Changed: libman.h (1.33), "Exp", lines: +1 -5 man.c (1.70), "Exp", lines: +2 -8 man.h (1.32), "Exp", lines: +1 -6 man_action.c (1.34), "Exp", lines: +1 -21 man_html.c (1.33), "Exp", lines: +1 -6 man_macro.c (1.44), "Exp", lines: +5 -91 man_term.c (1.68), "Exp", lines: +1 -6 man_validate.c (1.39), "Exp", lines: +1 -24 Remove `am', `ami', `de', `dei', and `.' from -man, as they're now in the roff preprocessor. 2010-05-15 22:28 kristaps Changed: main.c (1.74), "Exp", lines: +3 -1 roff.c (1.73), "Exp", lines: +3 -3 Backed-out warning messages (lots). 2010-05-15 22:22 kristaps Changed: roff.c (1.72), "Exp", lines: +24 -36 The `am', `ami', `de', and holy `dei' are all being properly ignored. 2010-05-15 21:53 kristaps Changed: main.c (1.73), "Exp", lines: +15 -2 mandoc.h (1.2), "Exp", lines: +4 -1 roff.c (1.71), "Exp", lines: +74 -9 The `ig' now supports `ig end-macro'. Initial warning/error messages in place (still experimental). 2010-05-15 20:51 kristaps Changed: man.c (1.69), "Exp", lines: +2 -3 man.h (1.31), "Exp", lines: +1 -2 man_action.c (1.33), "Exp", lines: +1 -2 man_html.c (1.32), "Exp", lines: +1 -2 man_macro.c (1.43), "Exp", lines: +2 -4 man_term.c (1.67), "Exp", lines: +1 -2 man_validate.c (1.38), "Exp", lines: +2 -4 roff.c (1.70), "Exp", lines: +1 -11 Pull `ig' out of -man and leave it the roff preparser. 2010-05-15 18:48 kristaps Changed: roff.c (1.69), "Exp", lines: +2 -2 Magic fix for bogus manuals making -man puke: I don't care if it's magic because roff instructions will be nixed from the underlying systems anyway. 2010-05-15 18:43 kristaps Changed: main.c (1.72), "Exp", lines: +2 -2 roff.c (1.68), "Exp", lines: +5 -3 Segfault fix and letting warnings slip through for now. 2010-05-15 18:35 kristaps Added: mandoc.h (1.1) Changed: main.c (1.71), "Exp", lines: +70 -18 roff.c (1.67), "Exp", lines: +306 -2 roff.h (1.13), "Exp", lines: +6 -6 Add mandoc.h, which will eventually replace compilers' inner enum errors with unified ones. Add initial roff pre-processor shim, a compiler sitting outside of the other compilers that processes pure roff instructions. 2010-05-15 18:10 schwarze Changed: TODO (1.6), "Exp", lines: +0 -4 non-numeric section headers in -man merged to OpenBSD 2010-05-15 17:50 joerg Changed: TODO (1.5), "Exp", lines: +2 -0 Mishandling of : in expr(1) 2010-05-15 17:26 kristaps Changed: mdoc_strings.c (1.21), "Exp", lines: +2 -2 Lint-fix for enum return (ok schwarze@). 2010-05-15 17:25 joerg Changed: man_term.c (1.66), "Exp", lines: +1 -3 For .IP groff requires a single space only after the head, adopt. 2010-05-15 16:27 kristaps Changed: man_action.c (1.32), "Exp", lines: +4 -2 msec.c (1.7), "Exp", lines: +2 -3 Fixed memory leak introduced in last checkin of man_action TH parsing (only if TH is called again, which never happens anyway). Fixed my email address in man_action.c and msec.c. Removed superfluous <time.h> inclusion in msec.c. 2010-05-15 16:24 kristaps Changed: libmdoc.h (1.47), "Exp", lines: +2 -2 mdoc.7 (1.108), "Exp", lines: +4 -4 mdoc.c (1.133), "Exp", lines: +4 -2 mdoc.h (1.79), "Exp", lines: +2 -2 mdoc.template (1.6), "Exp", lines: +1 -1 mdoc_action.c (1.58), "Exp", lines: +18 -20 mdoc_html.c (1.63), "Exp", lines: +3 -3 mdoc_term.c (1.124), "Exp", lines: +2 -2 mdoc_validate.c (1.78), "Exp", lines: +9 -10 LIBRARY can also occur in section 9. All manual sections (unknown, 3p, 3f, etc.) correctly handled by -mdoc. Useful warning printed if unknown manual section. Checking for manual sections (e.g., LIBRARY) checks only first character, so 3p, 3f, etc. are free. 2010-05-15 16:20 joerg Changed: main.c (1.70), "Exp", lines: +53 -51 Reorganise the comment stripping and line merging to be easier to follow and slightly faster. 2010-05-15 16:18 joerg Changed: main.c (1.69), "Exp", lines: +2 -2 main.h (1.3), "Exp", lines: +2 -2 man_term.c (1.65), "Exp", lines: +7 -3 mdoc_term.c (1.123), "Exp", lines: +2 -2 term.c (1.134), "Exp", lines: +9 -5 term.h (1.55), "Exp", lines: +2 -1 Make the output width an option for ascii_alloc and use that to compute the default margin. Hard-code 80 chars/line for now. 2010-05-15 15:54 kristaps Changed: TODO (1.4), "Exp", lines: +2 -1 libman.h (1.32), "Exp", lines: +1 -2 man.c (1.68), "Exp", lines: +3 -2 man.h (1.30), "Exp", lines: +2 -2 man_action.c (1.31), "Exp", lines: +4 -12 man_html.c (1.31), "Exp", lines: +3 -3 man_term.c (1.64), "Exp", lines: +2 -2 man_validate.c (1.37), "Exp", lines: +2 -2 Removed restriction on integer manual sections in -man. 2010-05-15 09:46 joerg Changed: main.c (1.68), "Exp", lines: +25 -20 Push buffer resizing into its own function. Keep initial allocations the same size as before. 2010-05-15 09:41 schwarze Changed: TODO (1.3), "Exp", lines: +0 -10 fixed tabs in quoted .Bl -column; and removed right margin from displays 2010-05-15 09:28 schwarze Changed: TODO (1.2), "Exp", lines: +2 -40 no more info on bugs FIXED in bsd.lv; this info is in old revisions of this file 2010-05-15 08:54 schwarze Changed: libmdoc.h (1.46), "Exp", lines: +10 -3 mdoc_argv.c (1.48), "Exp", lines: +4 -3 mdoc_macro.c (1.67), "Exp", lines: +13 -11 mdoc_strings.c (1.20), "Exp", lines: +9 -9 Distinguish OPEN, MIDDLE and CLOSE delimiters (using an enum). Only OPEN are drawn before the beginning of a macro; this is new, before this, MIDDLE ('|') were drawn in front, too. Only CLOSE are pushed after the end of a macro (as before). ok kristaps@ 2010-05-15 07:52 kristaps Changed: Makefile (1.269), "Exp", lines: +27 -11 roff.c (1.66), "Exp", lines: +14 -1714 roff.h (1.12), "Exp", lines: +21 -285 Initial roff shim skeleton in place. 2010-05-15 07:01 kristaps Changed: man.7 (1.71), "Exp", lines: +9 -4 mandoc.c (1.15), "Exp", lines: +3 -1 mdoc.7 (1.107), "Exp", lines: +11 -3 Documented EOS buffered spaces and added `]'. 2010-05-15 06:48 kristaps Changed: man.c (1.67), "Exp", lines: +3 -1 mandoc.c (1.14), "Exp", lines: +27 -13 mdoc.c (1.132), "Exp", lines: +3 -1 mdoc_macro.c (1.66), "Exp", lines: +22 -7 More EOS: append_delims() fitted with EOS detection, so ANY macro with appended delimiters will properly EOS. Fixed mandoc_eos() to accept sentence punctuation followed by close-delim buffers. 2010-05-15 05:50 joerg Changed: main.c (1.67), "Exp", lines: +55 -57 Cleanup indentation after moving the read buffering out of the loop. 2010-05-15 05:11 kristaps Changed: main.c (1.66), "Exp", lines: +131 -78 "Push down the buffer to where they are used. Handle the stdin/file argument in one function. On top, use either mmap or if that failed reading the whole file into a single buffer." (patches by Joerg Sonnenberger, ed. Kristaps) 2010-05-15 04:47 kristaps Changed: libmdoc.h (1.45), "Exp", lines: +3 -3 mdoc_argv.c (1.47), "Exp", lines: +4 -4 mdoc_macro.c (1.65), "Exp", lines: +15 -23 More `Bl -column' dancing: It children also inherit in-phrase flags (noted by Ingo Schwarze). 2010-05-15 04:46 kristaps Changed: main.c (1.65), "Exp", lines: +1 -7 Whacked lastman and lastmdoc (not being used). 2010-05-15 04:30 kristaps Changed: Makefile (1.268), "Exp", lines: +57 -15 Making room for libroff in Makefile: properly split out libmandoc.a. 2010-05-14 18:20 kristaps Added: TODO (1.1) Added Ingo's TODO file. 2010-05-14 17:59 kristaps Changed: main.c (1.64), "Exp", lines: +62 -60 "Accumulate errors and warnings in global variables and exit with error if either is not null on exit." (patch by Joerg Sonnenberger) 2010-05-14 17:54 kristaps Changed: mdoc_validate.c (1.77), "Exp", lines: +4 -48 Remove in-manual-section warnings for Fd and Lb (ok joerg@, schwarze@). 2010-05-14 17:31 kristaps Changed: libmdoc.h (1.44), "Exp", lines: +1 -2 mdoc.7 (1.106), "Exp", lines: +3 -2 mdoc.c (1.131), "Exp", lines: +1 -2 mdoc_validate.c (1.76), "Exp", lines: +2 -36 Backed out check for `Ex' manual sec (ok schwarze@, joerg@), in turn backing out check_msec() and deps. 2010-05-14 17:10 kristaps Changed: lib.in (1.7), "Exp", lines: +3 -1 "Add libelf and libterminfo." (patch by Joerg Sonnenberger) 2010-05-14 16:19 kristaps Changed: man.7 (1.70), "Exp", lines: +2 -2 man_validate.c (1.36), "Exp", lines: +2 -2 Pulled back in mysterious lost le1 <-> eq0 for Sp macro. 2010-05-14 16:02 kristaps Changed: index.sgml (1.70), "Exp", lines: +7 -2 mdoc.7 (1.105), "Exp", lines: +7 -1 mdoc_action.c (1.57), "Exp", lines: +18 -6 mdoc_validate.c (1.75), "Exp", lines: +2 -2 "Warn on unknown argument for .At and print it like [new] groff." (patch by Joerg Sonnenberger, ed. Kristaps) Keep short-log of commits in index.sgml. Document compatibility with new/old groff in mdoc.7. 2010-05-14 15:26 kristaps Changed: mdoc_action.c (1.56), "Exp", lines: +5 -4 mdoc_validate.c (1.74), "Exp", lines: +2 -2 "Invalid standard argument should be a warning. Just leak it into the output." (patch by Joerg Sonnenberger) 2010-05-14 15:17 kristaps Changed: mdoc.7 (1.104), "Exp", lines: +40 -1 Finish initial documentation of the Bl lists. 2010-05-14 15:02 kristaps Changed: mdoc.7 (1.103), "Exp", lines: +70 -56 Re-addition of cleaned-up list documentation in mdoc.7. 2010-05-14 14:34 kristaps Changed: mdoc_validate.c (1.73), "Exp", lines: +3 -3 "If the last column wasn't specified, it is auto-sized." (patch by Joerg Sonnenberger) 2010-05-14 14:21 kristaps Changed: mdoc.7 (1.102), "Exp", lines: +4 -1 Added documentation bits. 2010-05-14 14:09 kristaps Changed: mandoc.c (1.13), "Exp", lines: +3 -2 mdoc_macro.c (1.64), "Exp", lines: +21 -1 Block-implicit macros now up-propogate end-of-sentence spacing. NOTE: GROFF IS NOT SMART ENOUGH TO DO THIS. 2010-05-14 13:54 kristaps Changed: main.c (1.63), "Exp", lines: +3 -3 Fix for Joerg's patch stripping of pre-comment whitespace (by Joerg). 2010-05-14 13:31 kristaps Changed: mdoc_macro.c (1.63), "Exp", lines: +11 -5 Removed remaining "1 == ppos" invocations. 2010-05-14 12:55 kristaps Changed: libmdoc.h (1.43), "Exp", lines: +6 -4 mdoc_argv.c (1.46), "Exp", lines: +40 -20 mdoc_macro.c (1.62), "Exp", lines: +7 -12 Proper handling of quoted tab-separated column lists. 2010-05-14 12:31 kristaps Changed: index.sgml (1.69), "Exp", lines: +6 -1 Superfluous checkin testing cvs commit mailout (again)... 2010-05-14 12:02 kristaps Changed: index.sgml (1.68), "Exp", lines: +3 -2 Superfluous commit just to test commit messages. 2010-05-14 11:54 kristaps Changed: index.sgml (1.67), "Exp", lines: +3 -3 Added source mailing list entry. 2010-05-13 11:57 tag VERSION_1_9_25 2010-05-13 11:57 kristaps Changed: Makefile (1.267), "Exp", lines: +2 -2 index.sgml (1.66), "Exp", lines: +9 -5 Documented version bits. 2010-05-13 11:34 kristaps Changed: mdoc_macro.c (1.61), "Exp", lines: +2 -1 Lint fix. 2010-05-13 06:22 kristaps Changed: libmdoc.h (1.42), "Exp", lines: +5 -4 mdoc.c (1.130), "Exp", lines: +11 -5 mdoc.h (1.78), "Exp", lines: +15 -15 mdoc_html.c (1.62), "Exp", lines: +8 -7 mdoc_macro.c (1.60), "Exp", lines: +22 -13 mdoc_term.c (1.122), "Exp", lines: +8 -8 Fixed bug in -Thtml -mdoc where `Lb' would line-break in LIBRARY section. Fixed assumption that parse-point == 1 equates to beginning of line (false if whitespace separates macro and control character). Fixed line-break for non-first-macro in several SYNOPSIS macros. 2010-05-13 03:51 kristaps Changed: Makefile (1.266), "Exp", lines: +1 -1 Use "=" instead of "?=" for compatibility. 2010-05-12 17:08 kristaps Changed: libmandoc.h (1.5), "Exp", lines: +2 -1 man.7 (1.69), "Exp", lines: +7 -1 man.c (1.66), "Exp", lines: +2 -14 mandoc.c (1.12), "Exp", lines: +24 -1 mdoc.7 (1.101), "Exp", lines: +7 -1 mdoc.c (1.129), "Exp", lines: +2 -14 Put the eos-checker into libmandoc.h. Added bits in mdoc.7 and man.7 about EOS spacing. 2010-05-12 16:52 kristaps Changed: man.7 (1.68), "Exp", lines: +125 -94 End-of-sentence, end-of-line. 2010-05-12 16:46 kristaps Changed: man.c (1.65), "Exp", lines: +24 -1 man.h (1.29), "Exp", lines: +2 -1 man_term.c (1.63), "Exp", lines: +4 -1 End-of-sentence spacing for -man -Tascii. 2010-05-12 16:45 kristaps Changed: mdoc.7 (1.100), "Exp", lines: +197 -146 End of sentence, end of line for mdoc.7. 2010-05-12 16:01 kristaps Changed: mdoc.c (1.128), "Exp", lines: +28 -2 mdoc.h (1.77), "Exp", lines: +2 -1 mdoc_term.c (1.121), "Exp", lines: +4 -1 term.c (1.133), "Exp", lines: +7 -2 term.h (1.54), "Exp", lines: +2 -1 Tiny EOS patch. Back-end cues front-end through flag. Front-end cues output engine with flag. 2010-05-12 08:41 kristaps Changed: libmdoc.h (1.41), "Exp", lines: +2 -2 man.7 (1.67), "Exp", lines: +11 -11 mdoc.7 (1.99), "Exp", lines: +14 -14 mdoc.h (1.76), "Exp", lines: +4 -3 mdoc.template (1.5), "Exp", lines: +2 -2 mdoc_action.c (1.55), "Exp", lines: +2 -2 mdoc_strings.c (1.19), "Exp", lines: +28 -36 mdoc_validate.c (1.72), "Exp", lines: +8 -5 mdoc_atosec -> mdoc_str2sec (consistent with str2 being different from a2). Changed ordering of sections (EXIT STATUS moved around), argued for by Ulrich Sporlein. Fixed mdoc_str2sec not to use weird structure. 2010-05-12 08:29 kristaps Changed: mandoc_char.7 (1.39), "Exp", lines: +2 -2 Fix quoting of bar: \*(Ba mapping "|" is dumb, dumb, dumb (thanks groff). 2010-05-10 08:31 kristaps Changed: man_term.c (1.62), "Exp", lines: +12 -12 Back out OpenBSD special case (ok Ingo Schwarze). 2010-05-10 08:27 kristaps Changed: man_term.c (1.61), "Exp", lines: +20 -2 Proper leading spaces for new- and old-groff in -man -Tascii mode. 2010-05-10 08:05 kristaps Changed: man_term.c (1.60), "Exp", lines: +3 -5 mdoc_term.c (1.120), "Exp", lines: +3 -3 term.h (1.53), "Exp", lines: +3 -1 -man also now has unbound margins for literal context. 2010-05-09 21:27 kristaps Changed: index.sgml (1.65), "Exp", lines: +3 -2 Keeping track of changes... 2010-05-09 21:19 kristaps Changed: index.sgml (1.64), "Exp", lines: +8 -1 main.c (1.62), "Exp", lines: +10 -20 man.h (1.28), "Exp", lines: +1 -2 man_validate.c (1.35), "Exp", lines: +2 -4 mandoc.1 (1.60), "Exp", lines: +4 -7 mdoc.h (1.75), "Exp", lines: +1 -2 mdoc_validate.c (1.71), "Exp", lines: +3 -14 Remove -fno-ign-chars as well-argued by Ingo Schwarze. Patch by Ingo Schwarze, too. 2010-05-09 21:11 kristaps Changed: mandoc_char.7 (1.38), "Exp", lines: +13 -2 Noted \*(Ba side effects. 2010-05-09 21:06 kristaps Changed: mdoc_argv.c (1.45), "Exp", lines: +7 -6 mdoc_strings.c (1.18), "Exp", lines: +12 -6 Explicitly account for \*(Ba when checking for delims. Noted by Jason McIntyre via Ingo Schwarze. 2010-05-09 16:38 kristaps Changed: mdoc_term.c (1.119), "Exp", lines: +13 -9 Setting maxmargin, too (for completion). 2010-05-09 16:05 kristaps Changed: mdoc_term.c (1.118), "Exp", lines: +56 -23 Allow literal contexts to have unbound line lengths (from Ingo Schwarze's mandoc TODO by way of Jason McIntyre). 2010-05-09 15:08 kristaps Changed: mandoc_char.7 (1.37), "Exp", lines: +4 -4 Fixed ugly formatting of mandoc_char.7 in groff (-column widths were using an escape, which groff understands but mandoc doesn't). 2010-05-09 10:17 kristaps Changed: libmdoc.h (1.40), "Exp", lines: +3 -2 mdoc_argv.c (1.44), "Exp", lines: +4 -2 mdoc_macro.c (1.59), "Exp", lines: +45 -15 Introduce ARGS_PEND for `It -column' end-of-line special casing. Initial rules for insane `It -column' tabsep handling. 2010-05-09 06:50 tag VERSION_1_9_24 2010-05-09 06:50 kristaps Changed: index.sgml (1.63), "Exp", lines: +3 -4 Backing out activitymail (broken). 2010-05-09 06:44 kristaps Changed: index.sgml (1.62), "Exp", lines: +2 -1 This is just a test of the source changes mailer. 2010-05-09 06:39 kristaps Changed: index.sgml (1.61), "Exp", lines: +2 -2 Noting that list subscription is moderated. 2010-05-09 06:27 kristaps Changed: Makefile (1.265), "Exp", lines: +2 -2 index.sgml (1.60), "Exp", lines: +2 -2 Getting version ready. 2010-05-09 06:18 kristaps Changed: index.sgml (1.59), "Exp", lines: +17 -10 Cleaned up index, added GSoC projects. 2010-05-08 22:29 kristaps Changed: index.sgml (1.58), "Exp", lines: +8 -1 Another mailing list... 2010-05-08 22:26 kristaps Changed: index.sgml (1.57), "Exp", lines: +16 -3 man.7 (1.66), "Exp", lines: +2 -2 mdoc.7 (1.98), "Exp", lines: +2 -2 Adding initial mailing list section to homepage. 2010-05-08 10:28 kristaps Changed: man.7 (1.65), "Exp", lines: +3 -2 mdoc.7 (1.97), "Exp", lines: +4 -3 Note that whitespace is really only the space character. 2010-05-08 10:25 kristaps Changed: man.c (1.64), "Exp", lines: +2 -4 mdoc.c (1.127), "Exp", lines: +2 -4 Fix asserts on stripping end-of-line whitespace. 2010-05-08 09:23 kristaps Changed: index.sgml (1.56), "Exp", lines: +2 -2 Second test of log_accum. 2010-05-08 09:22 kristaps Changed: index.sgml (1.55), "Exp", lines: +2 -2 Test of log_accum. 2010-05-08 08:36 kristaps Changed: man.7 (1.64), "Exp", lines: +9 -6 man.c (1.63), "Exp", lines: +18 -4 mdoc.7 (1.96), "Exp", lines: +6 -16 mdoc.c (1.126), "Exp", lines: +18 -4 Strip trailing, unescaped whitespace from free-form, non-literal lines (like groff). 2010-05-08 07:30 kristaps Changed: index.sgml (1.54), "Exp", lines: +5 -5 libmdoc.h (1.39), "Exp", lines: +2 -3 man.c (1.62), "Exp", lines: +7 -4 man_hash.c (1.19), "Exp", lines: +2 -2 mdoc.c (1.125), "Exp", lines: +12 -10 mdoc_action.c (1.54), "Exp", lines: +5 -5 mdoc_argv.c (1.43), "Exp", lines: +14 -13 mdoc_hash.c (1.14), "Exp", lines: +2 -2 mdoc_macro.c (1.58), "Exp", lines: +4 -4 mdoc_strings.c (1.17), "Exp", lines: +2 -2 mdoc_validate.c (1.70), "Exp", lines: +2 -2 Lint fixes (type-safety for enums via -cefuh). 2010-05-07 15:49 kristaps Changed: man.7 (1.63), "Exp", lines: +2 -7 man.c (1.61), "Exp", lines: +18 -56 mdoc.7 (1.95), "Exp", lines: +2 -6 mdoc.c (1.124), "Exp", lines: +29 -66 mdoc_argv.c (1.42), "Exp", lines: +7 -3 De-chunking of text removed from parsers. This is a significant change (and I don't really like it), but it's what groff does. Distinction of ARGS_PHRASE and ARGS_PPHRASE in backend (not yet used). 2010-05-07 06:05 kristaps Changed: index.sgml (1.53), "Exp", lines: +11 -2 libmdoc.h (1.38), "Exp", lines: +3 -2 mdoc_argv.c (1.41), "Exp", lines: +4 -2 mdoc_macro.c (1.57), "Exp", lines: +5 -8 Initial ARGS_PPHRASE (partial phrase) framework. Running tally of changes in index.sgml. 2010-05-07 05:54 kristaps Changed: libmdoc.h (1.37), "Exp", lines: +9 -6 mdoc_argv.c (1.40), "Exp", lines: +2 -2 mdoc_macro.c (1.56), "Exp", lines: +25 -21 enum-ised mdoc_argv() return (better return-value safety). 2010-05-07 05:48 kristaps Changed: Makefile (1.264), "Exp", lines: +3 -3 libmdoc.h (1.36), "Exp", lines: +4 -4 mdoc_argv.c (1.39), "Exp", lines: +5 -5 mdoc_macro.c (1.55), "Exp", lines: +10 -10 margerr -> margserr (getting ready for margverr). 2010-05-07 05:39 kristaps Changed: Makefile (1.263), "Exp", lines: +14 -13 mdoc_macro.c (1.54), "Exp", lines: +26 -17 Protection against running lookup() against quoted words. 2010-05-07 05:34 kristaps Changed: libmdoc.h (1.35), "Exp", lines: +13 -9 mdoc_argv.c (1.38), "Exp", lines: +5 -5 mdoc_macro.c (1.53), "Exp", lines: +145 -125 Wrangle mdoc_args() and mdoc_zargs() to use enum return type. Fixed lookup() and lookup_raw() to correctly use enum type. Quashed in_line_argn() bug (not reported, but there) where mixing return values. 2010-05-07 04:50 kristaps Changed: term.c (1.132), "Exp", lines: +4 -39 Backed out break-at-hyphen changes. 2010-04-13 05:26 kristaps Changed: man.3 (1.16), "Exp", lines: +2 -46 man.7 (1.62), "Exp", lines: +4 -135 mandoc.1 (1.59), "Exp", lines: +4 -80 mandoc_char.7 (1.36), "Exp", lines: +4 -41 manuals.7 (1.20), "Exp", lines: +4 -4 mdoc.7 (1.94), "Exp", lines: +3 -160 As per Jason McIntyre's heartful urgings, do away with '.' separators between logical sections. Change email address to BSD.lv one (this is not an academic project...) 2010-04-12 19:45 kristaps Changed: html.c (1.99), "Exp", lines: +2 -2 Fix to auto-closing of LINK tag in -Txhtml (thanks to Daniel Friesel). 2010-04-12 19:27 kristaps Changed: main.c (1.61), "Exp", lines: +9 -3 mandoc.1 (1.58), "Exp", lines: +94 -95 Merge patch by Jason McIntyre cleaning on mandoc.1: `Ar' -> `Cm' and other readability fixes. Merge modified patch by Joerg Sonnenberger that rewinds to whitespace when encountering trailing line-comments. 2010-04-08 08:17 kristaps Changed: example.style.css (1.20), "Exp", lines: +2 -2 mdoc_html.c (1.61), "Exp", lines: +3 -11 mdoc_term.c (1.117), "Exp", lines: +2 -22 Fixed %T: it now correctly underlines, instead of quoting (noted by Jason McIntyre and posted on Ingo Schwarze' mandoc-todo list). 2010-04-08 07:53 kristaps Changed: libman.h (1.31), "Exp", lines: +2 -1 libmdoc.h (1.34), "Exp", lines: +2 -1 man.c (1.60), "Exp", lines: +7 -1 mdoc.c (1.123), "Exp", lines: +14 -8 Sync'd mdoc.c's function names with man.c. Prompted by Ingo and Claus Assman, added warn/ignore for text lines beginning with `\."'. 2010-04-08 07:40 kristaps Changed: mandoc.1 (1.57), "Exp", lines: +66 -37 Merged Jason McIntyre's "new-sentence, new-line" patch along with Ingo Schwarze' "gt" patch. 2010-04-08 07:18 kristaps Changed: st.in (1.12), "Exp", lines: +5 -1 Added some standards found in NetBSD's manuals. 2010-04-08 07:06 kristaps Changed: mdoc.c (1.122), "Exp", lines: +11 -13 Properly checked in Ingo Schwarze' prologue/body-breaking patch, which I'd munged. 2010-04-08 07:05 kristaps Changed: html.c (1.98), "Exp", lines: +5 -3 term.c (1.131), "Exp", lines: +5 -3 Removed pipe from front-end ("typographic") recognition as punctuation (noted by Ingo Schwarze). 2010-04-07 19:37 kristaps Changed: mdoc.7 (1.93), "Exp", lines: +55 -43 Added some clarifying bits to mdoc.7 regarding GNU troff, mandoc, and Heirloom troff. Bits on Heirloom troff suggested from private communication with Gunnar Ritter (maintainer of Heirloom troff) (Heirloom uses BSD-4.4 mdoc files, from which historic groff -mdoc descends). 2010-04-07 19:35 kristaps Changed: mdoc_validate.c (1.69), "Exp", lines: +2 -14 Removed manual-section-calling restrictions for `Cd' and and `Ex' (requested by Joerg Sonnenberger). 2010-04-07 18:50 kristaps Changed: mdoc.7 (1.92), "Exp", lines: +3 -3 mdoc_validate.c (1.68), "Exp", lines: +2 -2 Allowing `Cd' to be in section 9 (noted by Joerg Sonnenberger). 2010-04-07 11:40 tag VERSION_1_9_23 2010-04-07 11:40 kristaps Changed: index.sgml (1.52), "Exp", lines: +2 -2 Slipping in adjusted version note in on-line report. 2010-04-07 11:29 kristaps Changed: out.c (1.15), "Exp", lines: +2 -3 Lint fix. 2010-04-07 11:25 kristaps Changed: Makefile (1.262), "Exp", lines: +2 -2 index.sgml (1.51), "Exp", lines: +2 -2 Noting version. 2010-04-07 11:25 kristaps Changed: mandoc.c (1.11), "Exp", lines: +5 -5 out.c (1.14), "Exp", lines: +95 -53 out.h (1.10), "Exp", lines: +3 -1 Add support/ignoring of \f(xy, \f[X...], \F(xy, \FX, \F[X...] roff-style font escapes (noted by Frantisek Holop). 2010-04-07 08:17 kristaps Changed: mdoc.7 (1.91), "Exp", lines: +67 -129 Breaking mdoc.7's multiline examples into sets of D1. A few errors found here and there. 2010-04-07 07:49 kristaps Changed: mdoc_html.c (1.60), "Exp", lines: +2 -1 out.c (1.13), "Exp", lines: +9 -7 Bug in printing of reserved words with form \*[xxx] fixed (found by Joerg Sonnenberger). 2010-04-06 17:01 kristaps Changed: mdoc.7 (1.90), "Exp", lines: +2 -2 mdoc_validate.c (1.67), "Exp", lines: +2 -11 Removed warning for `Er' when not used in certain sections (pointed out by Joerg Sonnenberger). 2010-04-06 16:27 kristaps Changed: mdoc_term.c (1.116), "Exp", lines: +3 -3 mdoc_validate.c (1.66), "Exp", lines: +4 -2 Allow `Bd' to accept (warn about then ignore) in-line arguments. 2010-04-06 11:52 kristaps Changed: mdoc_validate.c (1.65), "Exp", lines: +13 -12 Cleaned up post_bl_head() and fixed erroneous reporting of child nodes. 2010-04-06 11:52 kristaps Changed: index.sgml (1.50), "Exp", lines: +16 -1 Shortlist of changes checked in for this version. 2010-04-06 11:51 kristaps Changed: style.css (1.14), "Exp", lines: +17 -8 Prettyfied the stylesheet for mdocml.bsd.lv's online manuals. 2010-04-06 11:33 kristaps Changed: libmdoc.h (1.33), "Exp", lines: +2 -3 mdoc.c (1.121), "Exp", lines: +48 -10 mdoc_action.c (1.53), "Exp", lines: +3 -22 Migrating mdoc_node_free() and mdoc_node_freelist() to use mdoc_node_delete(), which has a more intuitive interface and mirrors libman. 2010-04-06 11:28 kristaps Changed: mdoc_html.c (1.59), "Exp", lines: +3 -1 mdoc_term.c (1.115), "Exp", lines: +12 -2 mdoc_validate.c (1.64), "Exp", lines: +4 -3 Let `Bl' accept arguments on the head line with a warning (these are ignored in the front-end device) (noted by Theo de Raadt). 2010-04-06 11:19 kristaps Changed: mdoc.7 (1.89), "Exp", lines: +6 -4 Note on `Fl' documented in mdoc.7. 2010-04-06 07:27 kristaps Changed: mdoc_html.c (1.58), "Exp", lines: +3 -3 mdoc_term.c (1.114), "Exp", lines: +3 -3 `Fl' now correctly suppresses the trailing space if followed by macros on the same line. 2010-04-06 07:17 kristaps Changed: mdoc.7 (1.88), "Exp", lines: +3 -3 mdoc_macro.c (1.52), "Exp", lines: +2 -2 Fix mdoc bug found by Claus Assmann: `Pf' should be callable. 2010-04-05 10:33 kristaps Changed: mandoc_char.7 (1.35), "Exp", lines: +3 -3 Make mathematical symbols have a longer first-column width (pointed out by Joerg Sonnenberger). 2010-04-05 09:19 kristaps Changed: Makefile (1.261), "Exp", lines: +2 -1 Added mandoc_char.7 to installed manuals (noted by Joerg Sonnenberger). 2010-04-05 09:03 kristaps Changed: mdoc_action.c (1.52), "Exp", lines: +6 -2 Fix issue of non-NAME sections triggering "no sections" error, reported by Christian Weisgerber, patched by Ingo Schwarze. 2010-04-05 08:59 kristaps Changed: mdoc.c (1.120), "Exp", lines: +18 -3 Commited relaxation of title-less document error-out noted by Christian Weisgerber and patched by Ingo Schwarze. 2010-04-05 08:51 kristaps Changed: html.h (1.23), "Exp", lines: +12 -13 mdoc_html.c (1.57), "Exp", lines: +42 -37 Fix in `Mt' mailto from a patch by Tim van der Molen. Fixed PAIR_xxx_INIT macros -- this are to be unified. Have `Vt', `Fn', `Ft', and `Fo' print whitespace afterward, instead of before. 2010-04-05 08:45 kristaps Changed: mdoc_macro.c (1.51), "Exp", lines: +9 -7 Enum-ised REWIND return values. 2010-04-05 08:38 kristaps Changed: mdoc_macro.c (1.50), "Exp", lines: +9 -4 Tentative fix of quoted punctuation issue noted by Jason McIntyre, e.g., `Li "!"' rendering the "!" outside of scope. 2010-04-05 07:25 kristaps Changed: man.7 (1.61), "Exp", lines: +1 -2 Removed lingering `Sp' reference (not -man). 2010-04-05 07:24 kristaps Changed: Makefile (1.260), "Exp", lines: +5 -2 Added generation of mdoc.h.html and man.h.html as linked from generated mdoc.3.html and man.3.html, respectively. 2010-04-03 14:25 kristaps Changed: mdoc_html.c (1.56), "Exp", lines: +4 -1 mdoc_term.c (1.113), "Exp", lines: +5 -2 mdoc_validate.c (1.63), "Exp", lines: +2 -2 Merged patch by Ingo Schwarze allowing `Xr' to pass through with no arguments (emits warning of course). 2010-04-03 14:12 kristaps Changed: man_validate.c (1.34), "Exp", lines: +14 -3 mdoc_validate.c (1.62), "Exp", lines: +3 -1 Modified version of Ingo Schwarze's patch so that -man doesn't puke when a TH isn't specified. 2010-04-03 14:02 kristaps Changed: libmdoc.h (1.32), "Exp", lines: +2 -1 mdoc_argv.c (1.37), "Exp", lines: +21 -16 mdoc_validate.c (1.61), "Exp", lines: +14 -3 Merged Ingo Schwarze's patch (plus documentation) for removing extraneous list types, which happens fairly often. 2010-04-03 13:02 kristaps Changed: mdoc.c (1.119), "Exp", lines: +13 -3 mdoc_validate.c (1.60), "Exp", lines: +4 -3 Merging patch by Ingo Schwarze. 2010-04-03 12:46 kristaps Changed: html.c (1.97), "Exp", lines: +3 -5 mdoc_strings.c (1.16), "Exp", lines: +6 -6 term.c (1.130), "Exp", lines: +53 -22 Removed erroneous `{' and `}' as punctuation (see mdoc.samples "General Syntax" for why this mistake was made). Noted by Ingo Schwarze. Lines of text now break at a hyphen, unless the hyphen is the first or second subsequent in a word. Inspired by a Ingo Schwarze's patch. 2010-03-31 08:42 tag VERSION_1_9_22 2010-03-31 08:42 kristaps Changed: Makefile (1.259), "Exp", lines: +12 -4 index.sgml (1.49), "Exp", lines: +11 -1 Added new version information. Fixing up Makefile a bit. 2010-03-31 08:04 kristaps Changed: Makefile (1.258), "Exp", lines: +1 -1 mdoc_macro.c (1.49), "Exp", lines: +14 -9 Fixed fatal bug in Xo/Xc patch that caused segfaults with last-child explicit-scope macros. 2010-03-31 07:42 kristaps Changed: Makefile (1.257), "Exp", lines: +1 -1 mdoc.c (1.118), "Exp", lines: +2 -1 mdoc_argv.c (1.36), "Exp", lines: +1 -2 mdoc_macro.c (1.48), "Exp", lines: +3 -5 Re-adjusting UGLY tags. Fixed removed assignment of type. Removed superfluous checks of mdoc_argflags (from days when comments were a macro tag). 2010-03-31 07:13 kristaps Changed: Makefile (1.256), "Exp", lines: +1 -1 libmdoc.h (1.31), "Exp", lines: +11 -11 mdoc.7 (1.87), "Exp", lines: +9 -2 mdoc.c (1.117), "Exp", lines: +12 -12 mdoc.h (1.74), "Exp", lines: +129 -124 mdoc_action.c (1.51), "Exp", lines: +3 -2 mdoc_argv.c (1.35), "Exp", lines: +8 -7 mdoc_hash.c (1.13), "Exp", lines: +3 -3 mdoc_macro.c (1.47), "Exp", lines: +53 -16 mdoc_validate.c (1.59), "Exp", lines: +3 -3 Macro types enum-ated (enum mdoct) (for easier debugging in gdb of "tok" values). Initial check-in of Ingo Schwarze's patch for Xo/Xc handling (in blocks ifdef'd "UGLY"). Put Oc-close-Op parts into UGLY ifdef blocks. 2010-03-31 06:37 tag VERSION_1_9_21 2010-03-31 06:37 kristaps Changed: man.3 (1.15), "Exp", lines: +3 -3 Whitespace fix. 2010-03-31 06:29 kristaps Changed: Makefile (1.255), "Exp", lines: +2 -2 Version (bug-fix). 2010-03-30 19:20 kristaps Changed: chars.in (1.22), "Exp", lines: +2 -2 man.3 (1.14), "Exp", lines: +26 -2 mandoc_char.7 (1.34), "Exp", lines: +2 -21 Escape TH -> Th (noticed by Joerg Sonnenberger). Moved pod2man escapes into man.3 (they're not part of -man or -mdoc, technically). 2010-03-30 08:24 tag VERSION_1_9_20 2010-03-30 08:24 kristaps Changed: Makefile (1.254), "Exp", lines: +2 -2 index.sgml (1.48), "Exp", lines: +6 -6 mdoc_macro.c (1.46), "Exp", lines: +34 -22 Modified in_line_eoln() to handle leading punctuation. 2010-03-30 06:52 kristaps Changed: mdoc_macro.c (1.45), "Exp", lines: +66 -54 Last remaining bits for leading-punctuation in blk_exp(). 2010-03-29 19:45 kristaps Changed: mdoc_macro.c (1.44), "Exp", lines: +9 -11 Fixed segfault with accidentally-munged tree. 2010-03-29 19:28 kristaps Changed: mdoc_argv.c (1.34), "Exp", lines: +3 -3 mdoc_html.c (1.55), "Exp", lines: +2 -2 mdoc_macro.c (1.43), "Exp", lines: +108 -76 mdoc_strings.c (1.15), "Exp", lines: +8 -8 mdoc_term.c (1.112), "Exp", lines: +2 -2 Integrate Ingo Schwarze's patch for mdoc_iscdelim() (tri-state for opening and closing macro punctuation). Modify blk_part_exp() to correctly handle leading punctuation before HEAD. Significantly clean up and document blk_part_exp(). Modify blk_part_imp() for to correctly handle leading punctuation before HEAD. Significantly clean up and document blk_part_imp(). Integrate Ingo Schwarze's patch for args() (using new mdoc_iscdelim() format). Documented bad `Ec' handling for later work in mdoc_term.c/mdoc_html.c. 2010-03-29 10:10 kristaps Changed: index.sgml (1.47), "Exp", lines: +12 -2 libman.h (1.30), "Exp", lines: +2 -1 man.c (1.59), "Exp", lines: +14 -9 man_macro.c (1.42), "Exp", lines: +10 -20 man_validate.c (1.33), "Exp", lines: +2 -2 mandoc.1 (1.56), "Exp", lines: +3 -2 Final (?) fix to issue pointed out by Sascha Wildner: roff instructions clobbering prior scope rules and line modes. 2010-03-29 04:52 kristaps Changed: libman.h (1.29), "Exp", lines: +6 -4 man.c (1.58), "Exp", lines: +6 -4 man_macro.c (1.41), "Exp", lines: +16 -1 Initial step in fixing badness reported by Sascha Wildner (wip). 2010-03-27 14:44 tag VERSION_1_9_19 2010-03-27 14:44 kristaps Changed: mandoc.1 (1.55), "Exp", lines: +4 -3 Fix mandoc.1 ending (noted by Sascha Wildner). 2010-03-27 10:26 tag VERSION_1_9_18 2010-03-27 10:26 kristaps Changed: man.c (1.57), "Exp", lines: +2 -2 Last fix for tabs/spaces between control character and macro. egcs gcc.1 is now handled. 2010-03-27 10:22 kristaps Changed: man.7 (1.60), "Exp", lines: +4 -4 ...finishing last commit message: accept both tabs and spaces between control character and macro text. 2010-03-27 10:21 kristaps Changed: man.c (1.56), "Exp", lines: +6 -2 [no log message] 2010-03-27 10:13 kristaps Changed: man.h (1.27), "Exp", lines: +2 -2 man_macro.c (1.39), "Exp", lines: +1 -5 man_hash.c (1.18), "Exp", lines: +3 -2 man_macro.c (1.40), "Exp", lines: +2 -2 Lint fixes. 2010-03-27 10:10 kristaps Changed: man.7 (1.59), "Exp", lines: +18 -5 mandoc.1 (1.54), "Exp", lines: +10 -2 Documentation of apostrophe control character. 2010-03-27 10:04 kristaps Changed: Makefile (1.253), "Exp", lines: +2 -2 index.sgml (1.46), "Exp", lines: +10 -1 libman.h (1.28), "Exp", lines: +5 -2 man.3 (1.13), "Exp", lines: +90 -30 man.c (1.55), "Exp", lines: +7 -5 man_action.c (1.30), "Exp", lines: +1 -2 man_macro.c (1.38), "Exp", lines: +86 -16 man_validate.c (1.32), "Exp", lines: +22 -3 Fixed re-adjustment of scope in exiting roff instructions (libman). Added title-case check for (libman). Fixed premature closure of roff instruction scope (libman). Added documentation of ignored roff macros to man(3). 2010-03-26 07:07 kristaps Changed: arch.in (1.7), "Exp", lines: +2 -2 mdoc.7 (1.86), "Exp", lines: +3 -3 Fixed misspelt "Loongson" (noted by Ingo Schwarze). 2010-03-25 07:39 tag VERSION_1_9_17 2010-03-25 07:39 kristaps Changed: man_macro.c (1.37), "Exp", lines: +3 -1 Lint fixes. 2010-03-25 07:38 kristaps Changed: Makefile (1.252), "Exp", lines: +1 -1 index.sgml (1.45), "Exp", lines: +6 -6 Cleaned up version info. 2010-03-25 07:28 kristaps Changed: index.sgml (1.44), "Exp", lines: +5 -3 man.7 (1.58), "Exp", lines: +51 -47 man_macro.c (1.36), "Exp", lines: +9 -6 mandoc.1 (1.53), "Exp", lines: +8 -1 Fixed up some documentation in man.7: only documenting man.7 macros, not related ones (de, Vb, etc.), which aren't technically man. It's an open question as to where these /should/ be documented, however. 2010-03-24 20:10 kristaps Changed: libman.h (1.27), "Exp", lines: +4 -4 man.c (1.54), "Exp", lines: +54 -28 man.h (1.26), "Exp", lines: +7 -1 man_action.c (1.29), "Exp", lines: +28 -4 man_html.c (1.30), "Exp", lines: +8 -2 man_macro.c (1.35), "Exp", lines: +104 -10 man_term.c (1.59), "Exp", lines: +9 -1 man_validate.c (1.31), "Exp", lines: +27 -1 Using man_node_delete() instead of man_node_free()/man_node_freelist() and friends (much simpler). Split blk_imp() into blk_exp() (explicit macros), blk_dotted() (roff macros), and the original. Added de, dei, am, ami, and ig roff macros (for now, these are discarded within the parse). 2010-03-24 03:46 kristaps Changed: man_action.c (1.28), "Exp", lines: +1 -3 man_macro.c (1.34), "Exp", lines: +12 -15 enum-ised rew_* return values (type-safety). Removed ignoring of MAN_Vb argument (symmetry). Removed superfluous utsname inclusion. 2010-03-23 21:50 kristaps Changed: libman.h (1.26), "Exp", lines: +7 -7 man.c (1.53), "Exp", lines: +14 -13 man.h (1.25), "Exp", lines: +40 -38 man_hash.c (1.17), "Exp", lines: +41 -16 man_macro.c (1.33), "Exp", lines: +9 -8 libman using enum mant instead of #defines for macros. Clean-ups, better documentation in man_hash.c. Added extra space for "." in man_hash.c (unused for the time being). 2010-03-23 13:53 kristaps Changed: index.sgml (1.43), "Exp", lines: +8 -1 Noted recent updates. 2010-03-23 13:25 kristaps Changed: chars.c (1.17), "Exp", lines: +2 -2 chars.in (1.21), "Exp", lines: +26 -5 mandoc_char.7 (1.33), "Exp", lines: +21 -2 Added stupid pod2man reserved strings. 2010-03-23 12:42 kristaps Changed: man_term.c (1.58), "Exp", lines: +5 -2 mdoc_term.c (1.111), "Exp", lines: +4 -1 term.c (1.129), "Exp", lines: +14 -16 term.h (1.52), "Exp", lines: +2 -1 Fixed two very subtle bugs in retaining overstep and maxrmargin widths between parse sequences. 2010-03-23 11:30 kristaps Changed: man.7 (1.57), "Exp", lines: +72 -65 man.c (1.52), "Exp", lines: +3 -2 man.h (1.24), "Exp", lines: +5 -2 man_action.c (1.27), "Exp", lines: +4 -1 man_html.c (1.29), "Exp", lines: +15 -4 man_macro.c (1.32), "Exp", lines: +8 -1 man_term.c (1.57), "Exp", lines: +24 -10 man_validate.c (1.30), "Exp", lines: +6 -3 Support for pod2man standard header macros (Vb, Ve, Sp). Based largely on a set of patches by Ingo Schwarze. 2010-03-22 21:05 kristaps Changed: mandoc_char.7 (1.32), "Exp", lines: +2 -15 Removed STANDARDS in mandoc_char(7), as they're no longer relevant (the manual deals with input characters, not output formats). 2010-03-22 20:43 kristaps Changed: main.c (1.60), "Exp", lines: +38 -32 mandoc.1 (1.52), "Exp", lines: +10 -4 Have -Tlint imply -Wall and -fstrict. Based on a patch submitted by Ingo Schwarze. 2010-03-22 18:30 tag VERSION_1_9_16 2010-03-22 18:30 kristaps Changed: Makefile (1.251), "Exp", lines: +30 -58 index.css (1.3), "Exp", lines: +4 -6 index.sgml (1.42), "Exp", lines: +12 -2 Updated web-site with new version. Allowed double-rule entries in Makefile (clean-up). 2010-03-22 14:03 kristaps Changed: libman.h (1.25), "Exp", lines: +3 -1 man.c (1.51), "Exp", lines: +50 -28 man_action.c (1.26), "Exp", lines: +3 -19 man_html.c (1.28), "Exp", lines: +23 -5 mandoc.1 (1.51), "Exp", lines: +16 -4 Clarify -man -T[x]html handling of `br' within `B'. Consolidated node unlinking in -man. Conclude nested next-line scope issues noted by Ingo Schwarze. 2010-03-22 05:59 kristaps Changed: libman.h (1.24), "Exp", lines: +6 -4 man.7 (1.56), "Exp", lines: +17 -9 man.c (1.50), "Exp", lines: +35 -4 man_html.c (1.27), "Exp", lines: +8 -2 man_macro.c (1.31), "Exp", lines: +21 -6 man_term.c (1.56), "Exp", lines: +44 -37 man_validate.c (1.29), "Exp", lines: +4 -4 Accomodate (libman) for next-line macros followed by non-text macros `na', `sp', and `br'. Based on a patch by Ingo Schwarze. 2010-03-21 18:16 kristaps Changed: arch.in (1.6), "Exp", lines: +2 -1 mdoc.7 (1.85), "Exp", lines: +3 -2 Added Longsoon architecture (thanks Jason McIntyre, Ingo Schwarze). 2010-02-17 19:56 tag VERSION_1_9_15 2010-02-17 19:56 kristaps Changed: Makefile (1.250), "Exp", lines: +2 -2 index.sgml (1.41), "Exp", lines: +8 -3 Added news item for new version. Version: 1.9.15. 2010-02-17 19:48 kristaps Changed: html.c (1.96), "Exp", lines: +6 -2 Fixed printing of XHTML DOCTYPE "html" vs. "HTML". 2010-02-17 19:31 kristaps Changed: index.css (1.2), "Exp", lines: +3 -1 index.sgml (1.40), "Exp", lines: +210 -185 Updated index with new address bits and such. 2010-02-17 19:28 kristaps Changed: mdoc_macro.c (1.42), "Exp", lines: +19 -3 mdoc_validate.c (1.58), "Exp", lines: +2 -4 Made `Xr' compatible with groff calling conventions where arguments following the trailing section are implicitly `Ns'd. Based on a patch submitted by Ingo Schwarze. 2010-02-17 19:22 kristaps Changed: mdoc.7 (1.84), "Exp", lines: +34 -3 Macro documentation for `Xr'. Re-added macros following `Vt' (lost somehow?). Removed `Xr' <3 stipulations. 2010-02-17 19:22 kristaps Changed: man.3 (1.12), "Exp", lines: +22 -20 mdoc.3 (1.37), "Exp", lines: +20 -20 Removed offsets from most parts (no reason for indentation). Using POSIX2008 idioms for examples (thanks Joerg Sonnenberger). Removed references to fgetln(). 2010-01-30 08:55 kristaps Changed: mdoc.7 (1.83), "Exp", lines: +33 -6 Added `Vt' double-type documentation. 2010-01-30 08:42 kristaps Changed: html.c (1.95), "Exp", lines: +1 -2 mdoc_html.c (1.54), "Exp", lines: +6 -3 mdoc_macro.c (1.41), "Exp", lines: +28 -2 mdoc_term.c (1.110), "Exp", lines: +19 -3 mdoc_validate.c (1.57), "Exp", lines: +30 -2 Fix in handling Vt in SYNOPSIS with trailing punctuation. Spotted by Joerg Sonnenberger. 2010-01-30 06:55 kristaps Changed: html.c (1.94), "Exp", lines: +28 -6 Mandate html attributes for xhtml. 2010-01-29 14:39 kristaps Changed: Makefile (1.249), "Exp", lines: +2 -0 html.c (1.93), "Exp", lines: +82 -15 html.h (1.22), "Exp", lines: +8 -4 main.c (1.59), "Exp", lines: +10 -1 main.h (1.2), "Exp", lines: +2 -1 man_html.c (1.26), "Exp", lines: +2 -2 mandoc.1 (1.50), "Exp", lines: +26 -5 mdoc_html.c (1.53), "Exp", lines: +2 -2 Fixed Makefile for `make lint' dep. on config.h Added -Txhtml for XHTML output (minimal increase to programme logic). Because groff has it and it bothers me that we don't. 2010-01-28 06:04 kristaps Changed: chars.c (1.16), "Exp", lines: +1 -13 Removed superfluous lookahead block in chars.c. 2010-01-07 19:10 kristaps Changed: man.3 (1.11), "Exp", lines: +2 -2 man.7 (1.55), "Exp", lines: +11 -11 mandoc.1 (1.49), "Exp", lines: +11 -11 mdoc.3 (1.36), "Exp", lines: +2 -2 mdoc.7 (1.82), "Exp", lines: +22 -22 Fix white-space issues found by mandoc's better white-space finder. Fixed bogus `\\' escapes in some manuals. 2010-01-07 10:24 kristaps Changed: man.c (1.49), "Exp", lines: +24 -4 mdoc.c (1.116), "Exp", lines: +16 -1 Check for white-space at the end of free-form text. Lack of check spotted by Jason McIntyre. 2010-01-07 10:05 kristaps Changed: man.c (1.48), "Exp", lines: +10 -3 mdoc.c (1.115), "Exp", lines: +15 -7 Check for white-space at end of stand-alone macro line. 2010-01-07 09:16 kristaps Changed: mandoc_char.7 (1.31), "Exp", lines: +2 -2 mandoc_char(7) sync with OpenBSD version. 2010-01-05 19:51 kristaps Changed: chars.c (1.15), "Exp", lines: +2 -2 chars.in (1.20), "Exp", lines: +1 -2 mandoc.c (1.10), "Exp", lines: +1 -3 Removed references to `\\' escape (noted by Jason McIntyre, Ingo Schwarze). 2010-01-05 19:47 kristaps Changed: mandoc_char.7 (1.30), "Exp", lines: +26 -26 Fixed -column widths to be string literals (as per mdoc.samples: surprise!). (Jason McIntyre, Ingo Schwarze) Remove trailing whitespace. (Jason McIntyre, Ingo Schwarze). Remove reference to `\\', which is a groff strangeism. (Jason McIntyre, Ingo Schwarze). 2010-01-01 19:22 kristaps Changed: Makefile (1.248), "Exp", lines: +2 -2 Version (pre): 1.9.15-pre2 2010-01-01 18:33 tag VERSION_1_9_15-pre2 2010-01-01 18:33 kristaps Changed: mdoc_term.c (1.109), "Exp", lines: +20 -17 Fix of subtle, but significant, resetting of tags when in list mode. Pointed out by Ingo Schwarze. 2010-01-01 18:01 kristaps Changed: mdoc_term.c (1.108), "Exp", lines: +66 -37 More in-code documentation and clarity re-arrangements. 2010-01-01 17:25 kristaps Changed: Makefile (1.247), "Exp", lines: +2 -2 CFLAGS need -Werror to make the strlcpy/strlcat check work. 2010-01-01 17:14 kristaps Added: config.h.post (1.1) config.h.pre (1.1) test-strlcat.c (1.1) test-strlcpy.c (1.1) Changed: Makefile (1.246), "Exp", lines: +25 -5 arch.c (1.6), "Exp", lines: +5 -1 att.c (1.6), "Exp", lines: +5 -1 chars.c (1.14), "Exp", lines: +5 -1 compat.c (1.5), "Exp", lines: +7 -2 html.c (1.92), "Exp", lines: +5 -6 lib.c (1.6), "Exp", lines: +5 -1 main.c (1.58), "Exp", lines: +5 -6 man.c (1.47), "Exp", lines: +5 -5 man_action.c (1.25), "Exp", lines: +5 -1 man_argv.c (1.2), "Exp", lines: +5 -1 man_hash.c (1.16), "Exp", lines: +5 -1 man_html.c (1.25), "Exp", lines: +5 -6 man_macro.c (1.30), "Exp", lines: +5 -1 man_term.c (1.55), "Exp", lines: +5 -6 man_validate.c (1.28), "Exp", lines: +5 -1 mandoc.c (1.9), "Exp", lines: +3 -3 mdoc.c (1.114), "Exp", lines: +11 -12 mdoc_action.c (1.50), "Exp", lines: +5 -5 mdoc_argv.c (1.33), "Exp", lines: +5 -1 mdoc_hash.c (1.12), "Exp", lines: +5 -1 mdoc_html.c (1.52), "Exp", lines: +9 -7 mdoc_macro.c (1.40), "Exp", lines: +5 -1 mdoc_strings.c (1.14), "Exp", lines: +5 -1 mdoc_term.c (1.107), "Exp", lines: +5 -6 mdoc_validate.c (1.56), "Exp", lines: +5 -5 msec.c (1.6), "Exp", lines: +5 -1 out.c (1.12), "Exp", lines: +5 -5 st.c (1.6), "Exp", lines: +5 -1 term.c (1.128), "Exp", lines: +5 -1 tree.c (1.19), "Exp", lines: +5 -1 vol.c (1.6), "Exp", lines: +5 -1 Big check-in of compatibility layer. This should work on most major architectures. Thanks to Joerg Sonnenberger. 2010-01-01 16:52 tag VERSION_1_9_15-pre1 2010-01-01 16:52 kristaps Changed: mdoc.7 (1.81), "Exp", lines: +5 -1 Noted non-accepted comment syntax (thanks Joerg Sonnenberger). 2010-01-01 16:27 kristaps Changed: mdoc.7 (1.80), "Exp", lines: +80 -6 Issue of `Pa' put to rest by Jason McIntyre. Noted in COMPATIBILITY. 2010-01-01 15:14 kristaps Changed: mdoc_validate.c (1.55), "Exp", lines: +11 -4 `Bl' lets `Sm' slip by as a child. Noted by Ingo Schwarze. 2010-01-01 14:32 kristaps Changed: mdoc_term.c (1.106), "Exp", lines: +15 -14 Correct handling of arbitrary column lengths, which groff handles differently depending on number of visible columns. 2010-01-01 14:27 kristaps Changed: mdoc_term.c (1.105), "Exp", lines: +38 -26 Cleaned-up column handling to be char-compatible with groff (thanks Ingo Schwarze). Fixed assertion in exceeded rmargin by ridiculous columns. 2010-01-01 13:35 kristaps Changed: mdoc.7 (1.79), "Exp", lines: +23 -1 mdoc_html.c (1.51), "Exp", lines: +5 -17 mdoc_term.c (1.104), "Exp", lines: +1 -11 Documented `Fl' in mdoc.7. Backed out stipulation that `Fl ""' is ignored: this is not the case in !OpenBSD groffs. 2010-01-01 13:17 kristaps Changed: mdoc_html.c (1.50), "Exp", lines: +25 -4 mdoc_macro.c (1.39), "Exp", lines: +12 -1 mdoc_term.c (1.103), "Exp", lines: +17 -2 `Fl' has each argument be in a separate scope (thanks Ingo Schwarze). Situation of `Fl [arg]* "" [arg]*' is fixed: empty arguments are ignored. Note that OpenBSD crashes when this happens. Situation of `Fl' is fixed wrt trailing whitespace. 2009-12-02 10:16 kristaps Changed: Makefile (1.245), "Exp", lines: +4 -1 mdoc_html.c (1.49), "Exp", lines: +3 -3 Fixed handling of exampledir (pointed out by Ulrich Sporlein, forgotten, discovered again). 2009-11-16 10:05 tag VERSION_1_9_14 2009-11-16 10:05 kristaps Changed: Makefile (1.244), "Exp", lines: +2 -2 Version: 1.9.14. 2009-11-16 09:52 kristaps Changed: Makefile (1.243), "Exp", lines: +2 -0 example.style.css (1.19), "Exp", lines: +2 -0 mandoc.1 (1.48), "Exp", lines: +121 -55 mandoc_char.7 (1.29), "Exp", lines: +1 -20 mdoc.7 (1.78), "Exp", lines: +5 -5 More clarification in manuals. Added per-OUTPUT section in mandoc.1. 2009-11-16 08:46 kristaps Changed: html.c (1.91), "Exp", lines: +2 -2 man.7 (1.54), "Exp", lines: +4 -1 man_html.c (1.24), "Exp", lines: +9 -3 mandoc.1 (1.47), "Exp", lines: +13 -5 mdoc_html.c (1.48), "Exp", lines: +2 -4 Enabled -Thtml -mdoc to work with \f (see compat notes in mandoc.1). 2009-11-16 06:07 kristaps Changed: html.c (1.90), "Exp", lines: +37 -16 html.h (1.21), "Exp", lines: +11 -1 man_html.c (1.23), "Exp", lines: +13 -20 Abstraction of -Thtml -man font setting (still experimental). 2009-11-15 06:53 kristaps Changed: man_html.c (1.22), "Exp", lines: +7 -7 Fixed -Thtml -man PP left- and top-margin. 2009-11-15 06:45 kristaps Changed: example.style.css (1.18), "Exp", lines: +1 -0 html.c (1.89), "Exp", lines: +6 -2 man.7 (1.53), "Exp", lines: +2 -3 man_html.c (1.21), "Exp", lines: +19 -12 \f escapes appear to work properly for -Thtml -man. Needs more testing. 2009-11-14 19:23 kristaps Changed: html.c (1.88), "Exp", lines: +47 -5 man_html.c (1.20), "Exp", lines: +6 -4 Initial check-in of -man -Thtml \f support (needs testing). 2009-11-14 12:04 kristaps Changed: html.c (1.87), "Exp", lines: +2 -11 html.h (1.20), "Exp", lines: +1 -2 mdoc_html.c (1.47), "Exp", lines: +6 -7 Removed superfluous HTML_NEWLINE. 2009-11-14 12:00 kristaps Changed: html.c (1.86), "Exp", lines: +4 -4 Fix of fix of -Thtml nospace. 2009-11-14 11:58 kristaps Changed: html.c (1.85), "Exp", lines: +10 -6 html.h (1.19), "Exp", lines: +2 -5 man_html.c (1.19), "Exp", lines: +2 -5 Fixed \c handling in -Thtml. 2009-11-12 08:21 kristaps Changed: html.c (1.84), "Exp", lines: +4 -1 man.7 (1.52), "Exp", lines: +1 -9 man_term.c (1.54), "Exp", lines: +3 -12 mandoc_char.7 (1.28), "Exp", lines: +2 -1 out.c (1.11), "Exp", lines: +6 -1 out.h (1.9), "Exp", lines: +2 -1 term.c (1.127), "Exp", lines: +4 -1 Fixed \c support for all input and output modes (documented in mandoc_char.7). 2009-11-12 08:00 kristaps Changed: man.7 (1.51), "Exp", lines: +12 -5 man_term.c (1.53), "Exp", lines: +2 -14 Deprecated ".i <notext>" support (nobody uses it -- it can be re-added, but adds a bit of complexity that I'd rather avoid). 2009-11-12 05:58 kristaps Changed: term.c (1.126), "Exp", lines: +5 -3 FreeBSD sys/types inclusion fixed. 2009-11-12 05:50 kristaps Changed: man.7 (1.50), "Exp", lines: +4 -2 man_term.c (1.52), "Exp", lines: +36 -80 mdoc.7 (1.77), "Exp", lines: +24 -5 mdoc_term.c (1.102), "Exp", lines: +79 -67 term.c (1.125), "Exp", lines: +147 -87 term.h (1.51), "Exp", lines: +18 -7 Basically re-wrote -Tascii font handling: instead of incrementers for bold and underline, we use a stack (no cascading, no double-font-mode). Font modes with \f only affect the current stack point, as documented in mdoc.7 and man.7. While -mdoc stacks fonts with embedded macros, -man replaces them (the stack is always size 1). This works for all invocations in supported systems' manual corpora to date. It doesn't support groff's insanity with line-scoped \f as documented in mdoc.7. 2009-11-12 05:02 kristaps Changed: example.style.css (1.17), "Exp", lines: +2 -2 Removed superfluous monospace note in example.style.css (they're all monospace). 2009-11-11 20:16 kristaps Changed: example.style.css (1.16), "Exp", lines: +26 -26 Protected example.style.css from cascading styles. 2009-11-10 16:32 kristaps Changed: html.c (1.83), "Exp", lines: +7 -7 Lint fixes in function call. 2009-11-10 16:20 kristaps Changed: html.h (1.18), "Exp", lines: +5 -1 (Forgot to update html.h with metafonts. Build will puke on check-out.) 2009-11-10 12:03 kristaps Changed: man.7 (1.49), "Exp", lines: +8 -1 man_html.c (1.18), "Exp", lines: +4 -1 man_term.c (1.51), "Exp", lines: +6 -2 Noted that -man text decoration is re-set when exiting a macro invocation. 2009-11-10 11:45 kristaps Changed: man_term.c (1.50), "Exp", lines: +3 -1 mdoc_term.c (1.101), "Exp", lines: +4 -1 Disable metafonts when printing document footer. 2009-11-09 05:11 kristaps Changed: html.c (1.82), "Exp", lines: +35 -108 man.7 (1.48), "Exp", lines: +28 -3 mdoc.7 (1.76), "Exp", lines: +31 -4 Documented \s and cleaned up \f documentation in mdoc.7, man.7. -Thtml now using a2roffdeco(). 2009-11-08 09:23 kristaps Changed: out.c (1.10), "Exp", lines: +67 -75 out.h (1.8), "Exp", lines: +10 -4 a2roffdeco() now supports \s escapes. 2009-11-07 14:14 kristaps Changed: out.c (1.9), "Exp", lines: +2 -3 term.c (1.124), "Exp", lines: +50 -202 Hooked up -Tascii to a2roffdeco backend. 2009-11-07 08:26 kristaps Changed: out.c (1.8), "Exp", lines: +193 -1 out.h (1.7), "Exp", lines: +13 -1 Initial abstraction of front-end decoration events (special characters, text decorations, etc.). 2009-11-06 10:31 kristaps Changed: mdoc.7 (1.75), "Exp", lines: +4 -3 term.c (1.123), "Exp", lines: +90 -12 -Tascii now correctly ignores \s clauses. 2009-11-05 10:16 kristaps Changed: html.c (1.81), "Exp", lines: +14 -16 mandoc.1 (1.46), "Exp", lines: +12 -1 mandoc.c (1.8), "Exp", lines: +80 -3 Documented that `\s' and `\f' don't work in HTML mode (and why). Added support for recognising the many forms of `\s' (doesn't yet render). 2009-11-05 08:40 kristaps Changed: man.7 (1.47), "Exp", lines: +4 -3 mdoc.7 (1.74), "Exp", lines: +6 -4 term.c (1.122), "Exp", lines: +22 -8 term.h (1.50), "Exp", lines: +5 -1 Correct support for `\fX' font modes in -Tascii. 2009-11-05 08:39 kristaps Changed: man_term.c (1.49), "Exp", lines: +10 -25 Consolidated `RI' and `IR' handlers (-man -Tascii). 2009-11-05 08:37 kristaps Changed: man_term.c (1.48), "Exp", lines: +3 -3 Fixed `RI' (was reversed). 2009-11-05 07:21 kristaps Changed: chars.c (1.13), "Exp", lines: +4 -3 chars.in (1.19), "Exp", lines: +9 -2 term.c (1.121), "Exp", lines: +7 -2 Added functionality of -Tascii non-breaking `\~' space. 2009-11-04 08:07 kristaps Changed: example.style.css (1.15), "Exp", lines: +1 -1 (Fix again for default `Bf Li' font.) 2009-11-04 08:07 kristaps Changed: style.css (1.13), "Exp", lines: +1 -1 Fixed `Bf Li' default style (monospace). 2009-11-02 17:37 tag VERSION_1_9_13 2009-11-02 17:37 kristaps Changed: Makefile (1.242), "Exp", lines: +2 -2 Version: 1.9.13. 2009-11-02 17:07 kristaps Changed: man.7 (1.46), "Exp", lines: +5 -8 Examples not being link-referenced (consistency). 2009-11-02 11:39 kristaps Changed: mdoc.7 (1.73), "Exp", lines: +179 -32 Copied over and modified manual structure from man.7. 2009-11-02 09:56 kristaps Changed: man.7 (1.45), "Exp", lines: +31 -31 Fixed `Sx' links in man.7 (todo: add a check for these). 2009-11-02 09:53 kristaps Changed: man.7 (1.44), "Exp", lines: +314 -65 Significant improvements to man(7). More or less finished. 2009-11-02 08:40 kristaps Changed: man.c (1.46), "Exp", lines: +4 -4 Fix in junking dot lines in -man (from PR by Alex Kozlov). 2009-11-02 08:29 kristaps Changed: main.c (1.57), "Exp", lines: +5 -5 Added forgotten newline terminators in main.c. 2009-11-02 08:13 kristaps Changed: main.c (1.56), "Exp", lines: +4 -2 Added lint to __attribute__ defines. 2009-11-02 08:08 kristaps Changed: main.c (1.55), "Exp", lines: +10 -13 Using straight-up __attribute__ (inspired by portable openssh). 2009-11-02 06:22 kristaps Changed: html.c (1.80), "Exp", lines: +3 -2 libmandoc.h (1.4), "Exp", lines: +6 -1 man.7 (1.43), "Exp", lines: +39 -19 man_action.c (1.24), "Exp", lines: +12 -33 man_validate.c (1.27), "Exp", lines: +2 -2 mandoc.c (1.7), "Exp", lines: +63 -1 mdoc.7 (1.72), "Exp", lines: +10 -21 mdoc_action.c (1.49), "Exp", lines: +5 -4 mdoc_strings.c (1.13), "Exp", lines: +1 -27 mdoc_validate.c (1.54), "Exp", lines: +4 -2 Added mandoc_a2time() for proper date conversion. Fitted TH and Dd handlers to use mandoc_a2time(). Documented date syntax for -man, fixed documentation for -mdoc. 2009-11-01 15:34 kristaps Changed: html.c (1.79), "Exp", lines: +2 -2 Lint fix. 2009-11-01 15:34 kristaps Changed: html.c (1.78), "Exp", lines: +6 -6 Using putchar for single-character prints (noted by Joerg Sonnenberger). 2009-11-01 08:15 kristaps Changed: html.c (1.77), "Exp", lines: +13 -13 print_encode() using strcspn instead of looping/putchar() (noted by Joerg Sonnenberger). 2009-11-01 07:44 kristaps Changed: chars.c (1.12), "Exp", lines: +2 -2 html.c (1.76), "Exp", lines: +4 -8 Replaced putchar() loop with fwrite() (noted by Joerg Sonnenberger). 2009-11-01 07:34 kristaps Changed: lib.in (1.6), "Exp", lines: +10 -1 More libraries entered into lib.in (thanks Joerg Sonnenberger). 2009-10-31 08:37 kristaps Changed: Makefile (1.241), "Exp", lines: +10 -7 index.sgml (1.39), "Exp", lines: +4 -5 man.7 (1.42), "Exp", lines: +90 -25 Finished section-by-section definitions in man.7 (will be used as baseline for mdoc.7). 2009-10-31 08:34 kristaps Changed: mdoc_html.c (1.46), "Exp", lines: +6 -3 mdoc_validate.c (1.53), "Exp", lines: +3 -1 Fixed -Thtml printing of -ohang lists (-mdoc). Fixed validation of -ohang lists as having no widths. 2009-10-31 06:50 kristaps Changed: index.sgml (1.38), "Exp", lines: +8 -1 mdoc.7 (1.71), "Exp", lines: +2 -2 mdoc_html.c (1.45), "Exp", lines: +2 -2 mdoc_term.c (1.100), "Exp", lines: +2 -2 Patch on DragonFly BSD syntax (thanks Sascha Wildner). Noted inclusion into DragonFly BSD (thanks Sascha Wildner). 2009-10-31 06:38 tag VERSION_1_9_12 2009-10-31 06:38 kristaps Changed: Makefile (1.240), "Exp", lines: +1 -1 Fixed in make dist (in version 1.9.12). 2009-10-31 06:23 kristaps Changed: Makefile (1.239), "Exp", lines: +2 -2 Version: 1.9.12. 2009-10-31 06:17 kristaps Changed: main.c (1.54), "Exp", lines: +10 -4 Removed non-portable __progname (thanks Joerg Sonnenberger). 2009-10-31 06:10 kristaps Changed: chars.c (1.11), "Exp", lines: +3 -3 html.c (1.75), "Exp", lines: +3 -3 main.c (1.53), "Exp", lines: +14 -16 man_action.c (1.23), "Exp", lines: +1 -3 mandoc.c (1.6), "Exp", lines: +5 -5 mdoc_action.c (1.48), "Exp", lines: +1 -3 mdoc_html.c (1.44), "Exp", lines: +2 -2 mdoc_validate.c (1.52), "Exp", lines: +1 -2 term.c (1.120), "Exp", lines: +3 -3 Using perror() instead of fprintf for failure from library functions. 2009-10-30 18:53 kristaps Changed: html.c (1.74), "Exp", lines: +1 -2 man_html.c (1.17), "Exp", lines: +1 -2 man_term.c (1.47), "Exp", lines: +1 -2 mdoc_html.c (1.43), "Exp", lines: +5 -4 mdoc_term.c (1.99), "Exp", lines: +1 -2 term.c (1.119), "Exp", lines: +5 -4 tree.c (1.18), "Exp", lines: +1 -2 More lint fixes. Removed err.h from inclusions (less main.c--still in progress). 2009-10-30 18:50 kristaps Changed: html.c (1.73), "Exp", lines: +2 -2 mdoc_action.c (1.47), "Exp", lines: +2 -1 term.c (1.118), "Exp", lines: +5 -3 Lint fixes. Made realloc puke with fprintf. 2009-10-30 18:43 kristaps Changed: chars.c (1.10), "Exp", lines: +12 -7 html.c (1.72), "Exp", lines: +12 -10 term.c (1.117), "Exp", lines: +6 -3 Continued safe handling of allocations. 2009-10-30 05:58 kristaps Changed: libman.h (1.23), "Exp", lines: +1 -2 libmandoc.h (1.3), "Exp", lines: +1 -2 libmdoc.h (1.30), "Exp", lines: +1 -2 main.c (1.52), "Exp", lines: +5 -15 man.c (1.45), "Exp", lines: +14 -39 man.h (1.23), "Exp", lines: +2 -2 man_action.c (1.22), "Exp", lines: +5 -8 mandoc.c (1.5), "Exp", lines: +1 -14 mdoc.c (1.113), "Exp", lines: +15 -45 mdoc.h (1.73), "Exp", lines: +2 -2 mdoc_argv.c (1.32), "Exp", lines: +2 -2 libmdoc and libman now using non-recoverable allocations (simpler code). 2009-10-30 04:57 kristaps Changed: html.c (1.71), "Exp", lines: +4 -4 Added newline after block-level closing tags (suggested by Joerg Sonnenberger). 2009-10-29 04:34 kristaps Changed: mdoc_action.c (1.46), "Exp", lines: +173 -152 Clean-ups in mdoc_action (using libmandoc.h functions). 2009-10-28 19:21 kristaps Changed: libmandoc.h (1.2), "Exp", lines: +6 -1 mandoc.c (1.4), "Exp", lines: +74 -1 mdoc_argv.c (1.31), "Exp", lines: +14 -33 Slow movement of internal allocations to fail completely. 2009-10-28 08:08 kristaps Changed: Makefile (1.238), "Exp", lines: +1 -1 index.sgml (1.37), "Exp", lines: +6 -6 Using "--warn" for validate, plus some accessibility fixes. 2009-10-28 08:00 kristaps Changed: Makefile (1.237), "Exp", lines: +4 -1 html.c (1.70), "Exp", lines: +14 -32 html.h (1.17), "Exp", lines: +1 -2 index.sgml (1.36), "Exp", lines: +2 -2 man_html.c (1.16), "Exp", lines: +4 -1 mdoc_html.c (1.42), "Exp", lines: +11 -10 Fixed `sp', `br', `Pp', etc. so as not to have an empty div (-Thtml, -man, -mdoc). Made html_idcat be completely correct (messy standard) (-Thtml). Fixed warnings about -ohang and -item lists (-Thtml, -mdoc). Fixed typo in index.sgml. 2009-10-28 06:54 kristaps Changed: html.c (1.69), "Exp", lines: +7 -9 term.c (1.116), "Exp", lines: +2 -3 Removed superfluous memset (thanks Joerg Sonnenberger). 2009-10-28 05:08 kristaps Changed: html.c (1.68), "Exp", lines: +49 -1 html.h (1.16), "Exp", lines: +4 -1 mdoc_html.c (1.41), "Exp", lines: +16 -14 Fixed un-reset buffer in `.In', -Thtml, -mdoc. Added html_id[cat,cpy] for transforming id's into well-formed attribute strings (no %s, etc.). 2009-10-27 08:49 kristaps Changed: man_term.c (1.46), "Exp", lines: +7 -18 mdoc_term.c (1.98), "Exp", lines: +9 -24 Removed dynamic allocations of header/footer data. 2009-10-27 08:26 kristaps Changed: main.c (1.51), "Exp", lines: +4 -4 man.c (1.44), "Exp", lines: +2 -2 man_action.c (1.21), "Exp", lines: +2 -2 mdoc.c (1.112), "Exp", lines: +2 -2 mdoc_strings.c (1.12), "Exp", lines: +2 -2 mdoc_term.c (1.97), "Exp", lines: +2 -2 term.c (1.115), "Exp", lines: +9 -3 bzero() -> memset() (noted by Joerg Sonnenberger). 2009-10-27 08:05 kristaps Changed: term.c (1.114), "Exp", lines: +14 -14 Merged Ingo's comments on term_flushln() variable names. Fixed assertion (this needs more consideration) when an overstep line is exactly as long as the rmargin. 2009-10-27 04:50 kristaps Changed: html.c (1.67), "Exp", lines: +2 -1 html.h (1.15), "Exp", lines: +5 -1 man_html.c (1.15), "Exp", lines: +9 -5 mdoc_html.c (1.40), "Exp", lines: +10 -5 Added "summary" tag to tables in order to silence HTML-tidy's complaints. 2009-10-26 17:05 kristaps Changed: arch.c (1.5), "Exp", lines: +2 -1 att.c (1.5), "Exp", lines: +2 -1 lib.c (1.5), "Exp", lines: +2 -1 mdoc_macro.c (1.38), "Exp", lines: +2 -1 msec.c (1.5), "Exp", lines: +2 -1 st.c (1.5), "Exp", lines: +2 -1 term.c (1.113), "Exp", lines: +2 -1 tree.c (1.17), "Exp", lines: +2 -1 vol.c (1.5), "Exp", lines: +2 -1 Added time.h to various files for FreeBSD compilation (thanks Ulrich Sporlein). 2009-10-26 15:44 kristaps Changed: main.c (1.50), "Exp", lines: +7 -3 mandoc.1 (1.45), "Exp", lines: +6 -1 Merged patch to allow -fign-escape (thanks Joerg Sonnenberger). 2009-10-26 10:36 tag VERSION_1_9_11 2009-10-26 10:36 kristaps Changed: Makefile (1.236), "Exp", lines: +1 -1 man.7 (1.41), "Exp", lines: +58 -1 mdoc_action.c (1.45), "Exp", lines: +4 -3 Fix to segfault in ordering Rs blocks (d'oh!). Version: 1.9.11. 2009-10-26 09:06 tag VERSION_1_9_10 2009-10-26 09:06 kristaps Changed: term.c (1.112), "Exp", lines: +3 -2 Lint fix. 2009-10-26 09:00 kristaps Changed: Makefile (1.235), "Exp", lines: +2 -2 Version: 1.9.10. 2009-10-26 08:42 kristaps Changed: main.c (1.49), "Exp", lines: +5 -3 Allowed -O to be invoked multiple times. 2009-10-26 08:18 kristaps Changed: html.c (1.66), "Exp", lines: +13 -17 html.h (1.14), "Exp", lines: +10 -6 main.c (1.48), "Exp", lines: +4 -4 man_html.c (1.14), "Exp", lines: +2 -3 mdoc_html.c (1.39), "Exp", lines: +7 -7 Portability: replaced queue macros in html.c (Joerg Sonnenberger). Fixed "-o" residue. Added "-O" to usage() (-o didn't appear there either). 2009-10-26 07:18 kristaps Changed: term.c (1.111), "Exp", lines: +3 -2 Fixed overstep patch. 2009-10-26 07:11 kristaps Changed: libman.h (1.22), "Exp", lines: +1 -2 man.c (1.43), "Exp", lines: +15 -7 mdoc.c (1.111), "Exp", lines: +1 -2 -man also prints unknown macro (noted by Joerg Sonnenberger). 2009-10-26 04:15 kristaps Changed: Makefile (1.234), "Exp", lines: +1 -1 main.c (1.47), "Exp", lines: +2 -2 mandoc.1 (1.44), "Exp", lines: +7 -7 Changed `-o' to `-O' for clarity. THIS BREAKS UTILITIES DEPENDING ON -o! 2009-10-26 04:09 kristaps Changed: example.style.css (1.14), "Exp", lines: +1 -0 man_term.c (1.45), "Exp", lines: +30 -30 mdoc.7 (1.70), "Exp", lines: +15 -2 mdoc.h (1.72), "Exp", lines: +1 -3 mdoc_action.c (1.44), "Exp", lines: +5 -3 mdoc_html.c (1.38), "Exp", lines: +28 -18 mdoc_strings.c (1.11), "Exp", lines: +2 -1 mdoc_term.c (1.96), "Exp", lines: +40 -39 mdoc_validate.c (1.51), "Exp", lines: +6 -7 Full `%U' support. `Lk' display fixed. Renamed arg2xxxx as a2xxxx for consistency. Renamed print_foot to print_man_foot for consistency. Removed default printing of `~' when `Lk' not provided (not sure where I got that from). 2009-10-24 06:19 kristaps Changed: term.c (1.110), "Exp", lines: +5 -8 Removed need for superfluous `os' value in overstep calculation (thanks Ingo Schwarze). 2009-10-24 05:52 kristaps Changed: mdoc.7 (1.69), "Exp", lines: +6 -1 mdoc.c (1.110), "Exp", lines: +4 -2 mdoc.h (1.71), "Exp", lines: +3 -2 mdoc_action.c (1.43), "Exp", lines: +2 -1 mdoc_argv.c (1.30), "Exp", lines: +2 -1 mdoc_html.c (1.37), "Exp", lines: +4 -1 mdoc_macro.c (1.37), "Exp", lines: +2 -1 mdoc_term.c (1.95), "Exp", lines: +4 -1 mdoc_validate.c (1.50), "Exp", lines: +4 -1 Added `%U' to -mdoc (doesn't render in a nice way yet). 2009-10-24 05:45 kristaps Changed: man.7 (1.40), "Exp", lines: +6 -1 man.c (1.42), "Exp", lines: +2 -2 man.h (1.22), "Exp", lines: +3 -2 man_action.c (1.20), "Exp", lines: +2 -1 man_html.c (1.13), "Exp", lines: +3 -1 man_macro.c (1.29), "Exp", lines: +2 -1 man_term.c (1.44), "Exp", lines: +4 -1 man_validate.c (1.26), "Exp", lines: +2 -1 Added `PD' to -man (doesn't do anything, yet). 2009-10-22 18:59 kristaps Changed: out.c (1.7), "Exp", lines: +5 -1 Linuxisms. 2009-10-22 18:55 kristaps Changed: man_html.c (1.12), "Exp", lines: +3 -7 man_term.c (1.43), "Exp", lines: +3 -7 mdoc_html.c (1.36), "Exp", lines: +4 -8 mdoc_term.c (1.94), "Exp", lines: +4 -10 out.c (1.6), "Exp", lines: +46 -1 out.h (1.6), "Exp", lines: +4 -1 Fixed maddening mismatch between groff and strftime mismatch of day ("%e"). Noted by Ulrich Sporlein. 2009-10-22 18:19 kristaps Changed: term.c (1.109), "Exp", lines: +5 -5 Fixed order of printing backspace-encoding for terms that are both bold and underlined (noted by Joerg Sonnenberger). 2009-10-22 17:54 kristaps Changed: Makefile (1.233), "Exp", lines: +2 -1 mdoc_action.c (1.42), "Exp", lines: +14 -1 Added ability to set OS name at compile-time with -DOSNAME="\"foo\"". 2009-10-22 10:36 kristaps Changed: mdoc.7 (1.68), "Exp", lines: +2 -2 Typo in mdoc.7 fixed (thanks to Joerg Sonnenberger). 2009-10-22 10:35 kristaps Changed: mdoc_validate.c (1.49), "Exp", lines: +3 -1 Fix adding -centred to `Bd' types (thanks to Joerg Sonnenberger). 2009-10-22 10:33 kristaps Changed: mdoc.7 (1.67), "Exp", lines: +2 -2 Groff-compatibility fix (Ds) (noted by Joerg Sonnenberger). 2009-10-22 03:35 kristaps Changed: index.sgml (1.35), "Exp", lines: +3 -3 Noted downstream in NetBSD base. Many thanks to Joerg et al. for their efforts in getting it checked in! 2009-10-21 03:31 kristaps Changed: man_term.c (1.42), "Exp", lines: +2 -2 Fixed strftime stray %d -> %e (pointed out by Ulrich Sporlein). 2009-10-20 18:31 tag VERSION_1_9_9 2009-10-20 18:31 kristaps Changed: Makefile (1.232), "Exp", lines: +1 -1 index.sgml (1.34), "Exp", lines: +9 -9 Temporarily turned off validation (mandoc -Thtml needs URI encoding!). Aesthetic fixes in index.sgml. 2009-10-20 18:20 kristaps Changed: Makefile (1.231), "Exp", lines: +4 -4 Version: 1.9.9. 2009-10-20 18:14 kristaps Changed: index.sgml (1.33), "Exp", lines: +8 -2 Added cvsweb. Whee! 2009-10-20 05:45 kristaps Changed: html.c (1.65), "Exp", lines: +2 -1 mdoc.7 (1.66), "Exp", lines: +451 -22 mdoc_html.c (1.35), "Exp", lines: +8 -6 More updates to mdoc.7. 2009-10-19 15:18 kristaps Changed: mdoc_term.c (1.93), "Exp", lines: +4 -4 term.c (1.108), "Exp", lines: +8 -5 More fixes to scaling-width multipliers (which, just to make my life difficult, differ not only between -mdoc and -man, but between various invocation, e.g., -offset and -width). 2009-10-19 11:02 kristaps Changed: mdoc.7 (1.65), "Exp", lines: +175 -12 mdoc_html.c (1.34), "Exp", lines: +3 -1 Continued work on mdoc.7. Noted buffer overwrite bug in -Thtml -mdoc (will fix later). 2009-10-19 10:18 kristaps Changed: mdoc.7 (1.64), "Exp", lines: +421 -225 mdoc_html.c (1.33), "Exp", lines: +3 -1 Fixed -mdoc -Thtml with -item lists not to default-indent when width isn't specified. Many more cleanups to mdoc.7 (ongoing completion and documentation of all macros). 2009-10-19 09:40 kristaps Changed: mdoc_argv.c (1.29), "Exp", lines: +2 -2 mdoc_validate.c (1.48), "Exp", lines: +1 -3 Fixed `-file' argument to `Bd', which is NOT a type, but instead just an argument. 2009-10-19 07:44 kristaps Changed: man.7 (1.39), "Exp", lines: +108 -103 Made man.7 use lots of Sx/Ss to link between macro definitions and references. 2009-10-19 07:34 kristaps Changed: mdoc.7 (1.63), "Exp", lines: +264 -17 mdoc_validate.c (1.47), "Exp", lines: +3 -3 Beginning of mdoc.7 full-reference in place. 2009-10-18 19:17 kristaps Changed: man_term.c (1.41), "Exp", lines: +4 -4 Lint fixes. 2009-10-18 19:03 kristaps Changed: man_html.c (1.11), "Exp", lines: +5 -7 man_term.c (1.40), "Exp", lines: +11 -7 mdoc_html.c (1.32), "Exp", lines: +6 -6 mdoc_term.c (1.92), "Exp", lines: +14 -17 term.c (1.107), "Exp", lines: +24 -32 term.h (1.49), "Exp", lines: +3 -3 Made sure devices and formats recognise that -man and -mdoc have different syntax for scaling widths: -mdoc assumes no unit means that the value is a string literal while -man instead uses the default vertical/horizontal scale. 2009-10-18 19:02 kristaps Changed: out.c (1.5), "Exp", lines: +13 -20 out.h (1.5), "Exp", lines: +3 -2 Had out.h roff-scale converters accept default unit scale (because -mdoc and -man differ). 2009-10-18 19:01 kristaps Changed: mdoc.7 (1.62), "Exp", lines: +2 -2 Fix in syntax of scaling widths in mdoc.7. 2009-10-18 19:00 kristaps Changed: man.7 (1.38), "Exp", lines: +72 -29 Properly documented scaling widths in man.7. 2009-10-18 13:58 kristaps Changed: Makefile (1.230), "Exp", lines: +1 -1 mdoc.7 (1.61), "Exp", lines: +62 -1 Fixed typo in Makefile. Added initial scaling-units section in mdoc.7. 2009-10-18 13:34 kristaps Changed: man_term.c (1.39), "Exp", lines: +51 -117 mdoc_term.c (1.91), "Exp", lines: +47 -54 term.c (1.106), "Exp", lines: +84 -1 term.h (1.48), "Exp", lines: +4 -1 Arbitrary horizontal and vertical scaling widths now handled by -mdoc -Tascii. Terminal scaling backend pushed into term.c. 2009-10-18 13:26 kristaps Changed: mdoc_validate.c (1.46), "Exp", lines: +4 -34 Removed restrictions on `sp' (maybe a warning, someday, but for now be simple). 2009-10-18 11:52 kristaps Changed: man_term.c (1.38), "Exp", lines: +45 -2 Fitted -man -Tascii with scaling units (.5i, etc.). 2009-10-18 11:36 kristaps Changed: man_validate.c (1.25), "Exp", lines: +4 -35 Removed number-check for `sp' in -Tman, as nroff accepts non-numerics as a single vspace. 2009-10-18 11:14 kristaps Changed: man_term.c (1.37), "Exp", lines: +46 -27 mdoc_html.c (1.31), "Exp", lines: +5 -1 Added horizontal scaling units to -Tman -Tascii. 2009-10-18 11:13 kristaps Changed: Makefile (1.229), "Exp", lines: +1 -1 index.sgml (1.32), "Exp", lines: +2 -2 Re-added HTML changelog. 2009-10-17 04:44 kristaps Changed: Makefile (1.228), "Exp", lines: +2 -14 Makefile uses multiple deps for some rules (shorter file). 2009-10-17 04:37 kristaps Changed: mandoc_char.7 (1.27), "Exp", lines: +16 -16 Fixed mandoc_char lists to have -column before other arguments. 2009-10-15 02:56 kristaps Changed: libmdoc.h (1.29), "Exp", lines: +2 -1 mdoc.c (1.109), "Exp", lines: +2 -1 mdoc_validate.c (1.45), "Exp", lines: +15 -7 Added warning about specifying list arguments before type (suggested by Joerg Sonnenberg). 2009-10-15 02:42 kristaps Changed: mandoc.1 (1.43), "Exp", lines: +3 -3 mandoc_char.7 (1.26), "Exp", lines: +37 -5 Fix in mandoc.1 and mandoc_char.7 syntax (submitted Joerg Sonnenberger). Added note on character format per output type. 2009-10-15 01:33 kristaps Changed: mdoc.c (1.108), "Exp", lines: +2 -2 mdoc.h (1.70), "Exp", lines: +3 -2 mdoc_argv.c (1.28), "Exp", lines: +3 -1 mdoc_html.c (1.30), "Exp", lines: +5 -1 mdoc_term.c (1.90), "Exp", lines: +3 -1 Added support for `Bd -centered', which appears in newer groffs (not yet implemented in centre-capable front-ends, i.e., -Thtml). 2009-10-13 10:57 kristaps Added: main.h (1.1) Changed: Makefile (1.227), "Exp", lines: +1 -1 html.c (1.64), "Exp", lines: +2 -1 main.c (1.46), "Exp", lines: +2 -12 man_html.c (1.10), "Exp", lines: +2 -1 man_term.c (1.36), "Exp", lines: +28 -8 mdoc_html.c (1.29), "Exp", lines: +2 -1 mdoc_term.c (1.89), "Exp", lines: +17 -2 term.c (1.105), "Exp", lines: +2 -32 tree.c (1.16), "Exp", lines: +2 -1 Moved output definitions into main.h. Pushed terminal_{mdoc,man} into {mdoc,man}_term.c. 2009-10-13 10:21 kristaps Changed: Makefile (1.226), "Exp", lines: +1 -1 html.c (1.63), "Exp", lines: +9 -5 html.h (1.13), "Exp", lines: +2 -2 main.c (1.45), "Exp", lines: +8 -5 Clean up consts (noted by Joerg Sonnenberger and Ulrich Sporlein). 2009-10-10 18:43 tag VERSION_1_9_8 2009-10-10 18:43 kristaps Changed: Makefile (1.225), "Exp", lines: +2 -2 Version: 1.9.8. 2009-10-10 11:05 kristaps Changed: mandoc.1 (1.42), "Exp", lines: +21 -1 mdoc_term.c (1.88), "Exp", lines: +1 -36 term.c (1.104), "Exp", lines: +8 -2 Fix hang lists in -Tascii -Tmdoc, which seem to have been broken since ~1.8.x. Noted similarity of HP/TP and -hang/-tag in mandoc.1. 2009-10-10 10:05 kristaps Changed: mdoc_html.c (1.28), "Exp", lines: +2 -1 `Cd' in -Thtml -mdoc correctly breaks lines. 2009-10-09 15:10 tag VERSION_1_9_7 2009-10-09 15:10 kristaps Changed: Makefile (1.224), "Exp", lines: +2 -2 Version up. 2009-10-09 07:10 kristaps Changed: man_html.c (1.9), "Exp", lines: +34 -2 RS tags implemented for -Tman -Thtml. 2009-10-09 06:54 kristaps Changed: html.c (1.62), "Exp", lines: +7 -3 out.c (1.4), "Exp", lines: +30 -6 out.h (1.4), "Exp", lines: +7 -4 Scaling factor made floating point (as per groff.7) and, e.g., gnu/usr.bin/cvs/man/cvs.1. 2009-10-08 23:00 kristaps Changed: example.style.css (1.13), "Exp", lines: +3 -0 man_html.c (1.8), "Exp", lines: +129 -15 man_term.c (1.35), "Exp", lines: +29 -58 mdoc_html.c (1.27), "Exp", lines: +11 -11 Consolidated some -man -Tascii functions. Added many -man -Thtml functions (almost complete). 2009-10-07 15:27 kristaps Changed: html.c (1.61), "Exp", lines: +6 -5 Fixed side-effect of linting (oops). 2009-10-07 15:06 kristaps Changed: html.c (1.60), "Exp", lines: +5 -3 mdoc_html.c (1.26), "Exp", lines: +3 -2 Lint-ified. 2009-10-07 15:03 kristaps Changed: man.h (1.21), "Exp", lines: +1 -2 Fixed superfluous function declaration (spotted by Ulrich Sporlein). 2009-10-07 14:52 kristaps Changed: mdoc_argv.c (1.27), "Exp", lines: +31 -31 Fix operator overloading (submitted by Ulrich Sporlein, uqs@spoerlein.net). 2009-10-07 14:50 kristaps Changed: mdoc_html.c (1.25), "Exp", lines: +18 -16 Lint-ified. 2009-10-07 14:39 kristaps Changed: html.c (1.59), "Exp", lines: +10 -3 mdoc_html.c (1.24), "Exp", lines: +45 -15 style.css (1.12), "Exp", lines: +4 -4 Made default string units (-Thtml -mdoc) to use `m' and not `n' scaling (better more than less). Fixed -column widths for -Thtml -mdoc. Fixed left-hand margin padding for -Thtml -mdoc. 2009-10-07 14:37 kristaps Changed: mandoc_char.7 (1.25), "Exp", lines: +19 -19 Set field widths n -> m. 2009-10-07 12:35 kristaps Changed: Makefile (1.223), "Exp", lines: +9 -6 html.c (1.58), "Exp", lines: +55 -3 html.h (1.12), "Exp", lines: +19 -2 man_html.c (1.7), "Exp", lines: +137 -144 mdoc_html.c (1.23), "Exp", lines: +391 -450 out.c (1.3), "Exp", lines: +69 -80 out.h (1.3), "Exp", lines: +32 -6 Additions to -Tman -Thtml: all structural components tested & in place. Fitted both -Thtml with handling of arbitrary vertical and horizontal scaling units (see groff(7)). Undocumented until fitted into -Tascii (next release). 2009-10-07 12:20 kristaps Changed: mdoc_term.c (1.87), "Exp", lines: +4 -1 `Bd' literals in -Tascii -mdoc were losing the first line's newline. Fixed. 2009-10-07 12:19 kristaps Changed: man_term.c (1.34), "Exp", lines: +3 -8 Header buffers in -man -Tascii are static. 2009-10-04 15:24 kristaps Changed: man_html.c (1.6), "Exp", lines: +78 -21 man_term.c (1.33), "Exp", lines: +1 -2 mdoc_html.c (1.22), "Exp", lines: +5 -1 Structural components of -man -Thtml in place (note that HP is the same as IP, as HTML doesn't "do" this construction without fixed page widths). 2009-10-04 10:24 kristaps Changed: man_html.c (1.5), "Exp", lines: +93 -6 Initial IP implementation in -Thtml -man. 2009-10-04 09:35 kristaps Changed: man_html.c (1.4), "Exp", lines: +303 -10 SS, SH, PP, P, LP, br, sp tags in -man -Thtml. 2009-10-04 09:02 kristaps Changed: example.style.css (1.12), "Exp", lines: +2 -4 html.c (1.57), "Exp", lines: +2 -1 html.h (1.11), "Exp", lines: +2 -1 Example style-sheet reflecting modified section/subsection style tags. Added ATTR_ID and so forth to attrs. 2009-10-04 09:00 kristaps Changed: mdoc_html.c (1.21), "Exp", lines: +44 -41 Section/subsection anchor names (<a name=xxx>) replaced with (div id=xxx) (noted by joerg@netbsd.org) Removed superfluous span tags within section/subsection divs (noted by joerg@netbsd.org). 2009-10-03 19:57 kristaps Changed: man_html.c (1.3), "Exp", lines: +97 -2 man_term.c (1.32), "Exp", lines: +3 -2 mdoc_html.c (1.20), "Exp", lines: +7 -12 Added initial -man framework for -Thtml. 2009-10-03 19:02 kristaps Changed: mdoc_html.c (1.19), "Exp", lines: +19 -14 mdoc_term.c (1.86), "Exp", lines: +180 -189 `Fn' does not print empty ftype span. -Tascii `node' and `meta' args in DECL_ARGS renamed to `n' and `m' to be more coherent with -Thtml. 2009-10-03 16:37 kristaps Changed: html.c (1.56), "Exp", lines: +4 -6 Lintified (noops). 2009-10-03 16:36 kristaps Changed: Makefile (1.222), "Exp", lines: +9 -6 html.c (1.55), "Exp", lines: +96 -3 html.h (1.10), "Exp", lines: +8 -1 man.3 (1.10), "Exp", lines: +2 -2 mandoc.1 (1.41), "Exp", lines: +6 -6 mdoc.3 (1.35), "Exp", lines: +2 -2 mdoc_html.c (1.18), "Exp", lines: +3 -108 Fixed mandoc.1 examples (new -Thtml options). Fixed manuals to use `In', not `Fd'. Moved buf* functions into html.c. 2009-10-03 15:26 kristaps Changed: example.style.css (1.11), "Exp", lines: +1 -0 html.c (1.54), "Exp", lines: +7 -4 html.h (1.9), "Exp", lines: +3 -1 mandoc.1 (1.40), "Exp", lines: +19 -3 mdoc_html.c (1.17), "Exp", lines: +63 -22 Added the -oincludes=FMT option. The `In' handler now decorates with a hyperlink. If no -oman= or -oincludes= is stipulated, no link is printed (but the text is still style-decorated). 2009-10-03 15:08 kristaps Changed: html.c (1.53), "Exp", lines: +9 -10 html.h (1.8), "Exp", lines: +4 -1 man_html.c (1.2), "Exp", lines: +2 -1 mandoc.1 (1.39), "Exp", lines: +19 -8 mdoc_html.c (1.16), "Exp", lines: +142 -68 Element tag buffer is now part of struct html. buffmt() can be called in sequence. Noted BUFSIZ-sized buffer in CAVEATS (attribute length for link formats). Added -oman=FMT -Thtml option for `Xr' manual links. Removed -obase=URI -Thtml option (obsolete). 2009-09-28 22:09 kristaps Changed: mdoc.7 (1.60), "Exp", lines: +3 -3 Compat fix in mdoc.7 (joerg@netbsd.org). 2009-09-27 17:11 kristaps Changed: st.in (1.11), "Exp", lines: +2 -2 Fix typo in st.in (Alan Bueno, alan.bsd@gmail.com) 2009-09-26 18:31 kristaps Changed: mdoc_html.c (1.15), "Exp", lines: +25 -18 SYNOPSIS functions in -Thtml text-indent and group paramters (as nroff does). 2009-09-26 18:02 kristaps Changed: mdoc_html.c (1.14), "Exp", lines: +50 -21 Fixed -Thtml handling of -compact lists. Fixed -Thtml handling of `Bd' prior vspace and embedded macros. 2009-09-26 17:35 kristaps Changed: mdoc_html.c (1.13), "Exp", lines: +2 -2 mdoc_term.c (1.85), "Exp", lines: +38 -60 Fixed `Bd' prior vertical space (was ignoring -compact). Fixed effect of embedding macros in `Bd' (was printing all on each line instead of grouping). 2009-09-25 14:13 tag VERSION_1_9_6 2009-09-25 14:13 kristaps Changed: style.css (1.11), "Exp", lines: +61 -19 Changed stylesheet used for local documents. 2009-09-25 14:07 kristaps Changed: Makefile (1.221), "Exp", lines: +5 -2 index.sgml (1.31), "Exp", lines: +2 -2 Temporarily disabled ChangeLog.html (server's hosed and doesn't have xsltproc). 2009-09-25 13:33 kristaps Changed: Makefile (1.220), "Exp", lines: +2 -2 Version: 1.9.6. 2009-09-25 13:03 kristaps Changed: mdoc_action.c (1.41), "Exp", lines: +2 -1 Lint check (noop). 2009-09-25 13:00 kristaps Changed: mdoc_html.c (1.12), "Exp", lines: +2 -2 Lint check (noop). 2009-09-25 12:43 kristaps Changed: mdoc_html.c (1.11), "Exp", lines: +4 -4 Changed -Thtml document header to be 10/80/10 with no wrapping of the middle. 2009-09-24 23:54 kristaps Changed: example.style.css (1.10), "Exp", lines: +13 -0 mdoc_html.c (1.10), "Exp", lines: +94 -14 mdoc_term.c (1.84), "Exp", lines: +23 -4 -Tascii correctly prints `%T' in `Rs' with quotes. -Thtml behaves like -Tascii for printing. Printing of `Rs' elements cross-checked with new groff. 2009-09-24 15:08 kristaps Changed: mdoc_action.c (1.40), "Exp", lines: +2 -1 mdoc_validate.c (1.44), "Exp", lines: +2 -2 Fixed segfault in `Rs' empty block. 2009-09-24 15:05 kristaps Changed: mdoc_html.c (1.9), "Exp", lines: +3 -3 Lint-fixes (noop). 2009-09-24 15:01 kristaps Changed: libmdoc.h (1.28), "Exp", lines: +2 -1 mdoc.c (1.107), "Exp", lines: +3 -2 mdoc_action.c (1.39), "Exp", lines: +88 -7 mdoc_term.c (1.83), "Exp", lines: +4 -3 mdoc_validate.c (1.43), "Exp", lines: +49 -5 Added EBADCHILD error (bad child of parent context). `Rs' post-checks that all children are proper bibliographic elements. `Rs' correctly re-orders its children as per groff's output (including %C). 2009-09-24 13:18 kristaps Changed: example.style.css (1.9), "Exp", lines: +1 -0 mdoc_html.c (1.8), "Exp", lines: +9 -15 Proper handling of `Rs' blocks in -Thtml. 2009-09-24 13:03 kristaps Changed: mdoc_action.c (1.38), "Exp", lines: +49 -12 mdoc_argv.c (1.26), "Exp", lines: +7 -3 -offset string can now be blank (supplied with 6n as stipulated by mdoc.samples). 2009-09-24 11:55 kristaps Changed: chars.in (1.18), "Exp", lines: +2 -2 example.style.css (1.8), "Exp", lines: +9 -8 mdoc_html.c (1.7), "Exp", lines: +29 -5 mdoc_term.c (1.82), "Exp", lines: +1 -5 Fix in -Tascii where `Lb' causes line-break in any section (should only happen in LIBRARY). `Fn' first parameter is broken apart into ftype and fname in -Thtml (for correct style application). Fixed \0 special character. 2009-09-24 11:05 kristaps Changed: example.style.css (1.7), "Exp", lines: +7 -6 mdoc_html.c (1.6), "Exp", lines: +78 -7 mdoc_term.c (1.81), "Exp", lines: +6 -5 Sync'd example style-sheet to be more like OpenBSD's default (KISS). -Thtml and -Tascii now have equivalent functionality. 2009-09-24 09:50 kristaps Changed: example.style.css (1.6), "Exp", lines: +5 -1 html.c (1.52), "Exp", lines: +3 -2 html.h (1.7), "Exp", lines: +2 -1 mdoc_html.c (1.5), "Exp", lines: +139 -37 mdoc_term.c (1.80), "Exp", lines: +4 -2 Added Bf, Pf, etc. to -Thtml. Fixed Rs in -Tascii to behave properly when not in "SEE ALSO" section. 2009-09-24 09:20 kristaps Changed: Makefile (1.219), "Exp", lines: +8 -6 example.style.css (1.5), "Exp", lines: +4 -0 mandoc_char.7 (1.24), "Exp", lines: +386 -363 mdoc_html.c (1.4), "Exp", lines: +221 -15 mdoc_term.c (1.79), "Exp", lines: +2 -1 style.css (1.10), "Exp", lines: +5 -0 Many more macros added to -Thtml. Minor space issues fixed in -Tascii. 2009-09-23 11:53 kristaps Changed: man.c (1.41), "Exp", lines: +3 -1 man_hash.c (1.15), "Exp", lines: +3 -1 mdoc.c (1.106), "Exp", lines: +3 -1 FreeBSD compile fixes (uqs@spoerlein.net). 2009-09-23 11:02 kristaps Changed: Makefile (1.218), "Exp", lines: +6 -4 chars.c (1.9), "Exp", lines: +2 -2 chars.in (1.17), "Exp", lines: +89 -63 index.sgml (1.30), "Exp", lines: +8 -8 mandoc_char.7 (1.23), "Exp", lines: +81 -55 term.c (1.103), "Exp", lines: +4 -1 All special characters sync'd with groff, both -Thtml and -Tascii. Re-added text links to index.sgml (just for show). 2009-09-23 09:10 kristaps Changed: chars.in (1.16), "Exp", lines: +11 -9 mandoc_char.7 (1.22), "Exp", lines: +7 -7 Sync'd currency symbols with newest groff. 2009-09-23 09:06 kristaps Changed: chars.c (1.8), "Exp", lines: +2 -2 chars.in (1.15), "Exp", lines: +65 -63 mandoc_char.7 (1.21), "Exp", lines: +20 -11 Sync'd special letters and ligatures with newest groff. 2009-09-23 01:04 kristaps Changed: chars.c (1.7), "Exp", lines: +2 -2 chars.in (1.14), "Exp", lines: +49 -19 mandoc_char.7 (1.20), "Exp", lines: +41 -11 Arrows & brackets sync'd with newest groff. 2009-09-23 00:03 kristaps Changed: chars.c (1.6), "Exp", lines: +2 -2 chars.in (1.13), "Exp", lines: +14 -9 mandoc_char.7 (1.19), "Exp", lines: +19 -12 Quotes sync'd with newest groff. 2009-09-22 23:34 kristaps Changed: chars.c (1.5), "Exp", lines: +2 -2 chars.in (1.12), "Exp", lines: +17 -16 mandoc_char.7 (1.18), "Exp", lines: +23 -16 Accent marks sync'd with current groff. 2009-09-22 23:15 kristaps Changed: chars.c (1.4), "Exp", lines: +2 -2 chars.in (1.11), "Exp", lines: +172 -121 mandoc_char.7 (1.17), "Exp", lines: +109 -56 Many more UTF-8 symbols in place. Started partitioning chars.in into sections corresponding to mandoc_char.7. Correctly ordered Greek letters. Sync'd all mathematical and logical symbols with current groff. 2009-09-22 16:10 kristaps Changed: chars.in (1.10), "Exp", lines: +14 -14 mandoc_char.7 (1.16), "Exp", lines: +263 -559 mdoc_html.c (1.3), "Exp", lines: +2 -2 mdoc_term.c (1.78), "Exp", lines: +3 -3 Fix segfault in -Thtml column lists. Added some more UTF-8 chars. mandoc_char.7 now has all special characters rendered. Fixed column layout in -Thtml. 2009-09-22 10:11 kristaps Changed: chars.in (1.9), "Exp", lines: +16 -16 mandoc_char.7 (1.15), "Exp", lines: +53 -1 Fixed some characters. Initial push of mandoc_char showing the current character rendering (useful for testing, too). 2009-09-22 10:07 kristaps Changed: chars.c (1.3), "Exp", lines: +2 -2 chars.in (1.8), "Exp", lines: +46 -45 mandoc_char.7 (1.14), "Exp", lines: +3 -3 Many more characters for HMTL (mostly Greek). 2009-09-21 23:12 kristaps Changed: chars.in (1.7), "Exp", lines: +3 -3 example.style.css (1.4), "Exp", lines: +4 -2 mdoc_html.c (1.2), "Exp", lines: +96 -11 style.css (1.9), "Exp", lines: +2 -2 A few more macros in -Thtml. 2009-09-21 16:05 tag VERSION_1_9_5 2009-09-21 16:05 kristaps Changed: Makefile (1.217), "Exp", lines: +4 -2 Added chars.h to HEADS. 2009-09-21 16:03 kristaps Changed: Makefile (1.216), "Exp", lines: +3 -2 Added html.h to headers that should be distributed. 2009-09-21 15:12 kristaps Changed: ChangeLog.xsl (1.4), "Exp", lines: +1 -1 Wrong stylesheet in xsl. 2009-09-21 15:01 kristaps Changed: Makefile (1.215), "Exp", lines: +2 -2 Version: 1.9.5. 2009-09-21 14:56 kristaps Added: man_html.c (1.1) mdoc_html.c (1.1) Changed: Makefile (1.214), "Exp", lines: +14 -7 html.c (1.51), "Exp", lines: +8 -1684 html.h (1.6), "Exp", lines: +86 -70 Split html.c into html.h, mdoc_html.c, man_html.c. 2009-09-21 14:40 kristaps Changed: chars.in (1.6), "Exp", lines: +21 -21 html.c (1.50), "Exp", lines: +14 -41 Removed man handling in -Thtml (for now). Added some UTF chars to chars.in. 2009-09-21 14:08 kristaps Changed: html.c (1.49), "Exp", lines: +10 -4 mdoc_term.c (1.77), "Exp", lines: +2 -2 Fix height of hard-breaks in -Thtml. 2009-09-21 14:07 kristaps Changed: html.c (1.48), "Exp", lines: +29 -20 mdoc_term.c (1.76), "Exp", lines: +14 -30 Consolidation of Pp/sp/br/Lp stuff. 2009-09-21 13:47 kristaps Changed: html.c (1.47), "Exp", lines: +2 -2 Fix in outopts processing. 2009-09-21 13:44 kristaps Changed: Makefile (1.213), "Exp", lines: +5 -7 example.style.css (1.3), "Exp", lines: +0 -0 html.c (1.46), "Exp", lines: +17 -10 index.sgml (1.29), "Exp", lines: +9 -9 mandoc.1 (1.38), "Exp", lines: +7 -1 style.css (1.8), "Exp", lines: +20 -39 Fixed body/divbody structure of html pages. Added example style.css (example.style.css). Enabled using -Thtml to generate manuals in Makefile. Stopped making text manuals for webpage. 2009-09-21 13:43 kristaps Changed: html.c (1.45), "Exp", lines: +2 -1 getsubopt() is in unistd.h, not stdlib.h (error in xBSD manuals). 2009-09-21 13:42 kristaps Changed: html.c (1.44), "Exp", lines: +3 -5 Lint pass (OpenBSD-alpha). Noops. 2009-09-21 13:06 kristaps Deleted: example.style.css (1.2) out.c (1.2) out.h (1.2) Added: index.css (1.1) Changed: Makefile (1.212), "Exp", lines: +18 -12 html.c (1.43), "Exp", lines: +121 -15 index.sgml (1.28), "Exp", lines: +2 -2 main.c (1.44), "Exp", lines: +8 -12 mandoc.1 (1.37), "Exp", lines: +33 -16 style.css (1.7), "Exp", lines: +35 -39 Removed new-born out.{h,c} (not a good idea). Removed if 0 for HTML-mode output (why not). Added option -oxxxx for passing options to output devices. 2009-09-21 09:32 kristaps Added: example.style.css (1.1) Changed: html.c (1.42), "Exp", lines: +2 -2 Added example stylesheet. 2009-09-21 00:39 kristaps Added: out.c (1.1) out.h (1.1) Changed: Makefile (1.211), "Exp", lines: +8 -5 html.c (1.41), "Exp", lines: +398 -236 Tentative addition of front-end utility functions (out.h) (not sure if it's necessary). More -Thtml installments. 2009-09-20 19:44 kristaps Changed: html.c (1.40), "Exp", lines: +42 -58 Using inline-blocks for header and footer (works much better). 2009-09-20 19:25 kristaps Changed: chars.in (1.5), "Exp", lines: +11 -11 html.c (1.39), "Exp", lines: +251 -19 mdoc_term.c (1.75), "Exp", lines: +2 -1 Headers and footers in -Thtml. Various minor additions. 2009-09-20 17:48 kristaps Changed: html.c (1.38), "Exp", lines: +26 -4 mdoc_term.c (1.74), "Exp", lines: +2 -2 Bl -column in place for -Thtml. 2009-09-20 17:24 kristaps Changed: chars.in (1.4), "Exp", lines: +4 -4 html.c (1.37), "Exp", lines: +202 -182 mdoc_macro.c (1.36), "Exp", lines: +2 -1 mdoc_term.c (1.73), "Exp", lines: +2 -1 Some extra html tags and near-complete Bl: -tag is hopeless (synonym for -hang, now) and -column is still pending. 2009-09-20 13:43 kristaps Changed: html.c (1.36), "Exp", lines: +4 -1 term.c (1.102), "Exp", lines: +2 -2 Fixed memory leak on close. 2009-09-20 11:05 kristaps Changed: html.c (1.35), "Exp", lines: +166 -102 mdoc_term.c (1.72), "Exp", lines: +3 -2 Considerable, wide-ranging improvements to the -Thtml output mode (most especially proper tagging and using `em' instead of `px'). 2009-09-17 23:35 kristaps Changed: chars.in (1.3), "Exp", lines: +6 -6 html.c (1.34), "Exp", lines: +439 -91 Consider html fixes, most importantly -tag and -hang (breaks in IE6, apparently). 2009-09-17 13:17 kristaps Changed: html.c (1.33), "Exp", lines: +296 -14 mdoc_term.c (1.71), "Exp", lines: +37 -1 Hang lists in html (the hard one first). 2009-09-17 08:21 kristaps Changed: chars.c (1.2), "Exp", lines: +32 -29 chars.in (1.2), "Exp", lines: +267 -267 html.c (1.32), "Exp", lines: +152 -20 More html. Initial html encodings in chars.in. 2009-09-17 07:41 kristaps Deleted: ascii.c (1.10) ascii.in (1.18) Added: chars.c (1.1) chars.h (1.1) chars.in (1.1) Changed: Makefile (1.210), "Exp", lines: +6 -6 html.c (1.31), "Exp", lines: +30 -4 man_hash.c (1.14), "Exp", lines: +5 -4 mdoc_hash.c (1.11), "Exp", lines: +5 -4 term.c (1.101), "Exp", lines: +7 -6 term.h (1.47), "Exp", lines: +1 -6 ascii_xxx -> chars_xxx (intended to hold more than just ascii encoding). More html work. 2009-09-16 22:17 kristaps Changed: Makefile (1.209), "Exp", lines: +6 -3 html.c (1.30), "Exp", lines: +299 -150 main.c (1.43), "Exp", lines: +22 -1 More updates to html.c. Secretly enabled -Thtml in main.c (obviously not yet documented). 2009-09-16 20:49 kristaps Changed: man_hash.c (1.13), "Exp", lines: +3 -3 mdoc_action.c (1.37), "Exp", lines: +2 -2 mdoc_hash.c (1.10), "Exp", lines: +3 -3 mdoc_macro.c (1.35), "Exp", lines: +14 -14 Lintifications. 2009-09-16 15:08 kristaps Changed: term.c (1.100), "Exp", lines: +41 -65 Put closedelim and opendelim right in term_word() (unnecessary extra function). 2009-09-16 14:40 kristaps Changed: Makefile (1.208), "Exp", lines: +1 -1 libman.h (1.21), "Exp", lines: +3 -5 libmdoc.h (1.27), "Exp", lines: +3 -5 man.c (1.40), "Exp", lines: +4 -10 man_hash.c (1.12), "Exp", lines: +10 -31 mdoc.c (1.105), "Exp", lines: +5 -8 mdoc_action.c (1.36), "Exp", lines: +2 -2 mdoc_hash.c (1.9), "Exp", lines: +34 -113 mdoc_macro.c (1.34), "Exp", lines: +2 -2 Lookup hashes are now static tables, ordered first-level by second character, then randomly along a chain. Improves performance by a small fraction and considerably cleans up hash sources. 2009-09-16 09:41 kristaps Changed: html.c (1.29), "Exp", lines: +467 -914 main.c (1.42), "Exp", lines: +9 -11 man.3 (1.9), "Exp", lines: +2 -2 man_term.c (1.31), "Exp", lines: +13 -20 mdoc.3 (1.34), "Exp", lines: +2 -2 mdoc_term.c (1.70), "Exp", lines: +45 -52 term.c (1.99), "Exp", lines: +7 -7 term.h (1.46), "Exp", lines: +2 -4 tree.c (1.15), "Exp", lines: +3 -5 Made tree/term/out() functions return void. Put err() functions back into front-ends (no use making it needlessly complex). 2009-09-15 08:16 kristaps Changed: Makefile (1.207), "Exp", lines: +3 -0 man_term.c (1.30), "Exp", lines: +49 -35 mandoc.1 (1.36), "Exp", lines: +2 -2 mdoc_term.c (1.69), "Exp", lines: +64 -263 term.c (1.98), "Exp", lines: +9 -9 term.h (1.45), "Exp", lines: +3 -4 Removed TERMP_BOLD, TERMP_UNDER, TERMP_STYLE in favour of recursive-friendly increments. Cleaned up confusing behaviour of p->flags. 2009-09-05 10:37 tag VERSION_1_9_2 2009-09-05 10:37 kristaps Changed: Makefile (1.206), "Exp", lines: +2 -2 man.7 (1.37), "Exp", lines: +3 -3 Version: 1.9.2. Fixed man.7 syntax error (oops). 2009-09-05 10:30 kristaps Changed: mandoc.1 (1.35), "Exp", lines: +2 -2 Typo fix (jmc@openbsd.org). 2009-08-22 09:10 kristaps Changed: man.7 (1.36), "Exp", lines: +9 -6 man.c (1.39), "Exp", lines: +2 -2 man.h (1.20), "Exp", lines: +3 -2 man_action.c (1.19), "Exp", lines: +2 -1 man_macro.c (1.28), "Exp", lines: +2 -1 man_term.c (1.29), "Exp", lines: +13 -2 man_validate.c (1.24), "Exp", lines: +2 -1 mandoc.1 (1.34), "Exp", lines: +3 -5 Added `UC' libman macro (has no effect). Corrected `UC' and `DT' not to print their arguments. Noted that `UC' and `DT' shouldn't be used. 2009-08-22 08:56 kristaps Changed: man.c (1.38), "Exp", lines: +7 -1 mdoc.c (1.104), "Exp", lines: +7 -1 Added check for graphable characters in initial-line parse for libman and libmdoc (joerg@netbsd.org). 2009-08-21 13:45 tag VERSION_1_9_1 2009-08-21 13:45 kristaps Changed: man.c (1.37), "Exp", lines: +8 -4 Fix of MAN_NEXT when removing next-line dupes. 2009-08-21 13:18 kristaps Changed: Makefile (1.205), "Exp", lines: +2 -2 man.c (1.36), "Exp", lines: +1 -3 Removed superfluous XXX. Version: 1.9.1. 2009-08-21 13:16 kristaps Changed: man_validate.c (1.23), "Exp", lines: +14 -2 `RS' warns if empty body. 2009-08-21 13:14 kristaps Changed: libman.h (1.20), "Exp", lines: +3 -2 man_macro.c (1.27), "Exp", lines: +14 -6 Fixed next-line scoping of `.HP nnn' (has both next-line and on-line in head). 2009-08-21 12:32 kristaps Changed: libman.h (1.19), "Exp", lines: +5 -1 man.c (1.35), "Exp", lines: +12 -2 man_action.c (1.18), "Exp", lines: +40 -14 Fixed `nf' behaviour (had broken with de-chunking). Added warnings if literal context already open/closed. 2009-08-21 12:12 kristaps Changed: man.7 (1.35), "Exp", lines: +3 -11 man.c (1.34), "Exp", lines: +27 -5 man_macro.c (1.26), "Exp", lines: +3 -2 man_validate.c (1.22), "Exp", lines: +12 -24 Open explicit scope on libman exit now only generates warning. Consecutive ELINE scopes are now pruned (with a warning). 2009-08-21 08:41 kristaps Changed: man_term.c (1.28), "Exp", lines: +3 -1 FreeBSD fix (uqs@spoerlein.net). 2009-08-20 13:55 kristaps Changed: man_macro.c (1.25), "Exp", lines: +6 -3 Fixed next-line scope error in libman block macros. 2009-08-20 13:51 kristaps Changed: man.7 (1.34), "Exp", lines: +3 -3 man_macro.c (1.24), "Exp", lines: +3 -3 Fixed (not documented anywhere of course) that `SH' and `SS' in libman have next-line head scope. 2009-08-20 13:32 kristaps Changed: man.7 (1.33), "Exp", lines: +12 -2 mdoc.7 (1.59), "Exp", lines: +2 -1 mdoc.h (1.69), "Exp", lines: +3 -3 mdoc.template (1.4), "Exp", lines: +1 -0 mdoc_strings.c (1.10), "Exp", lines: +4 -2 Synchronised man.7, mdoc.7, mdoc.template manual structure. 2009-08-20 13:22 kristaps Changed: mdoc.7 (1.58), "Exp", lines: +40 -6 mdoc.h (1.68), "Exp", lines: +4 -2 mdoc.template (1.3), "Exp", lines: +12 -12 mdoc_action.c (1.35), "Exp", lines: +173 -188 mdoc_argv.c (1.25), "Exp", lines: +2 -2 mdoc_term.c (1.68), "Exp", lines: +48 -24 mdoc_validate.c (1.42), "Exp", lines: +3 -16 Updated manual structure in mdoc.7. Synchronised mdoc.template and mdoc.7 manual structure. `Rv' and `Ex' now accept multiple arguments (-std made standalone, terms as children). `Rv' and `Ex' format correctly in -Tascii (plurals, commas, etc.). 2009-08-20 12:26 kristaps Changed: mandoc.1 (1.33), "Exp", lines: +4 -6 Small cleanup in mandoc.1. 2009-08-20 12:08 kristaps Changed: man.7 (1.32), "Exp", lines: +240 -219 mandoc.1 (1.32), "Exp", lines: +86 -46 mdoc.7 (1.57), "Exp", lines: +367 -349 Documented omission of `na' and `Dt'. Clarified COMPATIBILITY section (which modes/inputs). 2009-08-20 11:51 kristaps Changed: man.7 (1.31), "Exp", lines: +11 -5 man.c (1.33), "Exp", lines: +2 -2 man.h (1.19), "Exp", lines: +3 -2 man_action.c (1.17), "Exp", lines: +2 -1 man_macro.c (1.23), "Exp", lines: +2 -1 man_term.c (1.27), "Exp", lines: +3 -2 man_validate.c (1.21), "Exp", lines: +3 -2 mandoc.1 (1.31), "Exp", lines: +2 -1 Added `DT' macro (pointed out by joerg@netbsd.org). 2009-08-20 11:44 kristaps Changed: man.7 (1.30), "Exp", lines: +128 -86 mdoc.c (1.103), "Exp", lines: +3 -5 Fix to libmdoc passing over delimiters. `RS' and `RE' documented in man.7. 2009-08-20 09:07 kristaps Changed: libmdoc.h (1.26), "Exp", lines: +4 -4 mdoc_argv.c (1.24), "Exp", lines: +16 -1 Documented ARGS_ handling in args(). 2009-08-20 08:59 kristaps Changed: libmdoc.h (1.25), "Exp", lines: +5 -3 mdoc_argv.c (1.23), "Exp", lines: +15 -11 mdoc_macro.c (1.33), "Exp", lines: +3 -3 Delimiter whitespace is correctly flagged (required some special handling). 2009-08-19 14:45 kristaps Changed: mdoc_term.c (1.67), "Exp", lines: +2 -4 More already-fixed FIXMEs. 2009-08-19 14:44 kristaps Changed: mdoc_argv.c (1.22), "Exp", lines: +1 -3 Removed already-fixed FIXME. 2009-08-19 14:09 kristaps Changed: libmdoc.h (1.24), "Exp", lines: +2 -2 mdoc.c (1.102), "Exp", lines: +21 -6 mdoc_macro.c (1.32), "Exp", lines: +202 -265 In-line documentation of mdoc_macro file. Moved _NEXT_ macros into _alloc_ routines (where they belong). 2009-08-19 12:15 kristaps Changed: libman.h (1.18), "Exp", lines: +2 -1 man_macro.c (1.22), "Exp", lines: +14 -4 man_validate.c (1.20), "Exp", lines: +1 -3 libman checks for open explicit scopes on exit. 2009-08-19 12:00 kristaps Changed: man.c (1.32), "Exp", lines: +5 -1 Linux compat fix. 2009-08-19 11:58 kristaps Changed: man.c (1.31), "Exp", lines: +62 -12 mdoc.c (1.101), "Exp", lines: +7 -9 mdoc_macro.c (1.31), "Exp", lines: +1 -10 Moved MDOC_NEXT_SIBLING into mdoc_word (libmdoc). De-chunking of word terms in libman. 2009-08-19 11:30 kristaps Changed: man.7 (1.29), "Exp", lines: +2 -2 man_term.c (1.26), "Exp", lines: +89 -20 `RS' blocks correctly formatting in output device. 2009-08-19 09:14 kristaps Changed: libman.h (1.17), "Exp", lines: +2 -1 man.c (1.30), "Exp", lines: +17 -8 man.h (1.18), "Exp", lines: +4 -2 man_action.c (1.16), "Exp", lines: +4 -2 man_hash.c (1.11), "Exp", lines: +8 -8 man_macro.c (1.21), "Exp", lines: +72 -31 man_term.c (1.25), "Exp", lines: +3 -1 man_validate.c (1.19), "Exp", lines: +5 -1 mandoc.1 (1.30), "Exp", lines: +3 -3 Added RS/RE macro pair (had to adjust closing rules, sec/ssec/rs/par). 2009-08-18 14:27 tag VERSION_1_9_0 2009-08-18 14:27 kristaps Changed: libmdoc.h (1.23), "Exp", lines: +1 -2 man.7 (1.28), "Exp", lines: +229 -216 mdoc.7 (1.56), "Exp", lines: +398 -409 mdoc.c (1.100), "Exp", lines: +17 -13 libmdoc accepts whitespace following control character. 2009-08-18 11:46 kristaps Changed: man_validate.c (1.18), "Exp", lines: +9 -7 Fixed missing check for open ELINE scope in BLINE macro. 2009-08-18 08:48 kristaps Changed: man.7 (1.27), "Exp", lines: +34 -9 man_macro.c (1.20), "Exp", lines: +22 -7 man_term.c (1.24), "Exp", lines: +82 -35 Small updates to man.7 (next-line break-exclusions, numerical width example). Fully tested and correct scope-rewinding of block macros. 2009-08-17 11:10 kristaps Changed: Makefile (1.204), "Exp", lines: +2 -2 man.3 (1.8), "Exp", lines: +8 -2 Updated libman AST documentation. Version (not yet finalised, but tagging in Makefile): 1.9.0. 2009-08-17 11:03 kristaps Changed: man.7 (1.26), "Exp", lines: +25 -6 man_term.c (1.23), "Exp", lines: +51 -15 `IP' and `TP' correctly handle width arguments. Documented numeric widths. 2009-08-13 12:54 kristaps Changed: man.7 (1.25), "Exp", lines: +15 -6 man_term.c (1.22), "Exp", lines: +69 -43 Finished correct `IP' handling. 2009-08-13 12:31 kristaps Changed: man.7 (1.24), "Exp", lines: +4 -2 man_term.c (1.21), "Exp", lines: +41 -26 Added proper `TP' support. 2009-08-13 12:15 kristaps Changed: man.7 (1.23), "Exp", lines: +22 -6 man_term.c (1.20), "Exp", lines: +36 -3 Added full `HP' libman macro support. 2009-08-13 11:45 kristaps Added: man_argv.c (1.1) Changed: Makefile (1.203), "Exp", lines: +6 -3 libman.h (1.16), "Exp", lines: +31 -5 man.7 (1.22), "Exp", lines: +220 -81 man.c (1.29), "Exp", lines: +113 -46 man.h (1.17), "Exp", lines: +11 -3 man_action.c (1.15), "Exp", lines: +4 -3 man_macro.c (1.19), "Exp", lines: +217 -146 man_term.c (1.19), "Exp", lines: +189 -46 man_validate.c (1.17), "Exp", lines: +160 -59 tree.c (1.14), "Exp", lines: +16 -1 Significant overhaul in libman. Macros are now block- and line-scoped (with next-line scope extensions possible). man.7 reflects block and line scoping, and also includes a REFERENCE section that will be used as a template for the big mdoc reference. Many fixes in next-line behaviour for both inline and block macros. Added some macros for compatibility (from me.7). Corrected quoted-literal handling for libman. 2009-08-13 11:43 kristaps Changed: mdoc.c (1.99), "Exp", lines: +3 -1 mdoc_macro.c (1.30), "Exp", lines: +3 -2 Noted areas that need work in libmdoc. 2009-08-10 10:09 kristaps Changed: man_term.c (1.18), "Exp", lines: +90 -20 mdoc_term.c (1.66), "Exp", lines: +4 -1 term.h (1.44), "Exp", lines: +1 -6 Moved indentation size into *term.c files. Improved handling of libman `IP' macro (still needs work). 2009-07-29 09:02 kristaps Changed: mdoc_term.c (1.65), "Exp", lines: +9 -4 Fixed groff-compat where two `Sh' calls, with the first not having a body, don't assert vspace between calls. 2009-07-29 08:58 kristaps Changed: mdoc.7 (1.55), "Exp", lines: +14 -3 Documented behaviour of interpreting parsable/callable macros. 2009-07-29 08:52 kristaps Changed: mdoc.c (1.98), "Exp", lines: +5 -3 mdoc_macro.c (1.29), "Exp", lines: +13 -28 Columns with `Bl -column' correctly check for CALLABLE status. 2009-07-29 08:46 kristaps Changed: libmdoc.h (1.22), "Exp", lines: +1 -3 mdoc.c (1.97), "Exp", lines: +5 -7 mdoc_macro.c (1.28), "Exp", lines: +24 -18 mdoc_term.c (1.64), "Exp", lines: +5 -2 Moved CALLABLE check to lookup_raw(). Made PARSABLE check occur prior to lookup(). Non-PARSEABLE macros no longer warn against having macro-like parameters. Non-CALLABLE macros no longer produce an error, just display their symbols (as in groff) (pointed out by joerg@netbsd.org). 2009-07-28 12:15 tag VERSION_1_8_5 2009-07-28 12:15 kristaps Changed: mandoc_char.7 (1.13), "Exp", lines: +5 -1 Documented trademark and restricted mark (oops). 2009-07-28 12:07 kristaps Changed: mandoc_char.7 (1.12), "Exp", lines: +2 -2 Quick-fix in mandoc_char.7 trailing whitespace. 2009-07-28 11:59 kristaps Changed: Makefile (1.202), "Exp", lines: +2 -2 ascii.in (1.17), "Exp", lines: +3 -1 Version: 1.8.5. Added \*R, \*(Tm (obscure -man predefined strings). 2009-07-28 11:53 kristaps Changed: ascii.in (1.16), "Exp", lines: +55 -1 mandoc_char.7 (1.11), "Exp", lines: +180 -65 Added Greek characters to ascii.in (from groff_char.7). Added Euro symbols (from groff_char.7). 2009-07-28 10:15 kristaps Changed: main.c (1.41), "Exp", lines: +3 -2 term.c (1.97), "Exp", lines: +9 -4 Fix in newline. Correct printing of N-char predefined/special strings. 2009-07-28 10:09 kristaps Changed: ascii.in (1.15), "Exp", lines: +2 -2 Fixed \(bq. 2009-07-27 19:43 kristaps Changed: main.c (1.40), "Exp", lines: +6 -7 manuals.7 (1.19), "Exp", lines: +2 -3 mdoc.c (1.96), "Exp", lines: +3 -3 main.c using fprintf instead of warnx for parse errors (like cc). Error string is now file:line:col: message. Removed sed from vim -q example in manuals.7. Fixed column reporting (off by one). 2009-07-27 13:10 kristaps Changed: ascii.in (1.14), "Exp", lines: +162 -161 manuals.7 (1.18), "Exp", lines: +12 -2 term.c (1.96), "Exp", lines: +17 -3 Re-ordered ascii.in looking for dupes. Added `vim -q' tip to manuals.7 (thanks uqs@sporlein.net). ifdef'd production of missing specials/predefines. 2009-07-27 12:35 kristaps Changed: man.7 (1.21), "Exp", lines: +23 -20 mandoc_char.7 (1.10), "Exp", lines: +79 -7 mdoc.7 (1.54), "Exp", lines: +35 -30 term.c (1.95), "Exp", lines: +33 -48 Clarified special chars/predefined chars in mandoc_char.7. Cleaned up escape section in man.7, mdoc.7. Cleaned up function names in term.c. 2009-07-27 12:02 kristaps Changed: ascii.c (1.9), "Exp", lines: +39 -12 ascii.in (1.13), "Exp", lines: +222 -200 mandoc_char.7 (1.9), "Exp", lines: +16 -30 term.c (1.94), "Exp", lines: +25 -6 term.h (1.43), "Exp", lines: +2 -1 Correct handling of \*(xx, \*[xxx], \*x versus \x, \(xx, \([xxx]: predefined strings and escape characters, respectively. 2009-07-26 19:53 kristaps Changed: ascii.in (1.12), "Exp", lines: +2 -2 mandoc_char.7 (1.8), "Exp", lines: +26 -12 Fixed \% special char (via groff.7). Added some typographic special chars to mandoc_char.7. 2009-07-26 19:30 kristaps Changed: mandoc.1 (1.29), "Exp", lines: +11 -3 mdoc.7 (1.53), "Exp", lines: +1 -9 Removed POSIX.1 COMPATIBILITY note in mdoc.7. Noted that \~ doesn't work in mandoc.1 (thanks uqs@sporlein.net). 2009-07-26 18:59 kristaps Changed: st.in (1.10), "Exp", lines: +12 -12 POSIX -> POSIX.1 change (submitted by uqs@sporlein.net, ok jmc@openbsd.org, ingo@openbsd.org). 2009-07-26 10:35 tag VERSION_1_8_4 2009-07-26 10:35 kristaps Changed: Makefile (1.201), "Exp", lines: +2 -2 Version. 2009-07-26 10:29 kristaps Changed: mdoc_action.c (1.34), "Exp", lines: +5 -2 Made out-of-order prologue macros not cause an error. 2009-07-26 10:14 kristaps Changed: mdoc.7 (1.52), "Exp", lines: +9 -1 Noted POSIX/POSIX.1 disparity (found by uqs@sporlein.net, discussed with jmc@openbsd.org et al.). 2009-07-25 16:03 kristaps Changed: mdoc_action.c (1.33), "Exp", lines: +1 -2 mdoc_macro.c (1.27), "Exp", lines: +5 -6 mdoc_term.c (1.63), "Exp", lines: +2 -1 mdoc_validate.c (1.41), "Exp", lines: +2 -1 Patches and results of LLVM static analysis (thanks uqs@sporlein.net). 2009-07-24 20:22 kristaps Changed: libman.h (1.15), "Exp", lines: +2 -1 man.c (1.28), "Exp", lines: +3 -2 man.h (1.16), "Exp", lines: +3 -2 man_action.c (1.14), "Exp", lines: +2 -1 man_macro.c (1.18), "Exp", lines: +2 -1 man_term.c (1.17), "Exp", lines: +2 -1 man_validate.c (1.16), "Exp", lines: +40 -5 mandoc.c (1.3), "Exp", lines: +3 -1 Added `sp' support to libman. Added `\c' to known escapes (only used in man, but still). 2009-07-24 14:00 kristaps Changed: main.c (1.39), "Exp", lines: +28 -15 mandoc.1 (1.28), "Exp", lines: +11 -1 Added -fign-errors for VERY fast checking of many manuals without stopping at errors. 2009-07-24 13:18 kristaps Changed: mdoc_action.c (1.32), "Exp", lines: +7 -2 st.in (1.9), "Exp", lines: +2 -1 Added `St -ieee1275-94'. Documented a future `Bd' fixme. 2009-07-24 13:09 kristaps Changed: st.in (1.8), "Exp", lines: +2 -1 Added `St -isoC'. 2009-07-24 13:06 kristaps Changed: st.in (1.7), "Exp", lines: +2 -1 Added `St -xns5.2'. 2009-07-24 12:52 kristaps Changed: mdoc_term.c (1.62), "Exp", lines: +3 -2 Fixed DIAGNOSTIC display (leading double-space only before BODY). 2009-07-24 12:48 kristaps Changed: mdoc.h (1.67), "Exp", lines: +2 -3 Removed superfluous FIXMEs. 2009-07-24 12:47 kristaps Changed: mdoc.7 (1.51), "Exp", lines: +11 -1 mdoc_term.c (1.61), "Exp", lines: +63 -2 term.h (1.42), "Exp", lines: +4 -1 Full support for `An -split/-nosplit'. Compat documented. 2009-07-24 12:17 kristaps Changed: mdoc_macro.c (1.26), "Exp", lines: +6 -4 Allow `An' to accept NULL arguments (-split/-nosplit). 2009-07-24 12:09 kristaps Changed: mdoc_validate.c (1.40), "Exp", lines: +2 -2 `An' gives correct error message in encountering arguments/parameters. 2009-07-24 11:54 kristaps Changed: mdoc_term.c (1.60), "Exp", lines: +11 -28 `Bd' printing simplified (now that literal text is preserved). 2009-07-24 11:54 kristaps Changed: term.c (1.93), "Exp", lines: +2 -2 Text tokens with leading whitespace (like indented blocks in `Bd -literal') are printed correctly. 2009-07-23 09:49 tag VERSION_1_8_3 2009-07-23 09:49 kristaps Changed: Makefile (1.200), "Exp", lines: +2 -2 Version. 2009-07-23 09:40 kristaps Changed: mdoc_term.c (1.59), "Exp", lines: +30 -7 Ugly fix for `Bl' or `Bd' causing badness when nested in `Bl -hang' lists. 2009-07-23 08:36 kristaps Changed: mdoc_term.c (1.58), "Exp", lines: +20 -4 mdoc_validate.c (1.39), "Exp", lines: +2 -2 Bl -column now accepts columns = (1 + stated columns), which covers all remaining column usage/abuse I can see. 2009-07-23 08:35 kristaps Changed: term.c (1.92), "Exp", lines: +24 -13 Lintified term_flushln() (type mismatches). 2009-07-21 15:54 kristaps Changed: mdoc_term.c (1.57), "Exp", lines: +14 -3 Re-added `Pa' handling -- had removed it, but it's a bug in groff that it doesn't always render. 2009-07-21 15:53 kristaps Changed: mdoc_macro.c (1.25), "Exp", lines: +3 -1 Noted that `Pa' can accept 0 arguments. 2009-07-21 15:53 kristaps Changed: mdoc_action.c (1.31), "Exp", lines: +6 -6 Added default print of `~' with empty `Pa' (not documented with OpenBSD, but still applicable). 2009-07-21 15:52 kristaps Changed: mandoc.1 (1.27), "Exp", lines: +16 -7 Noted COMPATIBILITY where, in groff, `Pa' under `It' doesn't render its style. 2009-07-21 15:39 kristaps Changed: mdoc_term.c (1.56), "Exp", lines: +7 -18 Made `%T' underline instead of quote. 2009-07-21 15:35 kristaps Changed: mdoc_term.c (1.55), "Exp", lines: +14 -3 Fixed undocumented `-diag' where NULL list item bodies aren't followed by a vspace. 2009-07-21 15:33 kristaps Changed: term.h (1.41), "Exp", lines: +2 -2 Fixed transcription error of define values (bah). 2009-07-21 15:03 kristaps Changed: mdoc_term.c (1.54), "Exp", lines: +29 -16 Fixed `Bl -column' undocumented no-vspace rule to only work within the list. 2009-07-21 14:28 kristaps Changed: mdoc_term.c (1.53), "Exp", lines: +3 -1 Re-fixed `-diag' (accidentally broke in last checkin). 2009-07-21 13:45 kristaps Changed: mdoc_term.c (1.52), "Exp", lines: +3 -14 Removed `Pa' underline formatting (no groff does this). 2009-07-21 13:34 kristaps Changed: mdoc_term.c (1.51), "Exp", lines: +10 -9 term.c (1.91), "Exp", lines: +38 -35 term.h (1.40), "Exp", lines: +2 -1 Bringing spacing more in line with groff, patches from schwarze@openbsd.org. Pre-testing. 2009-07-21 12:47 kristaps Changed: mdoc_term.c (1.50), "Exp", lines: +8 -2 Right-most column now fills to the right margin (undocumented groff behaviour). 2009-07-20 20:49 kristaps Changed: mdoc_hash.c (1.8), "Exp", lines: +3 -1 FreeBSD includes fix (uqs@sporlein.net). 2009-07-20 20:09 kristaps Changed: index.sgml (1.27), "Exp", lines: +1 -19 Removed historical ports (they're just cluttering the page). 2009-07-20 19:34 tag VERSION_1_8_2 2009-07-20 19:34 kristaps Changed: Makefile (1.199), "Exp", lines: +2 -2 Version. 2009-07-20 19:30 kristaps Changed: mdoc_term.c (1.49), "Exp", lines: +5 -1 Fixed zero-length width string causing assertion (defaulting to 10 -- this needs work). 2009-07-20 15:05 kristaps Changed: mdoc_term.c (1.48), "Exp", lines: +4 -1 mdoc_validate.c (1.38), "Exp", lines: +14 -5 Undocumented behaviour in groff: `Bl -column' implies `-compact'. mandoc now allows fewer columns than the -width specifies. 2009-07-20 14:12 kristaps Changed: mdoc_argv.c (1.21), "Exp", lines: +7 -7 More cleanups for TABSEP handling. 2009-07-20 14:09 kristaps Changed: libmdoc.h (1.21), "Exp", lines: +1 -2 mdoc.c (1.95), "Exp", lines: +1 -2 mdoc_argv.c (1.20), "Exp", lines: +31 -50 Replaced ugly TABSEP handling with simpler routine. 2009-07-20 13:45 kristaps Changed: man.3 (1.7), "Exp", lines: +25 -25 man.7 (1.20), "Exp", lines: +23 -23 mandoc.1 (1.26), "Exp", lines: +37 -37 manuals.7 (1.17), "Exp", lines: +18 -18 mdoc.3 (1.33), "Exp", lines: +33 -33 mdoc.7 (1.50), "Exp", lines: +61 -61 Removed trailing whitespace in manuals. 2009-07-19 21:26 kristaps Changed: libmdoc.h (1.20), "Exp", lines: +3 -1 mdoc_argv.c (1.19), "Exp", lines: +9 -1 mdoc_macro.c (1.24), "Exp", lines: +26 -60 term.c (1.90), "Exp", lines: +5 -2 Fixed and cleaned up "phrase" handling (`Bl -column' columns). Found strange newline bug in -diag handling (and others?). 2009-07-19 09:46 tag VERSION_1_8_1 2009-07-19 09:46 kristaps Changed: Makefile (1.198), "Exp", lines: +2 -2 Fixed broken `make www' dep. 2009-07-19 09:22 kristaps Changed: Makefile (1.197), "Exp", lines: +2 -2 Version. 2009-07-19 09:17 kristaps Changed: mdoc.7 (1.49), "Exp", lines: +2 -2 mdoc_macro.c (1.23), "Exp", lines: +2 -2 Made `Cd' parseable (too many SYNOPSIS sections do this). 2009-07-19 09:10 kristaps Changed: term.h (1.39), "Exp", lines: +5 -6 Removed unused TERMP_LITERAL. 2009-07-19 08:49 kristaps Changed: ChangeLog.xsl (1.3), "Exp", lines: +4 -0 Makefile (1.196), "Exp", lines: +1 -1 ChangeLog xsl reflects symbolic tag. 2009-07-19 08:34 kristaps Changed: mdoc.3 (1.32), "Exp", lines: +1 -9 Removed some finished FIXMEs in mdoc.3. 2009-07-19 08:28 kristaps Changed: mdoc_macro.c (1.22), "Exp", lines: +7 -7 Explicit-close macros now only warn when encountering trailing terms, not error out (try `.Ed foo'). 2009-07-19 08:24 kristaps Changed: mdoc_term.c (1.47), "Exp", lines: +1 -5 Removed superfluous NOSPACE in bd post. 2009-07-19 08:18 kristaps Changed: mdoc_term.c (1.46), "Exp", lines: +12 -3 termpair flags unset before post, after body (suggested by schwarze@openbsd). 2009-07-18 23:31 kristaps Changed: mdoc.7 (1.48), "Exp", lines: +8 -18 mdoc_validate.c (1.37), "Exp", lines: +2 -2 More clarity fixes in mdoc.7. Sm/Sy argument to `Bf' fixed (schwarze@openbsd). 2009-07-18 18:59 kristaps Changed: mdoc_argv.c (1.18), "Exp", lines: +4 -3 Made unterminated quoted literals be a warning, like groff. 2009-07-18 18:49 kristaps Changed: mdoc.7 (1.47), "Exp", lines: +33 -5 mdoc_argv.c (1.17), "Exp", lines: +167 -196 Considerably revamped argument-parsing for correct quoted-literal handling. Deprecated ARGS_QUOTED (all arguments are quotable). Documented quotation and whitespace rules in mdoc.7. 2009-07-17 14:51 kristaps Changed: mdoc.7 (1.46), "Exp", lines: +39 -28 Better doc of whitespace handling in mdoc.7. Doc of macro quotation in mdoc.7. 2009-07-17 13:23 kristaps Deleted: DESCR (1.5) Makefile.freebsd (1.3) Makefile.netbsd (1.4) Makefile.openbsd (1.4) Changed: Makefile (1.195), "Exp", lines: +4 -69 index.sgml (1.26), "Exp", lines: +15 -36 Removed automatic port generation, as the downstream versions should be used instead. 2009-07-17 12:40 kristaps Changed: mdoc.7 (1.45), "Exp", lines: +31 -25 mdoc_term.c (1.45), "Exp", lines: +24 -2 mdoc_validate.c (1.36), "Exp", lines: +4 -2 `sp' documented: validates & produces correct output. 2009-07-17 12:28 kristaps Changed: mdoc_argv.c (1.16), "Exp", lines: +1 -3 Lint-check (removed unused variable). 2009-07-17 12:27 kristaps Changed: libmdoc.h (1.19), "Exp", lines: +1 -2 mdoc.c (1.94), "Exp", lines: +1 -2 mdoc_argv.c (1.15), "Exp", lines: +2 -12 mdoc_validate.c (1.35), "Exp", lines: +35 -4 Removed EARGVPARM (superfluous, overly error-generating). Added `sp' handler. 2009-07-17 12:08 kristaps Changed: mdoc.7 (1.44), "Exp", lines: +67 -150 mdoc_macro.c (1.21), "Exp", lines: +3 -7 mdoc_validate.c (1.34), "Exp", lines: +3 -4 Documented `br' macro in mdoc.7. Made `Pp' and `Lp' be inline_eoln() (not sure why they weren't before). 2009-07-17 11:00 kristaps Changed: mdoc_hash.c (1.7), "Exp", lines: +4 -1 Fixed hash assertion. 2009-07-17 10:56 kristaps Changed: mdoc.c (1.93), "Exp", lines: +2 -2 mdoc.h (1.66), "Exp", lines: +4 -2 mdoc_action.c (1.30), "Exp", lines: +3 -1 mdoc_argv.c (1.14), "Exp", lines: +3 -1 mdoc_macro.c (1.20), "Exp", lines: +3 -1 mdoc_term.c (1.44), "Exp", lines: +14 -1 mdoc_validate.c (1.33), "Exp", lines: +3 -1 Added `br' and `sp' macros (requested by joerg@netbsd.org, jmc@openbsd.org). 2009-07-17 10:56 kristaps Changed: mdoc_hash.c (1.6), "Exp", lines: +47 -58 Hash now accepts `br'. This needs work (way to sparse). 2009-07-16 22:16 kristaps Changed: manuals.7 (1.16), "Exp", lines: +12 -40 Small clarity updates (section names, contents). 2009-07-16 14:07 kristaps Changed: ChangeLog.xsl (1.2), "Exp", lines: +37 -38 Makefile (1.194), "Exp", lines: +1 -1 index.sgml (1.25), "Exp", lines: +2 -2 style.css (1.6), "Exp", lines: +8 -0 Proper html showing of ChangeLog. 2009-07-16 13:42 kristaps Changed: mdoc.c (1.92), "Exp", lines: +5 -1 Added Linux compat (strlcpy). 2009-07-16 13:41 kristaps Added: ChangeLog.xsl (1.1) Added changelog xsl. 2009-07-16 13:40 kristaps Changed: Makefile (1.193), "Exp", lines: +13 -8 Using xsl for html changelog. 2009-07-16 13:27 kristaps Changed: mdoc_term.c (1.43), "Exp", lines: +2 -4 Off-by-one space fixed for `Bl -diag'. 2009-07-16 13:17 kristaps Changed: mdoc_action.c (1.29), "Exp", lines: +1 -16 term.c (1.89), "Exp", lines: +5 -5 Subtle fixes correcting vis count with erroneously-decorated whitespace. 2009-07-16 12:34 kristaps Changed: term.c (1.88), "Exp", lines: +4 -3 Fix in nospace following close-delimiter. 2009-07-15 15:53 kristaps Changed: mdoc_action.c (1.28), "Exp", lines: +16 -1 term.c (1.87), "Exp", lines: +1 -2 Removed assertion (disregarded blank literal lines). 2009-07-15 15:37 kristaps Changed: term.c (1.86), "Exp", lines: +63 -89 Removed term.c break-up of tokens (happens in libmdoc). Removed costly, redundant calculations of string length (in-line printing). 2009-07-15 15:36 kristaps Changed: mdoc.c (1.91), "Exp", lines: +96 -34 libmdoc now breaks up free-form lines into tokens prior to be passed to the backend (simplifies LITERAL mode in front-end). 2009-07-15 15:26 kristaps Changed: mdoc_argv.c (1.13), "Exp", lines: +6 -6 args() should return ARGS_ERROR, not 0. 2009-07-15 08:20 kristaps Changed: mdoc_term.c (1.42), "Exp", lines: +2 -2 Fix to presentation date (Ulrich Sporlein) 2009-07-14 16:03 tag VERSION_1_8_0 2009-07-14 16:03 kristaps Changed: mdoc_term.c (1.41), "Exp", lines: +2 -7 Using \(en for OpenBSD `Nd' (compromise with jmc@openbsd.org). 2009-07-14 15:59 kristaps Changed: Makefile (1.192), "Exp", lines: +2 -2 Minor version bumped: -hang lists were the last major missing formatting "feature". 2009-07-14 15:57 kristaps Changed: mandoc.1 (1.25), "Exp", lines: +1 -9 Ceremonial removal of "-hang lists not supported". Candlelight, romantic music, etc. 2009-07-14 15:57 kristaps Changed: mdoc.7 (1.43), "Exp", lines: +379 -391 Consolidated some sections. Much more readable. 2009-07-14 15:56 kristaps Changed: man.7 (1.19), "Exp", lines: +9 -12 Small changes, reducing verbosity. 2009-07-14 15:49 kristaps Changed: mdoc_term.c (1.40), "Exp", lines: +28 -17 term.c (1.85), "Exp", lines: +2 -2 Cleaned up arg_width and arg_column functions. Added XXn and XXm support to -offset (not documented in mdoc.samples, but used in mdoc.samples!). Lint warnings fixed. 2009-07-14 15:17 kristaps Changed: mdoc_term.c (1.39), "Exp", lines: +24 -17 Removed unnecessary save/restore of style around list prefix. Added -hang list support. 2009-07-14 15:16 kristaps Changed: term.c (1.84), "Exp", lines: +19 -6 Support for TERMP_HANG in flushln(): -hang lists. 2009-07-14 15:16 kristaps Changed: term.h (1.38), "Exp", lines: +12 -11 Renamed TERMP_NONOSPACE -> TERMP_DANGLE. Added TERMP_HANG. Reordered TERMP flags to be a little easier on my old eyes. 2009-07-13 07:23 kristaps Changed: mdoc.7 (1.42), "Exp", lines: +1 -5 mdoc_term.c (1.38), "Exp", lines: +19 -6 mdoc_validate.c (1.32), "Exp", lines: +111 -121 Err/warn fix (schwarze@openbsd.org). Lots of whitespace churn in getting functions aligned nicely. 2009-07-12 20:50 kristaps Changed: libmdoc.h (1.18), "Exp", lines: +3 -1 mdoc.c (1.90), "Exp", lines: +2 -1 mdoc.h (1.65), "Exp", lines: +1 -3 mdoc_action.c (1.27), "Exp", lines: +33 -2 mdoc_term.c (1.37), "Exp", lines: +2 -20 mdoc_validate.c (1.31), "Exp", lines: +14 -2 Replacement of `Lb' in mdoc_action.c. Added warning against bogus `Lb' (like groff does). Added proper quotes around `Lb' in mdoc_term.c. Moved mdoc_a2lib -> libmdoc (where it belongs). 2009-07-12 20:30 kristaps Changed: libmdoc.h (1.17), "Exp", lines: +2 -1 mdoc.h (1.64), "Exp", lines: +1 -2 mdoc_action.c (1.26), "Exp", lines: +19 -2 mdoc_term.c (1.36), "Exp", lines: +2 -15 mdoc_validate.c (1.30), "Exp", lines: +2 -2 Moved mdoc_a2st() out of mdoc.h -> libmdoc.h (replacement in mdoc_action.c). Made bad standards into an error (were a warning). 2009-07-12 20:24 kristaps Changed: libmdoc.h (1.16), "Exp", lines: +2 -1 mdoc.h (1.63), "Exp", lines: +1 -2 mdoc_action.c (1.25), "Exp", lines: +39 -13 mdoc_term.c (1.35), "Exp", lines: +2 -21 Moved mdoc_a2att() into libmdoc (replacement happens in mdoc_action.c). 2009-07-12 20:07 kristaps Changed: mdoc_term.c (1.34), "Exp", lines: +7 -13 Removed superfluous FIXMEs in mdoc_term.c. 2009-07-12 19:34 kristaps Changed: mdoc.7 (1.41), "Exp", lines: +6 -1 mdoc_term.c (1.33), "Exp", lines: +2 -3 Fixed `Fo' superfluous space before `('. Noted groff compatibility in mdoc.7. 2009-07-12 19:28 kristaps Changed: mdoc_term.c (1.32), "Exp", lines: +6 -2 `Vt' macro behaves [more] properly when in the SYNOPSIS section. 2009-07-12 19:13 kristaps Changed: mdoc_term.c (1.31), "Exp", lines: +87 -79 Replaced ugly macro function declarations in mdoc_term with real [sorted] ones. 2009-07-12 17:49 kristaps Changed: mdoc_term.c (1.30), "Exp", lines: +6 -9 Removed rmargin from termpair (right in print_node()). 2009-07-12 17:45 kristaps Changed: mdoc_term.c (1.29), "Exp", lines: +13 -22 Removed offset from termpair (much simpler & cleaner). Put new offset market in print_node(). Some fixes of forgotten ttypes[TTYPE_XXXX] (just TTYPE). 2009-07-12 17:25 kristaps Changed: mdoc_term.c (1.28), "Exp", lines: +39 -51 Removed ambiguous TERMPAIR_SETFLAG from mdoc_term.c (pairs/flags must be manually set now, and are). 2009-07-12 16:55 kristaps Changed: mdoc_term.c (1.27), "Exp", lines: +3 -3 GNU/Linux also uses \- for Nd (ew). 2009-07-12 16:52 kristaps Changed: mdoc_term.c (1.26), "Exp", lines: +35 -65 Consolidated Bx/Ox/Nx/etc. into one function. 2009-07-12 16:41 kristaps Changed: mdoc_validate.c (1.29), "Exp", lines: +2 -2 Check for NAME sanity fixed (last named section -> last section). 2009-07-12 16:38 kristaps Changed: mdoc_validate.c (1.28), "Exp", lines: +3 -1 Added back in MDOC_TEXT stipulation in NAME check (post-Nm punctuation, duh). 2009-07-12 16:34 kristaps Changed: mdoc.7 (1.40), "Exp", lines: +2 -2 mdoc_macro.c (1.19), "Exp", lines: +41 -4 mdoc_term.c (1.25), "Exp", lines: +4 -1 mdoc_validate.c (1.27), "Exp", lines: +6 -5 `Nd' is now a BFI (was an ELEM). Noted by joerg@netbsd.org, behaviour ok jmc@openbsd.org, etc. 2009-07-12 15:32 kristaps Changed: mdoc.7 (1.39), "Exp", lines: +17 -17 mdoc.7 using -offset indent instead of -offset XXXX or whatever it was. 2009-07-12 09:48 kristaps Changed: mandoc.c (1.2), "Exp", lines: +3 -1 Fix for u_char, FreeBSD 7.2 (uqs@spoerlein.net). 2009-07-12 09:16 tag VERSION_1_7_24 2009-07-12 09:16 kristaps Changed: Makefile (1.191), "Exp", lines: +2 -2 Version. 2009-07-12 09:13 kristaps Changed: libmdoc.h (1.15), "Exp", lines: +3 -3 mdoc_validate.c (1.26), "Exp", lines: +5 -3 Fixed mdoc_nwarn/mdoc_nerr considering themselves err/warn instead of warn/err (BIG mistake). From suggestion by <joerg@netbsd.org>. 2009-07-12 08:49 kristaps Changed: mdoc_term.c (1.24), "Exp", lines: +6 -2 Noted dissent with \- for OpenBSD. 2009-07-12 08:45 kristaps Changed: ascii.in (1.11), "Exp", lines: +2 -1 mandoc_char.7 (1.7), "Exp", lines: +4 -2 mdoc_term.c (1.23), "Exp", lines: +5 -1 Added \(hy symbol. Properly categorised \- as an arithmetic minus sign. Nd produces \(em instead of old \-. OpenBSD ifdef'd to use old \- after Nd (ok: jmc@openbsd.org). 2009-07-11 20:47 kristaps Changed: mdoc_argv.c (1.12), "Exp", lines: +1 -2 Removed long-fixed FIXME note. 2009-07-11 18:55 kristaps Changed: st.in (1.6), "Exp", lines: +2 -1 Added `.St -p1003.1i-95' (joerg@netbsd.org). 2009-07-07 11:47 kristaps Changed: mdoc_action.c (1.24), "Exp", lines: +3 -2 mdoc_macro.c (1.18), "Exp", lines: +2 -2 mdoc_term.c (1.22), "Exp", lines: +14 -3 mdoc_validate.c (1.25), "Exp", lines: +2 -4 Made `In' handling work in new-groff style (see mdoc.samples). 2009-07-07 09:52 tag VERSION_1_7_23 2009-07-07 09:52 kristaps Changed: Makefile (1.190), "Exp", lines: +2 -2 main.c (1.38), "Exp", lines: +2 -2 mdoc_validate.c (1.24), "Exp", lines: +3 -5 Small clean-ups in error message usage. Version. 2009-07-07 09:35 kristaps Changed: libman.h (1.14), "Exp", lines: +4 -3 man.c (1.27), "Exp", lines: +16 -36 Tabularised error strings in libman. 2009-07-07 09:29 kristaps Changed: libmdoc.h (1.14), "Exp", lines: +9 -9 mdoc.c (1.89), "Exp", lines: +61 -175 mdoc_macro.c (1.17), "Exp", lines: +3 -3 Tabularised error-code lookup in mdoc.c. 2009-07-06 13:08 kristaps Changed: main.c (1.37), "Exp", lines: +5 -26 Cleaned out duplicate {mdoc,man}warn in main.c. 2009-07-06 13:04 kristaps Changed: libman.h (1.13), "Exp", lines: +3 -3 libmdoc.h (1.13), "Exp", lines: +71 -12 mdoc.c (1.88), "Exp", lines: +188 -127 mdoc_action.c (1.23), "Exp", lines: +30 -84 mdoc_argv.c (1.11), "Exp", lines: +31 -85 mdoc_macro.c (1.16), "Exp", lines: +12 -80 mdoc_validate.c (1.23), "Exp", lines: +74 -222 Consolidated all err/warnings into mdoc.c via libmdoc.h. 2009-07-06 11:21 kristaps Changed: mdoc_argv.c (1.10), "Exp", lines: +27 -41 Consolidated pwarn->perr in mdoc_argv. 2009-07-06 11:14 kristaps Changed: mdoc_action.c (1.22), "Exp", lines: +20 -34 Consolidated mdoc_action pwarn->perr. 2009-07-06 11:05 kristaps Changed: mdoc_validate.c (1.22), "Exp", lines: +2 -2 Fix in MDOC_IGN_CHARS ref. 2009-07-06 11:00 kristaps Changed: mdoc_validate.c (1.21), "Exp", lines: +84 -110 Consolidated mdoc_validate.c pwarn into perr (slowly phasing out per-file pre-formatted error strings). 2009-07-06 09:34 kristaps Changed: main.c (1.36), "Exp", lines: +11 -17 mandoc.1 (1.24), "Exp", lines: +4 -8 Backed -Wcompat,syntax out of front-end. 2009-07-06 09:21 kristaps Changed: libmdoc.h (1.12), "Exp", lines: +5 -8 main.c (1.35), "Exp", lines: +5 -23 mdoc.7 (1.38), "Exp", lines: +5 -1 mdoc.c (1.87), "Exp", lines: +9 -14 mdoc.h (1.62), "Exp", lines: +2 -9 mdoc_action.c (1.21), "Exp", lines: +4 -5 mdoc_argv.c (1.9), "Exp", lines: +5 -6 mdoc_macro.c (1.15), "Exp", lines: +3 -3 mdoc_validate.c (1.20), "Exp", lines: +6 -12 Initial removal of enum mdoc_warn from mdoc warnings (unnecessary complication). 2009-07-05 19:30 kristaps Changed: man.3 (1.6), "Exp", lines: +3 -3 mdoc.3 (1.31), "Exp", lines: +4 -4 Fixed man.3 mdoc.3 const-nesses. 2009-07-05 19:25 tag VERSION_1_7_22 2009-07-05 19:25 kristaps Changed: Makefile (1.189), "Exp", lines: +2 -2 Version. 2009-07-05 19:25 kristaps Changed: mdoc.7 (1.37), "Exp", lines: +1 -7 mdoc_term.c (1.21), "Exp", lines: +1 -5 Backed out "-width indent" and "-width indent-two", which aren't supported by any groff mdoc tmac (and erroneously used in many manuals, hence the confusion). 2009-07-04 11:19 tag VERSION_1_7_21 2009-07-04 11:19 kristaps Changed: Makefile (1.188), "Exp", lines: +2 -2 Version up. 2009-07-04 11:10 kristaps Changed: main.c (1.34), "Exp", lines: +11 -7 suboptarg is not portable to Linux (fixed). 2009-07-04 11:07 kristaps Changed: mdoc_term.c (1.20), "Exp", lines: +2 -2 Fixed -offset indent-two (schwarze@openbsd.org). 2009-07-04 11:04 kristaps Changed: mdoc_term.c (1.19), "Exp", lines: +3 -3 Fixed -offset left (schwarze@openbsd.org). Fixed bogus setting (instead of increment) of offsets. 2009-07-04 11:04 kristaps Changed: mdoc.7 (1.36), "Exp", lines: +7 -1 Noted secret -width indent/indent-two arguments to `Bl'. 2009-07-04 10:41 kristaps Changed: mdoc_validate.c (1.19), "Exp", lines: +1 -6 Removed WDEPCOL (schwarze@openbsd.org). 2009-07-04 09:01 kristaps Added: libmandoc.h (1.1) mandoc.c (1.1) Changed: Makefile (1.187), "Exp", lines: +8 -7 libman.h (1.12), "Exp", lines: +3 -2 main.c (1.33), "Exp", lines: +4 -2 man.c (1.26), "Exp", lines: +4 -1 man.h (1.15), "Exp", lines: +2 -1 man_validate.c (1.15), "Exp", lines: +18 -3 mdoc_strings.c (1.9), "Exp", lines: +1 -78 mdoc_validate.c (1.18), "Exp", lines: +7 -5 Moved escape validation into libmandoc.h/mandoc.c (common between libman/libmdoc1). libman supports MAN_IGN_ESCAPE (like MDOC_IGN_ESCAPE). All popular escapes now handled consistently. 2009-07-04 09:00 kristaps Changed: man.7 (1.18), "Exp", lines: +12 -2 mdoc.7 (1.35), "Exp", lines: +26 -8 man.7/mdoc.7 properly reflect escape-character handling. man.7 points to mdoc.7 for COMPATIBILITY. Whitespace stripping noted in mdoc.7. 2009-07-04 08:06 kristaps Changed: index.sgml (1.24), "Exp", lines: +38 -35 style.css (1.5), "Exp", lines: +6 -28 Minor www fixes. 2009-06-27 09:03 kristaps Changed: main.c (1.32), "Exp", lines: +8 -8 mdoc_validate.c (1.17), "Exp", lines: +1 -9 Removed escape-deprecation note (better solution in progress, schwarze@openbsd.org). Using EXIT_FAILURE for parse errors (nicm@openbsd.org). Fixed use of warn/warnx (nicm@openbsd.org). Fixed use of getsubopt (nicm@openbsd.org). 2009-06-25 11:35 kristaps Changed: man.7 (1.17), "Exp", lines: +7 -1 mdoc.7 (1.34), "Exp", lines: +7 -1 Added note about whitespace being stripped from mdoc/man input and re-added in mandoc(1). 2009-06-25 10:55 kristaps Changed: manuals.7 (1.15), "Exp", lines: +2 -2 Spell-checks in manuals. 2009-06-25 10:52 kristaps Changed: Makefile (1.186), "Exp", lines: +12 -6 index.sgml (1.23), "Exp", lines: +22 -22 Makefile properly generates MD5 sums. More clean-ups of new, simplified webpage. 2009-06-25 10:51 kristaps Changed: mandoc.1 (1.23), "Exp", lines: +4 -5 Language clarification in mandoc.1 (schwarze@openbsd.org). 2009-06-25 10:51 kristaps Changed: mdoc.7 (1.33), "Exp", lines: +25 -25 Fixed STRUCTURE repeat (schwarze@openbsd.org). Simplified some explanations (nobody cares about ontologies these days). 2009-06-25 10:48 kristaps Changed: man.7 (1.16), "Exp", lines: +14 -14 Fixed STRUCTURE/SYNTAX section data. 2009-06-25 08:42 kristaps Changed: Makefile (1.185), "Exp", lines: +12 -5 index.sgml (1.22), "Exp", lines: +108 -104 mdoc.template (1.2), "Exp", lines: +3 -1 mdoc_action.c (1.20), "Exp", lines: +6 -2 style.css (1.4), "Exp", lines: +1 -0 Updating web-page to be a bit more compact. 2009-06-22 13:13 tag VERSION_1_7_20 2009-06-22 13:13 kristaps Changed: Makefile (1.184), "Exp", lines: +2 -2 mdoc_term.c (1.18), "Exp", lines: +3 -2 term.c (1.83), "Exp", lines: +3 -2 Lint fixes. Version up. 2009-06-22 13:09 kristaps Changed: libman.h (1.11), "Exp", lines: +4 -2 man.7 (1.15), "Exp", lines: +16 -3 man.c (1.25), "Exp", lines: +7 -1 man_validate.c (1.14), "Exp", lines: +16 -3 mdoc.7 (1.32), "Exp", lines: +18 -2 libman documents require `TH' and at least one node. libman requirements documented in man.7 STRUCTURE section. Added STRUCTURE section to mdoc.7, too. 2009-06-22 12:38 kristaps Changed: mdoc_action.c (1.19), "Exp", lines: +2 -2 mdoc_term.c (1.17), "Exp", lines: +8 -4 term.c (1.82), "Exp", lines: +4 -1 Noted .Cd tabs-ok issue (will fix later). Added single space to -diag lists. 2009-06-22 12:22 kristaps Changed: mdoc.7 (1.31), "Exp", lines: +6 -1 mdoc_strings.c (1.8), "Exp", lines: +3 -2 Added -split and -nosplit "I-Don't-Like" note to mdoc.7 (there really must be another way to do this). Fixed .Er -width conversion. 2009-06-22 12:04 kristaps Changed: mandoc.1 (1.22), "Exp", lines: +18 -6 mdoc_action.c (1.18), "Exp", lines: +2 -2 mdoc_term.c (1.16), "Exp", lines: +11 -9 term.c (1.81), "Exp", lines: +25 -23 Added "Spacing" part of "Punctuation and Spacing" in mandoc.1 manual. Fixed `Ds' meta-macro default width. Fixed -width and -offset "indent", "indent-two", and "left" widths. Fixed -width and -offset literal-word and numeric widths. Fixed off-by-one errors in whitespace output (schwarze@openbsd.org). 2009-06-22 10:40 kristaps Changed: man_validate.c (1.13), "Exp", lines: +2 -1 term.c (1.80), "Exp", lines: +2 -2 Reverted max column width 80 -> 78 (schwarze@openbsd.org). 2009-06-18 20:46 kristaps Changed: man.c (1.24), "Exp", lines: +4 -1 man_term.c (1.16), "Exp", lines: +2 -1 mdoc.c (1.86), "Exp", lines: +6 -1 mdoc.h (1.61), "Exp", lines: +2 -1 mdoc_action.c (1.17), "Exp", lines: +6 -6 mdoc_validate.c (1.16), "Exp", lines: +3 -18 Added nchild decrement in libman (not used, but better in than forgotten). Added nchild to libmdoc, deprecated count() functions in validator. 2009-06-18 19:54 kristaps Changed: man_term.c (1.15), "Exp", lines: +13 -2 Fixed libman .br to be a newline, not a .PP alias. 2009-06-18 10:53 kristaps Changed: libman.h (1.10), "Exp", lines: +21 -1 man.c (1.23), "Exp", lines: +38 -1 man_action.c (1.13), "Exp", lines: +7 -10 man_macro.c (1.17), "Exp", lines: +6 -8 man_validate.c (1.12), "Exp", lines: +3 -29 Moved all formatted libman warn/error into man.c/libman.h. Converted all formatted warn/errors into regular syntax. 2009-06-18 10:32 kristaps Changed: main.c (1.31), "Exp", lines: +4 -2 man.7 (1.14), "Exp", lines: +5 -3 man.c (1.22), "Exp", lines: +3 -1 man.h (1.14), "Exp", lines: +4 -2 man_hash.c (1.10), "Exp", lines: +8 -4 man_validate.c (1.11), "Exp", lines: +49 -16 Added -fno-ign-chars support to libman. man_validate.c checks for non-tab/isprint words. libman hashtable fixed (was ignoring .br). Added ncount field to man_node, deprecating count() functions. Documented use of tabs in man.7. 2009-06-18 08:13 kristaps Changed: mandoc.1 (1.21), "Exp", lines: +16 -14 mandoc.1 reflects actual use of -f option (schwarze@openbsd.org) 2009-06-17 19:12 tag VERSION_1_7_19 2009-06-17 19:12 kristaps Changed: Makefile (1.183), "Exp", lines: +5 -5 index.sgml (1.21), "Exp", lines: +1 -7 mandoc.1 (1.20), "Exp", lines: +26 -34 Bumped version. Removed CVS note from index (they'll contact me if they need it). Properly ordered mandoc.1 CAVEATS/COMPATIBILITY. 2009-06-17 19:02 kristaps Changed: mdoc_macro.c (1.14), "Exp", lines: +1 -3 Removed superfluous FIXMEs (fixed already). 2009-06-17 18:42 kristaps Changed: mdoc_term.c (1.15), "Exp", lines: +8 -3 term.c (1.79), "Exp", lines: +27 -53 Special characters, e.g. \(ae, are now correctly rendered in the current font decoration. 2009-06-17 14:17 kristaps Changed: Makefile (1.182), "Exp", lines: +1 -0 Put $VFLAGS back into $LINTFLAGS (broke on NetBSD). 2009-06-17 14:14 kristaps Changed: mdoc_action.c (1.16), "Exp", lines: +3 -4 Clean-up. 2009-06-17 14:10 kristaps Changed: mdoc_action.c (1.15), "Exp", lines: +3 -3 mdoc_argv.c (1.8), "Exp", lines: +2 -4 mdoc_validate.c (1.15), "Exp", lines: +3 -4 Lint fixes. 2009-06-17 14:08 kristaps Changed: mdoc.7 (1.30), "Exp", lines: +3 -3 mdoc_action.c (1.14), "Exp", lines: +52 -1 mdoc_argv.c (1.7), "Exp", lines: +4 -6 mdoc_validate.c (1.14), "Exp", lines: +32 -18 `Bl -column' now correctly handles tail entries (Bl -column -more... arg0...). 2009-06-17 11:02 kristaps Changed: mdoc_argv.c (1.6), "Exp", lines: +3 -1 mdoc_validate.c (1.13), "Exp", lines: +14 -19 Cleaned up .Bf validator. 2009-06-17 10:53 kristaps Changed: libmdoc.h (1.11), "Exp", lines: +4 -3 mdoc.c (1.85), "Exp", lines: +22 -14 mdoc.h (1.60), "Exp", lines: +26 -40 mdoc_action.c (1.13), "Exp", lines: +2 -2 mdoc_strings.c (1.7), "Exp", lines: +29 -33 mdoc_validate.c (1.12), "Exp", lines: +26 -25 Section orders are more elegantly handled (MDOC_PBODY is a flag). Cleaned up string->enum conversion for section lookup. 2009-06-17 09:41 kristaps Changed: mdoc_strings.c (1.6), "Exp", lines: +3 -8 mdoc_validate.c (1.11), "Exp", lines: +9 -3 Noted deprecation of \*( and \* special-character escapes. Minor clean-ups. 2009-06-17 07:59 kristaps Changed: Makefile (1.181), "Exp", lines: +3 -4 mdoc.c (1.84), "Exp", lines: +15 -13 Fixed lint invocation in Makefile. Minor cleanups in mdoc.c. 2009-06-16 20:22 kristaps Changed: main.c (1.30), "Exp", lines: +13 -56 mdoc.c (1.83), "Exp", lines: +1 -5 Clean-up: in-source documentation. 2009-06-16 19:55 kristaps Changed: man.c (1.21), "Exp", lines: +3 -3 man.h (1.13), "Exp", lines: +5 -6 man_action.c (1.12), "Exp", lines: +2 -3 man_hash.c (1.9), "Exp", lines: +2 -2 man_macro.c (1.16), "Exp", lines: +2 -3 man_term.c (1.14), "Exp", lines: +6 -4 man_validate.c (1.10), "Exp", lines: +2 -3 mdoc_hash.c (1.5), "Exp", lines: +2 -2 Removed MAN___: moved MAN_br to its index (comments not passed into parser). Fix: hashtable not fully formed after removal of MDOC___. 2009-06-16 19:45 kristaps Changed: mdoc.c (1.82), "Exp", lines: +6 -6 mdoc.h (1.59), "Exp", lines: +14 -15 mdoc_action.c (1.12), "Exp", lines: +2 -3 mdoc_argv.c (1.5), "Exp", lines: +2 -3 mdoc_macro.c (1.13), "Exp", lines: +2 -3 mdoc_term.c (1.14), "Exp", lines: +7 -5 mdoc_validate.c (1.10), "Exp", lines: +2 -3 Removed MDOC___: moved MDOC_Ap to its index (comments not passed into mdoc parser). 2009-06-16 19:13 kristaps Changed: main.c (1.29), "Exp", lines: +39 -26 man.7 (1.13), "Exp", lines: +11 -1 man.c (1.20), "Exp", lines: +1 -5 mdoc.7 (1.29), "Exp", lines: +12 -2 mdoc.c (1.81), "Exp", lines: +2 -6 Modernised comment handling: text following \" is thrown away before either parser is invoked. Single-dot lines correctly handled. This confirms with both new- and old-groff. "Comment" subsection added to mdoc.7 and man.7. 2009-06-15 20:26 kristaps Changed: Makefile (1.180), "Exp", lines: +1 -1 man_term.c (1.13), "Exp", lines: +1 -5 mdoc_term.c (1.13), "Exp", lines: +1 -5 Removed superfluous ifdef around strftime (schwarze@openbsd.org). Bumped version (this was supposed to be in 1.7.17). 2009-06-15 11:26 tag VERSION_1_7_17 2009-06-15 11:26 kristaps Changed: Makefile (1.179), "Exp", lines: +2 -2 Tagging version 1.7.17. 2009-06-15 11:24 kristaps Changed: index.sgml (1.20), "Exp", lines: +22 -4 Updated www to note existence of pkgsrc/port/in-tree mdocml/mandoc. 2009-06-15 10:36 kristaps Changed: libmdoc.h (1.10), "Exp", lines: +2 -6 main.c (1.28), "Exp", lines: +1 -2 mdoc.c (1.80), "Exp", lines: +1 -50 mdoc.h (1.58), "Exp", lines: +1 -2 Deprecated mdoc_msg (not being used anywhere). 2009-06-15 10:02 kristaps Changed: libmdoc.h (1.9), "Exp", lines: +1 -3 mdoc.c (1.79), "Exp", lines: +1 -18 Removed mdoc_nwarn (not being used anywhere). 2009-06-15 09:55 kristaps Changed: libmdoc.h (1.8), "Exp", lines: +16 -33 mdoc.c (1.78), "Exp", lines: +133 -1 mdoc error/warn macros replaced with real functions for GCC2 support (miod@openbsd.org). 2009-06-15 09:38 kristaps Changed: mdoc_strings.c (1.5), "Exp", lines: +3 -3 Mdocdate fix (literals being replaced) ({cnst,schwarze}@openbsd.org). 2009-06-15 09:35 kristaps Changed: mandoc.1 (1.19), "Exp", lines: +6 -6 Manual-aesthetics fix (schwarze@openbsd.org). 2009-06-13 18:48 tag VERSION_1_7_16 2009-06-13 18:48 kristaps Changed: index.sgml (1.19), "Exp", lines: +6 -6 Fixed grammar error. Back-versioning to .16. 2009-06-13 18:05 kristaps Changed: Makefile (1.178), "Exp", lines: +2 -2 Version. 2009-06-13 13:02 kristaps Changed: index.sgml (1.18), "Exp", lines: +72 -38 Updated index with "administrative" stuff (contacts, etc.). 2009-06-12 12:54 tag VERSION_1_7_15 2009-06-12 12:54 kristaps Changed: Makefile (1.177), "Exp", lines: +3 -3 Don't run with -Werror when generating texts. 2009-06-12 12:52 kristaps Changed: Makefile (1.176), "Exp", lines: +2 -2 mdoc.c (1.77), "Exp", lines: +5 -3 mdoc_action.c (1.11), "Exp", lines: +3 -2 Lint fixes (no effect). Versioning up. 2009-06-12 12:40 kristaps Changed: mdoc.7 (1.28), "Exp", lines: +36 -31 mdoc_strings.c (1.4), "Exp", lines: +3 -1 Made per-macro "now callable" COMPATIBILITY claims into a single "most macros callable". Added COMPATIBILITY note on escaped special-character sequences. Vertical bar now correctly delimits (like in new groff). 2009-06-12 09:18 kristaps Changed: mdoc.7 (1.27), "Exp", lines: +6 -4 mdoc_action.c (1.10), "Exp", lines: +24 -2 mdoc_macro.c (1.12), "Exp", lines: +9 -5 mdoc_term.c (1.12), "Exp", lines: +9 -4 mdoc_validate.c (1.9), "Exp", lines: +7 -5 `Lk' is correctly handled as CALLABLE (note groff munges nested output). `Mt' is now CALLABLE. Fixed missing validate/action of zero-element, non-called inline elements. Fixed missing validate/action of nested inline element re-calls. Fixed bogus column argv index in validator. 2009-06-11 20:02 kristaps Changed: mdoc.7 (1.26), "Exp", lines: +5 -4 mdoc_macro.c (1.11), "Exp", lines: +4 -4 `Ft' and `Ms' are now callable and compat-noted in mdoc.7 (joerg@netbsd.org). 2009-06-11 19:56 kristaps Changed: mdoc.7 (1.25), "Exp", lines: +4 -3 mdoc_macro.c (1.10), "Exp", lines: +2 -2 `An' now callable, historic use noted in mdoc.7 (joerg@netbsd.org). 2009-06-11 13:34 tag VERSION_1_7_14 2009-06-11 13:34 kristaps Changed: Makefile (1.175), "Exp", lines: +6 -2 index.sgml (1.17), "Exp", lines: +4 -4 Added automatic ChangeLog generation with each snapshot. Added ChangeLog to main page. 2009-06-11 13:18 kristaps Changed: man_term.c (1.12), "Exp", lines: +6 -1 Backed-out .IP changes for libman (needs work). 2009-06-11 13:15 kristaps Changed: Makefile (1.174), "Exp", lines: +2 -2 Version up. Testing. 2009-06-11 13:13 kristaps Added: mdoc.template (1.1) Changed: mdoc_term.c (1.11), "Exp", lines: +21 -19 Added mdoc.template (from NetBSD -- unlicensed??). Moved MDOC_TEXT type checks into assertions (should be caught by parser). Added some FIXME notes in mdoc output (largely that things should be asserted, not caught). 2009-06-11 12:55 kristaps Changed: mdoc_term.c (1.10), "Exp", lines: +9 -5 Added "left" -offset tag. 2009-06-11 12:07 kristaps Changed: main.c (1.27), "Exp", lines: +32 -4 man_term.c (1.11), "Exp", lines: +4 -2 mdoc_term.c (1.9), "Exp", lines: +31 -133 Documented some un-clear parts of main.c. Fixed footer to be new-groff style (OS DATE OS). Removed sanity check from mdoc_term (unnecessary). 2009-06-11 10:34 kristaps Changed: mdoc_validate.c (1.8), "Exp", lines: +56 -29 term.c (1.78), "Exp", lines: +5 -6 Clean up validation of field widths. Pushed field-width warn/error into warn/error routine. Removed superfluous space at output eoln. Fixed overzealous line break in lists. 2009-06-11 10:16 kristaps Changed: Makefile (1.173), "Exp", lines: +3 -0 Added compat to Makefile. 2009-06-11 07:46 kristaps Changed: term.c (1.77), "Exp", lines: +5 -6 Fix space-before-newline (inspired by schwarze@openbsd.org). 2009-06-11 07:26 kristaps Changed: man.3 (1.5), "Exp", lines: +2 -2 man.7 (1.12), "Exp", lines: +2 -2 man_term.c (1.10), "Exp", lines: +2 -2 mandoc.1 (1.18), "Exp", lines: +2 -2 mandoc_char.7 (1.6), "Exp", lines: +2 -2 mdoc.3 (1.30), "Exp", lines: +2 -2 mdoc.7 (1.24), "Exp", lines: +2 -2 mdoc_term.c (1.8), "Exp", lines: +2 -2 term.c (1.76), "Exp", lines: +2 -2 Fixed email address in manual AUTHOR reference. Set max right margin to 80 columns (schwarze@openbsd.org). Fixed centre-field heading position (schwarze@openbsd.org). Also fixed -Tman centre-field. 2009-06-10 20:18 kristaps Changed: arch.c (1.4), "Exp", lines: +2 -2 arch.in (1.5), "Exp", lines: +2 -2 ascii.c (1.8), "Exp", lines: +2 -2 ascii.in (1.10), "Exp", lines: +2 -2 att.c (1.4), "Exp", lines: +2 -2 att.in (1.5), "Exp", lines: +2 -2 lib.c (1.4), "Exp", lines: +2 -2 lib.in (1.5), "Exp", lines: +2 -2 libman.h (1.9), "Exp", lines: +2 -2 libmdoc.h (1.7), "Exp", lines: +2 -2 main.c (1.26), "Exp", lines: +2 -2 man.3 (1.4), "Exp", lines: +2 -2 man.7 (1.11), "Exp", lines: +2 -2 man.c (1.19), "Exp", lines: +2 -2 man.h (1.12), "Exp", lines: +2 -2 man_action.c (1.11), "Exp", lines: +2 -2 man_hash.c (1.8), "Exp", lines: +2 -2 man_macro.c (1.15), "Exp", lines: +2 -2 man_term.c (1.9), "Exp", lines: +2 -2 man_validate.c (1.9), "Exp", lines: +2 -2 mandoc.1 (1.17), "Exp", lines: +2 -2 mandoc_char.7 (1.5), "Exp", lines: +2 -2 manuals.7 (1.14), "Exp", lines: +2 -2 mdoc.3 (1.29), "Exp", lines: +2 -2 mdoc.7 (1.23), "Exp", lines: +2 -2 mdoc.c (1.76), "Exp", lines: +2 -2 mdoc.h (1.57), "Exp", lines: +2 -2 mdoc_action.c (1.9), "Exp", lines: +2 -2 mdoc_argv.c (1.4), "Exp", lines: +2 -2 mdoc_hash.c (1.4), "Exp", lines: +2 -2 mdoc_macro.c (1.9), "Exp", lines: +2 -2 mdoc_term.c (1.7), "Exp", lines: +2 -2 mdoc_validate.c (1.7), "Exp", lines: +2 -2 msec.c (1.4), "Exp", lines: +2 -2 msec.in (1.5), "Exp", lines: +2 -2 st.c (1.4), "Exp", lines: +2 -2 term.c (1.75), "Exp", lines: +2 -2 term.h (1.37), "Exp", lines: +2 -2 tree.c (1.13), "Exp", lines: +2 -2 vol.c (1.4), "Exp", lines: +2 -2 vol.in (1.5), "Exp", lines: +2 -2 Fixed license email address. 2009-04-12 19:49 tag VERSION_1_7_13 2009-04-12 19:49 kristaps Changed: Makefile (1.172), "Exp", lines: +2 -2 mdoc_validate.c (1.6), "Exp", lines: +2 -2 Version bumped. `.Er' has more section restrictions (Joerg). 2009-04-12 19:45 kristaps Changed: arch.c (1.3), "Exp", lines: +10 -12 arch.in (1.4), "Exp", lines: +10 -12 ascii.c (1.7), "Exp", lines: +10 -12 ascii.in (1.9), "Exp", lines: +10 -12 att.c (1.3), "Exp", lines: +10 -12 att.in (1.4), "Exp", lines: +10 -12 lib.c (1.3), "Exp", lines: +10 -12 lib.in (1.4), "Exp", lines: +10 -12 libman.h (1.8), "Exp", lines: +10 -12 libmdoc.h (1.6), "Exp", lines: +10 -12 main.c (1.25), "Exp", lines: +10 -12 man.3 (1.3), "Exp", lines: +11 -13 man.7 (1.10), "Exp", lines: +11 -13 man.c (1.18), "Exp", lines: +10 -12 man.h (1.11), "Exp", lines: +10 -12 man_action.c (1.10), "Exp", lines: +10 -12 man_hash.c (1.7), "Exp", lines: +10 -12 man_macro.c (1.14), "Exp", lines: +10 -12 man_term.c (1.8), "Exp", lines: +10 -12 man_validate.c (1.8), "Exp", lines: +10 -12 mandoc.1 (1.16), "Exp", lines: +10 -12 mandoc_char.7 (1.4), "Exp", lines: +10 -12 manuals.7 (1.13), "Exp", lines: +10 -12 mdoc.3 (1.28), "Exp", lines: +10 -12 mdoc.7 (1.22), "Exp", lines: +10 -12 mdoc.c (1.75), "Exp", lines: +10 -12 mdoc.h (1.56), "Exp", lines: +10 -12 mdoc_action.c (1.8), "Exp", lines: +10 -12 mdoc_argv.c (1.3), "Exp", lines: +10 -12 mdoc_hash.c (1.3), "Exp", lines: +10 -12 mdoc_macro.c (1.8), "Exp", lines: +10 -12 mdoc_strings.c (1.3), "Exp", lines: +10 -12 mdoc_term.c (1.6), "Exp", lines: +10 -12 mdoc_validate.c (1.5), "Exp", lines: +10 -12 msec.c (1.3), "Exp", lines: +10 -12 msec.in (1.4), "Exp", lines: +10 -12 st.c (1.3), "Exp", lines: +10 -12 st.in (1.5), "Exp", lines: +16 -1 term.c (1.74), "Exp", lines: +10 -12 term.h (1.36), "Exp", lines: +10 -12 tree.c (1.12), "Exp", lines: +10 -12 vol.c (1.3), "Exp", lines: +10 -12 vol.in (1.4), "Exp", lines: +10 -12 Using proper license template (const). 2009-04-12 19:30 kristaps Changed: man.c (1.17), "Exp", lines: +2 -2 mandoc.1 (1.15), "Exp", lines: +2 -2 mdoc.7 (1.21), "Exp", lines: +3 -3 Spelling "preceed" -> "precede" (naddy). 2009-04-12 19:29 kristaps Changed: ascii.in (1.8), "Exp", lines: +2 -2 libmdoc.h (1.5), "Exp", lines: +1 -5 mandoc_char.7 (1.3), "Exp", lines: +14 -1 Made \(ss render as "ss", documented under COMPATIBILITY in mandoc_char.7. 2009-04-12 19:24 kristaps Changed: ascii.in (1.7), "Exp", lines: +3 -1 mdoc_strings.c (1.2), "Exp", lines: +5 -1 Added \^ and \~ escapes (Joerg). 2009-04-12 19:19 kristaps Changed: ascii.c (1.6), "Exp", lines: +5 -2 main.c (1.24), "Exp", lines: +25 -18 man.3 (1.2), "Exp", lines: +2 -2 man.7 (1.9), "Exp", lines: +2 -2 mandoc.1 (1.14), "Exp", lines: +2 -2 mandoc_char.7 (1.2), "Exp", lines: +2 -2 manuals.7 (1.12), "Exp", lines: +2 -2 mdoc.3 (1.27), "Exp", lines: +2 -2 mdoc.7 (1.20), "Exp", lines: +2 -2 mdoc.h (1.55), "Exp", lines: +2 -1 mdoc_macro.c (1.7), "Exp", lines: +7 -3 mdoc_term.c (1.5), "Exp", lines: +2 -2 mdoc_validate.c (1.4), "Exp", lines: +18 -3 term.h (1.35), "Exp", lines: +3 -2 Manual .Dt fields CAPITALISED. Indent set to 5 chars (nroff compat). Half-indent set to 3 chars (nroff compat). Default behaviour is loose-y (ignore macro/char/escape). Added -fstrict. Added unknown-character ignoring. 2009-04-06 10:12 tag OPENBSD_CHECKIN 2009-04-06 10:12 tag VERSION_1_7_12 2009-04-06 10:12 kristaps Changed: Makefile (1.171), "Exp", lines: +1 -1 [no log message] 2009-04-06 09:48 kristaps Changed: mdoc_action.c (1.7), "Exp", lines: +1 -7 Removed forgotten printfs. 2009-04-06 08:53 kristaps Changed: Makefile (1.170), "Exp", lines: +2 -2 Version (BIG fix). 2009-04-06 08:53 kristaps Changed: mdoc_action.c (1.6), "Exp", lines: +10 -3 Fix bogus use of mdoc->last in action pre-handler (!!!!!). 2009-04-05 16:38 tag VERSION_1_7_10 2009-04-05 16:38 kristaps Changed: Makefile (1.169), "Exp", lines: +1 -1 Added TEXTS to installwww. 2009-04-05 16:34 kristaps Changed: Makefile (1.168), "Exp", lines: +19 -7 ascii.c (1.5), "Exp", lines: +1 -7 index.sgml (1.16), "Exp", lines: +26 -16 man.7 (1.8), "Exp", lines: +10 -7 man.c (1.16), "Exp", lines: +33 -28 man.h (1.10), "Exp", lines: +3 -2 man_action.c (1.9), "Exp", lines: +2 -1 man_hash.c (1.6), "Exp", lines: +7 -7 man_macro.c (1.13), "Exp", lines: +2 -1 man_term.c (1.7), "Exp", lines: +8 -7 man_validate.c (1.7), "Exp", lines: +2 -1 mandoc.1 (1.13), "Exp", lines: +53 -47 style.css (1.3), "Exp", lines: +2 -1 man(3) doesn't use err.h anymore. Added .i to man(3). Fixed up manuals. Fixed up webpage. Assertion fixes in man(3) (hashtable). Fixed assertion for .IP in mandoc -man. 2009-04-03 13:18 kristaps Changed: Makefile (1.167), "Exp", lines: +2 -2 Version. 2009-04-03 13:17 kristaps Changed: manuals.7 (1.11), "Exp", lines: +21 -11 mdoc_term.c (1.4), "Exp", lines: +3 -3 Updated manuals.7. Fixed .Dl display. 2009-04-03 12:27 kristaps Changed: main.c (1.23), "Exp", lines: +6 -7 term.c (1.73), "Exp", lines: +1 -3 [no log message] 2009-04-03 11:08 kristaps Changed: main.c (1.22), "Exp", lines: +97 -90 man.c (1.15), "Exp", lines: +4 -2 man.h (1.9), "Exp", lines: +2 -2 mdoc_action.c (1.5), "Exp", lines: +6 -1 term.c (1.72), "Exp", lines: +16 -8 tree.c (1.11), "Exp", lines: +21 -15 Proper resetting of memory. Array boundary fixed (-W). 2009-04-02 16:42 kristaps Changed: main.c (1.21), "Exp", lines: +1 -3 mandoc.1 (1.12), "Exp", lines: +23 -5 Documented -mandoc behaviour. 2009-04-02 16:37 kristaps Changed: main.c (1.20), "Exp", lines: +12 -4 mdoc_action.c (1.4), "Exp", lines: +4 -3 mdoc_validate.c (1.3), "Exp", lines: +2 -2 st.in (1.4), "Exp", lines: +2 -1 Added -p1003.1-2008 specification. Fixed invalid memory accesses (concat()). Made -fign-macro be the default for libman. 2009-04-02 16:26 kristaps Changed: Makefile (1.166), "Exp", lines: +2 -1 main.c (1.19), "Exp", lines: +212 -115 Initial -mandoc auto-switch in place. 2009-04-02 06:51 kristaps Changed: libmdoc.h (1.4), "Exp", lines: +4 -4 man.c (1.14), "Exp", lines: +2 -2 man.h (1.8), "Exp", lines: +3 -2 man_action.c (1.8), "Exp", lines: +2 -1 man_hash.c (1.5), "Exp", lines: +46 -9 man_macro.c (1.12), "Exp", lines: +2 -1 man_term.c (1.6), "Exp", lines: +2 -1 man_validate.c (1.6), "Exp", lines: +2 -1 mdoc.c (1.74), "Exp", lines: +10 -8 mdoc_action.c (1.3), "Exp", lines: +2 -2 mdoc_hash.c (1.2), "Exp", lines: +5 -6 mdoc_macro.c (1.6), "Exp", lines: +3 -3 mdoc_tokhash -> hash Initial man hashtab (BROKEN). 2009-03-31 13:50 kristaps Deleted: argv.c (1.58) strings.c (1.34) terminal.c (1.13) xstd.c (1.14) Added: mdoc_strings.c (1.1) Changed: Makefile (1.165), "Exp", lines: +14 -17 libmdoc.h (1.3), "Exp", lines: +1 -4 main.c (1.18), "Exp", lines: +9 -7 man_action.c (1.7), "Exp", lines: +7 -6 man_hash.c (1.4), "Exp", lines: +1 -5 man_macro.c (1.11), "Exp", lines: +1 -2 mdoc.3 (1.26), "Exp", lines: +4 -3 mdoc.c (1.73), "Exp", lines: +137 -121 mdoc.h (1.54), "Exp", lines: +2 -2 mdoc_action.c (1.2), "Exp", lines: +137 -67 mdoc_argv.c (1.2), "Exp", lines: +61 -46 mdoc_macro.c (1.5), "Exp", lines: +1 -7 mdoc_validate.c (1.2), "Exp", lines: +63 -52 term.c (1.71), "Exp", lines: +441 -1772 General clean-ups. 2009-03-27 15:22 kristaps Changed: man.7 (1.7), "Exp", lines: +10 -1 Added br documentation. 2009-03-27 15:00 kristaps Added: mdoc_argv.c (1.1) Changed: Makefile (1.164), "Exp", lines: +2 -2 Version. Added forgotten file. 2009-03-27 14:56 kristaps Added: man.3 (1.1) mandoc_char.7 (1.1) Changed: man.7 (1.6), "Exp", lines: +3 -6 man.c (1.13), "Exp", lines: +2 -2 man.h (1.7), "Exp", lines: +3 -2 man_action.c (1.6), "Exp", lines: +2 -1 man_macro.c (1.10), "Exp", lines: +2 -1 man_term.c (1.5), "Exp", lines: +2 -1 man_validate.c (1.5), "Exp", lines: +2 -1 mdoc.3 (1.25), "Exp", lines: +4 -13 mdoc.7 (1.19), "Exp", lines: +4 -420 mdoc_macro.c (1.4), "Exp", lines: +55 -12 Added some new manuals (mdoc.3 mandoc_char.7). Support for .br in libman. 2009-03-27 13:44 kristaps Changed: Makefile (1.163), "Exp", lines: +10 -10 ascii.in (1.6), "Exp", lines: +2 -1 mdoc.7 (1.18), "Exp", lines: +3 -1 mdoc_macro.c (1.3), "Exp", lines: +23 -11 strings.c (1.33), "Exp", lines: +3 -1 Fixes in going over all OpenBSD manuals. 2009-03-26 23:01 kristaps Changed: man.7 (1.5), "Exp", lines: +10 -23 manuals.7 (1.10), "Exp", lines: +21 -52 mdoc.7 (1.17), "Exp", lines: +5 -10 Clean-ups to documentation. 2009-03-26 16:47 kristaps Changed: terminal.c (1.12), "Exp", lines: +3 -2 [no log message] 2009-03-26 16:44 kristaps Changed: mandoc.1 (1.11), "Exp", lines: +12 -1 terminal.c (1.11), "Exp", lines: +21 -1 Added simple font-escapes. 2009-03-26 16:23 kristaps Changed: Makefile (1.162), "Exp", lines: +1 -1 main.c (1.17), "Exp", lines: +3 -3 man.7 (1.4), "Exp", lines: +74 -19 man_term.c (1.4), "Exp", lines: +58 -27 mandoc.1 (1.10), "Exp", lines: +8 -13 mdoc.3 (1.24), "Exp", lines: +8 -8 mdoc.7 (1.16), "Exp", lines: +237 -235 mdoc_term.c (1.3), "Exp", lines: +16 -24 All macro-invocations, for consistency, begin with `.' in documentation. Fixed \\ -> \e in manual documentation. All preliminary -man macros in place. 2009-03-26 15:19 tag VERSION_1_7_5 2009-03-26 15:19 kristaps Changed: man_term.c (1.3), "Exp", lines: +128 -8 Added several macros to man_term.c. 2009-03-26 14:44 kristaps Changed: Makefile (1.161), "Exp", lines: +1 -1 man.c (1.12), "Exp", lines: +3 -3 man_term.c (1.2), "Exp", lines: +6 -1 mdoc_term.c (1.2), "Exp", lines: +6 -1 terminal.c (1.10), "Exp", lines: +1 -6 Fixed after-NLINE-error assertion. Scanned over all manuals with valgrind. Version up. 2009-03-26 14:38 kristaps Deleted: term.c (1.70) Added: man_term.c (1.1) mdoc_term.c (1.1) Changed: Makefile (1.160), "Exp", lines: +10 -9 libman.h (1.7), "Exp", lines: +2 -1 man.7 (1.3), "Exp", lines: +2 -1 man.c (1.11), "Exp", lines: +54 -8 man.h (1.6), "Exp", lines: +3 -2 man_action.c (1.5), "Exp", lines: +7 -9 man_macro.c (1.9), "Exp", lines: +43 -1 man_validate.c (1.4), "Exp", lines: +4 -3 term.h (1.34), "Exp", lines: +1 -38 terminal.c (1.9), "Exp", lines: +12 -309 Initial front-end formatting for -man pages. 2009-03-26 11:19 kristaps Changed: Makefile (1.159), "Exp", lines: +2 -2 Version (getting ready for abstracting term.c). 2009-03-26 11:16 kristaps Changed: Makefile (1.158), "Exp", lines: +1 -1 man.c (1.10), "Exp", lines: +14 -10 man_macro.c (1.8), "Exp", lines: +12 -9 Fixed inheritence of initial macro into man_macro. Removed warnxs from man_macro (man_vwarn). 2009-03-26 09:55 kristaps Changed: Makefile (1.157), "Exp", lines: +1 -1 man.7 (1.2), "Exp", lines: +19 -420 man.c (1.9), "Exp", lines: +17 -16 man_action.c (1.4), "Exp", lines: +15 -7 man_hash.c (1.3), "Exp", lines: +2 -2 man_validate.c (1.3), "Exp", lines: +4 -4 Fixed reading whitespace for man.7 `. TH'. Documented this. 2009-03-25 21:46 kristaps Changed: main.c (1.16), "Exp", lines: +20 -33 man.c (1.8), "Exp", lines: +2 -1 man_validate.c (1.2), "Exp", lines: +1 -2 term.h (1.33), "Exp", lines: +3 -3 terminal.c (1.8), "Exp", lines: +1 -17 [no log message] 2009-03-25 21:03 kristaps Changed: libman.h (1.6), "Exp", lines: +2 -1 main.c (1.15), "Exp", lines: +22 -7 man.c (1.7), "Exp", lines: +22 -10 man.h (1.5), "Exp", lines: +4 -2 Added pflags to man_alloc. Abstract fflags -> pflags in main.c. 2009-03-25 16:08 kristaps Changed: man_action.c (1.3), "Exp", lines: +4 -1 Linux fix (prototype). 2009-03-25 16:07 kristaps Changed: man.c (1.6), "Exp", lines: +3 -3 man.h (1.4), "Exp", lines: +3 -3 man_action.c (1.2), "Exp", lines: +74 -87 man_macro.c (1.7), "Exp", lines: +20 -7 Actions in place for prologue parsing. 2009-03-25 15:36 kristaps Deleted: action.c (1.52) Added: man_action.c (1.1) mdoc_action.c (1.1) Changed: Makefile (1.156), "Exp", lines: +11 -8 libman.h (1.5), "Exp", lines: +3 -1 man.c (1.5), "Exp", lines: +1 -8 man_macro.c (1.6), "Exp", lines: +22 -3 Added man_action.c, renamed mdoc_action.c. 2009-03-25 15:17 kristaps Deleted: validate.c (1.94) Added: man_validate.c (1.1) mdoc_validate.c (1.1) Changed: Makefile (1.155), "Exp", lines: +14 -9 libman.h (1.4), "Exp", lines: +5 -1 main.c (1.14), "Exp", lines: +34 -9 man.c (1.4), "Exp", lines: +40 -5 man.h (1.3), "Exp", lines: +8 -2 man_macro.c (1.5), "Exp", lines: +8 -3 Added man validator, renamed mdoc validator. 2009-03-25 11:39 kristaps Changed: Makefile (1.154), "Exp", lines: +1 -1 FreeBSD uses sha256 now. 2009-03-24 20:05 kristaps Changed: Makefile (1.153), "Exp", lines: +6 -4 Makefile.freebsd (1.2), "Exp", lines: +22 -22 index.sgml (1.15), "Exp", lines: +6 -6 More fixes from Ulrich Sporlein. (freebsd) 2009-03-24 10:59 kristaps Changed: index.sgml (1.14), "Exp", lines: +18 -17 manuals.7 (1.9), "Exp", lines: +3 -6 Updating web-site. 2009-03-24 10:28 kristaps Changed: index.sgml (1.13), "Exp", lines: +14 -24 style.css (1.2), "Exp", lines: +4 -0 Fixing web-site (had old references). 2009-03-23 21:47 kristaps Added: Makefile.freebsd (1.1) Added FreeBSD port Makefile. 2009-03-23 21:46 kristaps Changed: Makefile (1.152), "Exp", lines: +20 -1 index.sgml (1.12), "Exp", lines: +21 -5 Added FreeBSD port. 2009-03-23 21:20 kristaps Changed: Makefile (1.151), "Exp", lines: +1 -1 Bumped version (testing). 2009-03-23 21:20 kristaps Changed: Makefile (1.150), "Exp", lines: +1 -1 main.c (1.13), "Exp", lines: +2 -2 Fixed inclusion of MANSRCS (sorry, Ulrich). Added DragonFlyBSD __dead2. 2009-03-23 16:02 kristaps Added: man.7 (1.1) Changed: mandoc.1 (1.9), "Exp", lines: +3 -2 mdoc.7 (1.15), "Exp", lines: +3 -6 Initial documentation in place for man.7. 2009-03-23 15:41 kristaps Changed: libman.h (1.3), "Exp", lines: +2 -1 libmdoc.h (1.2), "Exp", lines: +2 -2 main.c (1.12), "Exp", lines: +4 -2 man.c (1.3), "Exp", lines: +8 -3 man_hash.c (1.2), "Exp", lines: +3 -1 man_macro.c (1.4), "Exp", lines: +12 -4 mandoc.1 (1.8), "Exp", lines: +43 -8 mdoc.c (1.72), "Exp", lines: +6 -11 mdoc_macro.c (1.2), "Exp", lines: +2 -5 -man linked to mandoc in documentation. 2009-03-23 15:20 kristaps Changed: Makefile (1.149), "Exp", lines: +2 -2 libman.h (1.2), "Exp", lines: +4 -17 main.c (1.11), "Exp", lines: +9 -10 man.c (1.2), "Exp", lines: +59 -91 man.h (1.2), "Exp", lines: +3 -8 man_macro.c (1.3), "Exp", lines: +93 -53 mdoc.c (1.71), "Exp", lines: +27 -21 term.h (1.32), "Exp", lines: +2 -1 terminal.c (1.7), "Exp", lines: +6 -2 tree.c (1.10), "Exp", lines: +59 -7 -man printing linked to -Ttree. 2009-03-23 14:31 kristaps Changed: action.c (1.51), "Exp", lines: +2 -1 argv.c (1.57), "Exp", lines: +3 -3 man_macro.c (1.2), "Exp", lines: +20 -20 Linux fixes. 2009-03-23 14:22 kristaps Deleted: hash.c (1.12) macro.c (1.78) private.h (1.92) Added: libman.h (1.1) libmdoc.h (1.1) man.c (1.1) man.h (1.1) man_hash.c (1.1) man_macro.c (1.1) mdoc_hash.c (1.1) mdoc_macro.c (1.1) Changed: Makefile (1.148), "Exp", lines: +67 -53 action.c (1.50), "Exp", lines: +9 -4 arch.c (1.2), "Exp", lines: +2 -2 argv.c (1.56), "Exp", lines: +12 -7 att.c (1.2), "Exp", lines: +2 -2 lib.c (1.2), "Exp", lines: +2 -2 main.c (1.10), "Exp", lines: +89 -103 mdoc.7 (1.14), "Exp", lines: +6 -1 mdoc.c (1.70), "Exp", lines: +19 -31 mdoc.h (1.53), "Exp", lines: +2 -2 msec.c (1.2), "Exp", lines: +2 -2 st.c (1.2), "Exp", lines: +2 -2 strings.c (1.32), "Exp", lines: +2 -2 term.h (1.31), "Exp", lines: +2 -2 validate.c (1.93), "Exp", lines: +2 -2 vol.c (1.2), "Exp", lines: +2 -2 xstd.c (1.13), "Exp", lines: +2 -11 First addition of -man macro support. Abstraction of mdoc. 2009-03-23 09:42 kristaps Changed: mandoc.1 (1.7), "Exp", lines: +27 -12 manuals.7 (1.8), "Exp", lines: +40 -0 mdoc.3 (1.23), "Exp", lines: +8 -5 term.c (1.69), "Exp", lines: +5 -3 More manual documentation fixed/improved. 2009-03-22 21:19 kristaps Changed: Makefile (1.147), "Exp", lines: +1 -1 manuals.7 (1.7), "Exp", lines: +3 -2 term.c (1.68), "Exp", lines: +38 -21 Fixed Bd -compact. Fixed vspace before Bd and Bl. 2009-03-22 20:55 kristaps Changed: manuals.7 (1.6), "Exp", lines: +4 -12 More manuals.7. 2009-03-22 19:14 kristaps Changed: Makefile (1.146), "Exp", lines: +2 -2 Backed-out STRIP_XO by default. 2009-03-22 19:10 kristaps Changed: Makefile (1.145), "Exp", lines: +1 -0 main.c (1.9), "Exp", lines: +3 -2 terminal.c (1.6), "Exp", lines: +5 -5 Lint fixes. 2009-03-22 19:08 kristaps Changed: Makefile (1.144), "Exp", lines: +2 -2 mandoc.1 (1.6), "Exp", lines: +1 -6 Removed Xo/Xc no-support notices. 2009-03-22 19:01 kristaps Changed: Makefile (1.143), "Exp", lines: +5 -1 macro.c (1.77), "Exp", lines: +8 -1 main.c (1.8), "Exp", lines: +82 -2 manuals.7 (1.5), "Exp", lines: +41 -61 Stripping of Xo/Xc macros in main.c (ifdef STRIP_XO). 2009-03-22 14:35 kristaps Changed: manuals.7 (1.4), "Exp", lines: +18 -13 More updates. 2009-03-22 14:28 kristaps Changed: manuals.7 (1.3), "Exp", lines: +30 -103 More manuals.7 updates. 2009-03-22 14:09 kristaps Changed: manuals.7 (1.2), "Exp", lines: +329 -32 Draft of manuals.7 for inspection. 2009-03-22 08:52 kristaps Added: manuals.7 (1.1) Changed: Makefile (1.142), "Exp", lines: +2 -2 mdoc.3 (1.22), "Exp", lines: +4 -1 mdoc.7 (1.13), "Exp", lines: +43 -8 More documentation clarification. 2009-03-21 21:09 kristaps Changed: action.c (1.49), "Exp", lines: +22 -61 argv.c (1.55), "Exp", lines: +2 -2 mandoc.1 (1.5), "Exp", lines: +11 -2 mdoc.3 (1.21), "Exp", lines: +21 -1 validate.c (1.92), "Exp", lines: +3 -2 Fixes to dynamic addition of Bl width. 2009-03-21 17:14 kristaps Changed: DESCR (1.4), "Exp", lines: +2 -2 Makefile.netbsd (1.3), "Exp", lines: +7 -6 Updated NetBSD pkgsrc to be like Joerg's. 2009-03-21 13:47 kristaps Changed: Makefile (1.141), "Exp", lines: +1 -1 ascii.in (1.5), "Exp", lines: +2 -1 mdoc.7 (1.12), "Exp", lines: +2 -2 strings.c (1.31), "Exp", lines: +3 -1 term.c (1.67), "Exp", lines: +3 -3 validate.c (1.91), "Exp", lines: +2 -2 Freed more macros from zero-length restrictions. Fixed `Fn' spacing. 2009-03-21 13:37 kristaps Changed: Makefile (1.140), "Exp", lines: +1 -1 Versioning. 2009-03-21 13:37 kristaps Changed: mdoc.7 (1.11), "Exp", lines: +6 -6 validate.c (1.90), "Exp", lines: +5 -5 More macros freed from unnecessary limitations on numargs. 2009-03-21 13:26 kristaps Changed: term.c (1.66), "Exp", lines: +3 -3 Handling -width="" in lists. 2009-03-21 13:21 kristaps Changed: Makefile (1.139), "Exp", lines: +1 -1 Versioning up. 2009-03-21 13:09 kristaps Changed: mandoc.1 (1.4), "Exp", lines: +40 -5 mdoc.h (1.52), "Exp", lines: +1 -3 private.h (1.91), "Exp", lines: +2 -1 term.c (1.65), "Exp", lines: +35 -14 terminal.c (1.5), "Exp", lines: +112 -53 validate.c (1.89), "Exp", lines: +2 -2 `Em' accepts empty tokens. Punctuation fully fixed (per-reserved-word). Sm enabled. 2009-03-21 09:50 tag VERSION_1_6_5 2009-03-21 09:50 kristaps Changed: Makefile.netbsd (1.2), "Exp", lines: +1 -1 Makefile.openbsd (1.3), "Exp", lines: +1 -1 index.sgml (1.11), "Exp", lines: +3 -3 Category devel -> textproc. 2009-03-21 09:48 kristaps Changed: action.c (1.48), "Exp", lines: +7 -4 term.h (1.30), "Exp", lines: +2 -2 validate.c (1.88), "Exp", lines: +3 -2 Lint fixes. 2009-03-21 09:45 kristaps Changed: Makefile (1.138), "Exp", lines: +2 -2 Versioning up. 2009-03-21 09:42 kristaps Changed: action.c (1.47), "Exp", lines: +2 -1 argv.c (1.54), "Exp", lines: +2 -1 macro.c (1.76), "Exp", lines: +2 -1 mdoc.c (1.69), "Exp", lines: +3 -2 mdoc.h (1.51), "Exp", lines: +3 -2 term.c (1.64), "Exp", lines: +2 -1 validate.c (1.87), "Exp", lines: +2 -1 Added %Q macro. 2009-03-21 09:30 kristaps Changed: macro.c (1.75), "Exp", lines: +6 -10 Fixed new partial-imp closure (wasn't action-ing closed scopes). 2009-03-21 09:20 kristaps Changed: macro.c (1.74), "Exp", lines: +45 -18 Explicit-scope can break some implicit partial-block (Oc -> Op). 2009-03-20 22:01 kristaps Changed: terminal.c (1.4), "Exp", lines: +7 -16 Removed margin-break comment. 2009-03-20 21:58 kristaps Changed: ascii.c (1.4), "Exp", lines: +1 -2 main.c (1.7), "Exp", lines: +3 -3 Lintification. 2009-03-20 21:29 kristaps Changed: main.c (1.6), "Exp", lines: +6 -6 Casting fix. 2009-03-20 19:56 kristaps Changed: Makefile (1.137), "Exp", lines: +1 -1 action.c (1.46), "Exp", lines: +17 -5 main.c (1.5), "Exp", lines: +58 -48 strings.c (1.30), "Exp", lines: +3 -1 Proper .Dl literalism. 2009-03-20 16:43 kristaps Changed: Makefile (1.136), "Exp", lines: +1 -1 action.c (1.45), "Exp", lines: +8 -7 term.c (1.63), "Exp", lines: +2 -1 Fixed literal-formatting error with `Dl'. 2009-03-20 15:14 tag VERSION_1_6_2 2009-03-20 15:14 kristaps Changed: Makefile (1.135), "Exp", lines: +2 -2 action.c (1.44), "Exp", lines: +319 -286 ascii.c (1.3), "Exp", lines: +4 -4 mandoc.1 (1.3), "Exp", lines: +2 -2 mdoc.3 (1.20), "Exp", lines: +22 -9 mdoc.7 (1.10), "Exp", lines: +18 -2 mdoc.c (1.68), "Exp", lines: +42 -9 private.h (1.90), "Exp", lines: +4 -2 term.c (1.62), "Exp", lines: +127 -114 term.h (1.29), "Exp", lines: +12 -12 terminal.c (1.3), "Exp", lines: +40 -35 validate.c (1.86), "Exp", lines: +20 -13 Support for `Bd' of all types (see mdoc.7 for newline/tab rules). Renamed term.c and terminal.c functions to be term_. Some bugfixes to lists. 2009-03-19 20:43 kristaps Changed: ascii.in (1.4), "Exp", lines: +33 -1 mdoc.7 (1.9), "Exp", lines: +67 -7 Finished all symbols. 2009-03-19 18:30 kristaps Changed: ascii.in (1.3), "Exp", lines: +8 -1 main.c (1.4), "Exp", lines: +25 -11 mandoc.1 (1.2), "Exp", lines: +4 -2 mdoc.7 (1.8), "Exp", lines: +15 -1 Fixed mandoc read from stdin. Added some more groff_chars. 2009-03-19 16:40 kristaps Changed: Makefile (1.134), "Exp", lines: +4 -4 compat.c (1.4), "Exp", lines: +2 -3 main.c (1.3), "Exp", lines: +8 -1 terminal.c (1.2), "Exp", lines: +6 -1 xstd.c (1.12), "Exp", lines: +6 -1 Some Linux-isms. 2009-03-19 16:23 kristaps Deleted: mmain.c (1.16) mmain.h (1.7) Pruned mmain. 2009-03-19 16:20 kristaps Changed: tree.c (1.9), "Exp", lines: +2 -1 NetBSD lintified. 2009-03-19 16:18 kristaps Changed: Makefile (1.133), "Exp", lines: +1 -1 main.c (1.2), "Exp", lines: +2 -1 Lintified & versioned. 2009-03-19 16:17 kristaps Deleted: mdoclint.1 (1.6) mdoclint.c (1.5) mdocterm.1 (1.27) mdocterm.c (1.50) mdoctree.1 (1.8) mdoctree.c (1.9) Added: main.c (1.1) mandoc.1 (1.1) terminal.c (1.1) Changed: Makefile (1.132), "Exp", lines: +35 -41 term.h (1.28), "Exp", lines: +8 -1 tree.c (1.8), "Exp", lines: +36 -31 Split mdocterm.c -> main.c terminal.c. Abstracted output with -T selector (default ascii). Name change: mdocterm -> mandoc. Re-imported tree with -Ttree. 2009-03-19 11:49 kristaps Changed: Makefile (1.131), "Exp", lines: +35 -99 ascii.in (1.2), "Exp", lines: +47 -3 mdoc.7 (1.7), "Exp", lines: +113 -13 mdoc.c (1.67), "Exp", lines: +31 -4 mdoc.h (1.50), "Exp", lines: +3 -3 mdocterm.1 (1.26), "Exp", lines: +9 -62 mdocterm.c (1.49), "Exp", lines: +379 -175 mmain.c (1.15), "Exp", lines: +10 -67 term.h (1.27), "Exp", lines: +10 -12 Many more ASCII escapes added. Stripped nroff punt from mdocterm.c. Fixed multiple-file handling for mdocterm.c. Cleared up mdoc.h API. 2009-03-17 13:35 kristaps Changed: ascii.c (1.2), "Exp", lines: +37 -10 mdocterm.c (1.48), "Exp", lines: +2 -1 term.h (1.26), "Exp", lines: +2 -1 Clean up ASCII table's memory. 2009-03-17 09:33 tag VERSION_1_5_3 2009-03-17 09:33 kristaps Changed: Makefile (1.130), "Exp", lines: +1 -1 [no log message] 2009-03-17 08:57 kristaps Changed: Makefile (1.129), "Exp", lines: +2 -1 Added previous GEN files to SRCS. 2009-03-17 00:40 kristaps Changed: mdocterm.1 (1.25), "Exp", lines: +2 -2 Mandoc fix. 2009-03-16 23:37 kristaps Changed: Makefile (1.128), "Exp", lines: +2 -2 action.c (1.43), "Exp", lines: +3 -2 argv.c (1.53), "Exp", lines: +3 -2 hash.c (1.11), "Exp", lines: +2 -2 macro.c (1.73), "Exp", lines: +3 -2 mdoc.3 (1.19), "Exp", lines: +3 -3 mdoc.7 (1.6), "Exp", lines: +23 -5 mdoc.c (1.66), "Exp", lines: +3 -3 mdoc.h (1.49), "Exp", lines: +3 -2 mdoclint.1 (1.5), "Exp", lines: +3 -3 mdoclint.c (1.4), "Exp", lines: +2 -2 mdocterm.1 (1.24), "Exp", lines: +3 -3 mdocterm.c (1.47), "Exp", lines: +2 -2 mdoctree.1 (1.7), "Exp", lines: +3 -3 mdoctree.c (1.8), "Exp", lines: +2 -2 mmain.c (1.14), "Exp", lines: +2 -2 term.c (1.61), "Exp", lines: +14 -2 validate.c (1.85), "Exp", lines: +3 -2 xstd.c (1.11), "Exp", lines: +2 -2 Changed e-mail address to @openbsd. Cleaned up manual-page documentation. 2009-03-16 22:19 kristaps Deleted: strings.sh (1.4) Added: arch.c (1.1) ascii.c (1.1) ascii.in (1.1) att.c (1.1) lib.c (1.1) msec.c (1.1) st.c (1.1) vol.c (1.1) Changed: Makefile (1.127), "Exp", lines: +19 -122 action.c (1.42), "Exp", lines: +6 -3 arch.in (1.3), "Exp", lines: +53 -33 argv.c (1.52), "Exp", lines: +25 -39 att.in (1.3), "Exp", lines: +38 -20 lib.in (1.3), "Exp", lines: +58 -39 macro.c (1.72), "Exp", lines: +381 -463 mdoc.3 (1.18), "Exp", lines: +5 -2 mdoc.7 (1.5), "Exp", lines: +184 -99 mdoc.c (1.65), "Exp", lines: +7 -6 mdoc.h (1.48), "Exp", lines: +4 -4 mdocterm.1 (1.23), "Exp", lines: +13 -124 mdocterm.c (1.46), "Exp", lines: +12 -160 mmain.c (1.13), "Exp", lines: +2 -9 mmain.h (1.6), "Exp", lines: +2 -14 msec.in (1.3), "Exp", lines: +41 -23 private.h (1.89), "Exp", lines: +3 -1 st.in (1.3), "Exp", lines: +47 -44 term.c (1.60), "Exp", lines: +3 -1 term.h (1.25), "Exp", lines: +21 -69 validate.c (1.84), "Exp", lines: +32 -29 vol.in (1.3), "Exp", lines: +36 -19 xstd.c (1.10), "Exp", lines: +1 -85 Fixed mdoc_phrase escape handling. Added MDOC_IGNDELIM (Pf, soon Li, etc.). macro_constant_delimited ignargs -> argv.c parsing. Renamed macro functions to correspond to ontologies. `Fo' and `St' made callable (compat documented). strings.sh deprecated (directly using CPP). Abstracted ASCII translation into ascii.{c,in}. ASCII table uses a self-reordering chained hashtable. Removed old regressions. 2009-03-16 22:04 kristaps Deleted: regress/test.argv.00 (1.2) regress/test.argv.01 (1.2) regress/test.argv.02 (1.2) regress/test.empty (1.2) regress/test.escape.00 (1.2) regress/test.escape.01 (1.2) regress/test.escape.02 (1.2) regress/test.escape.03 (1.2) regress/test.escape.04 (1.2) regress/test.escape.05 (1.2) regress/test.escape.06 (1.2) regress/test.escape.07 (1.2) regress/test.escape.08 (1.2) regress/test.escape.09 (1.2) regress/test.escape.10 (1.2) regress/test.escape.11 (1.2) regress/test.escape.12 (1.2) regress/test.escape.13 (1.2) regress/test.escape.14 (1.2) regress/test.list.00 (1.2) regress/test.list.01 (1.2) regress/test.list.02 (1.2) regress/test.list.03 (1.2) regress/test.list.04 (1.2) regress/test.list.05 (1.3) regress/test.list.06 (1.2) regress/test.list.07 (1.2) regress/test.name.00 (1.2) regress/test.name.01 (1.2) regress/test.name.02 (1.2) regress/test.name.03 (1.2) regress/test.prologue.00 (1.2) regress/test.prologue.01 (1.2) regress/test.prologue.02 (1.2) regress/test.prologue.03 (1.2) regress/test.prologue.04 (1.2) regress/test.prologue.05 (1.3) regress/test.prologue.06 (1.2) regress/test.prologue.07 (1.3) regress/test.prologue.08 (1.3) regress/test.prologue.09 (1.3) regress/test.prologue.10 (1.3) regress/test.prologue.11 (1.3) regress/test.prologue.12 (1.3) regress/test.prologue.13 (1.3) regress/test.prologue.14 (1.3) regress/test.prologue.15 (1.2) regress/test.prologue.16 (1.2) regress/test.prologue.17 (1.3) regress/test.prologue.18 (1.2) regress/test.prologue.19 (1.2) regress/test.prologue.20 (1.3) regress/test.prologue.21 (1.2) regress/test.prologue.22 (1.2) regress/test.prologue.23 (1.2) regress/test.prologue.24 (1.2) regress/test.prologue.25 (1.2) regress/test.prologue.26 (1.2) regress/test.prologue.27 (1.2) regress/test.prologue.28 (1.2) regress/test.prologue.29 (1.2) regress/test.prologue.30 (1.2) regress/test.prologue.31 (1.2) regress/test.prologue.32 (1.2) regress/test.prologue.33 (1.2) regress/test.sh.00 (1.2) regress/test.sh.01 (1.2) regress/test.sh.02 (1.2) regress/test.sh.03 (1.2) Deprecated old regression tests. 2009-03-15 10:34 tag VERSION_1_5_1 2009-03-15 10:34 kristaps Changed: mdocterm.1 (1.22), "Exp", lines: +3 -5 mdocterm.c (1.45), "Exp", lines: +6 -57 term.h (1.24), "Exp", lines: +2 -14 Backed out all ANSI code. 2009-03-15 07:30 kristaps Changed: Makefile (1.126), "Exp", lines: +1 -1 Fixed version string (no leading zero). 2009-03-15 07:18 kristaps Changed: mdocterm.c (1.44), "Exp", lines: +2 -2 getsubopt index fix. 2009-03-15 07:08 kristaps Changed: Makefile (1.125), "Exp", lines: +2 -2 mdoclint.1 (1.4), "Exp", lines: +6 -3 mdoclint.c (1.3), "Exp", lines: +12 -7 mdocterm.1 (1.21), "Exp", lines: +55 -17 mdocterm.c (1.43), "Exp", lines: +135 -25 mdoctree.c (1.7), "Exp", lines: +12 -6 mmain.c (1.12), "Exp", lines: +67 -30 mmain.h (1.5), "Exp", lines: +9 -5 term.h (1.23), "Exp", lines: +3 -2 mdoclint accepts multiple files mdocterm punts to nroff if it fails parsing 2009-03-14 12:35 kristaps Changed: Makefile (1.124), "Exp", lines: +1 -1 mdocterm.1 (1.20), "Exp", lines: +17 -26 mdocterm.c (1.42), "Exp", lines: +100 -52 term.c (1.59), "Exp", lines: +11 -11 term.h (1.22), "Exp", lines: +22 -17 Added colour styles (not being used) to struct termp. Added nroff style-escape encoding. Removed ANSI schema string tables (there's only ANSI and nroff/backspace). Pushed styling directly into pword (simpler). 2009-03-14 05:36 kristaps Changed: Makefile (1.123), "Exp", lines: +2 -2 mdocterm.c (1.41), "Exp", lines: +3 -2 strings.c (1.29), "Exp", lines: +3 -1 term.h (1.21), "Exp", lines: +3 -2 Bumped version. Added \| (non-breaking space, like \&). Fixed termsym (TERMSYM_ALL). 2009-03-14 05:21 kristaps Changed: argv.c (1.51), "Exp", lines: +4 -4 mdoc.3 (1.17), "Exp", lines: +32 -169 mdoc.7 (1.4), "Exp", lines: +128 -44 mdoc.3 refers to local mdoc.7. mdoc.7 includes its compatibility with system-dependent roff installations. 2009-03-13 14:17 kristaps Changed: Makefile (1.122), "Exp", lines: +8 -8 Makefile.openbsd (1.2), "Exp", lines: +0 -2 Removed "regression" for OpenBSD (broken). Added mdoc.7 to include-in-dist hook. 2009-03-13 13:56 kristaps Changed: mdoc.7 (1.3), "Exp", lines: +81 -71 validate.c (1.83), "Exp", lines: +5 -7 Finished initial mdoc.7. 2009-03-13 09:08 kristaps Changed: mdoc.7 (1.2), "Exp", lines: +171 -111 Updating mdoc.7. 2009-03-13 07:46 kristaps Added: mdoc.7 (1.1) Changed: mdocterm.1 (1.19), "Exp", lines: +3 -1 strings.c (1.28), "Exp", lines: +3 -1 term.c (1.58), "Exp", lines: +6 -2 Added canonical mdoc.7. Added \q macro. 2009-03-12 23:05 kristaps Changed: Makefile (1.121), "Exp", lines: +1 -1 macro.c (1.71), "Exp", lines: +8 -8 mdoc.3 (1.16), "Exp", lines: +17 -7 Made syste-name macros callable (At, Bsx, etc.). 2009-03-12 16:30 kristaps Changed: Makefile (1.120), "Exp", lines: +1 -1 action.c (1.41), "Exp", lines: +8 -7 argv.c (1.50), "Exp", lines: +7 -17 macro.c (1.70), "Exp", lines: +3 -4 mdoc.3 (1.15), "Exp", lines: +20 -1 mdoc.c (1.64), "Exp", lines: +6 -4 mdoc.h (1.47), "Exp", lines: +5 -3 term.c (1.57), "Exp", lines: +3 -1 validate.c (1.82), "Exp", lines: +8 -6 Added -nested (doesn't do anything). Added .%C. .Cd is now callable. Added .Rv -std. 2009-03-12 15:55 kristaps Changed: Makefile (1.119), "Exp", lines: +2 -2 mdoc.3 (1.14), "Exp", lines: +40 -45 mdoc.c (1.63), "Exp", lines: +14 -2 term.c (1.56), "Exp", lines: +3 -1 NetBSD '.[[:whitespace:]]*' properly handled. mdoc.3 indicates compatibilities and bugs. 2009-03-12 06:38 kristaps Changed: macro.c (1.69), "Exp", lines: +2 -3 Delimiters added to columns. 2009-03-12 06:33 kristaps Changed: Makefile (1.118), "Exp", lines: +2 -2 Version up. 2009-03-12 06:32 kristaps Changed: macro.c (1.68), "Exp", lines: +34 -13 mdocterm.c (1.40), "Exp", lines: +3 -3 term.c (1.55), "Exp", lines: +2 -2 validate.c (1.81), "Exp", lines: +4 -6 Removed segfault with empty word. Initial "full" -column support. 2009-03-12 02:57 kristaps Changed: argv.c (1.49), "Exp", lines: +5 -3 macro.c (1.67), "Exp", lines: +75 -38 mdoc.c (1.62), "Exp", lines: +1 -3 mdocterm.1 (1.18), "Exp", lines: +3 -3 term.c (1.54), "Exp", lines: +129 -77 validate.c (1.80), "Exp", lines: +3 -3 Brq/Bro/Brc fixed up and pretty. Cleaned up Aq/Sq use of escapes in term.c. Added initial -column support. Fixed argv returning ARGV_WORD and tokenising anyway. 2009-03-11 00:41 kristaps Changed: Makefile (1.117), "Exp", lines: +2 -2 Versioning up. 2009-03-11 00:39 kristaps Changed: action.c (1.40), "Exp", lines: +4 -1 argv.c (1.48), "Exp", lines: +4 -1 hash.c (1.10), "Exp", lines: +49 -16 macro.c (1.66), "Exp", lines: +12 -1 mdoc.c (1.61), "Exp", lines: +3 -2 mdoc.h (1.46), "Exp", lines: +5 -2 mdocterm.1 (1.17), "Exp", lines: +5 -1 mdocterm.c (1.39), "Exp", lines: +5 -1 term.c (1.53), "Exp", lines: +35 -3 term.h (1.20), "Exp", lines: +4 -2 validate.c (1.79), "Exp", lines: +4 -1 Expanded perfect htab to use 27 * 26 * 3 space. Added Brq, Bro and Brc macros. Added lbrace and rbrace to special characters. Fixed spacing in braces. 2009-03-10 21:27 kristaps Changed: argv.c (1.47), "Exp", lines: +7 -4 Made sure saved value is initialised. 2009-03-10 15:01 kristaps Changed: Makefile (1.116), "Exp", lines: +2 -2 argv.c (1.46), "Exp", lines: +13 -4 macro.c (1.65), "Exp", lines: +9 -3 Bug-fix in mdoc_argv. Added some documentation to macro.c. Version-up. 2009-03-10 11:16 kristaps Changed: mdocterm.c (1.38), "Exp", lines: +117 -1 term.c (1.52), "Exp", lines: +5 -37 Added regular-form sanity check in mdocterm. 2009-03-10 10:20 kristaps Changed: hash.c (1.9), "Exp", lines: +8 -5 Fixed hash lookup regression. 2009-03-09 14:20 kristaps Changed: Makefile (1.115), "Exp", lines: +1 -1 Versioning up. 2009-03-09 14:19 kristaps Changed: action.c (1.39), "Exp", lines: +3 -1 argv.c (1.45), "Exp", lines: +4 -2 macro.c (1.64), "Exp", lines: +3 -1 mdoc.c (1.60), "Exp", lines: +2 -2 mdoc.h (1.45), "Exp", lines: +4 -2 term.c (1.51), "Exp", lines: +51 -3 validate.c (1.78), "Exp", lines: +6 -1 Added `Mt' and `Lk' macros (NetBSD). 2009-03-09 13:35 tag VERSION_1_4_6 2009-03-09 13:35 kristaps Changed: Makefile (1.114), "Exp", lines: +1 -1 mdoc.c (1.59), "Exp", lines: +3 -3 mmain.c (1.11), "Exp", lines: +6 -5 Fixed valgrind issues. 2009-03-09 13:17 tag VERSION_1_4_5 2009-03-09 13:17 kristaps Changed: Makefile (1.113), "Exp", lines: +5 -2 action.c (1.38), "Exp", lines: +1 -2 argv.c (1.44), "Exp", lines: +3 -1 macro.c (1.63), "Exp", lines: +3 -6 mdoc.h (1.44), "Exp", lines: +3 -1 mdocterm.c (1.37), "Exp", lines: +3 -4 strings.c (1.27), "Exp", lines: +3 -4 term.c (1.50), "Exp", lines: +3 -1 validate.c (1.77), "Exp", lines: +3 -1 Easier integration into FreeBSD (sys/types.h, time.h, etc.). 2009-03-09 13:04 tag VERSION_1_4_4 2009-03-09 13:04 kristaps Changed: Makefile (1.112), "Exp", lines: +2 -2 mdoc.c (1.58), "Exp", lines: +21 -6 mdoc.h (1.43), "Exp", lines: +2 -1 mdoclint.1 (1.3), "Exp", lines: +18 -1 mdocterm.1 (1.16), "Exp", lines: +18 -1 mdoctree.1 (1.6), "Exp", lines: +24 -1 mmain.c (1.10), "Exp", lines: +35 -15 Added "Input Encoding" section to mdoc*.1. Newline-escaped lines are concatenated. Added -fign-macro option. 2009-03-08 20:57 kristaps Changed: action.c (1.37), "Exp", lines: +2 -1 argv.c (1.43), "Exp", lines: +2 -1 macro.c (1.62), "Exp", lines: +2 -1 mdoc.c (1.57), "Exp", lines: +3 -2 mdoc.h (1.42), "Exp", lines: +3 -2 term.c (1.49), "Exp", lines: +2 -1 validate.c (1.76), "Exp", lines: +2 -1 Added `Lp' macro. 2009-03-08 20:50 kristaps Changed: action.c (1.36), "Exp", lines: +2 -1 argv.c (1.42), "Exp", lines: +2 -1 macro.c (1.61), "Exp", lines: +4 -1 mdoc.c (1.56), "Exp", lines: +2 -2 mdoc.h (1.41), "Exp", lines: +3 -2 term.c (1.48), "Exp", lines: +15 -1 validate.c (1.75), "Exp", lines: +2 -1 Added .Ap. 2009-03-08 20:29 kristaps Changed: hash.c (1.8), "Exp", lines: +7 -8 Small speed-ups in hash lookup. 2009-03-08 19:48 tag VERSION_1_4_2 2009-03-08 19:48 kristaps Changed: Makefile (1.111), "Exp", lines: +5 -2 Bumping version... 2009-03-08 19:47 kristaps Changed: private.h (1.88), "Exp", lines: +1 -11 xstd.c (1.9), "Exp", lines: +1 -8 Removed some unnecesary functions. 2009-03-08 19:38 kristaps Changed: term.c (1.47), "Exp", lines: +24 -3 Front-end handling of `Lb'. 2009-03-08 19:32 kristaps Changed: Makefile (1.110), "Exp", lines: +1 -1 macro.c (1.60), "Exp", lines: +2 -2 mmain.c (1.9), "Exp", lines: +4 -4 strings.sh (1.3), "Exp", lines: +9 -6 Fixed strings.sh to work with NetBSD. Fixed various lint warnings. 2009-03-08 19:28 kristaps Changed: private.h (1.87), "Exp", lines: +2 -2 Fix left-over prototype. 2009-03-08 18:50 kristaps Changed: mmain.c (1.8), "Exp", lines: +20 -26 Removed static limitation of buffer size. 2009-03-08 18:02 kristaps Changed: macro.c (1.59), "Exp", lines: +57 -11 mdoc.c (1.55), "Exp", lines: +3 -3 mdoc.h (1.40), "Exp", lines: +6 -3 mdoclint.1 (1.2), "Exp", lines: +32 -12 mdocterm.1 (1.15), "Exp", lines: +39 -12 mdocterm.c (1.36), "Exp", lines: +21 -8 mdoctree.1 (1.5), "Exp", lines: +33 -12 mmain.c (1.7), "Exp", lines: +9 -4 validate.c (1.74), "Exp", lines: +7 -2 Updated manuals. Added -fign-scope and -fign-escape. 2009-03-08 14:01 kristaps Changed: Makefile (1.109), "Exp", lines: +2 -2 mdoctree.c (1.6), "Exp", lines: +11 -7 term.c (1.46), "Exp", lines: +2 -2 Bumped minor-number. All sources converted to new schema. 2009-03-08 13:57 kristaps Changed: term.c (1.45), "Exp", lines: +3 -3 Segmentation-fault fix in mdocterm. 2009-03-08 13:52 kristaps Changed: mdoc.h (1.39), "Exp", lines: +3 -1 mdocterm.c (1.35), "Exp", lines: +2 -2 term.c (1.44), "Exp", lines: +94 -88 mdocterm now using new API. 2009-03-08 13:01 kristaps Changed: action.c (1.35), "Exp", lines: +2 -4 Memory-corruption fix. 2009-03-08 12:46 kristaps Changed: argv.c (1.41), "Exp", lines: +4 -1 Fixed null-pointer dereference. 2009-03-08 12:40 kristaps Changed: action.c (1.34), "Exp", lines: +8 -8 argv.c (1.40), "Exp", lines: +16 -11 mdoc.c (1.54), "Exp", lines: +3 -1 validate.c (1.73), "Exp", lines: +4 -4 Memory fixes in new dynamic schema. 2009-03-08 11:48 kristaps Changed: validate.c (1.72), "Exp", lines: +2 -2 Printing invalid escape sequences. 2009-03-08 11:41 kristaps Changed: action.c (1.33), "Exp", lines: +131 -62 argv.c (1.39), "Exp", lines: +165 -151 hash.c (1.7), "Exp", lines: +6 -1 macro.c (1.58), "Exp", lines: +42 -104 mdoc.c (1.53), "Exp", lines: +106 -200 mdoc.h (1.38), "Exp", lines: +21 -33 mmain.c (1.6), "Exp", lines: +30 -5 private.h (1.86), "Exp", lines: +7 -15 validate.c (1.71), "Exp", lines: +337 -288 xstd.c (1.8), "Exp", lines: +2 -2 BROKEN CHECK-IN. Wide-ranging updates. Removed libmdoc internal argv limit (all dynamic). Removed "data" union in mdoc_node (to be selectively re-added). 2009-03-06 14:24 kristaps Changed: action.c (1.32), "Exp", lines: +7 -5 arch.in (1.2), "Exp", lines: +8 -0 att.in (1.2), "Exp", lines: +8 -0 lib.in (1.2), "Exp", lines: +8 -0 msec.in (1.2), "Exp", lines: +8 -0 st.in (1.2), "Exp", lines: +8 -0 strings.sh (1.2), "Exp", lines: +4 -1 validate.c (1.70), "Exp", lines: +3 -2 vol.in (1.2), "Exp", lines: +8 -0 Documented the strings script. 2009-03-06 14:13 kristaps Deleted: README.addescape (1.2) README.addmacro (1.2) README.addregress (1.2) Added: arch.in (1.1) att.in (1.1) lib.in (1.1) msec.in (1.1) st.in (1.1) strings.sh (1.1) vol.in (1.1) Changed: Makefile (1.108), "Exp", lines: +60 -17 action.c (1.31), "Exp", lines: +119 -87 argv.c (1.38), "Exp", lines: +5 -118 macro.c (1.57), "Exp", lines: +52 -21 mdoc.c (1.52), "Exp", lines: +8 -62 mdoc.h (1.37), "Exp", lines: +37 -157 mdoclint.c (1.2), "Exp", lines: +5 -3 mdocterm.1 (1.14), "Exp", lines: +2 -2 mdocterm.c (1.34), "Exp", lines: +17 -61 mdoctree.c (1.5), "Exp", lines: +6 -4 mmain.c (1.5), "Exp", lines: +8 -5 private.h (1.85), "Exp", lines: +5 -6 strings.c (1.26), "Exp", lines: +42 -575 term.c (1.43), "Exp", lines: +26 -12 validate.c (1.69), "Exp", lines: +181 -117 xstd.c (1.7), "Exp", lines: +2 -2 regress/test.prologue.13 (1.2), "Exp", lines: +1 -1 Strings abstracted into dynamically-created C files. Added -V option. Deprecated README files. 2009-03-05 13:15 kristaps Added: regress/test.argv.02 (1.1) Added another regression test. 2009-03-05 13:12 kristaps Changed: Makefile (1.107), "Exp", lines: +3 -2 action.c (1.30), "Exp", lines: +29 -9 argv.c (1.37), "Exp", lines: +28 -14 mdoc.c (1.51), "Exp", lines: +4 -3 mdocterm.c (1.33), "Exp", lines: +6 -6 strings.c (1.25), "Exp", lines: +7 -7 term.c (1.42), "Exp", lines: +2 -6 validate.c (1.68), "Exp", lines: +46 -4 Cleaned up ctype functions (netbsd). Fixed .Ex/.Rv -std usage. Made Ar provide default value. 2009-03-05 12:08 kristaps Added: regress/test.argv.00 (1.1) regress/test.argv.01 (1.1) Changed: Makefile (1.106), "Exp", lines: +4 -2 action.c (1.29), "Exp", lines: +36 -5 argv.c (1.36), "Exp", lines: +152 -15 macro.c (1.56), "Exp", lines: +6 -1 Added argv regression tests. Table-ised argument flags in argv.c. 2009-03-04 14:41 kristaps Changed: Makefile (1.105), "Exp", lines: +2 -2 mdocterm.c (1.32), "Exp", lines: +11 -8 term.c (1.41), "Exp", lines: +7 -1 term.h (1.19), "Exp", lines: +2 -1 -tag, if followed by empty body, doesn't newline. Versioning up. 2009-03-04 14:13 kristaps Changed: mdocterm.1 (1.13), "Exp", lines: +12 -8 mdocterm.c (1.31), "Exp", lines: +6 -2 term.c (1.40), "Exp", lines: +3 -3 term.h (1.18), "Exp", lines: +4 -2 Fixed some character-escapes. 2009-03-04 14:04 kristaps Changed: mdocterm.c (1.30), "Exp", lines: +2 -2 Proper fix to NOBREAK margins (oops). 2009-03-04 13:57 kristaps Changed: mdocterm.1 (1.12), "Exp", lines: +5 -1 mdocterm.c (1.29), "Exp", lines: +3 -4 term.c (1.39), "Exp", lines: +174 -134 term.h (1.17), "Exp", lines: +1 -3 validate.c (1.67), "Exp", lines: +3 -1 Considerably cleaned up list handling. 2009-03-03 22:28 kristaps Changed: Makefile (1.104), "Exp", lines: +2 -2 argv.c (1.35), "Exp", lines: +14 -6 term.c (1.38), "Exp", lines: +3 -2 -diag fixed (allows quoted parameters) Versioned up. 2009-03-03 22:17 kristaps Changed: mdocterm.1 (1.11), "Exp", lines: +3 -3 mdocterm.c (1.28), "Exp", lines: +3 -6 term.c (1.37), "Exp", lines: +69 -11 term.h (1.16), "Exp", lines: +3 -1 -inset and -diag lists now supported. 2009-03-03 21:07 kristaps Added: README.addescape (1.1) Changed: mdocterm.1 (1.10), "Exp", lines: +31 -11 mdocterm.c (1.27), "Exp", lines: +93 -107 term.h (1.15), "Exp", lines: +10 -1 Character-escape addition simplified (see README.addescape, also added). 2009-03-02 17:29 kristaps Changed: mdocterm.1 (1.9), "Exp", lines: +20 -1 mdocterm.c (1.26), "Exp", lines: +17 -36 term.c (1.36), "Exp", lines: +3 -2 Noted lacking areas in mdocterm.1. Put styles into symtab (for real this time). 2009-03-02 17:14 kristaps Added: regress/test.escape.13 (1.1) regress/test.escape.14 (1.1) Changed: Makefile (1.103), "Exp", lines: +4 -2 mdoc.c (1.50), "Exp", lines: +17 -6 mdocterm.c (1.25), "Exp", lines: +452 -382 strings.c (1.24), "Exp", lines: +6 -1 term.c (1.35), "Exp", lines: +43 -15 term.h (1.14), "Exp", lines: +48 -2 validate.c (1.66), "Exp", lines: +2 -2 Added new old escape sequence \*[nn]. Initial correct .Bd support (still only text in literal displays). Symbols put into tables (character-encoding). 2009-03-02 12:09 kristaps Changed: mdoc.h (1.36), "Exp", lines: +2 -1 mdocterm.c (1.24), "Exp", lines: +34 -4 strings.c (1.23), "Exp", lines: +6 -1 term.c (1.34), "Exp", lines: +7 -5 term.h (1.13), "Exp", lines: +3 -1 Support for maxrmargin-breaking with TERMP_NOBREAK. Tabs auto-converted to spaces. 2009-03-01 23:27 tag VERSION_1_3_15 2009-03-01 23:27 kristaps Changed: term.c (1.33), "Exp", lines: +2 -1 Cd breaks line properly. 2009-03-01 23:25 kristaps Changed: Makefile (1.102), "Exp", lines: +2 -2 Versioning up. 2009-03-01 23:23 kristaps Changed: mdocterm.c (1.23), "Exp", lines: +4 -6 Removed isspace assertion (is handled by pad). 2009-03-01 23:14 kristaps Changed: action.c (1.28), "Exp", lines: +3 -7 mdoc.c (1.49), "Exp", lines: +7 -2 term.c (1.32), "Exp", lines: +3 -6 Backed-out warning about Ds. Backed-out assertion about Bd subtypes. 2009-03-01 20:17 kristaps Changed: Makefile (1.101), "Exp", lines: +23 -23 Backing-out DESTDIR. 2009-03-01 20:07 kristaps Changed: Makefile (1.100), "Exp", lines: +1 -1 Versioning up. 2009-03-01 20:05 kristaps Changed: Makefile (1.99), "Exp", lines: +33 -22 Applying Joerg Sonnenberger's patch. 2009-03-01 13:09 tag VERSION_1_3_13 2009-03-01 13:09 kristaps Changed: Makefile (1.98), "Exp", lines: +2 -2 Versioning up. 2009-03-01 13:06 kristaps Changed: mdocterm.c (1.22), "Exp", lines: +26 -15 term.c (1.31), "Exp", lines: +37 -42 term.h (1.12), "Exp", lines: +3 -3 Fixed TERMP_NOBREAK and line overruns. Fixed TERMP_SETFLAGS and current-flag omission. 2009-02-28 22:27 kristaps Changed: Makefile (1.97), "Exp", lines: +1 -1 [no log message] 2009-02-28 21:50 kristaps Changed: action.c (1.27), "Exp", lines: +7 -4 White-space churn. 2009-02-28 21:31 kristaps Changed: mdocterm.c (1.21), "Exp", lines: +5 -1 term.c (1.30), "Exp", lines: +34 -9 Many more changes and fixes (`In', `Fd', etc.). 2009-02-28 20:13 kristaps Changed: macro.c (1.55), "Exp", lines: +3 -1 mdocterm.c (1.20), "Exp", lines: +8 -1 term.c (1.29), "Exp", lines: +26 -18 More fixes (hard-escapes, etc.). 2009-02-28 19:15 kristaps Changed: action.c (1.26), "Exp", lines: +2 -2 term.c (1.28), "Exp", lines: +55 -9 Initial Rs/Re support. Fixed default Ds width. 2009-02-28 14:48 tag VERSION_1_3_11 2009-02-28 14:48 kristaps Changed: Makefile (1.96), "Exp", lines: +1 -1 [no log message] 2009-02-28 14:43 kristaps Changed: action.c (1.25), "Exp", lines: +8 -4 mdocterm.c (1.19), "Exp", lines: +2 -2 Made `Ds' emit a warning. Default width is 78. 2009-02-28 14:40 kristaps Changed: action.c (1.24), "Exp", lines: +5 -4 validate.c (1.65), "Exp", lines: +3 -3 Added support for traditional `Ds' width. 2009-02-28 13:49 tag VERSION_1_3_10 2009-02-28 13:49 kristaps Changed: Makefile (1.95), "Exp", lines: +1 -1 Version up. 2009-02-28 13:47 kristaps Added: regress/test.list.07 (1.1) Changed: Makefile (1.94), "Exp", lines: +1 -0 action.c (1.23), "Exp", lines: +175 -47 private.h (1.84), "Exp", lines: +2 -1 validate.c (1.64), "Exp", lines: +18 -16 xstd.c (1.6), "Exp", lines: +11 -1 Added support for dynamic -width detection for -tag lists. 2009-02-28 12:16 tag VERSION_1_3_9 2009-02-28 12:16 kristaps Changed: Makefile (1.93), "Exp", lines: +1 -1 Version up. 2009-02-28 12:16 kristaps Changed: argv.c (1.34), "Exp", lines: +5 -1 Fixed delimiter end-of-line parsing. 2009-02-28 10:15 tag VERSION_1_3_8 2009-02-28 10:15 kristaps Changed: Makefile (1.92), "Exp", lines: +2 -2 Version up. 2009-02-28 10:13 kristaps Changed: index.sgml (1.10), "Exp", lines: +24 -6 Finalised index.sgml for NetBSD pkgsrc. 2009-02-28 09:51 kristaps Changed: Makefile (1.91), "Exp", lines: +5 -2 More pkgsrc stuff. 2009-02-27 17:24 kristaps Deleted: Makefile.port (1.6) Added: Makefile.netbsd (1.1) Makefile.openbsd (1.1) Changed: Makefile (1.90), "Exp", lines: +26 -5 Initial NetBSD pkgsrc. 2009-02-27 10:55 tag VERSION_1_3_6 2009-02-27 10:55 kristaps Changed: action.c (1.22), "Exp", lines: +2 -2 index.sgml (1.9), "Exp", lines: +14 -9 mdocterm.1 (1.8), "Exp", lines: +1 -11 mdocterm.c (1.18), "Exp", lines: +26 -8 strings.c (1.22), "Exp", lines: +10 -10 Slowly decoupling mdoc(3) from being OpenBSD-only. 2009-02-27 09:39 kristaps Changed: Makefile (1.89), "Exp", lines: +4 -1 action.c (1.21), "Exp", lines: +5 -5 argv.c (1.33), "Exp", lines: +4 -4 macro.c (1.54), "Exp", lines: +11 -6 term.c (1.27), "Exp", lines: +4 -3 validate.c (1.63), "Exp", lines: +8 -7 Lintified sources. 2009-02-27 09:16 kristaps Changed: Makefile (1.88), "Exp", lines: +2 -2 Versioning up. 2009-02-27 09:15 kristaps Added: regress/test.escape.10 (1.1) regress/test.escape.11 (1.1) regress/test.escape.12 (1.1) Added more character-escape regressions. 2009-02-27 09:14 kristaps Changed: mdoc.3 (1.13), "Exp", lines: +6 -1 mdocterm.1 (1.7), "Exp", lines: +112 -1 mdocterm.c (1.17), "Exp", lines: +47 -25 validate.c (1.62), "Exp", lines: +3 -1 Character-encoding stuff documented, expanded. 2009-02-27 08:20 kristaps Changed: Makefile (1.87), "Exp", lines: +5 -2 mdoc.3 (1.12), "Exp", lines: +40 -3 mdocterm.1 (1.6), "Exp", lines: +1 -8 mdocterm.c (1.16), "Exp", lines: +154 -16 strings.c (1.21), "Exp", lines: +13 -1 term.c (1.26), "Exp", lines: +4 -5 More character-encoding. 2009-02-26 17:11 kristaps Changed: mdocterm.c (1.15), "Exp", lines: +20 -24 Header and footer now use term API. 2009-02-26 16:08 kristaps Changed: action.c (1.20), "Exp", lines: +51 -2 private.h (1.83), "Exp", lines: +2 -1 strings.c (1.20), "Exp", lines: +96 -2 term.c (1.25), "Exp", lines: +22 -2 Support for macro widths (/usr/share/tmac/mdoc/doc-common). 2009-02-26 14:56 kristaps Changed: argv.c (1.32), "Exp", lines: +2 -2 macro.c (1.53), "Exp", lines: +3 -6 term.c (1.24), "Exp", lines: +9 -22 validate.c (1.61), "Exp", lines: +51 -8 Lists (scoped elements) now put delims in-scope. 2009-02-25 23:18 kristaps Changed: mdocterm.c (1.14), "Exp", lines: +7 -6 term.c (1.23), "Exp", lines: +135 -83 term.h (1.11), "Exp", lines: +2 -1 More list work. 2009-02-25 17:02 kristaps Changed: mdoc.3 (1.11), "Exp", lines: +5 -2 mdocterm.c (1.13), "Exp", lines: +36 -40 term.c (1.22), "Exp", lines: +24 -2 term.h (1.10), "Exp", lines: +2 -1 [no log message] 2009-02-25 15:12 kristaps Changed: mdocterm.1 (1.5), "Exp", lines: +8 -1 mdocterm.c (1.12), "Exp", lines: +49 -21 term.c (1.21), "Exp", lines: +72 -42 term.h (1.9), "Exp", lines: +3 -1 Added [almost] all list types. 2009-02-25 13:30 kristaps Changed: mdocterm.1 (1.4), "Exp", lines: +3 -2 mdocterm.c (1.11), "Exp", lines: +4 -3 term.c (1.20), "Exp", lines: +61 -93 term.h (1.8), "Exp", lines: +2 -1 Support for nested lists added. 2009-02-25 12:46 kristaps Changed: index.sgml (1.8), "Exp", lines: +3 -2 Formatting. 2009-02-25 12:38 tag VERSION_1_3_5 2009-02-25 12:38 kristaps Changed: Makefile (1.86), "Exp", lines: +2 -2 Fixed version-date tag. 2009-02-25 12:37 kristaps Changed: Makefile (1.85), "Exp", lines: +4 -2 index.sgml (1.7), "Exp", lines: +5 -1 Version printed on website. 2009-02-25 12:32 kristaps Changed: index.sgml (1.6), "Exp", lines: +12 -8 strings.c (1.19), "Exp", lines: +4 -4 validate.c (1.60), "Exp", lines: +4 -4 NetBSD Lintified. 2009-02-25 12:27 kristaps Changed: mdocterm.c (1.10), "Exp", lines: +7 -15 term.c (1.19), "Exp", lines: +26 -36 term.h (1.7), "Exp", lines: +6 -6 Some offsets built into termpair. 2009-02-25 12:09 kristaps Changed: mdocterm.c (1.9), "Exp", lines: +21 -3 term.c (1.18), "Exp", lines: +65 -228 term.h (1.6), "Exp", lines: +17 -1 Added "termpair" for symmetric flag-setting. 2009-02-25 11:37 kristaps Changed: term.c (1.17), "Exp", lines: +131 -7 validate.c (1.59), "Exp", lines: +6 -4 All "low-hanging" macros implemented in term.c. 2009-02-24 16:16 kristaps Changed: macro.c (1.52), "Exp", lines: +2 -3 term.c (1.16), "Exp", lines: +88 -13 term.h (1.5), "Exp", lines: +5 -4 validate.c (1.58), "Exp", lines: +9 -7 Raft of mdocterm callbacks in place. Fixed Fo/Fc handling in validate/mdocterm. 2009-02-24 15:01 kristaps Changed: term.c (1.15), "Exp", lines: +74 -35 More macros filled in. 2009-02-24 14:52 kristaps Changed: mdoc.h (1.35), "Exp", lines: +4 -1 mdocterm.c (1.8), "Exp", lines: +5 -1 private.h (1.82), "Exp", lines: +1 -2 strings.c (1.18), "Exp", lines: +188 -1 term.c (1.14), "Exp", lines: +163 -11 Added several more mdocterm outputs. 2009-02-24 13:57 kristaps Changed: validate.c (1.57), "Exp", lines: +88 -76 Added Fd section validation. 2009-02-24 13:46 kristaps Changed: argv.c (1.31), "Exp", lines: +7 -10 mdoc.3 (1.10), "Exp", lines: +19 -2 strings.c (1.17), "Exp", lines: +6 -4 term.c (1.13), "Exp", lines: +2 -2 validate.c (1.56), "Exp", lines: +6 -2 Character-encoding checked for all text (arguments/values). 2009-02-24 12:20 kristaps Added: regress/test.escape.05 (1.1) regress/test.escape.06 (1.1) regress/test.escape.07 (1.1) regress/test.escape.08 (1.1) regress/test.escape.09 (1.1) Changed: Makefile (1.84), "Exp", lines: +7 -2 index.sgml (1.5), "Exp", lines: +2 -2 mdoc.h (1.34), "Exp", lines: +1 -3 private.h (1.81), "Exp", lines: +3 -2 validate.c (1.55), "Exp", lines: +183 -152 Added character-encoding checks. 2009-02-24 11:43 kristaps Added: regress/test.escape.00 (1.1) regress/test.escape.01 (1.1) regress/test.escape.02 (1.1) regress/test.escape.03 (1.1) regress/test.escape.04 (1.1) Changed: Makefile (1.83), "Exp", lines: +9 -4 argv.c (1.30), "Exp", lines: +4 -4 private.h (1.80), "Exp", lines: +2 -1 strings.c (1.16), "Exp", lines: +45 -1 validate.c (1.54), "Exp", lines: +63 -17 regress/test.list.05 (1.2), "Exp", lines: +1 -1 Escape-sequence validation in place (for nodes). 2009-02-23 22:51 kristaps Changed: Makefile (1.82), "Exp", lines: +1 -1 validate.c (1.53), "Exp", lines: +184 -353 Considerably cleaned up the validation code. 2009-02-23 20:55 kristaps Changed: Makefile (1.81), "Exp", lines: +23 -13 Makefile.port (1.5), "Exp", lines: +2 -2 index.sgml (1.4), "Exp", lines: +11 -23 Port works. 2009-02-23 16:01 kristaps Changed: Makefile (1.80), "Exp", lines: +3 -0 Makefile.port (1.4), "Exp", lines: +1 -1 index.sgml (1.3), "Exp", lines: +3 -2 Fixing port generation & instructions. 2009-02-23 15:38 kristaps Changed: index.sgml (1.2), "Exp", lines: +6 -1 mmain.c (1.4), "Exp", lines: +3 -3 Cross-checked NetBSD compile changes to Linux. 2009-02-23 15:34 kristaps Changed: argv.c (1.29), "Exp", lines: +2 -3 mdocterm.c (1.7), "Exp", lines: +15 -9 mmain.h (1.4), "Exp", lines: +12 -9 strings.c (1.15), "Exp", lines: +2 -2 Compiles fine on NetBSD now, too. 2009-02-23 15:19 kristaps Added: external.png (1.1) index.sgml (1.1) style.css (1.1) Changed: Makefile (1.79), "Exp", lines: +17 -2 argv.c (1.28), "Exp", lines: +3 -39 mdoc.3 (1.9), "Exp", lines: +15 -6 mdocterm.c (1.6), "Exp", lines: +2 -3 term.c (1.12), "Exp", lines: +77 -37 Adding revamped webpage. 2009-02-23 13:06 kristaps Added: mdoclint.1 (1.1) Adding mdoclint.1 manual. 2009-02-23 13:05 kristaps Deleted: READE.addmacro (1.2) Added: README.addmacro (1.1) README.addregress (1.1) mdoclint.c (1.1) Changed: Makefile (1.78), "Exp", lines: +22 -11 mdocterm.1 (1.3), "Exp", lines: +2 -1 mdoctree.1 (1.4), "Exp", lines: +2 -1 Added mdoclint. `make regress' uses mdoclint 2009-02-23 12:45 kristaps Added: READE.addmacro (1.1) Changed: argv.c (1.27), "Exp", lines: +4 -5 hash.c (1.6), "Exp", lines: +2 -3 macro.c (1.51), "Exp", lines: +157 -64 mdoc.3 (1.8), "Exp", lines: +14 -14 mdoc.c (1.48), "Exp", lines: +14 -129 mdocterm.c (1.5), "Exp", lines: +5 -4 mdoctree.c (1.4), "Exp", lines: +1 -4 mmain.c (1.3), "Exp", lines: +5 -2 mmain.h (1.3), "Exp", lines: +10 -1 private.h (1.79), "Exp", lines: +1 -10 strings.c (1.14), "Exp", lines: +6 -2 More in-file documentation and Linux-isation. Moved mdoc_macros table definition into macro.c, where it belongs. 2009-02-23 09:46 kristaps Changed: mdoc.3 (1.7), "Exp", lines: +4 -4 term.c (1.11), "Exp", lines: +53 -5 More documentation in place. 2009-02-23 09:33 kristaps Changed: mdoc.3 (1.6), "Exp", lines: +181 -19 mdoc.h (1.33), "Exp", lines: +10 -4 mdocterm.c (1.4), "Exp", lines: +16 -1 term.c (1.10), "Exp", lines: +938 -378 Considerable mdoc.3 documentation. Added a few more escapes and macros. 2009-02-23 07:09 kristaps Deleted: termact.c (1.7) tree.c (1.7) Changed: Makefile (1.77), "Exp", lines: +5 -12 mdocterm.c (1.3), "Exp", lines: +508 -14 mdoctree.c (1.3), "Exp", lines: +102 -27 mmain.c (1.2), "Exp", lines: +40 -32 mmain.h (1.2), "Exp", lines: +6 -6 termact.c -> term.c term.c -> mdocterm.c tree.c -> mdoctree.c Fixed/finished mmain.h. 2009-02-22 22:58 kristaps Added: mmain.c (1.1) mmain.h (1.1) Changed: Makefile (1.76), "Exp", lines: +18 -23 mdoc.c (1.47), "Exp", lines: +3 -3 mdoc.h (1.32), "Exp", lines: +3 -3 mdocterm.c (1.2), "Exp", lines: +20 -249 mdoctree.c (1.2), "Exp", lines: +32 -250 BROKEN BUILD: migrating to mmain stuff. 2009-02-22 19:23 kristaps Changed: macro.c (1.50), "Exp", lines: +13 -5 mdoctree.1 (1.3), "Exp", lines: +5 -2 term.c (1.9), "Exp", lines: +6 -3 term.h (1.4), "Exp", lines: +2 -1 termact.c (1.6), "Exp", lines: +76 -5 validate.c (1.52), "Exp", lines: +3 -2 Fixed `.Pf' handling. System now supports all mdocml manual pages. 2009-02-22 15:50 kristaps Changed: term.c (1.8), "Exp", lines: +23 -5 term.h (1.3), "Exp", lines: +2 -1 termact.c (1.5), "Exp", lines: +89 -4 Initial block-display support. 2009-02-22 14:31 kristaps Changed: action.c (1.19), "Exp", lines: +2 -1 mdoc.c (1.46), "Exp", lines: +15 -11 mdoc.h (1.31), "Exp", lines: +2 -2 private.h (1.78), "Exp", lines: +2 -1 term.c (1.7), "Exp", lines: +14 -1 termact.c (1.4), "Exp", lines: +250 -21 validate.c (1.51), "Exp", lines: +230 -188 Cleaned up validation source a bit. Fixed `Nm' and `Nd' detection. Added a few more terminal outputs. 2009-02-22 11:23 kristaps Changed: mdocterm.1 (1.2), "Exp", lines: +7 -1 mdoctree.1 (1.2), "Exp", lines: +2 -1 termact.c (1.3), "Exp", lines: +3 -3 [no log message] 2009-02-21 21:00 kristaps Deleted: mdocml.1 (1.34) mdocml.c (1.55) Added: mdocterm.1 (1.1) mdocterm.c (1.1) mdoctree.1 (1.1) mdoctree.c (1.1) Changed: DESCR (1.3), "Exp", lines: +1 -1 Makefile (1.75), "Exp", lines: +43 -23 action.c (1.18), "Exp", lines: +2 -1 mdoc.h (1.30), "Exp", lines: +9 -1 private.h (1.77), "Exp", lines: +1 -7 strings.c (1.13), "Exp", lines: +4 -4 term.c (1.6), "Exp", lines: +61 -18 term.h (1.2), "Exp", lines: +7 -2 termact.c (1.2), "Exp", lines: +28 -49 tree.c (1.6), "Exp", lines: +2 -3 validate.c (1.50), "Exp", lines: +2 -2 Split mdocml -> mdocterm, mdoctree (new manuals, etc.). Escape-recognition term.c. 2009-02-21 19:05 kristaps Added: term.h (1.1) termact.c (1.1) Changed: Makefile (1.74), "Exp", lines: +11 -7 term.c (1.5), "Exp", lines: +27 -573 Split down term.c into term.h, termact.c. 2009-02-21 15:34 kristaps Changed: mdocml.1 (1.33), "Exp", lines: +14 -7 mdocml.c (1.54), "Exp", lines: +28 -12 term.c (1.4), "Exp", lines: +39 -7 validate.c (1.49), "Exp", lines: +2 -1 A few more macros in place. 2009-02-21 14:56 kristaps Changed: Makefile (1.73), "Exp", lines: +1 -1 mdocml.1 (1.32), "Exp", lines: +3 -0 term.c (1.3), "Exp", lines: +283 -88 validate.c (1.48), "Exp", lines: +3 -1 Initial list support (not nested, yet). 2009-02-20 23:35 kristaps Changed: Makefile (1.72), "Exp", lines: +2 -2 mdocml.1 (1.31), "Exp", lines: +12 -9 mdocml.c (1.53), "Exp", lines: +5 -1 private.h (1.76), "Exp", lines: +6 -1 strings.c (1.12), "Exp", lines: +156 -1 term.c (1.2), "Exp", lines: +641 -216 tree.c (1.5), "Exp", lines: +4 -2 More flesh in terminal-encoder. 2009-02-20 11:04 kristaps Added: term.c (1.1) Changed: Makefile (1.71), "Exp", lines: +11 -3 action.c (1.17), "Exp", lines: +2 -2 mdocml.c (1.52), "Exp", lines: +4 -6 tree.c (1.4), "Exp", lines: +0 -0 Re-added tree.c (for now). Added initial terminal-output filter (term.c). 2009-02-20 07:45 kristaps Deleted: tree.c (1.3) Changed: Makefile (1.70), "Exp", lines: +3 -7 Removed (moving) tree.c. 2009-02-20 07:43 kristaps Changed: Makefile (1.69), "Exp", lines: +3 -3 mdoc.c (1.45), "Exp", lines: +19 -8 mdoc.h (1.29), "Exp", lines: +16 -21 mdocml.c (1.51), "Exp", lines: +122 -100 Removed tree-writing capability (for now, only validates and exits). 2009-01-22 14:56 kristaps Changed: Makefile (1.68), "Exp", lines: +1 -1 argv.c (1.26), "Exp", lines: +64 -42 macro.c (1.49), "Exp", lines: +90 -10 private.h (1.75), "Exp", lines: +2 -1 Fix-ups to macro.c. 2009-01-22 12:21 kristaps Added: regress/test.list.06 (1.1) Changed: Makefile (1.67), "Exp", lines: +3 -1 argv.c (1.25), "Exp", lines: +67 -16 Finished proper parsing of -column macros. 2009-01-22 11:31 kristaps Added: regress/test.list.00 (1.1) regress/test.list.01 (1.1) regress/test.list.02 (1.1) regress/test.list.03 (1.1) regress/test.list.04 (1.1) regress/test.list.05 (1.1) More list tests. 2009-01-21 17:56 kristaps Changed: Makefile (1.66), "Exp", lines: +6 -1 argv.c (1.24), "Exp", lines: +155 -41 validate.c (1.47), "Exp", lines: +31 -24 [no log message] 2009-01-21 11:35 kristaps Added: regress/test.name.00 (1.1) regress/test.name.01 (1.1) regress/test.name.02 (1.1) regress/test.name.03 (1.1) regress/test.prologue.25 (1.1) regress/test.prologue.26 (1.1) regress/test.prologue.27 (1.1) regress/test.prologue.28 (1.1) regress/test.prologue.29 (1.1) regress/test.prologue.30 (1.1) regress/test.prologue.31 (1.1) regress/test.prologue.32 (1.1) regress/test.prologue.33 (1.1) regress/test.sh.00 (1.1) regress/test.sh.01 (1.1) regress/test.sh.02 (1.1) regress/test.sh.03 (1.1) Changed: Makefile (1.65), "Exp", lines: +19 -2 action.c (1.16), "Exp", lines: +3 -5 mdoc.c (1.44), "Exp", lines: +9 -6 private.h (1.74), "Exp", lines: +2 -4 validate.c (1.46), "Exp", lines: +57 -16 regress/test.prologue.05 (1.2), "Exp", lines: +2 -0 regress/test.prologue.07 (1.2), "Exp", lines: +2 -0 regress/test.prologue.08 (1.2), "Exp", lines: +2 -0 regress/test.prologue.09 (1.2), "Exp", lines: +2 -0 regress/test.prologue.10 (1.2), "Exp", lines: +2 -0 regress/test.prologue.11 (1.2), "Exp", lines: +2 -0 regress/test.prologue.12 (1.2), "Exp", lines: +2 -0 regress/test.prologue.14 (1.2), "Exp", lines: +2 -0 regress/test.prologue.17 (1.2), "Exp", lines: +2 -0 regress/test.prologue.20 (1.2), "Exp", lines: +2 -0 More validation on prologue/first NAME section. 2009-01-20 22:55 kristaps Added: regress/test.empty (1.1) regress/test.prologue.00 (1.1) regress/test.prologue.01 (1.1) regress/test.prologue.02 (1.1) regress/test.prologue.03 (1.1) regress/test.prologue.04 (1.1) regress/test.prologue.05 (1.1) regress/test.prologue.06 (1.1) regress/test.prologue.07 (1.1) regress/test.prologue.08 (1.1) regress/test.prologue.09 (1.1) regress/test.prologue.10 (1.1) regress/test.prologue.11 (1.1) regress/test.prologue.12 (1.1) regress/test.prologue.13 (1.1) regress/test.prologue.14 (1.1) regress/test.prologue.15 (1.1) regress/test.prologue.16 (1.1) regress/test.prologue.17 (1.1) regress/test.prologue.18 (1.1) regress/test.prologue.19 (1.1) regress/test.prologue.20 (1.1) regress/test.prologue.21 (1.1) regress/test.prologue.22 (1.1) regress/test.prologue.23 (1.1) regress/test.prologue.24 (1.1) Changed: Makefile (1.64), "Exp", lines: +36 -0 action.c (1.15), "Exp", lines: +10 -33 argv.c (1.23), "Exp", lines: +1 -2 private.h (1.73), "Exp", lines: +2 -1 strings.c (1.11), "Exp", lines: +9 -3 xstd.c (1.5), "Exp", lines: +9 -1 Added regression tests (just for prologue, for now). Minor fixes in parsing prologue. 2009-01-20 20:56 kristaps Changed: argv.c (1.22), "Exp", lines: +125 -3 macro.c (1.48), "Exp", lines: +17 -25 mdoc.c (1.43), "Exp", lines: +19 -19 private.h (1.72), "Exp", lines: +2 -8 validate.c (1.45), "Exp", lines: +7 -4 In-progress migration to ARGV separation. 2009-01-20 16:04 kristaps Changed: macro.c (1.47), "Exp", lines: +5 -1 Minor documentation. 2009-01-20 15:11 tag VERSION_1_2_0 2009-01-20 15:11 kristaps Changed: Makefile (1.63), "Exp", lines: +3 -1 Added manual pages to INSTALL. 2009-01-20 15:06 kristaps Changed: Makefile (1.62), "Exp", lines: +1 -1 macro.c (1.46), "Exp", lines: +2 -3 Tagged version. 2009-01-20 15:05 kristaps Changed: Makefile (1.61), "Exp", lines: +6 -0 mdoc.3 (1.5), "Exp", lines: +10 -0 mdocml.1 (1.30), "Exp", lines: +3 -12 More documentation/installation fixes. 2009-01-20 13:49 kristaps Changed: argv.c (1.21), "Exp", lines: +9 -9 mdoc.c (1.42), "Exp", lines: +3 -3 strings.c (1.10), "Exp", lines: +2 -2 Lint- and NetBSD-compiler checks. 2009-01-20 13:44 kristaps Changed: DESCR (1.2), "Exp", lines: +2 -1 Makefile (1.60), "Exp", lines: +68 -31 Makefile.port (1.3), "Exp", lines: +1 -1 action.c (1.14), "Exp", lines: +28 -1 argv.c (1.20), "Exp", lines: +8 -3 hash.c (1.5), "Exp", lines: +7 -1 mdoc.c (1.41), "Exp", lines: +9 -2 mdoc.h (1.28), "Exp", lines: +2 -1 mdocml.1 (1.29), "Exp", lines: +2 -1 validate.c (1.44), "Exp", lines: +9 -1 xstd.c (1.4), "Exp", lines: +6 -12 Re-merged old port-building routines. 2009-01-20 13:05 kristaps Changed: argv.c (1.19), "Exp", lines: +4 -4 macro.c (1.45), "Exp", lines: +33 -29 mdoc.c (1.40), "Exp", lines: +2 -1 private.h (1.71), "Exp", lines: +2 -1 Quoted-literals handled correctly. 2009-01-20 12:51 kristaps Changed: action.c (1.13), "Exp", lines: +41 -10 argv.c (1.18), "Exp", lines: +3 -2 macro.c (1.44), "Exp", lines: +171 -37 mdoc.c (1.39), "Exp", lines: +34 -13 mdocml.c (1.50), "Exp", lines: +2 -14 private.h (1.70), "Exp", lines: +9 -4 validate.c (1.43), "Exp", lines: +4 -28 Moved prologue-pruning into action.c. Added line-arg softmax. 2009-01-19 23:11 kristaps Changed: validate.c (1.42), "Exp", lines: +2 -2 Removed FIXME for Bf. 2009-01-19 23:11 kristaps Changed: validate.c (1.41), "Exp", lines: +48 -2 Bf macro properly supported. 2009-01-19 17:53 kristaps Changed: mdoc.c (1.38), "Exp", lines: +6 -13 Plugged memory leak in meta free. 2009-01-19 17:51 kristaps Changed: macro.c (1.43), "Exp", lines: +30 -5 mdoc.3 (1.4), "Exp", lines: +44 -15 mdoc.c (1.37), "Exp", lines: +14 -7 mdoc.h (1.27), "Exp", lines: +6 -3 mdocml.c (1.49), "Exp", lines: +2 -2 private.h (1.69), "Exp", lines: +3 -1 validate.c (1.40), "Exp", lines: +30 -30 More correct validation. Elision of prologue macros from main tree. 2009-01-19 17:02 kristaps Deleted: test.0 (1.2) test.1 (1.4) test.10 (1.3) test.11 (1.3) test.12 (1.3) test.13 (1.2) test.14 (1.2) test.15 (1.2) test.16 (1.2) test.17 (1.2) test.18 (1.3) test.19 (1.3) test.2 (1.2) test.20 (1.2) test.21 (1.3) test.22 (1.2) test.23 (1.3) test.24 (1.2) test.25 (1.3) test.26 (1.2) test.27 (1.2) test.28 (1.3) test.29 (1.3) test.3 (1.2) test.30 (1.3) test.31 (1.3) test.32 (1.3) test.33 (1.3) test.34 (1.3) test.35 (1.4) test.36 (1.3) test.37 (1.3) test.38 (1.3) test.39 (1.4) test.4 (1.2) test.40 (1.3) test.41 (1.4) test.42 (1.3) test.43 (1.3) test.44 (1.3) test.45 (1.3) test.46 (1.3) test.47 (1.2) test.48 (1.2) test.49 (1.2) test.5 (1.2) test.50 (1.2) test.51 (1.2) test.52 (1.3) test.53 (1.2) test.54 (1.2) test.55 (1.2) test.56 (1.2) test.57 (1.2) test.58 (1.2) test.59 (1.2) test.6 (1.2) test.60 (1.2) test.61 (1.2) test.62 (1.2) test.63 (1.2) test.64 (1.2) test.65 (1.2) test.66 (1.2) test.67 (1.2) test.68 (1.2) test.69 (1.2) test.7 (1.3) test.70 (1.2) test.71 (1.2) test.72 (1.2) test.73 (1.2) test.74 (1.2) test.75 (1.2) test.8 (1.2) test.9 (1.3) Changed: action.c (1.12), "Exp", lines: +5 -1 argv.c (1.17), "Exp", lines: +16 -5 macro.c (1.42), "Exp", lines: +30 -69 mdoc.c (1.36), "Exp", lines: +3 -1 mdoc.h (1.26), "Exp", lines: +4 -1 validate.c (1.39), "Exp", lines: +56 -25 Removed unnecessary test cases (most were for visual). Finally fixed scope-rewinding (MDOC_VALID). 2009-01-17 20:10 kristaps Changed: argv.c (1.16), "Exp", lines: +4 -4 macro.c (1.41), "Exp", lines: +72 -100 mdoc.c (1.35), "Exp", lines: +23 -1 private.h (1.68), "Exp", lines: +2 -1 validate.c (1.38), "Exp", lines: +12 -4 Lint checks. 2009-01-17 16:47 kristaps Changed: Makefile (1.59), "Exp", lines: +20 -0 action.c (1.11), "Exp", lines: +19 -27 validate.c (1.37), "Exp", lines: +97 -59 Added tests to makefile. 2009-01-17 16:15 kristaps Changed: action.c (1.10), "Exp", lines: +151 -172 macro.c (1.40), "Exp", lines: +4 -4 mdoc.3 (1.3), "Exp", lines: +10 -0 mdoc.c (1.34), "Exp", lines: +15 -4 mdoc.h (1.25), "Exp", lines: +4 -5 private.h (1.67), "Exp", lines: +3 -2 strings.c (1.9), "Exp", lines: +20 -28 validate.c (1.36), "Exp", lines: +176 -70 xstd.c (1.3), "Exp", lines: +26 -1 Documentation, more validations, cleaned up actions, added Nm action. 2009-01-17 14:04 kristaps Changed: Makefile (1.58), "Exp", lines: +11 -7 mdoc.h (1.24), "Exp", lines: +1 -4 mdocml.c (1.48), "Exp", lines: +30 -14 private.h (1.66), "Exp", lines: +3 -1 tree.c (1.2), "Exp", lines: +39 -9 Separating output filters. 2009-01-16 15:58 kristaps Added: tree.c (1.1) Changed: mdoc.3 (1.2), "Exp", lines: +105 -18 mdoc.c (1.33), "Exp", lines: +3 -2 mdocml.1 (1.28), "Exp", lines: +4 -0 mdocml.c (1.47), "Exp", lines: +43 -104 validate.c (1.35), "Exp", lines: +114 -24 Initial separation of tree/mdocml.1. Finished mdoc.3. Broken build: mdocml.c. 2009-01-16 14:15 kristaps Changed: mdocml.c (1.46), "Exp", lines: +2 -1 validate.c (1.34), "Exp", lines: +70 -31 Boolean validation. 2009-01-16 14:04 kristaps Deleted: mdocml.3 (1.2) Added: mdoc.3 (1.1) Changed: macro.c (1.39), "Exp", lines: +12 -3 mdoc.c (1.32), "Exp", lines: +4 -4 mdocml.1 (1.27), "Exp", lines: +37 -129 validate.c (1.33), "Exp", lines: +127 -33 Added more validation (parents/msecs). Initial function documentation for mdoc.3. 2009-01-16 12:23 kristaps Changed: action.c (1.9), "Exp", lines: +9 -2 argv.c (1.15), "Exp", lines: +3 -1 mdoc.h (1.23), "Exp", lines: +36 -7 private.h (1.65), "Exp", lines: +5 -1 strings.c (1.8), "Exp", lines: +5 -3 validate.c (1.32), "Exp", lines: +3 -2 Clean-ups & documentation. 2009-01-16 11:50 kristaps Changed: action.c (1.8), "Exp", lines: +10 -10 argv.c (1.14), "Exp", lines: +13 -13 macro.c (1.38), "Exp", lines: +48 -38 mdocml.c (1.45), "Exp", lines: +3 -3 strings.c (1.7), "Exp", lines: +3 -3 validate.c (1.31), "Exp", lines: +33 -33 Finished re-fitting err/warn/msg routines. Some minor bug-fixes. 2009-01-15 17:38 kristaps Changed: macro.c (1.37), "Exp", lines: +4 -4 mdoc.c (1.31), "Exp", lines: +31 -27 mdoc.h (1.22), "Exp", lines: +13 -57 mdocml.c (1.44), "Exp", lines: +68 -211 private.h (1.64), "Exp", lines: +48 -20 validate.c (1.30), "Exp", lines: +10 -10 Broken build (changing err/warn/msg function prototypes for clarity). 2009-01-15 15:59 tag VERSION_1_1_0 2009-01-15 15:59 kristaps Changed: mdocml.c (1.43), "Exp", lines: +6 -10 [no log message] 2009-01-15 15:46 kristaps Changed: argv.c (1.13), "Exp", lines: +3 -1 macro.c (1.36), "Exp", lines: +85 -70 mdoc.c (1.30), "Exp", lines: +13 -30 validate.c (1.29), "Exp", lines: +3 -1 [no log message] 2009-01-14 11:58 kristaps Changed: macro.c (1.35), "Exp", lines: +262 -92 mdoc.c (1.29), "Exp", lines: +26 -26 mdoc.h (1.21), "Exp", lines: +5 -1 mdocml.c (1.42), "Exp", lines: +6 -13 private.h (1.63), "Exp", lines: +3 -4 strings.c (1.6), "Exp", lines: +28 -1 validate.c (1.28), "Exp", lines: +3 -1 [no log message] 2009-01-12 17:26 kristaps Changed: macro.c (1.34), "Exp", lines: +15 -15 validate.c (1.27), "Exp", lines: +39 -15 [no log message] 2009-01-12 16:39 kristaps Changed: argv.c (1.12), "Exp", lines: +94 -53 macro.c (1.33), "Exp", lines: +7 -3 mdoc.c (1.28), "Exp", lines: +2 -2 mdocml.c (1.41), "Exp", lines: +7 -3 private.h (1.62), "Exp", lines: +3 -1 validate.c (1.26), "Exp", lines: +110 -62 [no log message] 2009-01-12 12:52 kristaps Changed: action.c (1.7), "Exp", lines: +10 -23 macro.c (1.32), "Exp", lines: +6 -6 mdoc.c (1.27), "Exp", lines: +32 -13 mdoc.h (1.20), "Exp", lines: +8 -18 mdocml.c (1.40), "Exp", lines: +17 -7 validate.c (1.25), "Exp", lines: +145 -50 [no log message] 2009-01-12 10:31 kristaps Changed: argv.c (1.11), "Exp", lines: +4 -1 macro.c (1.31), "Exp", lines: +5 -5 mdoc.c (1.26), "Exp", lines: +6 -33 mdoc.h (1.19), "Exp", lines: +5 -1 mdocml.c (1.39), "Exp", lines: +15 -38 validate.c (1.24), "Exp", lines: +179 -27 [no log message] 2009-01-09 15:15 kristaps Changed: validate.c (1.23), "Exp", lines: +21 -4 [no log message] 2009-01-09 15:07 kristaps Changed: argv.c (1.10), "Exp", lines: +3 -3 validate.c (1.22), "Exp", lines: +17 -3 [no log message] 2009-01-09 14:45 kristaps Changed: action.c (1.6), "Exp", lines: +6 -4 macro.c (1.30), "Exp", lines: +41 -17 mdoc.c (1.25), "Exp", lines: +27 -12 mdoc.h (1.18), "Exp", lines: +4 -2 mdocml.c (1.38), "Exp", lines: +10 -1 private.h (1.61), "Exp", lines: +2 -1 validate.c (1.21), "Exp", lines: +48 -22 [no log message] 2009-01-08 15:59 kristaps Changed: action.c (1.5), "Exp", lines: +95 -146 macro.c (1.29), "Exp", lines: +9 -8 validate.c (1.20), "Exp", lines: +63 -8 [no log message] 2009-01-08 15:05 kristaps Deleted: prologue.c (1.6) Added: mdocml.3 (1.1) Changed: Makefile (1.57), "Exp", lines: +7 -11 action.c (1.4), "Exp", lines: +305 -115 mdoc.c (1.24), "Exp", lines: +4 -4 validate.c (1.19), "Exp", lines: +4 -4 [no log message] 2009-01-08 14:55 kristaps Changed: argv.c (1.9), "Exp", lines: +28 -26 macro.c (1.28), "Exp", lines: +181 -149 mdoc.c (1.23), "Exp", lines: +63 -54 mdoc.h (1.17), "Exp", lines: +2 -2 mdocml.c (1.37), "Exp", lines: +41 -62 private.h (1.60), "Exp", lines: +23 -15 validate.c (1.18), "Exp", lines: +37 -23 [no log message] 2009-01-07 16:11 kristaps Changed: macro.c (1.27), "Exp", lines: +40 -38 mdoc.c (1.22), "Exp", lines: +27 -12 private.h (1.59), "Exp", lines: +8 -7 All macros have lines/positions. 2009-01-07 15:57 kristaps Changed: macro.c (1.26), "Exp", lines: +7 -7 mdoc.c (1.21), "Exp", lines: +5 -4 private.h (1.58), "Exp", lines: +7 -6 prologue.c (1.5), "Exp", lines: +4 -4 Added line numbering. 2009-01-07 15:53 kristaps Changed: action.c (1.3), "Exp", lines: +54 -18 macro.c (1.25), "Exp", lines: +49 -28 mdoc.c (1.20), "Exp", lines: +36 -6 mdoc.h (1.16), "Exp", lines: +7 -3 mdocml.c (1.36), "Exp", lines: +18 -12 private.h (1.57), "Exp", lines: +5 -3 validate.c (1.17), "Exp", lines: +160 -371 [no log message] 2009-01-06 15:49 kristaps Changed: macro.c (1.24), "Exp", lines: +77 -18 mdoc.c (1.19), "Exp", lines: +74 -70 private.h (1.56), "Exp", lines: +6 -5 strings.c (1.5), "Exp", lines: +3 -1 Memory leak, some mdoc(7) conformities. 2009-01-05 17:57 kristaps Changed: argv.c (1.8), "Exp", lines: +11 -12 hash.c (1.4), "Exp", lines: +3 -1 macro.c (1.23), "Exp", lines: +13 -8 mdoc.c (1.18), "Exp", lines: +5 -3 mdoc.h (1.15), "Exp", lines: +3 -2 mdocml.c (1.35), "Exp", lines: +5 -2 prologue.c (1.4), "Exp", lines: +1 -5 [no log message] 2009-01-05 16:11 kristaps Changed: action.c (1.2), "Exp", lines: +3 -1 argv.c (1.7), "Exp", lines: +6 -1 macro.c (1.22), "Exp", lines: +257 -51 mdoc.c (1.17), "Exp", lines: +54 -33 mdoc.h (1.14), "Exp", lines: +7 -3 mdocml.c (1.34), "Exp", lines: +5 -1 private.h (1.55), "Exp", lines: +4 -5 prologue.c (1.3), "Exp", lines: +3 -1 Finished initial parse sequence. 2009-01-05 14:14 kristaps Added: action.c (1.1) Changed: Makefile (1.56), "Exp", lines: +11 -7 macro.c (1.21), "Exp", lines: +36 -30 mdoc.c (1.16), "Exp", lines: +2 -37 private.h (1.54), "Exp", lines: +2 -1 validate.c (1.16), "Exp", lines: +2 -17 Actions and validations properly added. 2009-01-05 12:23 kristaps Changed: macro.c (1.20), "Exp", lines: +2 -2 [no log message] 2009-01-03 22:10 kristaps Changed: macro.c (1.19), "Exp", lines: +251 -405 mdoc.c (1.15), "Exp", lines: +3 -5 mdocml.c (1.33), "Exp", lines: +1 -2 private.h (1.53), "Exp", lines: +3 -5 validate.c (1.15), "Exp", lines: +9 -9 Huge changes. 2009-01-03 18:38 kristaps Changed: macro.c (1.18), "Exp", lines: +18 -10 mdoc.h (1.13), "Exp", lines: +6 -2 mdocml.c (1.32), "Exp", lines: +15 -3 validate.c (1.14), "Exp", lines: +224 -174 [no log message] 2009-01-02 14:06 kristaps Changed: argv.c (1.6), "Exp", lines: +21 -36 macro.c (1.17), "Exp", lines: +17 -1 mdoc.c (1.14), "Exp", lines: +6 -5 mdoc.h (1.12), "Exp", lines: +4 -2 prologue.c (1.2), "Exp", lines: +4 -1 validate.c (1.13), "Exp", lines: +4 -4 [no log message] 2009-01-02 09:29 kristaps Changed: validate.c (1.12), "Exp", lines: +18 -3 [no log message] 2009-01-01 20:40 kristaps Added: prologue.c (1.1) Changed: Makefile (1.55), "Exp", lines: +11 -7 argv.c (1.5), "Exp", lines: +85 -10 macro.c (1.16), "Exp", lines: +199 -508 mdoc.c (1.13), "Exp", lines: +61 -93 mdoc.h (1.11), "Exp", lines: +3 -2 mdocml.c (1.31), "Exp", lines: +4 -3 private.h (1.52), "Exp", lines: +19 -9 validate.c (1.11), "Exp", lines: +225 -131 Broke apart macro_prologuexxx into prologue. Fixed validation for line-scoped. Merged const_arg and const. 2008-12-30 19:06 kristaps Changed: argv.c (1.4), "Exp", lines: +2 -4 macro.c (1.15), "Exp", lines: +56 -63 mdoc.c (1.12), "Exp", lines: +4 -4 mdoc.h (1.10), "Exp", lines: +2 -1 mdocml.c (1.30), "Exp", lines: +4 -1 private.h (1.51), "Exp", lines: +5 -2 validate.c (1.10), "Exp", lines: +3 -3 [no log message] 2008-12-30 18:15 kristaps Changed: Makefile (1.54), "Exp", lines: +11 -7 macro.c (1.14), "Exp", lines: +11 -163 private.h (1.50), "Exp", lines: +5 -1 validate.c (1.9), "Exp", lines: +211 -1053 Validation fully works. 2008-12-30 13:43 kristaps Changed: argv.c (1.3), "Exp", lines: +10 -1 macro.c (1.13), "Exp", lines: +83 -18 mdoc.c (1.11), "Exp", lines: +3 -3 private.h (1.49), "Exp", lines: +2 -1 validate.c (1.8), "Exp", lines: +975 -286 [no log message] 2008-12-29 19:25 kristaps Changed: macro.c (1.12), "Exp", lines: +17 -1 mdoc.c (1.10), "Exp", lines: +5 -5 mdoc.h (1.9), "Exp", lines: +2 -1 mdocml.c (1.29), "Exp", lines: +4 -1 [no log message] 2008-12-29 18:08 kristaps Changed: macro.c (1.11), "Exp", lines: +84 -4 mdoc.c (1.9), "Exp", lines: +4 -4 mdoc.h (1.8), "Exp", lines: +20 -1 mdocml.c (1.28), "Exp", lines: +10 -1 private.h (1.48), "Exp", lines: +3 -1 strings.c (1.4), "Exp", lines: +42 -1 test.1 (1.3), "Exp", lines: +7 -3 xstd.c (1.2), "Exp", lines: +85 -1 More macros. 2008-12-29 12:19 kristaps Changed: macro.c (1.10), "Exp", lines: +128 -1 mdoc.c (1.8), "Exp", lines: +7 -7 mdoc.h (1.7), "Exp", lines: +2 -2 private.h (1.47), "Exp", lines: +2 -1 [no log message] 2008-12-28 23:07 kristaps Changed: macro.c (1.9), "Exp", lines: +13 -2 mdoc.c (1.7), "Exp", lines: +7 -7 mdoc.h (1.6), "Exp", lines: +2 -1 mdocml.c (1.27), "Exp", lines: +4 -1 [no log message] 2008-12-28 21:25 kristaps Changed: macro.c (1.8), "Exp", lines: +184 -20 mdoc.c (1.6), "Exp", lines: +14 -21 mdocml.c (1.26), "Exp", lines: +16 -6 private.h (1.46), "Exp", lines: +4 -1 [no log message] 2008-12-28 00:34 kristaps Changed: argv.c (1.2), "Exp", lines: +154 -36 macro.c (1.7), "Exp", lines: +269 -209 mdoc.c (1.5), "Exp", lines: +10 -8 mdoc.h (1.5), "Exp", lines: +12 -5 mdocml.c (1.25), "Exp", lines: +22 -4 private.h (1.45), "Exp", lines: +13 -4 strings.c (1.3), "Exp", lines: +15 -8 [no log message] 2008-12-23 05:30 kristaps Added: argv.c (1.1) test.75 (1.1) xstd.c (1.1) Changed: Makefile (1.53), "Exp", lines: +15 -7 hash.c (1.3), "Exp", lines: +4 -4 macro.c (1.6), "Exp", lines: +237 -42 mdoc.c (1.4), "Exp", lines: +7 -32 mdoc.h (1.4), "Exp", lines: +10 -2 mdocml.c (1.24), "Exp", lines: +39 -4 private.h (1.44), "Exp", lines: +17 -4 [no log message] 2008-12-17 17:18 kristaps Changed: macro.c (1.5), "Exp", lines: +166 -8 mdoc.c (1.3), "Exp", lines: +7 -14 mdoc.h (1.3), "Exp", lines: +21 -10 mdocml.c (1.23), "Exp", lines: +38 -6 private.h (1.43), "Exp", lines: +15 -2 strings.c (1.2), "Exp", lines: +194 -1 Prologue Dd and Dt macros. 2008-12-15 03:13 kristaps Added: strings.c (1.1) Changed: Makefile (1.52), "Exp", lines: +11 -7 macro.c (1.4), "Exp", lines: +29 -66 mdoc.h (1.2), "Exp", lines: +92 -2 private.h (1.42), "Exp", lines: +5 -6 [no log message] 2008-12-15 02:29 kristaps Deleted: compat.c (1.3) roff.c (1.65) roff.h (1.11) More file pruning. 2008-12-15 02:23 kristaps Changed: Makefile (1.51), "Exp", lines: +3 -3 hash.c (1.2), "Exp", lines: +13 -11 macro.c (1.3), "Exp", lines: +25 -14 mdoc.c (1.2), "Exp", lines: +22 -13 mdocml.c (1.22), "Exp", lines: +4 -1 Linted. 2008-12-15 01:54 kristaps Deleted: html.c (1.28) html.h (1.5) index.7 (1.15) libmdocml.c (1.22) libmdocml.h (1.15) literals.c (1.9) mdocml.css (1.10) ml.c (1.10) ml.h (1.17) mlg.c (1.30) noop.c (1.4) tags.c (1.4) tokens.c (1.5) xml.c (1.26) Added: hash.c (1.1) mdoc.c (1.1) mdoc.h (1.1) Changed: Makefile (1.50), "Exp", lines: +29 -146 compat.c (1.2), "Exp", lines: +1 -0 macro.c (1.2), "Exp", lines: +249 -45 mdocml.c (1.21), "Exp", lines: +310 -153 private.h (1.41), "Exp", lines: +39 -374 test.1 (1.2), "Exp", lines: +7 -8 Purged all old files in favour of new design. Selective reintegration. 2008-12-12 10:11 kristaps Added: macro.c (1.1) Changed: html.c (1.27), "Exp", lines: +5 -1 mdocml.css (1.9), "Exp", lines: +2 -1 roff.c (1.64), "Exp", lines: +93 -1 [no log message] 2008-12-10 17:40 kristaps Changed: Makefile (1.49), "Exp", lines: +1 -1 html.c (1.26), "Exp", lines: +17 -4 html.h (1.4), "Exp", lines: +4 -2 tags.c (1.3), "Exp", lines: +2 -2 Prettier HTML. 2008-12-10 17:31 kristaps Added: test.74 (1.1) Changed: html.c (1.25), "Exp", lines: +84 -100 ml.h (1.16), "Exp", lines: +15 -18 mlg.c (1.29), "Exp", lines: +59 -55 noop.c (1.3), "Exp", lines: +2 -2 roff.h (1.10), "Exp", lines: +2 -2 xml.c (1.25), "Exp", lines: +35 -54 [no log message] 2008-12-10 16:03 kristaps Changed: Makefile (1.48), "Exp", lines: +30 -16 Makefile.port (1.2), "Exp", lines: +1 -1 index.7 (1.14), "Exp", lines: +12 -7 noop.c (1.2), "Exp", lines: +3 -1 roff.c (1.63), "Exp", lines: +4 -4 Ready for looking over by people. 2008-12-10 15:02 kristaps Added: DESCR (1.1) Makefile.port (1.1) test.72 (1.1) test.73 (1.1) Added (prelim.) openbsd port. 2008-12-10 14:42 kristaps Added: noop.c (1.1) Changed: Makefile (1.47), "Exp", lines: +24 -20 index.7 (1.13), "Exp", lines: +1 -1 libmdocml.c (1.21), "Exp", lines: +23 -8 libmdocml.h (1.14), "Exp", lines: +3 -7 mdocml.1 (1.26), "Exp", lines: +27 -10 mdocml.c (1.20), "Exp", lines: +4 -2 private.h (1.40), "Exp", lines: +5 -1 Made noop the default filter. 2008-12-10 13:41 kristaps Changed: Makefile (1.46), "Exp", lines: +1 -1 html.c (1.24), "Exp", lines: +30 -2 index.7 (1.12), "Exp", lines: +4 -0 mlg.c (1.28), "Exp", lines: +39 -4 roff.c (1.62), "Exp", lines: +7 -4 Sx to Sh anchors work. 2008-12-10 13:15 kristaps Changed: Makefile (1.45), "Exp", lines: +17 -2 index.7 (1.11), "Exp", lines: +2 -0 private.h (1.39), "Exp", lines: +20 -17 roff.c (1.61), "Exp", lines: +43 -66 Put prelude checking into asec. 2008-12-10 12:10 tag VERSION_1_0_2 2008-12-10 12:10 kristaps Changed: Makefile (1.44), "Exp", lines: +1 -1 [no log message] 2008-12-10 12:09 kristaps Changed: Makefile (1.43), "Exp", lines: +1 -3 html.c (1.23), "Exp", lines: +3 -1 html.h (1.3), "Exp", lines: +3 -3 ml.h (1.15), "Exp", lines: +2 -2 mlg.c (1.27), "Exp", lines: +3 -2 private.h (1.38), "Exp", lines: +5 -5 roff.c (1.60), "Exp", lines: +16 -17 Linted on NetBSD side. 2008-12-10 12:05 kristaps Changed: Makefile (1.42), "Exp", lines: +7 -4 html.c (1.22), "Exp", lines: +121 -15 index.7 (1.10), "Exp", lines: +5 -2 literals.c (1.8), "Exp", lines: +83 -1 mdocml.1 (1.25), "Exp", lines: +4 -2 mdocml.css (1.8), "Exp", lines: +3 -1 ml.h (1.14), "Exp", lines: +5 -2 mlg.c (1.26), "Exp", lines: +10 -6 private.h (1.37), "Exp", lines: +4 -2 roff.c (1.59), "Exp", lines: +4 -2 xml.c (1.24), "Exp", lines: +9 -4 Versioning up. 2008-12-10 10:43 kristaps Added: test.69 (1.1) test.70 (1.1) test.71 (1.1) Changed: Makefile (1.41), "Exp", lines: +2 -2 html.c (1.21), "Exp", lines: +12 -4 literals.c (1.7), "Exp", lines: +109 -1 ml.h (1.13), "Exp", lines: +2 -2 mlg.c (1.25), "Exp", lines: +3 -3 private.h (1.36), "Exp", lines: +45 -11 roff.c (1.58), "Exp", lines: +40 -6 xml.c (1.23), "Exp", lines: +3 -4 [no log message] 2008-12-10 00:58 kristaps Changed: Makefile (1.40), "Exp", lines: +1 -1 html.c (1.20), "Exp", lines: +5 -2 html.h (1.2), "Exp", lines: +2 -1 ml.c (1.9), "Exp", lines: +1 -2 tags.c (1.2), "Exp", lines: +2 -1 [no log message] 2008-12-10 00:52 kristaps Added: html.h (1.1) tags.c (1.1) Changed: Makefile (1.39), "Exp", lines: +19 -8 html.c (1.19), "Exp", lines: +135 -112 ml.h (1.12), "Exp", lines: +17 -1 mlg.c (1.24), "Exp", lines: +4 -13 roff.c (1.57), "Exp", lines: +3 -4 xml.c (1.22), "Exp", lines: +3 -1 [no log message] 2008-12-09 19:57 kristaps Changed: Makefile (1.38), "Exp", lines: +2 -2 html.c (1.18), "Exp", lines: +74 -37 literals.c (1.6), "Exp", lines: +2 -2 roff.c (1.56), "Exp", lines: +2 -2 test.52 (1.2), "Exp", lines: +1 -0 [no log message] 2008-12-09 17:09 kristaps Changed: Makefile (1.37), "Exp", lines: +3 -3 html.c (1.17), "Exp", lines: +70 -36 libmdocml.c (1.20), "Exp", lines: +1 -2 literals.c (1.5), "Exp", lines: +248 -75 mdocml.1 (1.24), "Exp", lines: +11 -3 mdocml.c (1.19), "Exp", lines: +8 -3 ml.c (1.8), "Exp", lines: +1 -2 ml.h (1.11), "Exp", lines: +1 -4 mlg.c (1.23), "Exp", lines: +32 -34 private.h (1.35), "Exp", lines: +24 -2 roff.c (1.55), "Exp", lines: +223 -296 tokens.c (1.4), "Exp", lines: +1 -2 xml.c (1.21), "Exp", lines: +1 -2 Considerable clean-ups. 2008-12-09 00:27 kristaps Changed: libmdocml.h (1.13), "Exp", lines: +2 -1 literals.c (1.4), "Exp", lines: +3 -1 mdocml.c (1.18), "Exp", lines: +22 -6 roff.c (1.54), "Exp", lines: +45 -59 [no log message] 2008-12-08 20:32 kristaps Added: test.68 (1.1) Changed: roff.c (1.53), "Exp", lines: +31 -18 [no log message] 2008-12-08 16:29 kristaps Added: test.61 (1.1) test.62 (1.1) test.63 (1.1) test.64 (1.1) test.65 (1.1) test.66 (1.1) test.67 (1.1) Changed: Makefile (1.36), "Exp", lines: +3 -2 html.c (1.16), "Exp", lines: +5 -12 index.7 (1.9), "Exp", lines: +2 -2 libmdocml.c (1.19), "Exp", lines: +6 -14 literals.c (1.3), "Exp", lines: +8 -2 mdocml.1 (1.23), "Exp", lines: +2 -0 mlg.c (1.22), "Exp", lines: +30 -9 private.h (1.34), "Exp", lines: +23 -1 roff.c (1.52), "Exp", lines: +228 -17 test.10 (1.2), "Exp", lines: +1 -1 test.11 (1.2), "Exp", lines: +1 -1 test.12 (1.2), "Exp", lines: +1 -0 test.18 (1.2), "Exp", lines: +1 -0 test.19 (1.2), "Exp", lines: +1 -1 test.21 (1.2), "Exp", lines: +1 -0 test.23 (1.2), "Exp", lines: +1 -0 test.25 (1.2), "Exp", lines: +1 -0 test.28 (1.2), "Exp", lines: +1 -0 test.29 (1.2), "Exp", lines: +1 -0 test.30 (1.2), "Exp", lines: +1 -0 test.31 (1.2), "Exp", lines: +1 -0 test.32 (1.2), "Exp", lines: +1 -0 test.33 (1.2), "Exp", lines: +1 -0 test.34 (1.2), "Exp", lines: +1 -0 test.35 (1.3), "Exp", lines: +1 -0 test.36 (1.2), "Exp", lines: +1 -0 test.37 (1.2), "Exp", lines: +1 -0 test.38 (1.2), "Exp", lines: +1 -0 test.39 (1.3), "Exp", lines: +1 -0 test.40 (1.2), "Exp", lines: +1 -0 test.41 (1.3), "Exp", lines: +1 -0 test.42 (1.2), "Exp", lines: +1 -0 test.43 (1.2), "Exp", lines: +1 -0 test.44 (1.2), "Exp", lines: +1 -0 test.45 (1.2), "Exp", lines: +1 -0 test.46 (1.2), "Exp", lines: +1 -0 test.7 (1.2), "Exp", lines: +1 -0 test.9 (1.2), "Exp", lines: +1 -1 [no log message] 2008-12-08 12:47 tag VERSION_1_0_1 2008-12-08 12:47 kristaps Changed: Makefile (1.35), "Exp", lines: +1 -1 Versioning up. 2008-12-08 12:46 kristaps Changed: Makefile (1.34), "Exp", lines: +3 -2 html.c (1.15), "Exp", lines: +4 -4 index.7 (1.8), "Exp", lines: +2 -0 literals.c (1.2), "Exp", lines: +41 -1 ml.h (1.10), "Exp", lines: +3 -2 mlg.c (1.21), "Exp", lines: +10 -7 private.h (1.33), "Exp", lines: +23 -3 roff.c (1.51), "Exp", lines: +92 -25 roff.h (1.9), "Exp", lines: +137 -123 xml.c (1.20), "Exp", lines: +4 -3 Added warnings for using macros in the wrong sections. 2008-12-07 23:50 kristaps Changed: Makefile (1.33), "Exp", lines: +3 -3 Fixed installation routine. 2008-12-07 23:44 kristaps Changed: Makefile (1.32), "Exp", lines: +18 -8 index.7 (1.7), "Exp", lines: +28 -24 xml.c (1.19), "Exp", lines: +3 -2 [no log message] 2008-12-07 23:08 kristaps Changed: Makefile (1.31), "Exp", lines: +15 -6 index.7 (1.6), "Exp", lines: +36 -8 mdocml.1 (1.22), "Exp", lines: +1 -1 [no log message] 2008-12-07 22:40 kristaps Added: literals.c (1.1) Changed: Makefile (1.30), "Exp", lines: +10 -9 ml.h (1.9), "Exp", lines: +3 -1 mlg.c (1.20), "Exp", lines: +207 -329 private.h (1.32), "Exp", lines: +8 -8 roff.c (1.50), "Exp", lines: +22 -12 roff.h (1.8), "Exp", lines: +2 -2 [no log message] 2008-12-07 21:30 kristaps Added: test.54 (1.1) test.51 (1.1) test.52 (1.1) Changed: Makefile (1.29), "Exp", lines: +10 -1 html.c (1.14), "Exp", lines: +82 -5 index.7 (1.5), "Exp", lines: +40 -6 mdocml.css (1.7), "Exp", lines: +3 -1 ml.h (1.8), "Exp", lines: +7 -1 mlg.c (1.19), "Exp", lines: +57 -45 xml.c (1.18), "Exp", lines: +31 -1 [no log message] 2008-12-07 16:41 kristaps Added: test.53 (1.1) test.55 (1.1) test.56 (1.1) test.57 (1.1) test.58 (1.1) test.59 (1.1) test.60 (1.1) Changed: mdocml.css (1.6), "Exp", lines: +5 -0 mlg.c (1.18), "Exp", lines: +54 -3 roff.c (1.49), "Exp", lines: +25 -2 roff.h (1.7), "Exp", lines: +22 -22 [no log message] 2008-12-07 14:38 kristaps Changed: Makefile (1.28), "Exp", lines: +3 -2 mlg.c (1.17), "Exp", lines: +34 -12 roff.c (1.48), "Exp", lines: +8 -7 roff.h (1.6), "Exp", lines: +2 -2 test.41 (1.2), "Exp", lines: +0 -5 [no log message] 2008-12-06 21:10 kristaps Changed: html.c (1.13), "Exp", lines: +10 -1 mdocml.css (1.5), "Exp", lines: +4 -0 mlg.c (1.16), "Exp", lines: +109 -3 private.h (1.31), "Exp", lines: +3 -2 roff.c (1.47), "Exp", lines: +17 -10 roff.h (1.5), "Exp", lines: +6 -6 xml.c (1.17), "Exp", lines: +2 -1 .St macros in place. 2008-12-06 19:41 kristaps Added: test.43 (1.1) test.44 (1.1) test.45 (1.1) test.46 (1.1) test.47 (1.1) test.48 (1.1) test.49 (1.1) test.50 (1.1) Changed: html.c (1.12), "Exp", lines: +44 -15 mdocml.1 (1.21), "Exp", lines: +10 -10 mdocml.css (1.4), "Exp", lines: +21 -6 mlg.c (1.15), "Exp", lines: +101 -44 roff.c (1.46), "Exp", lines: +28 -25 roff.h (1.4), "Exp", lines: +29 -30 test.35 (1.2), "Exp", lines: +2 -1 [no log message] 2008-12-06 16:50 kristaps Changed: mlg.c (1.14), "Exp", lines: +23 -1 roff.c (1.45), "Exp", lines: +11 -3 roff.h (1.3), "Exp", lines: +4 -4 [no log message] 2008-12-06 13:18 kristaps Added: test.42 (1.1) Changed: index.7 (1.4), "Exp", lines: +1 -2 mdocml.1 (1.20), "Exp", lines: +2 -0 mlg.c (1.13), "Exp", lines: +58 -12 roff.c (1.44), "Exp", lines: +65 -77 roff.h (1.2), "Exp", lines: +2 -2 [no log message] 2008-12-05 22:54 kristaps Added: roff.h (1.1) Changed: Makefile (1.27), "Exp", lines: +3 -3 html.c (1.11), "Exp", lines: +11 -11 roff.c (1.43), "Exp", lines: +4 -266 [no log message] 2008-12-05 22:34 kristaps Changed: html.c (1.10), "Exp", lines: +268 -22 mdocml.1 (1.19), "Exp", lines: +0 -2 mdocml.css (1.3), "Exp", lines: +1 -0 mlg.c (1.12), "Exp", lines: +12 -1 roff.c (1.42), "Exp", lines: +90 -23 Nm works properly, many other changes, etc. 2008-12-05 19:45 kristaps Changed: Makefile (1.26), "Exp", lines: +8 -2 html.c (1.9), "Exp", lines: +48 -53 ml.c (1.7), "Exp", lines: +8 -8 ml.h (1.7), "Exp", lines: +18 -10 mlg.c (1.11), "Exp", lines: +26 -27 xml.c (1.16), "Exp", lines: +102 -65 [no log message] 2008-12-05 17:43 kristaps Changed: html.c (1.8), "Exp", lines: +49 -10 ml.h (1.6), "Exp", lines: +4 -4 mlg.c (1.10), "Exp", lines: +6 -4 xml.c (1.15), "Exp", lines: +9 -9 [no log message] 2008-12-05 11:28 kristaps Changed: html.c (1.7), "Exp", lines: +147 -154 mdocml.1 (1.18), "Exp", lines: +2 -3 ml.c (1.6), "Exp", lines: +9 -1 ml.h (1.5), "Exp", lines: +3 -2 mlg.c (1.9), "Exp", lines: +38 -45 roff.c (1.41), "Exp", lines: +2 -1 [no log message] 2008-12-04 23:10 kristaps Added: test.41 (1.1) Changed: Makefile (1.25), "Exp", lines: +1 -1 html.c (1.6), "Exp", lines: +13 -1 mlg.c (1.8), "Exp", lines: +113 -112 private.h (1.30), "Exp", lines: +2 -2 roff.c (1.40), "Exp", lines: +99 -28 xml.c (1.14), "Exp", lines: +3 -1 [no log message] 2008-12-04 19:31 kristaps Changed: Makefile (1.24), "Exp", lines: +1 -1 index.7 (1.3), "Exp", lines: +2 -2 ml.c (1.5), "Exp", lines: +138 -3 mlg.c (1.7), "Exp", lines: +1 -139 private.h (1.29), "Exp", lines: +5 -4 roff.c (1.39), "Exp", lines: +1 -15 test.39 (1.2), "Exp", lines: +5 -1 tokens.c (1.3), "Exp", lines: +59 -56 Moved charset recognition into the filter. 2008-12-04 16:34 kristaps Changed: index.7 (1.2), "Exp", lines: +13 -3 mlg.c (1.6), "Exp", lines: +9 -6 private.h (1.28), "Exp", lines: +3 -2 roff.c (1.38), "Exp", lines: +10 -2 tokens.c (1.2), "Exp", lines: +9 -2 Character-set validation fixes. 2008-12-04 16:19 kristaps Added: index.7 (1.1) test.38 (1.1) test.39 (1.1) test.40 (1.1) tokens.c (1.1) Changed: Makefile (1.23), "Exp", lines: +9 -9 html.c (1.5), "Exp", lines: +2 -2 mdocml.css (1.2), "Exp", lines: +28 -92 ml.c (1.4), "Exp", lines: +31 -12 ml.h (1.4), "Exp", lines: +2 -2 mlg.c (1.5), "Exp", lines: +212 -27 private.h (1.27), "Exp", lines: +38 -2 roff.c (1.37), "Exp", lines: +80 -41 Character-encoding tests. 2008-12-04 11:25 kristaps Added: mdocml.css (1.1) Changed: Makefile (1.22), "Exp", lines: +1 -1 html.c (1.4), "Exp", lines: +130 -73 libmdocml.h (1.12), "Exp", lines: +4 -2 mdocml.1 (1.17), "Exp", lines: +52 -7 mdocml.c (1.17), "Exp", lines: +33 -16 ml.h (1.3), "Exp", lines: +8 -7 mlg.c (1.4), "Exp", lines: +7 -4 private.h (1.26), "Exp", lines: +3 -2 roff.c (1.36), "Exp", lines: +5 -2 xml.c (1.13), "Exp", lines: +10 -4 More html-css. 2008-12-03 21:27 kristaps Changed: html.c (1.3), "Exp", lines: +165 -17 mlg.c (1.3), "Exp", lines: +4 -3 xml.c (1.12), "Exp", lines: +7 -5 Initial html outputs working. 2008-12-03 19:21 kristaps Changed: html.c (1.2), "Exp", lines: +200 -6 mdocml.1 (1.16), "Exp", lines: +3 -1 mdocml.c (1.16), "Exp", lines: +19 -5 ml.c (1.3), "Exp", lines: +14 -1 ml.h (1.2), "Exp", lines: +9 -2 mlg.c (1.2), "Exp", lines: +98 -37 private.h (1.25), "Exp", lines: +6 -2 roff.c (1.35), "Exp", lines: +24 -87 xml.c (1.11), "Exp", lines: +56 -8 Major update. 2008-12-03 14:39 kristaps Deleted: html4_strict.c (1.10) Added: compat.c (1.1) html.c (1.1) ml.h (1.1) mlg.c (1.1) Changed: Makefile (1.21), "Exp", lines: +21 -13 libmdocml.c (1.18), "Exp", lines: +7 -8 libmdocml.h (1.11), "Exp", lines: +4 -4 ml.c (1.2), "Exp", lines: +34 -130 private.h (1.24), "Exp", lines: +6 -15 xml.c (1.10), "Exp", lines: +47 -565 Abstract ml/mlg/html/xml. 2008-12-02 18:26 kristaps Added: ml.c (1.1) Changed: Makefile (1.20), "Exp", lines: +11 -7 private.h (1.23), "Exp", lines: +8 -1 roff.c (1.34), "Exp", lines: +3 -3 xml.c (1.9), "Exp", lines: +169 -127 Transition to splitting xml/ml. 2008-12-02 13:20 kristaps Added: test.35 (1.1) test.36 (1.1) test.37 (1.1) Changed: Makefile (1.19), "Exp", lines: +5 -3 mdocml.1 (1.15), "Exp", lines: +0 -1 private.h (1.22), "Exp", lines: +2 -2 roff.c (1.33), "Exp", lines: +197 -104 xml.c (1.8), "Exp", lines: +51 -46 Added `Sm' functionality. 2008-12-02 00:15 kristaps Changed: roff.c (1.32), "Exp", lines: +27 -46 xml.c (1.7), "Exp", lines: +3 -3 Lint fixes and prettiness. 2008-12-02 00:10 kristaps Added: test.32 (1.1) test.33 (1.1) test.34 (1.1) Changed: Makefile (1.18), "Exp", lines: +1 -1 libmdocml.c (1.17), "Exp", lines: +2 -2 mdocml.1 (1.14), "Exp", lines: +5 -1 mdocml.c (1.15), "Exp", lines: +4 -1 roff.c (1.31), "Exp", lines: +103 -42 xml.c (1.6), "Exp", lines: +102 -70 Improvements to the xml part. 2008-12-01 21:25 kristaps Added: test.31 (1.1) Changed: Makefile (1.17), "Exp", lines: +1 -1 roff.c (1.30), "Exp", lines: +116 -13 No more segfaults when run over openbsd sources. 2008-12-01 16:14 kristaps Changed: roff.c (1.29), "Exp", lines: +4 -5 Better Oo/Oc support. 2008-12-01 16:01 kristaps Added: test.24 (1.1) test.25 (1.1) test.26 (1.1) test.27 (1.1) test.28 (1.1) test.29 (1.1) test.30 (1.1) Changed: Makefile (1.16), "Exp", lines: +3 -2 roff.c (1.28), "Exp", lines: +35 -17 xml.c (1.5), "Exp", lines: +5 -5 Considerable scoping fixes. 2008-12-01 15:32 kristaps Deleted: dummy.c (1.11) Added: test.23 (1.1) Changed: Makefile (1.15), "Exp", lines: +2 -2 mdocml.1 (1.13), "Exp", lines: +2 -4 private.h (1.21), "Exp", lines: +6 -2 roff.c (1.27), "Exp", lines: +155 -155 xml.c (1.4), "Exp", lines: +2 -1 Considerably improved roff_text parser. Consolidated noop roff macros. 2008-12-01 09:25 kristaps Changed: mdocml.1 (1.12), "Exp", lines: +30 -32 roff.c (1.26), "Exp", lines: +100 -54 xml.c (1.3), "Exp", lines: +17 -3 [no log message] 2008-11-30 23:05 kristaps Changed: mdocml.1 (1.11), "Exp", lines: +0 -11 roff.c (1.25), "Exp", lines: +8 -4 xml.c (1.2), "Exp", lines: +73 -30 Small fixes to output. 2008-11-30 21:41 kristaps Deleted: validate.c (1.7) Added: xml.c (1.1) Changed: Makefile (1.14), "Exp", lines: +9 -9 libmdocml.c (1.16), "Exp", lines: +4 -5 libmdocml.h (1.10), "Exp", lines: +4 -4 mdocml.1 (1.10), "Exp", lines: +33 -16 private.h (1.20), "Exp", lines: +5 -5 roff.c (1.24), "Exp", lines: +3 -3 Preliminary xml output filter (validate-renamed) done. 2008-11-30 20:53 kristaps Changed: Makefile (1.13), "Exp", lines: +10 -21 libmdocml.c (1.15), "Exp", lines: +2 -2 private.h (1.19), "Exp", lines: +2 -2 roff.c (1.23), "Exp", lines: +9 -4 validate.c (1.6), "Exp", lines: +84 -73 Cleaned up presentation with mbuf_putstring & al. 2008-11-30 20:00 kristaps Changed: validate.c (1.5), "Exp", lines: +49 -3 Validate-cum-xmlprint now includes arguments. 2008-11-30 18:53 kristaps Changed: roff.c (1.22), "Exp", lines: +2 -2 Small error fixed. 2008-11-30 18:50 kristaps Changed: mdocml.1 (1.9), "Exp", lines: +5 -6 private.h (1.18), "Exp", lines: +2 -2 roff.c (1.21), "Exp", lines: +96 -21 validate.c (1.4), "Exp", lines: +14 -17 Fixed spacing (almost there). 2008-11-30 12:41 kristaps Changed: mdocml.1 (1.8), "Exp", lines: +7 -3 roff.c (1.20), "Exp", lines: +91 -41 validate.c (1.3), "Exp", lines: +13 -13 Backed out PUNCT changes (again). 2008-11-29 16:23 kristaps Changed: roff.c (1.19), "Exp", lines: +30 -29 Annotated omit-punctuation macros. 2008-11-29 16:11 kristaps Changed: private.h (1.17), "Exp", lines: +2 -2 roff.c (1.18), "Exp", lines: +29 -32 validate.c (1.2), "Exp", lines: +101 -50 Validation presentation (html-like). Fixed newlining for data. Moved roffhead/rofftail to roff_Os. 2008-11-29 14:14 kristaps Added: validate.c (1.1) Changed: html4_strict.c (1.9), "Exp", lines: +2 -2 libmdocml.c (1.14), "Exp", lines: +6 -2 private.h (1.16), "Exp", lines: +6 -6 roff.c (1.17), "Exp", lines: +22 -18 Inclusion of "real" validation code. 2008-11-28 18:15 kristaps Changed: roff.c (1.16), "Exp", lines: +33 -11 Cleaned up exit routine. Added roffhead and rofftail call. 2008-11-28 15:25 kristaps Changed: libmdocml.c (1.13), "Exp", lines: +2 -3 private.h (1.15), "Exp", lines: +12 -14 roff.c (1.15), "Exp", lines: +48 -93 Removed superfluous structures from rofftree. Added roffdata for generalised text processing. 2008-11-28 11:21 kristaps Changed: Makefile (1.12), "Exp", lines: +13 -7 libmdocml.c (1.12), "Exp", lines: +4 -4 libmdocml.h (1.9), "Exp", lines: +4 -4 mdocml.1 (1.7), "Exp", lines: +34 -10 mdocml.c (1.14), "Exp", lines: +1 -3 private.h (1.14), "Exp", lines: +7 -7 roff.c (1.14), "Exp", lines: +74 -39 Initial pushing to mbuf. 2008-11-27 17:27 kristaps Changed: dummy.c (1.10), "Exp", lines: +23 -10 libmdocml.h (1.8), "Exp", lines: +5 -1 mdocml.1 (1.6), "Exp", lines: +6 -3 mdocml.c (1.13), "Exp", lines: +9 -3 private.h (1.13), "Exp", lines: +5 -5 roff.c (1.13), "Exp", lines: +12 -12 [no log message] 2008-11-27 16:54 kristaps Changed: dummy.c (1.9), "Exp", lines: +27 -1 libmdocml.c (1.11), "Exp", lines: +3 -1 private.h (1.12), "Exp", lines: +8 -5 roff.c (1.12), "Exp", lines: +174 -224 Considerable fixes. 2008-11-27 14:02 kristaps Changed: dummy.c (1.8), "Exp", lines: +87 -54 private.h (1.11), "Exp", lines: +2 -1 roff.c (1.11), "Exp", lines: +18 -5 Added "special" macros. 2008-11-27 13:29 kristaps Added: test.20 (1.1) test.21 (1.1) test.22 (1.1) Changed: Makefile (1.11), "Exp", lines: +3 -3 mdocml.1 (1.5), "Exp", lines: +3 -0 roff.c (1.10), "Exp", lines: +84 -50 More fixes and work-ness. 2008-11-27 11:23 kristaps Added: test.18 (1.1) test.19 (1.1) Changed: Makefile (1.10), "Exp", lines: +1 -1 private.h (1.10), "Exp", lines: +4 -2 roff.c (1.9), "Exp", lines: +160 -85 Mainly quotes. 2008-11-26 22:27 kristaps Added: test.16 (1.1) test.17 (1.1) Changed: Makefile (1.9), "Exp", lines: +2 -1 mdocml.c (1.12), "Exp", lines: +2 -2 roff.c (1.8), "Exp", lines: +88 -191 Various fixes. 2008-11-26 21:42 kristaps Changed: Makefile (1.8), "Exp", lines: +3 -3 private.h (1.9), "Exp", lines: +127 -85 roff.c (1.7), "Exp", lines: +139 -63 Considerable fixes. 2008-11-26 16:50 kristaps Added: test.0 (1.1) test.1 (1.1) test.10 (1.1) test.11 (1.1) test.12 (1.1) test.13 (1.1) test.14 (1.1) test.15 (1.1) test.2 (1.1) test.3 (1.1) test.4 (1.1) test.5 (1.1) test.6 (1.1) test.7 (1.1) test.8 (1.1) test.9 (1.1) Changed: Makefile (1.7), "Exp", lines: +10 -0 dummy.c (1.7), "Exp", lines: +10 -4 private.h (1.8), "Exp", lines: +12 -6 roff.c (1.6), "Exp", lines: +295 -252 Added regression tests. Considerable fixes... blah blah blah... 2008-11-25 16:49 kristaps Changed: dummy.c (1.6), "Exp", lines: +42 -23 mdocml.1 (1.4), "Exp", lines: +1 -0 private.h (1.7), "Exp", lines: +101 -56 roff.c (1.5), "Exp", lines: +377 -81 Imported all macros from mdoc(7). Put all names into roff.c with extern access from private.h. Annotated list of changes that must occur for end-game (scope, nests, etc.). 2008-11-25 12:51 kristaps Changed: libmdocml.c (1.10), "Exp", lines: +7 -1 Protection against non-ascii. 2008-11-25 12:14 kristaps Changed: dummy.c (1.5), "Exp", lines: +24 -28 html4_strict.c (1.8), "Exp", lines: +4 -1 libmdocml.h (1.7), "Exp", lines: +1 -3 mdocml.1 (1.3), "Exp", lines: +21 -4 mdocml.c (1.11), "Exp", lines: +3 -7 private.h (1.6), "Exp", lines: +73 -7 roff.c (1.4), "Exp", lines: +126 -95 Single call-back for filters. Removed verbose flag. Added more macros and arguments. 2008-11-24 18:34 kristaps Changed: roff.c (1.3), "Exp", lines: +3 -1 Annotated todo for prologue/text tokens. 2008-11-24 18:32 kristaps Changed: dummy.c (1.4), "Exp", lines: +87 -2 private.h (1.5), "Exp", lines: +24 -2 roff.c (1.2), "Exp", lines: +117 -160 Generic roff_layout for layout tokens. 2008-11-24 14:24 kristaps Added: roff.c (1.1) Changed: Makefile (1.6), "Exp", lines: +14 -7 dummy.c (1.3), "Exp", lines: +44 -15 html4_strict.c (1.7), "Exp", lines: +7 -617 libmdocml.c (1.9), "Exp", lines: +12 -13 mdocml.c (1.10), "Exp", lines: +4 -2 private.h (1.4), "Exp", lines: +22 -22 Split roff engine into roff.c. Re-worked calling convention for md_*. 2008-11-24 08:50 kristaps Changed: dummy.c (1.2), "Exp", lines: +2 -2 html4_strict.c (1.6), "Exp", lines: +84 -42 libmdocml.c (1.8), "Exp", lines: +2 -1 private.h (1.3), "Exp", lines: +4 -4 Roff-line tokens parsed into char**. 2008-11-23 23:35 kristaps Changed: html4_strict.c (1.5), "Exp", lines: +48 -5 Added initial support for callable/parsable. 2008-11-23 23:12 kristaps Changed: html4_strict.c (1.4), "Exp", lines: +36 -28 libmdocml.c (1.7), "Exp", lines: +22 -25 libmdocml.h (1.6), "Exp", lines: +2 -2 mdocml.c (1.9), "Exp", lines: +29 -10 Fixed clarity in libmdocml.c. Fixed debugging messages. 2008-11-23 22:30 kristaps Changed: Makefile (1.5), "Exp", lines: +1 -1 html4_strict.c (1.3), "Exp", lines: +235 -202 libmdocml.c (1.6), "Exp", lines: +3 -4 libmdocml.h (1.5), "Exp", lines: +2 -2 mdocml.c (1.8), "Exp", lines: +4 -1 private.h (1.2), "Exp", lines: +3 -3 Considerable improvements across the board. 2008-11-23 19:10 kristaps Changed: html4_strict.c (1.2), "Exp", lines: +94 -13 libmdocml.h (1.4), "Exp", lines: +3 -1 mdocml.c (1.7), "Exp", lines: +2 -1 Initial support for Sh. Debugging things (will be changed out). 2008-11-23 16:53 kristaps Added: dummy.c (1.1) html4_strict.c (1.1) private.h (1.1) Changed: Makefile (1.4), "Exp", lines: +31 -8 libmdocml.c (1.5), "Exp", lines: +29 -176 Segmentation into html and dummy parsers. Initial recursive-descent parser in place for html/ml parser. Parsing of title tags more-or-less in place. 2008-11-23 11:05 kristaps Changed: libmdocml.c (1.4), "Exp", lines: +73 -9 mdocml.c (1.6), "Exp", lines: +2 -2 Initial foray into roff-parsing. 2008-11-22 20:15 kristaps Changed: Makefile (1.3), "Exp", lines: +5 -2 libmdocml.c (1.3), "Exp", lines: +175 -35 libmdocml.h (1.3), "Exp", lines: +29 -15 mdocml.c (1.5), "Exp", lines: +30 -20 Fuller seperation into mdocml/libmdocml. 2008-11-22 18:34 kristaps Changed: libmdocml.c (1.2), "Exp", lines: +173 -1 libmdocml.h (1.2), "Exp", lines: +25 -1 mdocml.1 (1.2), "Exp", lines: +23 -11 mdocml.c (1.4), "Exp", lines: +66 -238 Putting md_run and friends into libmdocml (needs work to be useful). 2008-11-22 17:14 kristaps Changed: mdocml.c (1.3), "Exp", lines: +52 -63 Consolidated structs (elim. ptr overhead). Set meaningful buffer default sizes. 2008-11-22 16:55 kristaps Changed: mdocml.c (1.2), "Exp", lines: +99 -17 Buffering and line-buffering working and tested. 2008-11-22 14:54 kristaps Changed: Makefile (1.2), "Exp", lines: +4 -2 Fixed dist hook in Makefile (uses a file-target). 2008-11-22 14:53 tag version_0_0 2008-11-22 14:53 kristaps Changed: Makefile (1.1.1.1), "Exp", lines: +0 -0 libmdocml.c (1.1.1.1), "Exp", lines: +0 -0 libmdocml.h (1.1.1.1), "Exp", lines: +0 -0 mdocml.1 (1.1.1.1), "Exp", lines: +0 -0 mdocml.c (1.1.1.1), "Exp", lines: +0 -0 Initial check-in of mdocml. 2008-11-22 14:53 kristaps Added: Makefile (1.1) libmdocml.c (1.1) libmdocml.h (1.1) mdocml.1 (1.1) mdocml.c (1.1) Initial revision