Age | Commit message (Collapse) | Author |
|
for the private use area starting at U+E000.
Sometimes, even i'm surprised how much stuff these tests keep track of.
Originally, they were only intended to catch regressions in mandoc...
Issue noticed by daniel@, thanks!
|
|
seperation of parsing and validation modules. I originally intended to
mop this up when the parser reorg is complete, but since the work
stalled a bit, i should not leave this lying around broken for weeks.
Reminded by daniel@.
|
|
fixed wcwidth(3) for various unusual characters.
|
|
its contents. Removing a gratuitious difference to groff output
found after a related bug report from krw@.
|
|
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...
|
|
|
|
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@.
|
|
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@.
|
|
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@.
|
|
.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@.
|
|
changed the output of wcwidth(3) for some weird Unicode characters,
causing harmless whitespace changes in mandoc(1) output; fix up the
regression suite accordingly.
The processing of the characters themselves still works correctly,
as it did before, and that's what these tests are intended to make
sure. They were never intended to check for whitespace issues.
Problem reported by jsg@.
|
|
in particular not for tagged paragraphs.
Issue found by Christian Neukirchen <chneukirchen at gmail dot com>
in the exiv2(1) manual page.
|
|
|
|
remove the special casing in the test suite
|
|
that is, after "\{".
Issue found by Markus <Waldeck at gmx dot de> in bash(1).
|
|
Missing feature found by Markus <Waldeck at gmx dot de>
in Debian's bash(1) manual page.
|
|
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).
|
|
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).
|
|
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).
|
|
as vertical spacing requests. Bug found with xmahjongg(6).
|
|
width, not from the saved width of the previous level.
Improves xterm(1) and XSetEventQueueOwner(3); found in transcode_filter(1).
|
|
Reduces groff-mandoc differences in base and Xenocara by about 4%.
Found while looking at wpa_supplicant(8).
|
|
the end macro of a broken block, put all of it into the breaking block.
Needed for example by mutella(1).
|
|
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).
|
|
Reduces groff-mandoc differences in base by about 2.5% due to
various Perl manuals having long section titles.
Quirk found in argtable2(3).
|
|
Found while writing a regression test for man_macro.c rev. 1.66.
Incidentally, this brings rendering of XFreeEventData(3) closer to groff.
|
|
|
|
Issue reported by Christian Neukirchen <chneukirchen at gmail dot com>.
|
|
|
|
confusing messages reported by Jan Stary <hans at stare dot cz>
|
|
This fixes a bug naddy@ found in plan9/rc(1).
|
|
of .Do/.Dc, .Dq, .Lb, and .St untouched.
Reduces groff-mandoc differences in base by about 7%.
Reminded of the issue by naddy@.
|
|
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.
|
|
improved diagnostics, minus six lines of code
|
|
|
|
finally fixed the four issues explained in the mdoc_macro.c rev. 1.47
commit message.
|
|
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
|
|
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.
|
|
found by jsg@ with afl, test case #16
|
|
eventually leading to NULL pointer access;
found by jsg@ with afl, text case #455.
|
|
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.
|
|
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.
|
|
|
|
so if we are in a loop over blocks, cleanly restart the loop
rather than risking use after free; found by jsg@ with afl.
|
|
by more specific messages, improving diagnostics for .cc .tr .Bl -column
|
|
|
|
|
|
|
|
replacing the last instances by more specific warnings.
Improved functionality, minus 50 lines of code.
|
|
better handle .Fo with more than one argument
|