summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* first batch of -T markdown testsIngo Schwarze2017-03-05231-8/+3706
|
* Infrastructure for -T markdown tests.Ingo Schwarze2017-03-052-5/+37
| | | | | | 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.
* Remove a redundant condition in .%T handling, no functional change.Ingo Schwarze2017-03-042-8/+4
| | | | Found by jsg@ with scan-build.
* Make the description of -K autodetection easer to understand.Ingo Schwarze2017-03-041-11/+19
| | | | Basic idea suggested by jmc@, OK jmc@.
* Debian needs relative symlinks not only for manual pages,Ingo Schwarze2017-03-043-13/+23
| | | | | | but also for program files. Issue reported by Michael <Stapelberg at debian dot org> and by Markus <Waldeck at gmx dot de>.
* Markdown output mode helped us to find the first parser bug (as such,Ingo Schwarze2017-03-031-8/+9
| | | | | | | | | | 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.
* new -mdoc -Tmarkdown output mode; OK millert@ reyk@ tb@;Ingo Schwarze2017-03-036-9/+1490
| | | | thanks to reyk@ and to Vsevolod at FreeBSD for suggesting it
* remove a few redundant conditions that jsg@ found with cppcheckIngo Schwarze2017-03-034-4/+4
|
* Fix a copy-and-paste error that caused man(7) manuals withoutIngo Schwarze2017-03-031-1/+1
| | | | | a section number in .TH to be misinterpreted as preformatted. Found by jsg@ with cppcheck.
* A missing initialization could randomly cause regular expressionIngo Schwarze2017-03-031-0/+1
| | | | | searches to be case-insensitive that ought to be case sensitive. Found by jsg@ with scan-build.
* Fix previous: do not access the byte before the string if the stringIngo Schwarze2017-03-031-1/+1
| | | | is empty; found by jsg@ with afl(1).
* Pledge man.cgi(8).Ingo Schwarze2017-02-221-0/+16
| | | | | Based on a more complicated patch from semarie@. Sebastien and tb@ both agree with the simplification.
* Since SQLite is gone, we no longer need the "flock" pledge.Ingo Schwarze2017-02-221-2/+2
| | | | Patch from semarie@, OK tb@.
* Handle an odd edge case where .It is preceded by .Sm.Ingo Schwarze2017-02-221-0/+1
| | | | | NULL dereference in man.cgi reported by Gabriel Guzman <gabe at guzman dash nunez dot com> on misc@.
* Debian wants relative, not absolute symlinks for man pages;Ingo Schwarze2017-02-221-2/+1
| | | | suggested by Michael Stapelberg
* fix spelling error;Ingo Schwarze2017-02-211-1/+1
| | | | found by Michael <Stapelberg at debian dot org> with Lintian
* release 1.14.1VERSION.1.14.1Ingo Schwarze2017-02-212-13/+21
|
* resolve trivial differences with OpenBSD:Ingo Schwarze2017-02-181-3/+1
| | | | | * we include <sys/types.h> for size_t, so we don't need <stdint.h> * sort declarations in read_whole_file()
* add some regress targetsIngo Schwarze2017-02-181-0/+28
|
* preconv_encode() can take a const input buffer;Ingo Schwarze2017-02-182-7/+7
| | | | diff from <christos at NetBSD>
* Provide an uninstall target, to help cleaning up after installingIngo Schwarze2017-02-181-7/+50
| | | | with the wrong DESTDIR. Use with care.
* proper test for O_DIRECTORYIngo Schwarze2017-02-186-10/+12
|
* double quotes were fixed, finallyIngo Schwarze2017-02-181-4/+1
|
* Use typographic quotes rather than '"' for .Rs %T (no change for -TasciiIngo Schwarze2017-02-177-6/+70
| | | | | output, of course). Patch from bentley@ in November 2014. This can be committed now because groff merged Anthony's patch yesterday.
* Many people have been complaining for a long time that ``...'' looksIngo Schwarze2017-02-1711-17/+16
| | | | | | | | | | | 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.
* more tests for .IP/.nf interaction that i forgot to commitIngo Schwarze2017-02-172-2/+69
|
* No need to cast NULL when assigning it to a variable;Ingo Schwarze2017-02-171-1/+1
| | | | from Christos Zoulas <christos at NetBSD>.
* Improve clarity of some casts;Ingo Schwarze2017-02-172-7/+7
| | | | from Christos Zoulas <christos at NetBSD>.
* Make the directory explicit where source files are located.Ingo Schwarze2017-02-171-1/+4
| | | | | This is simple and seems to help the NetBSD build infrastructure. From Christos Zoulas <christos at NetBSD>.
* Be consistent in protecting __attribute__ attributes with __;Ingo Schwarze2017-02-178-9/+9
| | | | from Christos Zoulas <christos @ NetBSD>.
* Fix a read buffer overrun that copied random data from memory intoIngo Schwarze2017-02-171-3/+11
| | | | | | | | | | | 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.
* add $(LN) configuration variable; requested by Michael <Stapelberg@debian.org>Ingo Schwarze2017-02-163-7/+18
|
* fix previous: stupid typoIngo Schwarze2017-02-161-2/+2
|
* Provide a variable BINM_CATMAN.Ingo Schwarze2017-02-164-5/+15
| | | | Suggested by Michael <Stapelberg@debian.org>.
* Surprisingly, groff does not support scaling units in .Bl -columnIngo Schwarze2017-02-164-9/+15
| | | | | | 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
* Fix rev. 1.280: -O syntax is different in default apropos(1) outputIngo Schwarze2017-02-161-17/+22
| | | | | mode and in other output modes, so do not error out prematurely. Also sort local variables in main() while here.
* Fix block scoping error if an explicit block is broken by twoIngo Schwarze2017-02-164-12/+31
| | | | | | | | | 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.
* Remove the ENDBODY_NOSPACE flag, simplifying the code.Ingo Schwarze2017-02-167-21/+7
| | | | | | | | 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.
* Style improvement, no functional change.Ingo Schwarze2017-02-151-7/+6
| | | | | | | | | | 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@
* Fix previous: I forgot that i had to change the convention howIngo Schwarze2017-02-151-1/+1
| | | | | a node is marked as "not a macro" when unifying the parsers. Confirmed to work by Sevan Janiyan.
* Do not access a NULL pointer if a matrix or square root are empty.Ingo Schwarze2017-02-129-11/+43
| | | | Crashes found by tb@ with afl(1).
* Do not read one element past the end of the static const termacts array.Ingo Schwarze2017-02-111-1/+2
| | | | | | | 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...
* new regression tests for mdoc_macro.c revs. 1.211-1.215Ingo Schwarze2017-02-1113-12/+85
|
* Disable three UTF-8 tests that expose bugs in wcwidth(3) in theIngo Schwarze2017-02-111-1/+1
| | | | | | | | | | | | 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.
* Never look for broken blocks inside blocks that are already closed.Ingo Schwarze2017-02-112-3/+6
| | | | | 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
* Do not prematurely close .Nd containing a broken child.Ingo Schwarze2017-02-112-3/+11
| | | | | | Fixes tree corruption leading to NULL dereference in insane cases like .Oo Oo .Nd .Pq Oc .Oc Oc found by tb@ with afl(1).
* Do not prematurely mark intermediate blocks as broken while scanningIngo Schwarze2017-02-111-9/+16
| | | | | backwards. Only do so when a block is found that is actually broken. Logic error found while investigating crashes reported by tb@.
* For child macros of block-end macros, only scan backwards for pendingIngo Schwarze2017-02-101-6/+7
| | | | | | | | 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).
* In the SYNOPSIS, .Nm blocks can get broken if one of their childrenIngo Schwarze2017-02-102-6/+16
| | | | | | | | | | | | 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).
* In -Ttree output mode, show the BROKEN node flag andIngo Schwarze2017-02-106-7/+29
| | | | provide a -Onoval output option to show the unvalidated tree.