summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* The code is already careful to not add items to lists that wereIngo Schwarze2014-12-182-20/+32
| | | | | | | 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.
* [[:<:]] is not POSIXIngo Schwarze2014-12-171-0/+4
|
* minimally document -IOKTW; requested by naddy@Ingo Schwarze2014-12-171-8/+65
|
* Be a bit more lenient in what to accept for section names givenIngo Schwarze2014-12-171-5/+6
| | | | | | 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).
* Ignore mdoc(7) and man(7) macros inside tbl(7) code because theyIngo Schwarze2014-12-164-4/+22
| | | | | would abort the table in an unclean way, causing assertion failures found by jsg@.
* correct -Tutf8 and -Thtml rendering of \(~=Ingo Schwarze2014-12-162-7/+7
| | | | | and change the name of \(-~ to \(|= to agree with groff; difference found by Carsten dot Kunze at arcor dot de
* Explicit block closure macros clobber next-line block head scope,Ingo Schwarze2014-12-161-2/+2
| | | | | just like explicit block macros themselves. Fixing an assertion failure jsg@ found with afl.
* When a string comparison condition contains no mismatching characterIngo Schwarze2014-12-161-1/+1
| | | | | | | | 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).
* When a numerical condition errors out after consuming at least oneIngo Schwarze2014-12-161-2/+5
| | | | | | | 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.
* Empty conditions count as false.Ingo Schwarze2014-12-151-0/+2
| | | | | | When negated, they still count as false. Found when investigating crashes jsg@ found with afl. Not completely fixing the crashes yet.
* correct some character names to match groff;Ingo Schwarze2014-12-152-15/+15
| | | | reported by Carsten dot Kunze at arcor dot de
* Let "man n open" do the same as "man -s n open" again, that is,Ingo Schwarze2014-12-151-3/+4
| | | | | show the open(n) Tcl manual, as documented in man(1). Issue reported by Svyatoslav Mishyn <juef at openmailbox dot org> (Crux Linux).
* Catch localtime() failure for additional safety;Ingo Schwarze2014-12-151-0/+2
| | | | patch from Jan Stary <hans at stare dot cz> some time ago.
* version 1.13.2VERSION.1.13.2Ingo Schwarze2014-12-132-2/+2
|
* Fix a regression found by Carsten dot Kunze at arcor dot de:Ingo Schwarze2014-12-132-5/+12
| | | | Do not show bogus quotes when .Bl -column phrases are quoted.
* escape Nd on a macro lineIngo Schwarze2014-12-121-1/+1
|
* Guard some come needed for database support only by #if HAVE_SQLITE3.Ingo Schwarze2014-12-111-4/+19
| | | | Compiler warnings about unused code reported by wiz@NetBSD.
* Make this work on illumos:Ingo Schwarze2014-12-111-30/+8
| | | | | | | * define MAX() * ignore O_DIRECTORY if it isn't defined * garbage collect two unused variables Issues reported and fix tested by wiz@NetBSD.
* fix RCS IDsIngo Schwarze2014-12-111-1/+2
|
* sync to OpenBSDIngo Schwarze2014-12-113-6/+14
|
* new Copyright yearsIngo Schwarze2014-12-111-2/+2
|
* link to EuroBSDCon 2014Ingo Schwarze2014-12-111-2/+3
|
* correctly align document header and footer;Ingo Schwarze2014-12-101-3/+6
| | | | suggested by kristaps@
* the asciidoc/docbook toolchain uses braindead \h for indentationIngo Schwarze2014-12-101-2/+3
|
* more release preparationsIngo Schwarze2014-12-092-3/+75
|
* first cut at updating for the next releaseIngo Schwarze2014-12-091-17/+42
|
* Support choosing alternative binary and manual names from configure.local,Ingo Schwarze2014-12-094-16/+74
| | | | to help downstream distributions avoid naming conflicts.
* Integrate the makewhatis binary into the mandoc binaryIngo Schwarze2014-12-094-21/+26
| | | | | just like we do it on OpenBSD. Smaller and neater. While here, let ./configure set INSTALL_TARGETS.
* Some sorting and some more comments.Ingo Schwarze2014-12-091-18/+27
| | | | Drop DISTDIR from www-install target.
* Install "man" as a hardlink to "mandoc" during db-install.Ingo Schwarze2014-12-091-11/+7
| | | | | Install man(1) manual in db-install, not base-install. Get rid of the useless variables BASEBIN, DBBIN, CGIBIN.
* When opening mandoc.db fails, tell the user in which directory.Ingo Schwarze2014-12-061-1/+3
| | | | Improving an unhelpful error message reported by millert@.
* implement help(1)Ingo Schwarze2014-12-051-8/+21
|
* Improve parsing of function names.Ingo Schwarze2014-12-051-24/+27
| | | | This gets rid of the last bogus entries in base and Xenocara.
* Do not misinterpret function arguments as function names;Ingo Schwarze2014-12-051-0/+3
| | | | improves semantic analysis of more than 300 manuals.
* Render text before, not after accumulating flag bits, such that flagsIngo Schwarze2014-12-051-116/+107
| | | | | for different representations of the same string end up in the same database entry. Improves name classification for 500 manuals.
* When finding a .so link after the page was already processed,Ingo Schwarze2014-12-041-3/+16
| | | | | do not clobber the existing names flags; instead, OR the additional flags into them.
* correctly store .Dt and .TH information in the names tableIngo Schwarze2014-12-041-10/+27
|
* in the SYNOPSIS, add .Fo and first .Fn arguments to the names tableIngo Schwarze2014-12-041-1/+16
|
* In the SYNOPSIS, if .Nm occurs without argument, give the first .NmIngo Schwarze2014-12-041-24/+47
| | | | that occurred in the document a NAME_SYN entry in the names table.
* fix handling of roff requests having a default scale other than "n",Ingo Schwarze2014-12-043-3/+3
| | | | | in particular .sp which uses "v", when the scale is not specified; cures groff-mandoc differences in about a dozen Xenocara manuals
* Ignore macros that never produce any text when deciding whetherIngo Schwarze2014-12-041-12/+23
| | | | | | 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.
* delete five entries that were already fixedIngo Schwarze2014-12-031-23/+0
|
* Switch the default output mode from -Tascii to -Tlocale.Ingo Schwarze2014-12-022-6/+8
| | | | | | | | 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
* note to self to not forget about groffIngo Schwarze2014-12-021-0/+6
|
* we really need .taIngo Schwarze2014-12-021-1/+2
|
* Fix the implementation and documentation of \c (continue text input line).Ingo Schwarze2014-12-0210-25/+21
| | | | | In particular, make it work in no-fill mode, too. Reminded by Carsten dot Kunze at arcor dot de (Heirloom roff).
* developer documentation regarding header filesIngo Schwarze2014-12-012-0/+513
|
* header cleanup:Ingo Schwarze2014-12-0115-32/+41
| | | | | | * add missing forward declarations * remove needless header inclusions * some style unification
* The header libmandoc.h is part of the internal parser interface,Ingo Schwarze2014-12-011-1/+0
| | | | | | 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.
* The file read.c is part of the parser, so it cannot include main.h,Ingo Schwarze2014-12-012-4/+3
| | | | | | | 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.