| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
|
|
| |
trickery because widths may be on-the-fly recalculated. I don't like
how these are split between mdoc_action.c and mdoc_validate.c, but for
the time being, it'll do.
|
|
|
|
|
| |
to 6n if no value is specified" and added regression tests for `Bl'
testing against the empty -offset argument.
|
|
|
|
|
| |
obviously, which was causing fallout) and again remove the loop code.
Tested more thoroughly.
|
|
|
|
| |
scanning the argv list in print_bvspace(), and thus the parent pointer.
|
|
|
|
| |
cached values. You can probably guess where this is going.
|
|
|
|
|
|
| |
the "data" union in mdoc_node. Allows me to remove some ugly loops in
the front-end and duplicate tests in mdoc_action.c. Add a regression
test to make sure we're not doing anything bad (more to come).
|
|
|
|
|
|
|
|
|
|
|
| |
only calculated once in mdoc_validate.c.
Noted that `Bd -file xxx' is not supported: it now raises a fatal
warning. This is noted in mdoc.7.
Empty `Bd' now defaults to LIST_ragged, which is not quite what groff
does, but close enough (gross just throws away the `Bd' and gets upset
when it encounters an `Ed').
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the title line uses special characters, mandoc will segfault.
Thus, first set up the character tables, then print the header,
as we always did.
Found in OpenBSD /usr/src/usr.sbin/bind/bin/check/named-checkconf.8.
While here, set p->tabwidth in terminal_man() for symmetry
with terminal_mdoc(), as suggested by millert@ (and already
committed to OpenBSD earlier). Since 5 is the default, this
is not strictly required, but it is certainly clearer and more
robust.
"looks fine" kristaps@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
output. This is more tricky than you may think: we can't just call the
header function out-of-state (i.e., before a flushln has occured)
because we'd clobber our current state. Thus, we call at the beginning
and dump the output into an auxiliary buffer.
For the record, I don't think there's any other clean way to do this.
The only other Way That Works is to copy-aside *all* termp state, zero
it, and do the necessary headf/footf. This is just as complex, as
memory needs to be alloc'd and free'd per margin.
Unfortunately, this prohibits page numbering (the margin is only printed
once), so I'll probably end up re-writing this down the line.
|
|
|
|
|
|
| |
within term.c, but does add a small shim over putchar() that switches on
the output engine. Prints, for this initial version, only monospace and
without font decorations. It's a start.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
inconsistent behaviour. In short:
Some macros are displayed differently in the SYNOPSIS
section, particularly Nm, Cd, Fd, Fn, Fo, In, Vt, and Ft.
All of these macros are output on their own line. If two
such dissimilar macros are pair-wise invoked (except for Ft
before Fo or Fn), they are separated by a vertical space,
unless in the case of Fo, Fn, and Ft, which are always
separated by vertical space.
Behaviour ok Jason McIntyre, ingo@. Fallout will be treated
case-by-case.
I had to clear out some regressions that were testing against groff's
stranger behaviours: these will now break, as we don't care about such
invocations.
Also removed the newline for `Cd' invocation in a non-SYNOPSIS context.
|
|
|
|
|
|
|
|
|
|
|
| |
Restore the blank line before .In in SYNOPSIS
except right after .Sh or right after another .In.
Even though Kristaps says SYNOPSIS blank-line handling
is still very much work in progress and more is probably needed,
this one is useful to keep in sync with OpenBSD.
"fine" kristaps@
|
| |
|
|
|
|
| |
`Fn'.
|
|
|
|
|
|
|
| |
extent.
Documented `Fn'. Please note the COMPATIBILITY note regarding historic
groff.
|
|
|
|
|
|
| |
Fixed `In' to behave properly: it wasn't properly breaking lines,
formatting, or really anything else. Noted COMPATIBILITY with
OpenBSD's groff, which pukes all over `In'.
|
|
|
|
|
| |
hell `Fd' is supposed to do anyway (answer: it's a historical macro and
we shouldn't be doing anything with it anyway).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add `Ta' macro, which is basically a NULL case everywhere but in
mdoc_macro.c, where it closes out an existing `It' body scope and opens
a new one, then continues parsing as in phrase() (TODO: merge these
two?).
Fix where scope-breaking was silently just dying instead of printing an
error.
Fix where trailing `Ta' or tab weren't creating a new MDOC_BODY context.
We now support arbitrarily complex `It' contents for `Bl -column'.
|
|
|
|
|
|
|
|
|
|
| |
will make it easy for re-entrant parsing of `Ta' macros to fit in with
standard closure rules.
Added some more regressions for `Bl -column'. Note that one should
fail, as documented in the TODO file.
Recorded change of AST BNF in mdoc.3.
|
|
|
|
| |
mirrored across front-ends.
|
|
|
|
|
|
|
|
|
|
| |
has not been opened and closing punctuation is encountered AND the macro
is marked as accepting no-content (or `Li'), then open an empty scope.
Added regression tests for `Fl' and `Li' testing this behaviour.
Also, squeeze hyph0.in tests into the last characters of each line so
that groff doesn't hyphenate and break the test.
|
|
|
|
|
|
|
|
|
|
|
| |
Proper EOS handling for `Rv', `Ex', `Ud', and `Bt'.
Both `Bt' and `Ud' now warn about and discard line arguments (reported
by Ulrich Spoerlein).
Collapsed posts_xr into posts_wtext (harmless: they're the same thing).
Added regressions for `Ud' and `Bt'.
|
|
|
|
|
|
|
| |
save the visual cursor position in term_flushln()
and use that to avoid multiple blank lines in nested lists while
still putting subsequent empty list tags each on their own line;
"go ahead" kristaps@
|
|
|
|
|
|
|
|
| |
and outside. In literal context, tab stops are at each eigth column;
outside, they are at each fifth column.
from OpenBSD mdoc_term.c rev. 1.75;
"commit" kristaps@
|
|
|
|
| |
rev. 1.125 broke vertical spacing in .Bl -column
|
| |
|
|
|
|
|
|
|
| |
This will eventually be used so that mdoc_macro can known whether to
dump list line arguments into the body (`Bl -column' overflowing).
Remove a2list() and arg_listtype() because of this.
|
|
|
|
|
|
|
|
|
|
|
| |
stringified in main.c.
Allow `An' to handle an argument and child (with a warning).
Allow `Rv' and `Ex' to work without a prior `Nm' as groff does (with a
warning).
Allow inconsistent column syntax to only raise a warning.
|
|
|
|
|
|
| |
All manual sections (unknown, 3p, 3f, etc.) correctly handled by -mdoc.
Useful warning printed if unknown manual section.
Checking for manual sections (e.g., LIBRARY) checks only first character, so 3p, 3f, etc. are free.
|
|
|
|
| |
the default margin. Hard-code 80 chars/line for now.
|
|
|
|
|
| |
Fixed assumption that parse-point == 1 equates to beginning of line (false if whitespace separates macro and control character).
Fixed line-break for non-first-macro in several SYNOPSIS macros.
|
|
|
|
| |
output engine with flag.
|
| |
|
| |
|
|
|
|
| |
mandoc TODO by way of Jason McIntyre).
|
|
|
|
| |
McIntyre and posted on Ingo Schwarze' mandoc-todo list).
|
| |
|
|
|
|
| |
in the front-end device) (noted by Theo de Raadt).
|
|
|
|
| |
the same line.
|
|
|
|
| |
arguments (emits warning of course).
|
|
|
|
|
|
|
|
|
|
|
| |
and closing macro punctuation).
Modify blk_part_exp() to correctly handle leading punctuation before HEAD.
Significantly clean up and document blk_part_exp().
Modify blk_part_imp() for to correctly handle leading punctuation before HEAD.
Significantly clean up and document blk_part_imp().
Integrate Ingo Schwarze's patch for args() (using new mdoc_iscdelim() format).
Documented bad `Ec' handling for later work in mdoc_term.c/mdoc_html.c.
|
|
|
|
| |
between parse sequences.
|
|
|
|
| |
Sonnenberger.
|
|
|
|
| |
Pointed out by Ingo Schwarze.
|
| |
|
|
|
|
| |
architectures. Thanks to Joerg Sonnenberger.
|
|
|
|
| |
differently depending on number of visible columns.
|
|
|
|
|
|
| |
Schwarze).
Fixed assertion in exceeded rmargin by ridiculous columns.
|