OpenBSD CVS

CVS log for src/usr.bin/mandoc/libmdoc.h


[BACK] Up to [local] / src / usr.bin / mandoc

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.88 / (download) - annotate - [select for diffs], Mon Dec 31 04:55:42 2018 UTC (5 years, 4 months ago) by schwarze
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5, OPENBSD_7_4_BASE, OPENBSD_7_4, OPENBSD_7_3_BASE, OPENBSD_7_3, OPENBSD_7_2_BASE, OPENBSD_7_2, OPENBSD_7_1_BASE, OPENBSD_7_1, OPENBSD_7_0_BASE, OPENBSD_7_0, OPENBSD_6_9_BASE, OPENBSD_6_9, OPENBSD_6_8_BASE, OPENBSD_6_8, OPENBSD_6_7_BASE, OPENBSD_6_7, OPENBSD_6_6_BASE, OPENBSD_6_6, OPENBSD_6_5_BASE, OPENBSD_6_5, HEAD
Changes since 1.87: +1 -3 lines
Diff to previous 1.87 (colored)

Cleanup, minus 15 LOC, no functional change:
Simplify the way the man(7) and mdoc(7) validators are called.
Reset the parser state with a common function before calling them.
There is no need to again reset the parser state afterwards,
the parsers are no longer used after validation.
This allows getting rid of man_node_validate() and mdoc_node_validate()
as separate functions.

Revision 1.87 / (download) - annotate - [select for diffs], Sun Dec 30 00:48:47 2018 UTC (5 years, 4 months ago) by schwarze
Branch: MAIN
Changes since 1.86: +5 -1 lines
Diff to previous 1.86 (colored)

Cleanup, no functional change:

The struct roff_man used to be a bad mixture of internal parser
state and public parsing results.  Move the public results to the
parsing result struct roff_meta, which is already public.  Move the
rest of struct roff_man to the parser-internal header roff_int.h.

Since the validators need access to the parser state, call them
from the top level parser during mparse_result() rather than from
the main programs, also reducing code duplication.

This keeps parser internal state out of thee main programs (five
in mandoc portable) and out of eight formatters.

Revision 1.86 / (download) - annotate - [select for diffs], Fri Dec 21 16:58:49 2018 UTC (5 years, 4 months ago) by schwarze
Branch: MAIN
Changes since 1.85: +2 -1 lines
Diff to previous 1.85 (colored)

Rename mandoc_getarg() to roff_getarg() and pass it the roff parser
struct as an argument such that after copy-in, it can call roff_expand()
once again, which used to be called roff_res() before this.  This
fixes a subtle low-level roff(7) parsing bug reported by Fabio
Scotoni <fabio at esse dot ch> in the 4.4BSD-Lite2 mdoc.samples(7)
manual page, because that page used an escaped escape sequence in
a macro argument.

To expand escaped escape sequences in quoted mdoc(7) arguments, too,
stop bypassing the call to roff_getarg() in mdoc_argv.c, function args()
for this case.  This does not solve the case of escaped escape sequences
in quoted .Bl -column phrases yet.

Because roff_expand() can make the string longer, roff_getarg() can no
longer operate in-place but needs to malloc(3) the returned string.
In the high-level parsers, free(3) that string after processing it.

Revision 1.85 / (download) - annotate - [select for diffs], Tue Dec 4 02:53:45 2018 UTC (5 years, 5 months ago) by schwarze
Branch: MAIN
Changes since 1.84: +1 -2 lines
Diff to previous 1.84 (colored)

Clean up the validation of .Pp, .PP, .sp, and .br.  Make sure all
combinations are handled, and are handled in a systematic manner.
This resolves some erratic duplicate handling, handles a number of
missing cases, and improves diagnostics in various respects.

Move validation of .br and .sp to the roff validation module
rather than doing that twice in the mdoc and man validation modules.
Move the node relinking function to the roff library where it belongs.

In validation functions, only look at the node itself, at previous
nodes, and at descendants, not at following nodes or ancestors,
such that only nodes are inspected which are already validated.

Revision 1.84 / (download) - annotate - [select for diffs], Fri Aug 17 20:31:52 2018 UTC (5 years, 9 months ago) by schwarze
Branch: MAIN
CVS Tags: OPENBSD_6_4_BASE, OPENBSD_6_4
Changes since 1.83: +3 -5 lines
Diff to previous 1.83 (colored)

Remove more pointer arithmetic passing via regions outside the array
that is undefined according to the C standard.  Robert Elz <kre at
munnari dot oz dot au> pointed out i wasn't quite done yet.

Revision 1.83 / (download) - annotate - [select for diffs], Tue May 30 16:21:07 2017 UTC (6 years, 11 months ago) by schwarze
Branch: MAIN
CVS Tags: OPENBSD_6_3_BASE, OPENBSD_6_3, OPENBSD_6_2_BASE, OPENBSD_6_2
Changes since 1.82: +1 -2 lines
Diff to previous 1.82 (colored)

Macro argument quoting does not prevent recognition of punctuation
and of called macros.

This bug affects almost all macros, and fixing it simplifies the
code.  It is amazing that the bogus ARGS_QWORD feature got implemented
in the first place, and then carrier along for more than eight years
without anybody ever noticing that it was pointless.

Reported by Leah Neukirchen <leah at vuxu dot org>, found on Void Linux.

Revision 1.82 / (download) - annotate - [select for diffs], Sat Apr 29 12:43:55 2017 UTC (7 years ago) by schwarze
Branch: MAIN
Changes since 1.81: +1 -2 lines
Diff to previous 1.81 (colored)

Parser unification: use nice ohashes for all three request and macro tables;
no functional change, minus two source files, minus 200 lines of code.

Revision 1.81 / (download) - annotate - [select for diffs], Mon Apr 24 23:06:09 2017 UTC (7 years ago) by schwarze
Branch: MAIN
Changes since 1.80: +12 -11 lines
Diff to previous 1.80 (colored)

Continue parser unification:
* Make enum rofft an internal interface as enum roff_tok in "roff.h".
* Represent mdoc and man macros in enum roff_tok.
* Make TOKEN_NONE a proper enum value and use it throughout.
* Put the prologue macros first in the macro tables.
* Unify mdoc_macroname[] and man_macroname[] into roff_name[].

Revision 1.80 / (download) - annotate - [select for diffs], Thu Feb 16 02:59:42 2017 UTC (7 years, 3 months ago) by schwarze
Branch: MAIN
CVS Tags: OPENBSD_6_1_BASE, OPENBSD_6_1
Changes since 1.79: +2 -2 lines
Diff to previous 1.79 (colored)

Remove the ENDBODY_NOSPACE flag, simplifying the code.

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.

Revision 1.79 / (download) - annotate - [select for diffs], Sat Nov 7 13:57:55 2015 UTC (8 years, 6 months ago) by schwarze
Branch: MAIN
CVS Tags: OPENBSD_6_0_BASE, OPENBSD_6_0, OPENBSD_5_9_BASE, OPENBSD_5_9
Changes since 1.78: +1 -4 lines
Diff to previous 1.78 (colored)

In private header files, __BEGIN_DECLS and __END_DECLS are pointless.
Because these work slightly differently on different systems,
they are becoming a maintenance burden in the portable version,
so delete them.

Besides, one of the chief design goals of the mandoc toolbox is to
make sure that nothing related to documentation requires C++.
Consequently, linking mandoc against any kind of C++ program would
defeat the purpose and is not supported.
I don't understand why kristaps@ added them in the first place.

Revision 1.78 / (download) - annotate - [select for diffs], Tue Oct 20 02:00:49 2015 UTC (8 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.77: +6 -2 lines
Diff to previous 1.77 (colored)

In order to become able to generate syntax tree nodes on the roff(7)
level, validation must be separated from parsing and rewinding.
This first big step moves calling of the mdoc(7) post_*() functions
out of the parser loop into their own mdoc_validate() pass, while
using a new mdoc_state() module to make syntax tree state handling
available to both the parser loop and the validation pass.

Revision 1.77 / (download) - annotate - [select for diffs], Sat Oct 17 00:19:58 2015 UTC (8 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.76: +2 -4 lines
Diff to previous 1.76 (colored)

Very tricky diff to fix macro interpretation and spacing around tabs
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...

Revision 1.76 / (download) - annotate - [select for diffs], Thu Apr 23 15:35:39 2015 UTC (9 years ago) by schwarze
Branch: MAIN
CVS Tags: OPENBSD_5_8_BASE, OPENBSD_5_8
Changes since 1.75: +1 -2 lines
Diff to previous 1.75 (colored)

Get rid of two empty wrapper functions.  No functional change.

Revision 1.75 / (download) - annotate - [select for diffs], Sun Apr 19 14:25:05 2015 UTC (9 years, 1 month ago) by schwarze
Branch: MAIN
Changes since 1.74: +1 -6 lines
Diff to previous 1.74 (colored)

Unify some node handling functions that use TOKEN_NONE.
* mdoc_word_alloc(), man_word_alloc() -> roff_word_alloc()
* mdoc_word_append(), man_word_append() -> roff_word_append()
* mdoc_addspan(), man_addspan() -> roff_addtbl()
* mdoc_addeqn(), man_addeqn() -> roff_addeqn()
Minus 50 lines of code, no functional change.

Revision 1.74 / (download) - annotate - [select for diffs], Sun Apr 19 13:50:10 2015 UTC (9 years, 1 month ago) by schwarze
Branch: MAIN
Changes since 1.73: +1 -3 lines
Diff to previous 1.73 (colored)

Unify node handling functions:
* node_alloc() for mdoc and man_node_alloc() -> roff_node_alloc()
* node_append() for mdoc and man_node_append() -> roff_node_append()
* mdoc_head_alloc() and man_head_alloc() -> roff_head_alloc()
* mdoc_body_alloc() and man_body_alloc() -> roff_body_alloc()
* mdoc_node_unlink() and man_node_unlink() -> roff_node_unlink()
* mdoc_node_free() and man_node_free() -> roff_node_free()
* mdoc_node_delete() and man_node_delete() -> roff_node_delete()
Minus 130 lines of code, no functional change.

Revision 1.73 / (download) - annotate - [select for diffs], Sat Apr 18 17:28:08 2015 UTC (9 years, 1 month ago) by schwarze
Branch: MAIN
Changes since 1.72: +1 -2 lines
Diff to previous 1.72 (colored)

Unify {mdoc,man}_{alloc,reset,free}() into roff_man_{alloc,reset,free}().
Minus 80 lines of code, no functional change.
Written on the train from Koeln to Wolfsburg returning from p2k15.

Revision 1.72 / (download) - annotate - [select for diffs], Sat Apr 18 17:01:28 2015 UTC (9 years, 1 month ago) by schwarze
Branch: MAIN
Changes since 1.71: +1 -2 lines
Diff to previous 1.71 (colored)

Move mdoc_hash_init() and man_hash_init() to libmandoc.h
and call them from mparse_alloc() and choose_parser(),
preparing unified allocation of struct roff_man.

Revision 1.71 / (download) - annotate - [select for diffs], Sat Apr 18 16:04:40 2015 UTC (9 years, 1 month ago) by schwarze
Branch: MAIN
Changes since 1.70: +17 -47 lines
Diff to previous 1.70 (colored)

Replace the structs mdoc and man by a unified struct roff_man.
Almost completely mechanical, no functional change.
Written on the train from Exeter to London returning from p2k15.

Revision 1.70 / (download) - annotate - [select for diffs], Thu Apr 2 23:47:43 2015 UTC (9 years, 1 month ago) by schwarze
Branch: MAIN
Changes since 1.69: +2 -2 lines
Diff to previous 1.69 (colored)

Third step towards parser unification:
Replace struct mdoc_meta and struct man_meta by a unified struct roff_meta.
Written of the train from London to Exeter on the way to p2k15.

Revision 1.69 / (download) - annotate - [select for diffs], Thu Apr 2 22:06:17 2015 UTC (9 years, 1 month ago) by schwarze
Branch: MAIN
Changes since 1.68: +24 -24 lines
Diff to previous 1.68 (colored)

Second step towards parser unification:
Replace struct mdoc_node and struct man_node by a unified struct roff_node.
To be able to use the tok member for both mdoc(7) and man(7) without
defining all the macros in roff.h, sacrifice a tiny bit of type safety
and make tok an int rather than an enum.
Almost mechanical, no functional change.
Written on the Eurostar from Bruxelles to London on the way to p2k15.

Revision 1.68 / (download) - annotate - [select for diffs], Mon Feb 2 04:26:03 2015 UTC (9 years, 3 months ago) by schwarze
Branch: MAIN
CVS Tags: OPENBSD_5_7_BASE, OPENBSD_5_7
Changes since 1.67: +2 -2 lines
Diff to previous 1.67 (colored)

Get rid of all calls to rew_sub() in blk_exp_close(); only ten calls
remain in other functions.  As a bonus, this fixes an assertion failure
jsg@ found some time ago with afl (test case 982) and improves minor
details in error reporting.

Revision 1.67 / (download) - annotate - [select for diffs], Sat Nov 29 03:37:28 2014 UTC (9 years, 5 months ago) by schwarze
Branch: MAIN
Changes since 1.66: +1 -3 lines
Diff to previous 1.66 (colored)

Provide a helper function macro_or_word() and use it to prune the
same chunk of argument parsing code out of five of the eight callback
functions.  The other three have too much special handling to
participate.
As a bonus, let lookup() and mdoc_args() deal with line macros and
retire the lookup_raw() helper and the mdoc_zargs() internal interface
function.
No functional change, minus 40 lines of code.

Revision 1.66 / (download) - annotate - [select for diffs], Fri Nov 28 23:20:55 2014 UTC (9 years, 5 months ago) by schwarze
Branch: MAIN
Changes since 1.65: +2 -9 lines
Diff to previous 1.65 (colored)

Fold the loop around mdoc_argv() into the function itself,
it was the same in all four cases.  As a bonus, get rid
of one enum type that was used for internal communication.
No functional change, minus 40 lines of code.

Revision 1.65 / (download) - annotate - [select for diffs], Fri Nov 28 18:35:37 2014 UTC (9 years, 5 months ago) by schwarze
Branch: MAIN
Changes since 1.64: +1 -2 lines
Diff to previous 1.64 (colored)

Retire support for CSRG supplementary document titles.  These are
long obsolete and were never written in mdoc(7) in the first place.
Removes 100 lines from source files.

Revision 1.64 / (download) - annotate - [select for diffs], Fri Nov 28 17:23:34 2014 UTC (9 years, 5 months ago) by schwarze
Branch: MAIN
Changes since 1.63: +1 -2 lines
Diff to previous 1.63 (colored)

Remove bulky, irrelevant library description string tables
not used by a single manual in OpenBSD and just print library names;
will remain in the portable version for use by FreeBSD and NetBSD.
Removes 150 lines from source tree and 16 Kilobytes (4%) from binary.
Bloat found by deraadt@.

Revision 1.63 / (download) - annotate - [select for diffs], Fri Nov 28 04:46:30 2014 UTC (9 years, 5 months ago) by schwarze
Branch: MAIN
Changes since 1.62: +4 -4 lines
Diff to previous 1.62 (colored)

Simplify by making the mdoc parser callbacks void, and some cleanup;
no functional change, minus 50 lines of code.

Revision 1.62 / (download) - annotate - [select for diffs], Fri Nov 28 03:13:58 2014 UTC (9 years, 5 months ago) by schwarze
Branch: MAIN
Changes since 1.61: +9 -10 lines
Diff to previous 1.61 (colored)

Simplify the code by making various mdoc parser helper functions void.
No functional change, minus 130 lines of code.

Revision 1.61 / (download) - annotate - [select for diffs], Fri Nov 28 01:05:40 2014 UTC (9 years, 5 months ago) by schwarze
Branch: MAIN
Changes since 1.60: +3 -3 lines
Diff to previous 1.60 (colored)

Simplify code by making mdoc validation handlers void.
No functional change, minus 90 lines of code.

Revision 1.60 / (download) - annotate - [select for diffs], Thu Nov 27 14:31:29 2014 UTC (9 years, 5 months ago) by deraadt
Branch: MAIN
Changes since 1.59: +1 -5 lines
Diff to previous 1.59 (colored)

remove unneccessary inclusion protection; ok schwarze

Revision 1.59 / (download) - annotate - [select for diffs], Mon Nov 17 06:44:35 2014 UTC (9 years, 6 months ago) by schwarze
Branch: MAIN
Changes since 1.58: +3 -2 lines
Diff to previous 1.58 (colored)

Multiple fixes with respect to in-line macros:
* .No selects the default font; relevant e.g. in .Bf blocks
* no need to force empty .Li elements
* closing delimiters as leading macro arguments do not suppress space
* opening delimiters at the end of a macro line do not suppress space
* correctly handle delimiter spacing in -Tman
As a side effect, these fixes let mandoc warn about empty .No macros
as requested by bentley@.

Revision 1.58 / (download) - annotate - [select for diffs], Fri Aug 8 15:57:05 2014 UTC (9 years, 9 months ago) by schwarze
Branch: MAIN
Changes since 1.57: +1 -5 lines
Diff to previous 1.57 (colored)

demacrify: get rid of man_nmsg(), man_pmsg(), mdoc_nmsg(), mdoc_pmsg()

Revision 1.57 / (download) - annotate - [select for diffs], Fri Aug 8 15:32:17 2014 UTC (9 years, 9 months ago) by schwarze
Branch: MAIN
Changes since 1.56: +1 -2 lines
Diff to previous 1.56 (colored)

Simplify: replace one global flag by one local variable
and remove three unused global flags.  No functional change.

Revision 1.56 / (download) - annotate - [select for diffs], Wed Jul 9 11:30:07 2014 UTC (9 years, 10 months ago) by schwarze
Branch: MAIN
CVS Tags: OPENBSD_5_6_BASE, OPENBSD_5_6
Changes since 1.55: +2 -2 lines
Diff to previous 1.55 (colored)

mark defos as const; nobody needs to change it,
and it is occasionally useful to be able to pass literal strings

Revision 1.55 / (download) - annotate - [select for diffs], Wed Jul 2 03:47:07 2014 UTC (9 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.54: +2 -1 lines
Diff to previous 1.54 (colored)

Implement the obsolete macros .En .Es .Fr .Ot for backward compatibility,
since this is hardly more complicated than explicitly ignoring them
as we did in the past.  Of course, do not use them!

Revision 1.54 / (download) - annotate - [select for diffs], Sun Apr 20 16:44:44 2014 UTC (10 years, 1 month ago) by schwarze
Branch: MAIN
Changes since 1.53: +5 -5 lines
Diff to previous 1.53 (colored)

KNF: case (FOO):  ->  case FOO, remove /* LINTED */ and /* ARGSUSED */,
remove trailing whitespace and blanks before tabs, improve some indenting;
no functional change

Revision 1.53 / (download) - annotate - [select for diffs], Sun Jan 5 20:26:27 2014 UTC (10 years, 4 months ago) by schwarze
Branch: MAIN
CVS Tags: OPENBSD_5_5_BASE, OPENBSD_5_5
Changes since 1.52: +2 -1 lines
Diff to previous 1.52 (colored)

Add an option -Q (quick) to mandocdb(8)
for accelerated generation of reduced-size databases.

Implement this by allowing the parsers to optionally
abort the parse sequence after the NAME section.

While here, garbage collect the unused void *arg attribute
of struct mparse and mparse_alloc().

This reduces the processing time of mandocdb(8) on /usr/share/man
by a factor of 2 and the database size by a factor of 4.
However, it still takes 5 times the time and 6 times the space
of makewhatis(8), so more work is clearly needed.

Revision 1.52 / (download) - annotate - [select for diffs], Mon Oct 21 23:32:32 2013 UTC (10 years, 6 months ago) by schwarze
Branch: MAIN
Changes since 1.51: +7 -3 lines
Diff to previous 1.51 (colored)

There are three kinds of input lines: text lines, macros taking
positional arguments (like Dt Fn Xr) and macros taking text as
arguments (like Nd Sh Em %T An).  In the past, even the latter put
each word of their arguments into its own MDOC_TEXT node; instead,
concatenate arguments unless delimiters, keeps or spacing mode
prevent that.  Regarding mandoc(1), this is internal refactoring,
no output change intended.

Once we will switch mandocdb(8) from DB to SQLite in the future,
this is going to be required to support search expressions crossing
word boundaries, and it will reduce both database sizes and build
times by a bit more than 5% each.

Revision 1.51 / (download) - annotate - [select for diffs], Sat Nov 17 00:25:20 2012 UTC (11 years, 6 months ago) by schwarze
Branch: MAIN
CVS Tags: OPENBSD_5_4_BASE, OPENBSD_5_4, OPENBSD_5_3_BASE, OPENBSD_5_3
Changes since 1.50: +8 -9 lines
Diff to previous 1.50 (colored)

Cleanup naming of local variables to make the code easier on the eye:
Settle for "struct man *man", "struct mdoc *mdoc", "struct meta *meta"
and avoid the confusing "*m" which was sometimes this, sometimes that.
No functional change.

ok kristaps@ some time ago

Revision 1.50 / (download) - annotate - [select for diffs], Wed Jul 18 11:09:30 2012 UTC (11 years, 10 months ago) by schwarze
Branch: MAIN
CVS Tags: OPENBSD_5_2_BASE, OPENBSD_5_2
Changes since 1.49: +2 -1 lines
Diff to previous 1.49 (colored)

Fix handling of paragraph macros inside lists:
* When they are trailing the last item, move them outside the list.
* When they are trailing any other none-compact item, drop them.

Improves formatting of 40 pages, e.g. grep(1), ksh(1), netstat(1),
ath(4), bsd.port.mk(5), pf.conf(5), mount(8), crypto(9).

Revision 1.49 / (download) - annotate - [select for diffs], Thu May 24 23:33:23 2012 UTC (11 years, 11 months ago) by schwarze
Branch: MAIN
Changes since 1.48: +2 -1 lines
Diff to previous 1.48 (colored)

Support -Ios='OpenBSD 5.1' to override uname(3) as the source of the
default value for the mdoc(7) .Os macro.
Needed for man.cgi on the OpenBSD website.

Problem with man.cgi first noticed by deraadt@;
beck@ and deraadt@ agree with the way to solve the issue.

Revision 1.48 / (download) - annotate - [select for diffs], Fri Dec 2 01:45:43 2011 UTC (12 years, 5 months ago) by schwarze
Branch: MAIN
CVS Tags: OPENBSD_5_1_BASE, OPENBSD_5_1
Changes since 1.47: +1 -2 lines
Diff to previous 1.47 (colored)

In man(7), when no explicit volume name is given, use the default
volume name for the respective manual section, just like in mdoc(7).
This gives us nicer page headers for cvs(1), lynx(1), tic(1),
mkhybrid(8), and many curses(3) manuals.

ok kristaps@

To not break compatibility, i wrote a corresponding patch for GNU troff
which Werner Lemberg accepted upstream at rev. 1.65 of:
http://cvs.savannah.gnu.org/viewvc/groff/tmac/an-old.tmac?root=groff

Revision 1.47 / (download) - annotate - [select for diffs], Sun Sep 18 10:25:28 2011 UTC (12 years, 8 months ago) by schwarze
Branch: MAIN
Changes since 1.46: +2 -2 lines
Diff to previous 1.46 (colored)

sync to version 1.11.5:
adding an implementation of the eqn(7) language
by kristaps@

So far, only .EQ/.EN blocks are handled, in-line equations are not, and
rendering is not yet very pretty, but the parser is fairly complete.

Revision 1.46 / (download) - annotate - [select for diffs], Sun May 29 21:22:18 2011 UTC (12 years, 11 months ago) by schwarze
Branch: MAIN
CVS Tags: OPENBSD_5_0_BASE, OPENBSD_5_0
Changes since 1.45: +12 -18 lines
Diff to previous 1.45 (colored)

Merge release 1.11.3, almost all code by kristaps@:
* Unicode output support (no Unicode input yet, though).
* Refactoring: completely handle predefined strings in roff.c.
- New function mandoc_escape() replaces a2roffdeco() and mandoc_special().
- Start using mandoc_getarg() in mdoc_argv.c.
- Clean up parsing of delimiters in mdoc(7).
* And many minor fixes and lots of cleanup.

Revision 1.45 / (download) - annotate - [select for diffs], Sun Apr 24 16:22:02 2011 UTC (13 years ago) by schwarze
Branch: MAIN
Changes since 1.44: +26 -12 lines
Diff to previous 1.44 (colored)

Merge version 1.11.1:
Again lots of cleanup and maintenance work by kristaps@.
- simplify error reporting: less function pointers, more mandoc_[v]msg
- main: split document parsing out of main.c into read.c
- roff, mdoc, man: improved recognition of control characters
- roff: better handling of if/else stack overflows
- roff: add some predefined strings for backward compatibility
- mdoc, man: empty sections are not errors
- mdoc: move delimiter handling to libmdoc
- some header restructuring and some minor features and fixes
This merge causes two minor regressions
that i will fix in separate commits right afterwards.

Revision 1.44 / (download) - annotate - [select for diffs], Thu Apr 21 22:59:54 2011 UTC (13 years, 1 month ago) by schwarze
Branch: MAIN
Changes since 1.43: +2 -15 lines
Diff to previous 1.43 (colored)

Merge version 1.10.10:
lots of cleanup and maintenance work by kristaps@.
- move some main.c globals into struct curparse
- move mandoc_*alloc to mandoc.h such that all code can use them
- make mandoc_isdelim available to formatting frontends
- dissolve mdoc_strings.c, move the code where it is used
- make all error reporting functions void, their return values were useless
- and various minor cleanups and fixes

Revision 1.43 / (download) - annotate - [select for diffs], Wed Dec 1 22:02:29 2010 UTC (13 years, 5 months ago) by schwarze
Branch: MAIN
CVS Tags: OPENBSD_4_9_BASE, OPENBSD_4_9
Changes since 1.42: +1 -4 lines
Diff to previous 1.42 (colored)

Merge mdoc_action.c into mdoc_validate.c, because having two places to do
basically the same things just causes code duplication and confusion.
Work by kristaps@, including a few bugfixes he found during the merge,
and reapplying OpenBSD changes on top.

Revision 1.42 / (download) - annotate - [select for diffs], Fri Aug 20 00:53:35 2010 UTC (13 years, 9 months ago) by schwarze
Branch: MAIN
Changes since 1.41: +1 -2 lines
Diff to previous 1.41 (colored)

Implement a simple, consistent user interface for error handling.
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.

Revision 1.41 / (download) - annotate - [select for diffs], Tue Jul 13 01:09:12 2010 UTC (13 years, 10 months ago) by schwarze
Branch: MAIN
CVS Tags: OPENBSD_4_8_BASE, OPENBSD_4_8
Changes since 1.40: +2 -3 lines
Diff to previous 1.40 (colored)

Merge release 1.10.4 (all code by kristaps@), providing four new features:
1) Proper .Bk support: allow output line breaks at input line breaks,
but keep input lines together in the output, finally fixing
synopses like aucat(1), mail(1) and tmux(1).
2) Mostly finished -Tps (PostScript) output.
3) Implement -Thtml output for .Nm blocks and .Bk -words.
4) Allow iterative interpolation of user-defined roff(7) strings.
Also contains some minor bugfixes and some performance improvements.

Revision 1.40 / (download) - annotate - [select for diffs], Thu Jul 1 22:31:52 2010 UTC (13 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.39: +2 -1 lines
Diff to previous 1.39 (colored)

In the mdoc(7) parser, inspect roff registers early such that all parts
of the parser can use the resulting cues.  In particular, this allows
to use .nr nS to force SYNOPSIS-style .Nm indentation outside the
SYNOPSIS as needed by ifconfig(8).

To actually make this useable, .Pp must rewind .Nm, or the rest of the
section would end up indented.  Implement a quick hack for now,
a generic solution can be designed later.

ok kristaps@ sobrado@

Revision 1.39 / (download) - annotate - [select for diffs], Tue Jun 29 17:10:29 2010 UTC (13 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.38: +4 -1 lines
Diff to previous 1.38 (colored)

Support for badly nested blocks, written around the time of
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@

Revision 1.38 / (download) - annotate - [select for diffs], Sun Jun 27 21:54:41 2010 UTC (13 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.37: +16 -10 lines
Diff to previous 1.37 (colored)

Full .nr nS support, unbreaking the kernel manuals.

Kristaps coded this from scratch after reading my .nr patch;
it is simpler and more powerful.

Registers live in struct regset in regs.h, struct man and struct mdoc
contain pointers to it.  The nS register is cleared when parsing .Sh.
Frontends respect the MDOC_SYNPRETTY flag set in mdoc node_alloc.

Revision 1.37 / (download) - annotate - [select for diffs], Sun Jun 6 20:30:08 2010 UTC (13 years, 11 months ago) by schwarze
Branch: MAIN
Changes since 1.36: +3 -3 lines
Diff to previous 1.36 (colored)

Merge bsd.lv version 1.10.1 (to be released soon).

The main step forward is that this now has *much* better .Bl -column
support, now supporting many manuals that previously errored out
without producing any output.

Other fixes include:
* do not die from multiple list types, use the first and warn
* in .Bl without a type, default to -item
* various tweaks to .Dt
* fix .In, .Fd, .Ft, .Fn and .Fo formatting
* some documentation fixes and additions
* and fix a couple of bugs reported by Ulrich Spoerlein:
* better support for roff block-end "\}" without a preceding dot
* .In must not break the line outside SYNOPSIS
* spelling in some error messages

While merging, fix one regression in .In spacing
that needs to go to bsd.lv, too.

Revision 1.36 / (download) - annotate - [select for diffs], Mon May 24 00:00:10 2010 UTC (13 years, 11 months ago) by schwarze
Branch: MAIN
Changes since 1.35: +2 -2 lines
Diff to previous 1.35 (colored)

Increase performance by saving the list type in struct mdoc_node.
This will eventually be used so that mdoc_macro can know whether to
dump list line arguments into the body (`Bl -column' overflowing).
Remove a2list() and arg_listtype() because of this.

From kristaps@.

While merging, fix a regression in mdoc_term.c, print_bvspace():
The bsd.lv version of this broke vertical spacing in .Bl -column.

Revision 1.35 / (download) - annotate - [select for diffs], Sun May 23 22:45:00 2010 UTC (13 years, 11 months ago) by schwarze
Branch: MAIN
Changes since 1.34: +8 -71 lines
Diff to previous 1.34 (colored)

Unified error and warning message system for all of mandoc,
featuring three message levels, as agreed during the mandoc hackathon:
* FATAL parser failure, cannot produce any output from this input file:
  eventually, we hope to convert most of these to ERRORs.
* ERROR, meaning mandoc cannot cope fully with the input syntax and will
  probably lose information or produce structurally garbled output;
  it will try to produce output anyway but exit non-zero at the end,
  which is eventually intended to make the ports infrastructure happy.
* WARNING, meaning you should clean up the input file, but output
  is probably mostly OK, so this will not cause error-exit at the end.
This commit is mostly just converting the old system to the new one; before
the classification will become really reliable, we must check all messages.

In particular,
* set up a new central message string table in main.c
* drop the old message string tables from man.c and mdoc.c
* get rid of the piece-meal merr enums in libman and libmdoc
* reduce number of error/warning functions from 16 to 6 (still a lot...)

While here, handle a few problems more gracefully:
* allow .Rv and .Ex to work without a prior .Nm
* allow .An to ignore extra arguments
* allow undeclared columns in .Bl -column

Written by kristaps@.

Revision 1.34 / (download) - annotate - [select for diffs], Sat May 15 18:25:50 2010 UTC (14 years ago) by schwarze
Branch: MAIN
Changes since 1.33: +2 -2 lines
Diff to previous 1.33 (colored)

allow non-numeric manual sections in -mdoc;
while here, allow LIBRARY in section 9;
by kristaps@

Revision 1.33 / (download) - annotate - [select for diffs], Sat May 15 16:48:12 2010 UTC (14 years ago) by schwarze
Branch: MAIN
Changes since 1.32: +1 -2 lines
Diff to previous 1.32 (colored)

various improvements regarding errors and warnings Joerg Sonnenberger:
* If the last -column .Bl isn't specified, it is auto-sized.
* An invalid .St argument should be a warning, not an error.
  Just put the argument into the output.
* An invalid .At argument should be a warning, not an error.
  Just print the argument, like new groff does.
* Remove warnings concerning manual section (like 1, 6, 8).
  It was only used for .Ex and not really useful.
* Remove warnings concerning page section (like SYNOPSIS).
  These were only used for .Fd and .Lb and not really useful.

Revision 1.32 / (download) - annotate - [select for diffs], Sat May 15 13:12:55 2010 UTC (14 years ago) by schwarze
Branch: MAIN
Changes since 1.31: +6 -4 lines
Diff to previous 1.31 (colored)

proper handling of quoted tab-separated column lists
by kristaps@

Revision 1.31 / (download) - annotate - [select for diffs], Sat May 15 12:30:59 2010 UTC (14 years ago) by schwarze
Branch: MAIN
Changes since 1.30: +10 -3 lines
Diff to previous 1.30 (colored)

Distinguish OPEN, MIDDLE and CLOSE delimiters (using an enum).
Only OPEN are drawn before the beginning of a macro;
this is new, before this, MIDDLE ('|') were drawn in front, too.
Only CLOSE are pushed after the end of a macro (as before).
ok kristaps@

This allows us to finally enable handling of leading punctuation
without regressions.

Revision 1.30 / (download) - annotate - [select for diffs], Fri May 14 14:47:44 2010 UTC (14 years ago) by schwarze
Branch: MAIN
Changes since 1.29: +8 -6 lines
Diff to previous 1.29 (colored)

Merge 1.9.25, keeping local patches;
this does not merge kristaps' end-of-sentences handling yet,
i will check that separately.  This one includes:
* handle \*(Ba as a delimiter
* introduce ARGS_PEND for .Bl -column .It end-of-line special casing
* section ordering: expect EXIT STATUS at the right place
* line break fixes in SYNOPSIS
* allow literal contexts to have arbitrary line lengths
* the input file column number can not be used to identify the beginning
  of a line because white space is allowed after the initial '.'
* proper leading spaces in -man -Tascii mode
* do not let Lb break lines in -mdoc -Thtml LIBRARY

Revision 1.29 / (download) - annotate - [select for diffs], Fri May 14 01:54:37 2010 UTC (14 years ago) by schwarze
Branch: MAIN
Changes since 1.28: +23 -16 lines
Diff to previous 1.28 (colored)

merge 1.9.24, keeping local patches; some changes:
* preserve multiple consecutive space characters in input
* do not restrict .Cd and .Rv to certain sections (requested by Joerg)
* do not run lookup() on quoted words
* enum return types for mdoc_args and mdoc_argv
* fix auto-closing of LINK tag in -Txhtml (from Daniel Friesel)
* various lint and manual fixes

Revision 1.28 / (download) - annotate - [select for diffs], Sat May 8 01:52:07 2010 UTC (14 years ago) by schwarze
Branch: MAIN
Changes since 1.27: +2 -1 lines
Diff to previous 1.27 (colored)

handle text lines beginning with \." as comments, like groff does,
even though this is not correct comment syntax (so warn, too)
reported by Claus Assmann on misc@, fix by kristaps@

Revision 1.27 / (download) - annotate - [select for diffs], Wed Apr 7 23:15:05 2010 UTC (14 years, 1 month ago) by schwarze
Branch: MAIN
Changes since 1.26: +2 -3 lines
Diff to previous 1.26 (colored)

Merge the good parts of 1.9.23,
avoid the bad parts of 1.9.23, and keep local patches.

Input in general:
 * Basic handling of roff-style font escapes \f, \F.
 * Quoted punctuation does not count as punctuation.

mdoc(7) parser:
 * Make .Pf callable; noted by Claus Assmann.
 * Let .Bd and .Bl ignore unknown arguments; noted by deraadt@.
 * Do not warn when .Er is used outside certain sections.
 * Replace mdoc_node_free[list] by mdoc_node_delete.
 * Replace #define by enum for rew*() return values.

man(7) parser:
 * When .TH is missing, use default section and date.

Output in general:
 * Curly braces do not count as punctuation.
 * No space after .Fl w/o args when a macro follows on the same line.

HTML output:
 * Unify PAIR_*_INIT macros, introduce new PAIR_ID_INIT().
 * Print whitespace after, not before .Vt .Fn .Ft .Fo.

Checked that all manuals in base still build.

Revision 1.26 / (download) - annotate - [select for diffs], Sat Apr 3 16:30:42 2010 UTC (14 years, 1 month ago) by schwarze
Branch: MAIN
Changes since 1.25: +2 -1 lines
Diff to previous 1.25 (colored)

When two conflicting list types are specified for the same list,
use the first, discard the second, and warn.  No need to bail out.

ok deraadt@

Revision 1.25 / (download) - annotate - [select for diffs], Fri Apr 2 12:39:47 2010 UTC (14 years, 1 month ago) by schwarze
Branch: MAIN
Changes since 1.24: +11 -11 lines
Diff to previous 1.24 (colored)

merge 1.9.22, keeping local patches
* convert mdoc tokens from #define to enum
* fix a segfault with .Xo/.Xc in explicit blocks
* Thorn is \*(Th, not \*(TH; noticed by Joerg Sonnenberger

Revision 1.24 / (download) - annotate - [select for diffs], Tue Dec 22 23:58:00 2009 UTC (14 years, 4 months ago) by schwarze
Branch: MAIN
CVS Tags: OPENBSD_4_7_BASE, OPENBSD_4_7
Changes since 1.23: +1 -2 lines
Diff to previous 1.23 (colored)

sync to 1.9.12, mostly portability and refactoring:

correctness/functionality:
- bugfix: do not die when overstep hits the right margin
- new option: -fign-escape
- and various HTML features

portability:
- replace bzero(3) by memset(3), which is ANSI C
- replace err(3)/warn(3) by perror(3)/exit(3), which is ANSI C
- iuse argv[0] instead of __progname
- add time.h to various files for FreeBSD compilation

simplicity:
- do not allocate header/footer data dynamically in *_term.c
- provide and use malloc frontends that error out on failure

for full changelogs, see http://bsd.lv/cgi-bin/cvsweb.cgi/

Revision 1.23 / (download) - annotate - [select for diffs], Wed Oct 21 19:13:50 2009 UTC (14 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.22: +2 -1 lines
Diff to previous 1.22 (colored)

sync to 1.9.9, featuring:
 * -Thtml output mode
 * roff scaling units
 * and some minor fixes
for full changelogs, see http://bsd.lv/cgi-bin/cvsweb.cgi/

Revision 1.22 / (download) - annotate - [select for diffs], Mon Oct 19 16:27:52 2009 UTC (14 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.21: +2 -1 lines
Diff to previous 1.21 (colored)

sync to 1.9.6: multiple improvements to references (.Rs)
 * validate and order .Rs child nodes
 * underline book title (.%B) and issuer (.%I)
 * enclose title of article (.%T) in quotes
 * avoid calling mdoc_verr directly, use a proper error code instead

Revision 1.21 / (download) - annotate - [select for diffs], Mon Sep 21 21:11:37 2009 UTC (14 years, 8 months ago) by schwarze
Branch: MAIN
Changes since 1.20: +3 -5 lines
Diff to previous 1.20 (colored)

sync to 1.9.5: lookup hashes are now static tables
shortening the code, and, according to kristaps@, speeding it up

Revision 1.20 / (download) - annotate - [select for diffs], Sat Aug 22 22:39:55 2009 UTC (14 years, 8 months ago) by schwarze
Branch: MAIN
Changes since 1.19: +5 -3 lines
Diff to previous 1.19 (colored)

sync to 1.9.1: correctly flag delimiter whitespace

Revision 1.19 / (download) - annotate - [select for diffs], Sat Aug 22 21:55:06 2009 UTC (14 years, 9 months ago) by schwarze
Branch: MAIN
Changes since 1.18: +2 -2 lines
Diff to previous 1.18 (colored)

sync to 1.9.1: set mdoc_next flags in mdoc_*_alloc routines, where they belong

Revision 1.18 / (download) - annotate - [select for diffs], Sat Aug 22 19:43:33 2009 UTC (14 years, 9 months ago) by schwarze
Branch: MAIN
Changes since 1.17: +1 -4 lines
Diff to previous 1.17 (colored)

sync to 1.9.0: polishing the core code of mdoc macro handling
1) If a macro is not parsed, do not parse it.  Of course, without
parsing it, we cannot produce "macro-like parameter" warnings,
but these were useless anyway.
2) If a macro is not callable, do not print a useless warning when
it occurs as a parameter, just display the raw characters.
3) Below .Bl -column, check whether macros are callable.
4) Like groff, allow whitespace after the initial dot on macro lines.

Revision 1.17 / (download) - annotate - [select for diffs], Sun Jul 26 22:48:41 2009 UTC (14 years, 9 months ago) by schwarze
Branch: MAIN
Changes since 1.16: +3 -2 lines
Diff to previous 1.16 (colored)

sync to 1.8.1: rewrite quoted literal handling correctly,
rewrite TABSEP handling in a simpler way,
and retire ECOLEMPTY, ARGS_QUOTED and ARGS_ARGVLIKE

Revision 1.16 / (download) - annotate - [select for diffs], Sun Jul 26 02:17:29 2009 UTC (14 years, 9 months ago) by schwarze
Branch: MAIN
Changes since 1.15: +1 -2 lines
Diff to previous 1.15 (colored)

sync to 1.8.1: removed excessively verbose EARGVPARM warning

Revision 1.15 / (download) - annotate - [select for diffs], Sat Jul 18 19:44:38 2009 UTC (14 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.14: +5 -1 lines
Diff to previous 1.14 (colored)

sync to 1.8.0: move mdoc_a2att, mdoc_a2st, and mdoc_a2lib to libmdoc

Revision 1.14 / (download) - annotate - [select for diffs], Mon Jul 13 00:33:40 2009 UTC (14 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.13: +3 -3 lines
Diff to previous 1.13 (colored)

sync to 1.7.24: mdoc_nwarn/mdoc_nerr got mixed up;
fix from joerg at netbsd via kristaps@

Revision 1.13 / (download) - annotate - [select for diffs], Sun Jul 12 22:35:08 2009 UTC (14 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.12: +5 -4 lines
Diff to previous 1.12 (colored)

sync to 1.7.23: pass warning code to mdoc_pwarn() instead of warning message
define additional warning macro mdoc_nwarn()
remove obsolete warning functions mdoc_warn(), pwarn(), vwarn(), nwarn()
remove various now unused "enum mdoc_warn" and "enum mwarn"

Revision 1.12 / (download) - annotate - [select for diffs], Sun Jul 12 21:45:44 2009 UTC (14 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.11: +3 -2 lines
Diff to previous 1.11 (colored)

sync to 1.7.23: pass error code to mdoc_perr() instead of error string
and use the so improved mdoc_nerr() at many places;
get rid of now unused static functions perr()

Revision 1.11 / (download) - annotate - [select for diffs], Sun Jul 12 21:08:29 2009 UTC (14 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.10: +3 -7 lines
Diff to previous 1.10 (colored)

sync to 1.7.23: pass error code to mdoc_nerr() instead of error string
and use the so improved mdoc_nerr() at many places

Revision 1.10 / (download) - annotate - [select for diffs], Sun Jul 12 20:30:27 2009 UTC (14 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.9: +60 -2 lines
Diff to previous 1.9 (colored)

sync to 1.7.23: unify the various "enum merr" into libman.h and libmdoc.h,
use it as a new argument to mdoc_err(), the same way as for for man_err(),
and use string tables instead of switch statements to select error messages

Revision 1.9 / (download) - annotate - [select for diffs], Sun Jul 12 19:05:52 2009 UTC (14 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.8: +2 -3 lines
Diff to previous 1.8 (colored)

sync to 1.7.23: third step to get rid of enum mdoc_warn:
mdoc_verr is not using enum mdoc_warn, so use it at a few more places

Revision 1.8 / (download) - annotate - [select for diffs], Sun Jul 12 18:35:57 2009 UTC (14 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.7: +4 -3 lines
Diff to previous 1.7 (colored)

sync to 1.7.23: second step to get rid of enum mdoc_warn:
remove type from mdoc_vwarn arguments, and use this function where apropriate

Revision 1.7 / (download) - annotate - [select for diffs], Fri Jun 19 07:20:19 2009 UTC (14 years, 11 months ago) by schwarze
Branch: MAIN
CVS Tags: OPENBSD_4_6_BASE, OPENBSD_4_6
Changes since 1.6: +4 -3 lines
Diff to previous 1.6 (colored)

sync to 1.7.19: more elegant section handling

Revision 1.6 / (download) - annotate - [select for diffs], Thu Jun 18 22:16:56 2009 UTC (14 years, 11 months ago) by schwarze
Branch: MAIN
Changes since 1.5: +5 -7 lines
Diff to previous 1.5 (colored)

complete sync to 1.7.17: garbage collect unused functions
mdoc_msg, mdoc_pmsg, mdoc_vmsg, and mdoc_nwarn

Revision 1.5 / (download) - annotate - [select for diffs], Mon Jun 15 18:41:13 2009 UTC (14 years, 11 months ago) by schwarze
Branch: MAIN
Changes since 1.4: +12 -33 lines
Diff to previous 1.4 (colored)

bring back miod@'s "real functions" patch (rev. 1.2)
which was erroneously backed out in rev. 1.4, sorry;
ok kristaps@

Revision 1.4 / (download) - annotate - [select for diffs], Mon Jun 15 02:19:32 2009 UTC (14 years, 11 months ago) by schwarze
Branch: MAIN
Changes since 1.3: +33 -16 lines
Diff to previous 1.3 (colored)

sync to 1.7.16:
reduce code duplication in warning and error reporting functions
while here, garbage collect three unused function prototypes

Revision 1.3 / (download) - annotate - [select for diffs], Sun Jun 14 23:00:57 2009 UTC (14 years, 11 months ago) by schwarze
Branch: MAIN
Changes since 1.2: +11 -13 lines
Diff to previous 1.2 (colored)

sync to 1.7.16: comments, whitespace and spelling fixes; no functional change

Revision 1.2 / (download) - annotate - [select for diffs], Wed Apr 15 20:10:20 2009 UTC (15 years, 1 month ago) by miod
Branch: MAIN
Changes since 1.1: +12 -33 lines
Diff to previous 1.1 (colored)

Replace variadic macros with real functions, so that this compiles on
platforms still using gcc 2.
ok deraadt@

Revision 1.1 / (download) - annotate - [select for diffs], Mon Apr 6 20:30:40 2009 UTC (15 years, 1 month ago) by kristaps
Branch: MAIN

Initial check-in of mandoc for formatting manuals. ok deraadt@

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.