| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
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@
|
|
|
|
|
| |
a node is marked as "not a macro" when unifying the parsers.
Confirmed to work by Sevan Janiyan.
|
|
|
|
| |
Crashes found by tb@ with afl(1).
|
|
|
|
|
|
|
| |
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...
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Fixes tree corruption leading to NULL dereference
in insane cases like .Oo Oo .Nd .Pq Oc .Oc Oc
found by tb@ with afl(1).
|
|
|
|
|
| |
backwards. Only do so when a block is found that is actually broken.
Logic error found while investigating crashes reported by tb@.
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
| |
provide a -Onoval output option to show the unvalidated tree.
|
|
|
|
|
| |
for portability, use (char *)NULL in execlp(3) as discussed on tech@
OpenBSD (didn't blow up anywhere yet, but better safe than sorry)
|
|
|
|
|
| |
fix it better after the 1.14.1 release. Portability issue reported
by Sevan Janiyan <venture37 at geeklan dot co dot uk>.
|
|
|
|
| |
Deprecated perlre(1) syntax reported by Thomas Klausner and Sevan Janiyan.
|
|
|
|
| |
Make it easier to get rid of it.
|
| |
|
|
|
|
| |
needed for Solaris 11
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Both kristaps@ and wiz@ repeated asked for this,
literally for years.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
get into the way, and fix the usage() while here
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Also add forgotten <span class="Ux"> to .At rendering.
|
| |
|
|
|
|
| |
suggested by bentley@ long ago, but needed lots of cleanup first
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
for development in the tree, not yet ready for production
|
|
|
|
|
| |
a different macro language and hence require a different indent.
You can see the effect with "man -a 1 host hostname".
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
| |
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>.
|
|
|
|
| |
maybe it is MacOS X specific, i don't know...
|
| |
|