| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
ok kristaps@
|
|
|
|
|
|
|
|
|
| |
roff_getstr() family of functions into roff.c with the "first_string"
directly in struct roff. Second, pre-process each line for reserved
words in libroff, splicing and re-running a line if it has one (this
allows defined symbols to be macros). Remove term.c's invocation of the
roff_getstrn() function. Removed function documentation in roff.3 and
added roff.7 `ds' documentation.
|
| |
|
|
|
|
| |
the loops here and there to track down the MDOC_Column arguments.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
copying on internals after modification. Even more importantly, if an
ENDBODY token is provided, it would have been impossible for post-change
copying of the data to take place in the BLOCK. This allows it to
happen by dint of pointers.
Also did some bikeshedding in mdoc_term.c: checking against enum type
and explicitly casting to the "post" function to void. This is for my
own readability.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the Rostock mandoc hackathon and tested and polished since,
supporting constructs like:
.Ao Bo Ac Bc (exp breaking exp)
.Aq Bo eol Bc (imp breaking exp)
.Ao Bq Ac eol (exp breaking imp)
.Ao Bo So Bc Ac Sc (double break, inner before outer)
.Ao Bo So Ac Bc Sc (double break, outer before inner)
.Ao Bo Ac So Bc Sc (broken breaker)
.Ao Bo So Bc Do Ac Sc Dc (broken double breaker)
There are still two known issues which are tricky:
1) Breaking two identical explicit blocks (Ao Bo Bo Ac or Aq Bo Bo eol)
fails outright, triggering a bogus syntax error.
2) Breaking a block by two identical explicit blocks (Ao Ao Bo Ac Ac Bc
or Ao Ao Bq Ac Ac eol) still has a minor rendering error left:
"<ao1 <ao2 [bo ac2> ac1> bc]>" should not have the final ">".
We can fix these later in the tree, let's not grow this diff too large.
"get it in" kristaps@
|
|
|
|
|
|
|
|
|
| |
passed in to libmdoc and libman.
Fix mdoc.3 and man.3 EXAMPLE sections to include regset.
Add MDOC_SYNPRETTY flag cueing front-end to nicely format certain values
as if SEC_SYNOPSIS were the current section.
|
|
|
|
| |
const struct regset pointer. No functionality.
|
| |
|
| |
|
|
|
|
|
| |
to 6n if no value is specified" and added regression tests for `Bl'
testing against the empty -offset argument.
|
|
|
|
| |
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').
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
`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).
|
|
|
|
|
|
|
|
|
|
| |
relieves having to repeat running over the argument list in
mdoc_action.c and mdoc_validate.c.
Default to LIST_item for type-less lists (groff technically doesn't do
this: it just ignores the `It' lines altogether).
Make MANDOC_LISTTYPE be a recoverable error.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Installing roff.7 and added it to index.sgml.
Small fix for `D1' and `Bd' in -Thtml.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
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.
|
|
|
|
| |
McIntyre and posted on Ingo Schwarze' mandoc-todo list).
|
|
|
|
| |
Sonnenberger).
|
|
|
|
| |
in the front-end device) (noted by Theo de Raadt).
|
|
|
|
| |
the same line.
|
|
|
|
|
| |
Fixed PAIR_xxx_INIT macros -- this are to be unified.
Have `Vt', `Fn', `Ft', and `Fo' print whitespace afterward, instead of before.
|
|
|
|
| |
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.
|
|
|
|
| |
Sonnenberger.
|
|
|
|
| |
Added -Txhtml for XHTML output (minimal increase to programme logic). Because groff has it and it bothers me that we don't.
|
|
|
|
| |
architectures. Thanks to Joerg Sonnenberger.
|
|
|
|
| |
Backed out stipulation that `Fl ""' is ignored: this is not the case in !OpenBSD groffs.
|
|
|
|
|
| |
Situation of `Fl [arg]* "" [arg]*' is fixed: empty arguments are ignored. Note that OpenBSD crashes when this happens.
Situation of `Fl' is fixed wrt trailing whitespace.
|
|
|
|
| |
discovered again).
|
| |
|
| |
|