| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
returning empty strings in roff_getstrn() instead of NULL. This caused
maddeningly irregular segfaults in the pod2man preamble for `de IX'.
But only on DEC alpha.
Also integrate the kinda-probably-safe assertion relaxation in term.c,
field-tested by schwarze@. This allows ALL [unpreprocessed] base and
xenocara manuals for all BSD systems to run without segfault.
|
|
|
|
|
|
|
|
| |
primarily adds a roff_userdef() function for parsing new defines and
modifies the look-up procedure.
NOTE: there is a bug hidden away in this update that causes an infinite
loop in some pages. The cause is for the moment unknown.
|
|
|
|
| |
schwarze@ and joerg@ for his comments!
|
|
|
|
| |
Made `rm' be an error (again, OpenBSD...).
|
|
|
|
| |
Rename roff_line() -> roff_line_ignore().
|
| |
|
|
|
|
| |
fully accomodates for the pod2man standard preamble!
|
|
|
|
|
|
| |
experimental and hasn't been rigorously tested. It's only implemented in
-mdoc for the time being. This is absolutely required for pod2man. It
does, however, make the pod2man preamble be processed in full.
|
|
|
|
| |
care because pod2man uses this construct.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We now have sufficient practical experience to know what we want,
so this is intended to be final:
- provide -Wlevel (warning, error or fatal) to select what you care about
- provide -Wstop to stop after parsing a file with warnings you care about
- provide consistent exit status codes for those warnings you care about
- fully document what warnings, errors and fatal errors mean
- remove all other cruft from the user interface, less is more:
- remove all -f knobs along with the whole -f option
- remove the old -Werror because calling warnings "fatal" is silly
- always finish parsing each file, unless fatal errors prevent that
This commit also includes a couple of related simplifications behind
the scenes regarding error handling.
Feedback and OK kristaps@; Joerg Sonnenberger (NetBSD) and
Sascha Wildner (DragonFly BSD) agree with the general direction.
|
| |
|
|
|
|
|
|
| |
syntax of `ds' is such that ALL text following the first
non-space/non-double-quote is part of the value. This also fixes the
warning of *(string++) = NULL report by kristaps@ and joerg@.
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
on those parts of the code and text that i have written as Kristaps is.
"fine with me" kristaps@
|
|
|
|
|
|
| |
no time for more refinement right now.
In particular, fixes terminfo(3) and mdoc.samples(7).
ok kristaps@, who will add the HTML frontend bits
|
| |
|
|
|
|
|
|
|
|
|
| |
functionality and UGLY works quite well thanks to schwarze@'s careful
attention.
This also backs out function-prototype changes for struct regset,
instead stuffing a pointer to the regset directly into struct
mdoc/man/roff.
|
|
|
|
|
|
| |
patch by schwarze@. This commit adds support to libroff parsing `nr'
into register set defined in regs.h. This will propogate into libmdoc
and libman in later commits.
|
|
|
|
|
|
|
|
|
|
| |
for what's supported. This simplified the roff_cond() function quite
nicely. From a bug report by uqs@.
Added regression test based on bug-report example by uqs@.
Also added ROFF_DEBUG to see what the hell the parser is actually doing.
Obviously turned off by default.
|
|
|
|
| |
down to sub-arguments. From a bug report by Ulrich Spoerlein.
|
|
|
|
|
|
|
|
| |
Fixed flushed-out condition of \} causing subsequent arguments to be
truncated, when in fact the whole line should be passed through (if the
conditional succeeds) to the front-end and the \} ignored there.
Added regression test of this behaviour.
|
|
|
|
|
| |
each and every macro. The table keys on the first character then walks
a chain. Good enough for now.
|
|
|
|
|
|
| |
nothing fancy yet, no negation, no grammer, just that one letter;
from OpenBSD;
"looks fine" kristaps@
|
|
|
|
|
|
| |
which occur in the standard pod2man preamble;
from OpenBSD;
"sounds good" joerg@, "can be checked in" kristaps@
|
|
|
|
|
| |
Added test files for ie/el.
Using `if 0' as a baseline for "false" roff instructions instead of `if t'.
|
| |
|
|
|
|
| |
and `de1'. This is also documented in roff.7.
|
|
|
|
|
|
|
|
|
|
| |
conditional-negative context so as to preserve structural integrity.
Initial "rules" (deny/allow) are now inherited for future work in
evaluating conditionals.
Lint-fix noted by Joerg.
Added regression tests for zany constructs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
.ig ig
asdf
.ig
fdsa
..
or
.ig if
asdf
.if n \
foo
for a laugh. It all works. Lots of regression tests supporting this
and documentation for the same.
|
|
|
|
|
| |
Check against some strange `.if' constructs I missed.
Added initial roff.7 manual.
|
| |
|
|
|
|
|
|
|
|
| |
constructs: single-level and multi-level blocks; nested, varied-level
blocks; recalculating buffer (begin) boundaries pushed correctly into
the back-ends, and so on. This will allow, once conditions are turned
on, for things like `.ie n .TH FOO 1' then `.el .Dd Mdocdate'. Read
it and weep.
|
|
|
|
|
|
|
|
|
| |
Allow roff_parseln() to manipulate the line buffer offset. This is used
in situations like `.ie n .TH FOO 1' or `.ie n .ie n', where the line
buffer offset is recalculated then the roff parser re-run.
Fix mdoc_parseln() and man_parseln() to accept the initial line offset.
WARNING: backed-out ALL roff macros whilst accomodating for how roff
handles multi-line conditionals (in short, re-running the parser).
|
| |
|
| |
|
|
|
|
| |
Initial warning/error messages in place (still experimental).
|
| |
|
|
|
|
| |
because roff instructions will be nixed from the underlying systems anyway.
|
| |
|
|
|
|
|
|
| |
with unified ones.
Add initial roff pre-processor shim, a compiler sitting outside of the other compilers that processes pure roff instructions.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|