aboutsummaryrefslogtreecommitdiffstatshomepage
Commit message (Collapse)AuthorAgeFilesLines
* Make HTML output more human readable by overhauling line break logicIngo Schwarze2017-01-184-82/+150
| | | | | around tags and by introducing some simple indentation. No change of HTML semantics intended.
* Completely delete the buf field of struct html and all the buf*()Ingo Schwarze2017-01-176-287/+180
| | | | | | | | | 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().
* Simplify the usage of print_otag() by making it accept a variableIngo Schwarze2017-01-177-657/+497
| | | | | | | | | | 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.
* When looking up macro values while the macro tables are being builtIngo Schwarze2017-01-152-63/+131
| | | | | | | | | | | | | | | 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.
* Skipping all escape sequences at the beginning of strings in deroff()Ingo Schwarze2017-01-121-9/+5
| | | | | | | | was too aggressive. There are strings that legitimately begin with an escape sequence. Only skip leading escape sequences representing whitespace. Bug reported by martijn@.
* show meta data for -Ttree outputIngo Schwarze2017-01-122-7/+39
|
* Put compiler arguments that may contain -l at the end; according toIngo Schwarze2017-01-121-3/+3
| | | | | the people at Alpine Linux, gcc 6 seems to fail when it's at the beginning. From Daniel Sabogal via http://git.alpinelinux.org.
* Do text production for .Bt, .Ex, .Rv, .Ud at the validation stageIngo Schwarze2017-01-115-406/+212
| | | | | | | | | 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@.
* Use new NODE_NOSRC and NODE_NOPRT flags for .Bx and .At.Ingo Schwarze2017-01-105-104/+55
| | | | More rigorous AST and 40 lines less code.
* For the .Ux/.Ox family of macros, do text production at the validationIngo Schwarze2017-01-106-225/+213
| | | | | stage rather than in each and every individual formatter, using the new NODE_NOSRC flag. More rigorous and also ten lines less code.
* simplify; NODE_ENDED does no harm in man(7)Ingo Schwarze2017-01-101-9/+3
|
* unify names of AST node flags; no change of cpp outputIngo Schwarze2017-01-1015-158/+155
|
* Introduce flags NODE_NOSRC and NODE_NOPRT for AST nodes.Ingo Schwarze2017-01-107-25/+55
| | | | | | | | | 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.
* Use stdout rather than stdin for controlling the terminalIngo Schwarze2017-01-092-9/+9
| | | | | | | 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@.
* Clarify how tabs after .It workIngo Schwarze2017-01-091-8/+20
| | | | | | | 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@.
* The .No macro is not supposed to produce fixed-width font, it is notIngo Schwarze2017-01-091-2/+2
| | | | | the same as .Li, so don't use <code>. Bug reported by <Anton dot Lindqvist at gmail dot com> on tech@.
* Warnings and errors that occur during mdoc_validate()Ingo Schwarze2017-01-094-8/+42
| | | | | | 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.
* Indentation must be measured in units of the surrounding text,Ingo Schwarze2017-01-081-9/+9
| | | | | | | | | | 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@.
* Fix an assertion failure caused by \z\[u00FF] with -Tps/-Tpdf.Ingo Schwarze2017-01-081-3/+15
| | | | Reported by jsg@ after an afl(1) run long ago.
* from Tiago Silva <tiagofilipesilva at icloud dot com> long agoIngo Schwarze2017-01-081-2/+2
|
* Tolerate bare tabs in SYNOPSIS .Cd for now.Ingo Schwarze2017-01-081-2/+3
| | | | | | | 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.
* Stricter validation of the NAME section, in particular:Ingo Schwarze2017-01-084-24/+41
| | | | | | | - 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
* sort options list; from jmc@Ingo Schwarze2017-01-062-14/+14
|
* escape a macro name that is not intended to be calledIngo Schwarze2016-12-281-3/+3
|
* correct spelling error; from jmc@Ingo Schwarze2016-12-281-2/+2
|
* Make the second, section number argument of .Xr mandatory.Ingo Schwarze2016-12-285-13/+37
| | | | | | 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.
* When reporting "whitespace at end of input line" on lines ending withIngo Schwarze2016-12-071-2/+4
| | | | | | 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@.
* sync with NetBSD: add four new libraries;Ingo Schwarze2016-11-231-1/+5
| | | | triggered by a smaller patch from kamil@ via wiz@
* Do not install libmandoc.a by default.Ingo Schwarze2016-11-193-14/+31
| | | | | | 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@.
* warn about trailing whitespace at the end of comments;Ingo Schwarze2016-11-101-6/+12
| | | | missing feature noticed by jmc@
* document improved tagging functionalityIngo Schwarze2016-11-081-3/+15
|
* use .Fn in custom sections for tagging, in addition to in DESCRIPTION;Ingo Schwarze2016-11-081-2/+2
| | | | written on the TGV Paris-Strassbourg
* tag leading .Dv, .Li, and .No in .It;Ingo Schwarze2016-11-081-1/+2
| | | | written on the TGV Paris-Strassbourg
* implement tag priority 0, which will tag only keys that appear asIngo Schwarze2016-11-082-7/+37
| | | | | tag candidates exactly once, and use it for .Em and .Sy; written on the TGV Toulouse-Paris
* generate two tag entries from list entries of the formIngo Schwarze2016-11-081-2/+4
| | | | | .It Macro tag1 ... | Macro tag2 ... written on the TGV Toulouse-Paris
* skip leading \& and \e in tagsIngo Schwarze2016-11-081-2/+8
|
* support more than one tag entry for the same search term;Ingo Schwarze2016-11-081-8/+39
| | | | general idea discussed with bcook@ during l2k16
* cast off_t and uint64_t for printf(3)Ingo Schwarze2016-10-222-4/+5
| | | | | | to make sure that widths match on all platforms; from Ed Maste <emaste at freebsd dot org>; OK guenther@
* typo in informational message: s/UTF_LOCALE/UTF8_LOCALE/Ingo Schwarze2016-10-201-2/+2
|
* 0x%llu is a bad idea, make that 0x%llx;Ingo Schwarze2016-10-201-2/+2
| | | | noticed while investigating a report from Ed Maste
* st_size is off_t, which is signed, so use %lld rather than %llu;Ingo Schwarze2016-10-201-2/+2
| | | | noticed by Ed Maste when compiling on FreeBSD
* Avoid the confusion that -a might require a section argument; it does not.Ingo Schwarze2016-10-191-8/+4
| | | | | Triggered by a question from <jmates at ee dot washington at edu>. OK jmc@.
* bring back support for sortingIngo Schwarze2016-10-182-9/+66
|
* sync with OpenBSDIngo Schwarze2016-10-181-17/+12
|
* The termination condition of the iteration logic in page_bymacro()Ingo Schwarze2016-10-181-19/+23
| | | | | | | 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!
* Compat glue for the FreeBSD comparison function prototype for fts_open(3)Ingo Schwarze2016-10-184-19/+54
| | | | | which differs from what most other systems use. While here, improve diagnostic output of ./configure tests.
* update after rev. 1.5 of dba.cIngo Schwarze2016-10-181-1/+1
|
* Simplify and correct support for reproducible builds, such that databaseIngo Schwarze2016-10-182-39/+30
| | | | | | | | | | 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.
* link to http://mdocml.bsd.lv/mdoc/ below SEE ALSO;Ingo Schwarze2016-10-111-2/+8
| | | | tweak and OK jmc@
* Delete complicated code dealing with .Bl -tag without -width,Ingo Schwarze2016-10-094-88/+7
| | | | | | | | | | | | 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).