CVS log for mandoc/roff.7

[BACK] Up to [cvsweb.bsd.lv] / mandoc

Request diff between arbitrary revisions


Default branch: MAIN
Current tag: MAIN


Revision 1.121 / (download) - annotate - [select for diffs], Mon Oct 23 20:25:02 2023 UTC (5 months ago) by schwarze
Branch: MAIN
CVS Tags: HEAD
Changes since 1.120: +4 -3 lines
Diff to previous 1.120 (unified) to selected 1.24 (unified)

Support some escape sequences, in particular character escape sequences,
inside \w arguments, and skip most other escape sequences when measuring
the output length in this way because most escape sequences contribute
little or nothing to text width: for example, consider font escapes in
terminal output.

This implementation is very rudimentary.  In particular, it assumes that
every character has the same width.  No attempt is made to detect
double-width or zero-width Unicode characters or to take dependencies on
output devices or fonts into account.  These limitations are hard to
avoid because mandoc has to interpolate \w at the parsing stage when the
output device is not yet known.  I really do not want the content of the
syntax tree to depend on the output device.

Feature requested by Paul <Eggert at cs dot ucla dot edu>, who also
submitted a patch, but i chose to commit this very different patch
with almost the same functionality.
His input was still very valuable because complete support for \w is
out of the question, and consequently, the main task is identifying
subsets of the feature that are needed for real-world manual pages
and can be supported without uprooting the whole forest.

Revision 1.120 / (download) - annotate - [select for diffs], Tue May 31 20:23:05 2022 UTC (21 months, 4 weeks ago) by schwarze
Branch: MAIN
Changes since 1.119: +19 -4 lines
Diff to previous 1.119 (unified) to selected 1.24 (unified)

Rudimentary implementation of the \A escape sequence, following groff
semantics (test identifier for syntactical validity), not at all
following the completely unrelated Heirloom semantics (define
hyperlink target position).

The main motivation for providing this implementation is to get \A
into the parsing class ESCAPE_EXPAND that corresponds to groff parsing
behaviour, which is quite similar to the \B escape sequence (test
numerical expression for syntactical validity).  This is likely
to improve parsing of nested escape sequences in the future.

Validation isn't perfect yet.  In particular, this implementation
rejects \A arguments containing some escape sequences that groff
allows to slip through.  But that is unlikely to cause trouble even
in documents using \A for non-trivial purposes.  Rejecting the nested
escapes in question might even improve robustnest because the rejected
names are unlikely to really be usable for practical purposes - no
matter that groff dubiously considers them syntactically valid.

Revision 1.119 / (download) - annotate - [select for diffs], Tue May 31 18:09:57 2022 UTC (21 months, 4 weeks ago) by schwarze
Branch: MAIN
Changes since 1.118: +4 -3 lines
Diff to previous 1.118 (unified) to selected 1.24 (unified)

Trivial patch to put the roff(7) \g (interpolate format of register)
escape sequence into the correct parsing class, ESCAPE_EXPAND.
Expansion of \g is supposed to work exactly like the expansion
of the related escape sequence \n (interpolate register value),
but since we ignore the .af (assign output format) request,
we just interpolate an empty string to replace the \g sequence.

Surprising as it may seem, this actually makes a formatting difference
for deviate input like ".O\gNx" which used to raise bogus "escaped
character not allowed in a name" and "skipping unknown macro" errors
and printed nothing, whereas now it correctly prints "OpenBSD".

Revision 1.118 / (download) - annotate - [select for diffs], Mon May 30 23:03:47 2022 UTC (21 months, 4 weeks ago) by schwarze
Branch: MAIN
Changes since 1.117: +8 -4 lines
Diff to previous 1.117 (unified) to selected 1.24 (unified)

Dummy implementation of the roff(7) \V (interpolate environment variable)
escape sequence.  This is needed to get \V into the correct parsing
class, ESCAPE_EXPAND.

It is intentional that mandoc(1) output is *not* influenced by environment
variables, so interpolate the name of the variable with some decorating
punctuation rather than interpolating its value.

Revision 1.117 / (download) - annotate - [select for diffs], Fri May 20 13:09:13 2022 UTC (22 months, 1 week ago) by schwarze
Branch: MAIN
Changes since 1.116: +5 -5 lines
Diff to previous 1.116 (unified) to selected 1.24 (unified)

Re-classify the roff(7) \r (reverse line feed) escape sequence
from "ignore" to "unsupported" because when an input file uses it,
mandoc(1) is likely to significantly misformat the output,
usually showing parts of the output in a different order
than the author intended.

Revision 1.116 / (download) - annotate - [select for diffs], Sat Sep 18 12:23:06 2021 UTC (2 years, 6 months ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_14_6
Changes since 1.115: +3 -3 lines
Diff to previous 1.115 (unified) to selected 1.24 (unified)

replace "Ar arg Ar arg" with "Ar arg arg"; patch from jmc@

Revision 1.115 / (download) - annotate - [select for diffs], Wed Oct 28 21:07:47 2020 UTC (3 years, 5 months ago) by schwarze
Branch: MAIN
Changes since 1.114: +3 -3 lines
Diff to previous 1.114 (unified) to selected 1.24 (unified)

Correct an embarrassing spelling mistake:
The last name of the author of groff is "Clark".

Revision 1.114 / (download) - annotate - [select for diffs], Mon Jul 15 19:20:30 2019 UTC (4 years, 8 months ago) by schwarze
Branch: MAIN
Changes since 1.113: +8 -2 lines
Diff to previous 1.113 (unified) to selected 1.24 (unified)

explain escaping of end-of-sentence characters;
missing info reported by Ian <ropers at gmail dot com> on misc@

Revision 1.113 / (download) - annotate - [select for diffs], Mon Jul 1 23:30:16 2019 UTC (4 years, 8 months ago) by schwarze
Branch: MAIN
Changes since 1.112: +3 -3 lines
Diff to previous 1.112 (unified) to selected 1.24 (unified)

use the standard spelling of the word "idiosyncrasy";
suggested by Michal Nowak <mnowak at startmail dot com>

Revision 1.112 / (download) - annotate - [select for diffs], Sun Apr 21 22:48:58 2019 UTC (4 years, 11 months ago) by schwarze
Branch: MAIN
Changes since 1.111: +3 -4 lines
Diff to previous 1.111 (unified) to selected 1.24 (unified)

Implement the roff .break request (break out of a .while loop).
Jan Stary <hans at stare dot cz> found it in an ancient groffer(1)
manual page (version 1.19) on MacOS X Mojave.
Having .break not implemented wasn't a particularly bright idea
because obviously, it tended to cause infinite loops.

Revision 1.111 / (download) - annotate - [select for diffs], Tue Jan 1 03:45:29 2019 UTC (5 years, 2 months ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_14_5
Changes since 1.110: +35 -12 lines
Diff to previous 1.110 (unified) to selected 1.24 (unified)

Now that .nf and .fi are implemented in the roff(7) parser and formatters
rather than in the man(7) parser and formatters, document them in the
roff(7) manual, where they belong, rather than in the man(7) manual.
Mention that they imply an output line break, and mention which macros
imply these requests.

Revision 1.110 / (download) - annotate - [select for diffs], Sun Dec 16 01:34:56 2018 UTC (5 years, 3 months ago) by schwarze
Branch: MAIN
Changes since 1.109: +30 -22 lines
Diff to previous 1.109 (unified) to selected 1.24 (unified)

minor polishing, in parts related to functional improvements in the past,
and also adding some cross references for important escape sequences

Revision 1.109 / (download) - annotate - [select for diffs], Sun Dec 16 00:17:02 2018 UTC (5 years, 3 months ago) by schwarze
Branch: MAIN
Changes since 1.108: +79 -43 lines
Diff to previous 1.108 (unified) to selected 1.24 (unified)

Yet another round of improvements to manual font selection.

Unify handling of \f and .ft.
Support \f4 (bold+italic).
Support ".ft BI" and ".ft CW" for terminal output.
Support the .ft request in HTML output.
Reject the bogus fonts \f(C1, \f(C2, \f(C3, and \f(CP.
In regress.pl, only strip leading whitespace in math mode.

Revision 1.108 / (download) - annotate - [select for diffs], Sat Dec 15 19:30:26 2018 UTC (5 years, 3 months ago) by schwarze
Branch: MAIN
Changes since 1.107: +44 -1 lines
Diff to previous 1.107 (unified) to selected 1.24 (unified)

Several improvements to escape sequence handling.

* Add the missing special character \_ (underscore).
* Partial implementations of \a (leader character)
and \E (uninterpreted escape character).
* Parse and ignore \r (reverse line feed).
* Add a WARNING message about undefined escape sequences.
* Add an UNSUPP message about unsupported escape sequences.
* Mark \! and \? (transparent throughput)
and \O (suppress output) as unsupported.
* Treat the various variants of zero-width spaces as one-byte escape
sequences rather than as special characters, to avoid defining bogus
forms with square brackets.
* For special characters with one-byte names, do not define bogus
forms with square brackets, except for \[-], which is valid.
* In the form with square brackets, undefined special characters do not
fall back to printing the name verbatim, not even for one-byte names.
* Starting a special character name with a blank is an error.
* Undefined escape sequences never abort formatting of the input
string, not even in HTML output mode.
* Document the newly handled escapes, and a few that were missing.
* Regression tests for most of the above.

Revision 1.107 / (download) - annotate - [select for diffs], Thu Oct 4 15:32:09 2018 UTC (5 years, 5 months ago) by schwarze
Branch: MAIN
Changes since 1.106: +19 -20 lines
Diff to previous 1.106 (unified) to selected 1.24 (unified)

update DESCRIPTION and COMPATIBILITY, mostly correcting statements
from the past that are no longer true

Revision 1.106 / (download) - annotate - [select for diffs], Thu Oct 4 15:16:23 2018 UTC (5 years, 5 months ago) by schwarze
Branch: MAIN
Changes since 1.105: +103 -97 lines
Diff to previous 1.105 (unified) to selected 1.24 (unified)

Stop abusing subsections to represent the list of escape sequences;
instead, use .Bl -tag like everywhere else.  The same was already
done for requests quite some time ago.  Also, consistently mark up
escape sequences with .Ic, just like requests.

Revision 1.105 / (download) - annotate - [select for diffs], Sat Aug 25 16:53:39 2018 UTC (5 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.104: +12 -5 lines
Diff to previous 1.104 (unified) to selected 1.24 (unified)

Rudimentary implementation of the roff(7) .char (output glyph
definition) request, used for example by groff_hdtbl(7).

This simplistic implementation may interact incorrectly
with the .tr (input character translation) request.
But come on, you are not only using .char *and* .tr, but you do so
with respect to the same character in the same manual page?

Revision 1.104 / (download) - annotate - [select for diffs], Fri Aug 24 23:12:33 2018 UTC (5 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.103: +9 -9 lines
Diff to previous 1.103 (unified) to selected 1.24 (unified)

Rudimentary implementation of the roff(7) .while request.
Needed for example by groff_hdtbl(7).

There are two limitations:
It does not support nested .while requests yet,
and each .while loop must start and end in the same scope.

The roff_parseln() return codes are now more flexible
and allow OR'ing options.

Revision 1.103 / (download) - annotate - [select for diffs], Thu Aug 23 14:29:38 2018 UTC (5 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.102: +9 -6 lines
Diff to previous 1.102 (unified) to selected 1.24 (unified)

Implement the roff(7) .shift and .return requests,
for example used by groff_hdtbl(7) and groff_mom(7).

Also correctly interpolate arguments during nested macro execution
even after .shift and .return, implemented using a stack of argument
arrays.

Note that only read.c, but not roff.c can detect the end of a macro
execution, and the existence of .shift implies that arguments cannot
be interpolated up front, so unfortunately, this includes a partial
revert of roff.c rev. 1.337, moving argument interpolation back into
the function roff_res().

Revision 1.102 / (download) - annotate - [select for diffs], Tue Aug 21 18:15:22 2018 UTC (5 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.101: +7 -2 lines
Diff to previous 1.101 (unified) to selected 1.24 (unified)

Implement the \\$@ escape sequence (insert all macro arguments,
quoted) in addition to the already supported \\$* (similar, but
unquoted).  Then use \\$@ to improve the implementation of
the .als request (macro alias).

Needed by groff_hdtbl(7).
Gosh, it feels like the manual pages of the groff package are
exercising every bloody roff(7) feature under the sun.  In the
manual page source code itself, not merely in the implementation
of the used macro packages, that is.

Revision 1.101 / (download) - annotate - [select for diffs], Sun Aug 19 17:46:14 2018 UTC (5 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.100: +19 -6 lines
Diff to previous 1.100 (unified) to selected 1.24 (unified)

Mostly complete implementation of the 'c' (character available)
roff conditional, except that the .char request still isn't supported
and that behaviour differs from groff in many edge cases.
But at least valid character names and numbers are now distinguished
from invalid ones.
This also fixes the bug that parsing of the 'c' conditional was
incomplete, which resulted in leaking the tested character to the
input parser at the beginning of the body when the condition was
inverted.

Revision 1.100 / (download) - annotate - [select for diffs], Sat Aug 18 21:37:01 2018 UTC (5 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.99: +8 -2 lines
Diff to previous 1.99 (unified) to selected 1.24 (unified)

support the highly surprising escape sequence \# (line continuation
with comment); used for example by gropdf(1)

Revision 1.99 / (download) - annotate - [select for diffs], Thu Aug 16 14:07:11 2018 UTC (5 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.98: +23 -40 lines
Diff to previous 1.98 (unified) to selected 1.24 (unified)

Document \*(.T.
While here, delete the section about predefined strings.
For manual pages, the concept is not important enough to be discussed
in such a prominent place, and some aspects of the text were also
misleading.  Add a shorter version of the relevant parts to the
description of the \* escape sequence instead.

Revision 1.98 / (download) - annotate - [select for diffs], Fri Aug 10 20:40:45 2018 UTC (5 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.97: +5 -5 lines
Diff to previous 1.97 (unified) to selected 1.24 (unified)

The groff man-ext macros define fonts CB, CI, and CR,
and some groff manual pages actually use them in .ft requests.
It's easy enough to handle these .ft requests in mandoc, too.

Revision 1.97 / (download) - annotate - [select for diffs], Fri Aug 10 04:41:25 2018 UTC (5 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.96: +9 -6 lines
Diff to previous 1.96 (unified) to selected 1.24 (unified)

Implement the roff(7) .nop (no operation) request.
Examples of manual pages (ab)using it
include groff(7), chem(1), groff_mom(7), and groff_hdtbl(7).

Revision 1.96 / (download) - annotate - [select for diffs], Tue Apr 10 00:52:30 2018 UTC (5 years, 11 months ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_14_4
Changes since 1.95: +19 -5 lines
Diff to previous 1.95 (unified) to selected 1.24 (unified)

Two new low-level roff(7) features:
* .nr optional third argument (auto-increment step size)
* \n+ and \n- numerical register auto-increment and -decrement
bentley@ reported on Dec 9, 2013 that lang/sbcl(1) uses these.

Revision 1.95 / (download) - annotate - [select for diffs], Fri Dec 15 23:39:07 2017 UTC (6 years, 3 months ago) by schwarze
Branch: MAIN
Changes since 1.94: +3 -3 lines
Diff to previous 1.94 (unified) to selected 1.24 (unified)

typo; from Alexander Kuleshov <kuleshovmail at gmail dot com>

Revision 1.94 / (download) - annotate - [select for diffs], Wed Jul 5 12:25:17 2017 UTC (6 years, 8 months ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_14_3, VERSION_1_14_2
Changes since 1.93: +15 -15 lines
Diff to previous 1.93 (unified) to selected 1.24 (unified)

nits about trailing punctuation found with mandoc -Tlint

Revision 1.93 / (download) - annotate - [select for diffs], Wed Jun 14 23:24:17 2017 UTC (6 years, 9 months ago) by schwarze
Branch: MAIN
Changes since 1.92: +6 -3 lines
Diff to previous 1.92 (unified) to selected 1.24 (unified)

implement so-called absolute horizontal motion: \h'|...',
used for example by zoem(1)

Revision 1.92 / (download) - annotate - [select for diffs], Wed Jun 14 22:51:25 2017 UTC (6 years, 9 months ago) by schwarze
Branch: MAIN
Changes since 1.91: +10 -3 lines
Diff to previous 1.91 (unified) to selected 1.24 (unified)

Naive implementation of the roff(7) .po (page offset) request.

This clearly works when .po is called on the top level, but might
not be sophisticated enough if people call .po inside indentation-changing
contexts, but i haven't seen that in manual pages (yet :).

Revision 1.91 / (download) - annotate - [select for diffs], Wed Jun 14 19:39:18 2017 UTC (6 years, 9 months ago) by schwarze
Branch: MAIN
Changes since 1.90: +1 -2 lines
Diff to previous 1.90 (unified) to selected 1.24 (unified)

simple implementation of the roff(7) .als (macro alias) request,
sufficient for pages using po4a(1)

Revision 1.90 / (download) - annotate - [select for diffs], Wed Jun 14 14:02:39 2017 UTC (6 years, 9 months ago) by schwarze
Branch: MAIN
Changes since 1.89: +10 -3 lines
Diff to previous 1.89 (unified) to selected 1.24 (unified)

implement the roff(7) d (macro or string defined) conditional

Revision 1.89 / (download) - annotate - [select for diffs], Wed Jun 14 13:00:31 2017 UTC (6 years, 9 months ago) by schwarze
Branch: MAIN
Changes since 1.88: +5 -3 lines
Diff to previous 1.88 (unified) to selected 1.24 (unified)

implement roff(7) .rj (right justify) request

Revision 1.88 / (download) - annotate - [select for diffs], Wed Jun 14 01:31:26 2017 UTC (6 years, 9 months ago) by schwarze
Branch: MAIN
Changes since 1.87: +4 -2 lines
Diff to previous 1.87 (unified) to selected 1.24 (unified)

implement the roff(7) \p (break output line) escape sequence

Revision 1.87 / (download) - annotate - [select for diffs], Sat Jun 10 16:32:27 2017 UTC (6 years, 9 months ago) by schwarze
Branch: MAIN
Changes since 1.86: +3 -3 lines
Diff to previous 1.86 (unified) to selected 1.24 (unified)

minor markup simplifications

Revision 1.86 / (download) - annotate - [select for diffs], Wed Jun 7 00:50:34 2017 UTC (6 years, 9 months ago) by schwarze
Branch: MAIN
Changes since 1.85: +13 -4 lines
Diff to previous 1.85 (unified) to selected 1.24 (unified)

Implement the roff(7) .rn (rename macro or string) request.
Renaming a user-defined macro is very simple: just copy
the definition to the new name and delete the old name.
Renaming high-level macros is a bit tricky: use a dedicated
key-value-table, with non-standard names as keys and standard
names as values.  When a macro is found that is not user-defined,
look it up in the "renamed" table and translate it back to the
standard name before passing it on to the high-level parsers.

Revision 1.85 / (download) - annotate - [select for diffs], Tue Jun 6 15:03:35 2017 UTC (6 years, 9 months ago) by schwarze
Branch: MAIN
Changes since 1.84: +5 -2 lines
Diff to previous 1.84 (unified) to selected 1.24 (unified)

document the new .ce implementation

Revision 1.84 / (download) - annotate - [select for diffs], Sun Jun 4 22:44:15 2017 UTC (6 years, 9 months ago) by schwarze
Branch: MAIN
Changes since 1.83: +5 -3 lines
Diff to previous 1.83 (unified) to selected 1.24 (unified)

Implement the roff(7) .mc (right margin character) request.
The Tcl/Tk manual pages use this extensively.
Delete the TERM_MAXMARGIN hack, it breaks .mc inside .nf;
instead, implement a proper TERMP_BRNEVER flag.

Revision 1.83 / (download) - annotate - [select for diffs], Sun Jun 4 00:13:15 2017 UTC (6 years, 9 months ago) by schwarze
Branch: MAIN
Changes since 1.82: +7 -5 lines
Diff to previous 1.82 (unified) to selected 1.24 (unified)

Pure preprocessor implementation of the roff(7) .ec and .eo requests
(escape character control), touching nothing after the preprocessing
stage and keeping even the state variable local to the preprocessor.
Since the escape character is also used for line continuation, this
requires pulling the implementation of line continuation from the
input reader to the preprocessor, which also considerably shortens
the code required for that.

When the escape character is changed, simply let the preprocessor
replace bare by escaped backslashes and instances of the non-standard
escape character with bare backslashes - that's all we need.

Oh, and if anybody dares to use these requests in OpenBSD manuals,
sending a medium-sized pack of axe-murderers after them might be a
worthwhile part of the punishment, but probably insuffient on its own.

Revision 1.82 / (download) - annotate - [select for diffs], Fri Jun 2 19:21:23 2017 UTC (6 years, 9 months ago) by schwarze
Branch: MAIN
Changes since 1.81: +7 -5 lines
Diff to previous 1.81 (unified) to selected 1.24 (unified)

Partial implementation of \h (horizontal line drawing function).
A full implementation would require access to output device properties
and state variables (both only available after the main parser has
finalized the parse tree) before numerical expansions in the roff
preprocessor (i.e., before the main parser is even started).

Not trying to pull that stunt right now because the static-width
implementation committed here is sufficient for tcl-style manual pages
and already more complicated than i would have suspected.

Revision 1.81 / (download) - annotate - [select for diffs], Thu Jun 1 19:05:37 2017 UTC (6 years, 9 months ago) by schwarze
Branch: MAIN
Changes since 1.80: +5 -4 lines
Diff to previous 1.80 (unified) to selected 1.24 (unified)

Minimal implementation of the \h (horizontal motion) escape sequence.
Good enough to cope with the average DocBook insanity.

Revision 1.80 / (download) - annotate - [select for diffs], Mon May 8 15:34:54 2017 UTC (6 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.79: +12 -6 lines
Diff to previous 1.79 (unified) to selected 1.24 (unified)

Basic implementation of the roff(7) .ti (temporary indent) request.
Needed by about four dozen ports (thanks to naddy@ for the research).

Revision 1.79 / (download) - annotate - [select for diffs], Mon May 8 03:55:25 2017 UTC (6 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.78: +414 -429 lines
Diff to previous 1.78 (unified) to selected 1.24 (unified)

Convert REQUEST REFERENCE from using .Ss to .Bl -tag, allowing to
specify request arguments and supporting tag searching in less(1).
Improve some entries and document .ta.

Revision 1.78 / (download) - annotate - [select for diffs], Fri May 5 15:54:59 2017 UTC (6 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.77: +12 -2 lines
Diff to previous 1.77 (unified) to selected 1.24 (unified)

Shorten the description of .sp and move it to roff(7).
If is not a macro but a low-level roff request
and not recommended for use in manual pages.

Revision 1.77 / (download) - annotate - [select for diffs], Fri May 5 02:31:35 2017 UTC (6 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.76: +4 -10 lines
Diff to previous 1.76 (unified) to selected 1.24 (unified)

Clean up docs after today's .br and .ft code cleanup; simpler.

Revision 1.76 / (download) - annotate - [select for diffs], Tue Feb 21 23:44:43 2017 UTC (7 years, 1 month ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_13
Changes since 1.75: +3 -3 lines
Diff to previous 1.75 (unified) to selected 1.24 (unified)

fix spelling error;
found by Michael <Stapelberg at debian dot org> with Lintian

Revision 1.75 / (download) - annotate - [select for diffs], Thu Sep 24 18:41:22 2015 UTC (8 years, 6 months ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_14_1, VERSION_1_13_4
Changes since 1.74: +6 -6 lines
Diff to previous 1.74 (unified) to selected 1.24 (unified)

typos; found and fixed by sobrado@

Revision 1.74 / (download) - annotate - [select for diffs], Sat Aug 29 22:40:05 2015 UTC (8 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.73: +9 -3 lines
Diff to previous 1.73 (unified) to selected 1.24 (unified)

Parse and ignore the escape sequences \, and \/ (italic corrections).
Actually using these is very stupid because they are groff extensions
and other roff(7) implementations typically print unintended characters
at the places where they are used.
Nevertheless, some manuals contain them, for example ocserv(8).
Problem reported by Kurt Jaeger <pi at FreeBSD>.

Revision 1.73 / (download) - annotate - [select for diffs], Sat Aug 29 21:37:20 2015 UTC (8 years, 7 months ago) by schwarze
Branch: MAIN
Changes since 1.72: +4 -2 lines
Diff to previous 1.72 (unified) to selected 1.24 (unified)

Implement the escape sequence \\$*, expanding to all arguments
of the current user-defined macro.
This is another missing feature required for ocserv(8).
Problem reported by Kurt Jaeger <pi at FreeBSD>.

Revision 1.72 / (download) - annotate - [select for diffs], Sun May 31 23:13:22 2015 UTC (8 years, 9 months ago) by schwarze
Branch: MAIN
Changes since 1.71: +7 -4 lines
Diff to previous 1.71 (unified) to selected 1.24 (unified)

Implement the roff(7) `r' (register exists) conditional.
Missing feature found by Markus <Waldeck at gmx dot de>
in Debian's bash(1) manual page.

Revision 1.71 / (download) - annotate - [select for diffs], Wed Apr 29 18:35:00 2015 UTC (8 years, 11 months ago) by schwarze
Branch: MAIN
Changes since 1.70: +3 -6 lines
Diff to previous 1.70 (unified) to selected 1.24 (unified)

Replace the kludge for the \z escape sequence by an actual
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).

Revision 1.70 / (download) - annotate - [select for diffs], Tue Feb 17 17:16:52 2015 UTC (9 years, 1 month ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_13_3
Changes since 1.69: +11 -6 lines
Diff to previous 1.69 (unified) to selected 1.24 (unified)

Let .it accept numerical expressions, not just numerical constants.
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.

Revision 1.69 / (download) - annotate - [select for diffs], Thu Jan 29 00:33:57 2015 UTC (9 years, 2 months ago) by schwarze
Branch: MAIN
Changes since 1.68: +47 -31 lines
Diff to previous 1.68 (unified) to selected 1.24 (unified)

Radical cleanup of COMPATIBILITY sections:
Remove lots of lies, dozens of irrelevant implementation details,
and all references to groff versions older than 1.17.  Move relevant
information to the pages where it belongs, and out of mandoc(1) in
particular.  Add some missing general remarks to roff(7), where it
fits the character and purpose of the page much better.

Revision 1.68 / (download) - annotate - [select for diffs], Fri Jan 23 20:18:40 2015 UTC (9 years, 2 months ago) by schwarze
Branch: MAIN
Changes since 1.67: +6 -6 lines
Diff to previous 1.67 (unified) to selected 1.24 (unified)

While ignoring the .ta (set tab stops) and .ti (temp indent) requests
is sometimes harmless, it often causes seriously ugly output,
so flag these requests as unsupported rather than ignoring them.
Discussed with naddy@.

Revision 1.67 / (download) - annotate - [select for diffs], Fri Jan 23 00:42:00 2015 UTC (9 years, 2 months ago) by schwarze
Branch: MAIN
Changes since 1.66: +10 -2 lines
Diff to previous 1.66 (unified) to selected 1.24 (unified)

Wonders of roff(7): Integer numbers in numerical expressions can carry
scaling units, and some manuals (e.g. in devel/grcs) actually use that,
so let's support it.  Missing feature reported by naddy@.

Revision 1.66 / (download) - annotate - [select for diffs], Thu Jan 22 00:09:03 2015 UTC (9 years, 2 months ago) by schwarze
Branch: MAIN
Changes since 1.65: +3 -3 lines
Diff to previous 1.65 (unified) to selected 1.24 (unified)

improve wording; patch from jmc@

Revision 1.65 / (download) - annotate - [select for diffs], Wed Jan 21 20:33:25 2015 UTC (9 years, 2 months ago) by schwarze
Branch: MAIN
Changes since 1.64: +6 -5 lines
Diff to previous 1.64 (unified) to selected 1.24 (unified)

Rudimentary implementation of the roff(7) \o escape sequence (overstrike).
This is of some relevance because the pod2man(1) preamble abuses it
for the icelandic letter Thorn, instead of simply using \(TP and \(Tp.
Missing feature found by sthen@ in DateTime::Locale::is_IS(3p).

Revision 1.64 / (download) - annotate - [select for diffs], Tue Jan 20 22:45:07 2015 UTC (9 years, 2 months ago) by schwarze
Branch: MAIN
Changes since 1.63: +4 -4 lines
Diff to previous 1.63 (unified) to selected 1.24 (unified)

typo fixes from jmc@

Revision 1.63 / (download) - annotate - [select for diffs], Tue Jan 20 21:16:51 2015 UTC (9 years, 2 months ago) by schwarze
Branch: MAIN
Changes since 1.62: +725 -55 lines
Diff to previous 1.62 (unified) to selected 1.24 (unified)

Split the -Werror message level into -Werror (broken manual, probably
using mandoc is better than using groff) and -Wunsupp (manual using
unsupported low-level roff(7) feature, probably using groff is better
than using mandoc).  Once this feature is complete, it is intended
to help porting, making the decision whether to USE_GROFF easier.

As a first step, distinguish four classes of roff(7) requests:
1. Supported (currently 24 requests)
2. Currently ignored because unimportant (120)  ->  no message
3. Ignored for good because insecure (14)  ->  -Werror
4. Currently unsupported (68)  ->  these trigger the new -Wunsupp messages

Revision 1.62 / (download) - annotate - [select for diffs], Tue Jan 20 19:39:34 2015 UTC (9 years, 2 months ago) by schwarze
Branch: MAIN
Changes since 1.61: +3 -3 lines
Diff to previous 1.61 (unified) to selected 1.24 (unified)

change spelling of centre to center: consistent with other man pages
and the name of the syntax elements being described; from tedu@

Revision 1.61 / (download) - annotate - [select for diffs], Thu Dec 25 17:23:32 2014 UTC (9 years, 3 months ago) by schwarze
Branch: MAIN
Changes since 1.60: +6 -4 lines
Diff to previous 1.60 (unified) to selected 1.24 (unified)

Reduce memory and time consumption on certain malformed input files
by limiting the length of expanded input lines during the
(usually recursive) expansion of user defined strings.
Resource hogging found by jsg@ with afl.

Revision 1.60 / (download) - annotate - [select for diffs], Tue Dec 2 10:08:06 2014 UTC (9 years, 3 months ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_13_2
Changes since 1.59: +6 -4 lines
Diff to previous 1.59 (unified) to selected 1.24 (unified)

Fix the implementation and documentation of \c (continue text input line).
In particular, make it work in no-fill mode, too.
Reminded by Carsten dot Kunze at arcor dot de (Heirloom roff).

Revision 1.59 / (download) - annotate - [select for diffs], Wed Nov 19 01:20:25 2014 UTC (9 years, 4 months ago) by schwarze
Branch: MAIN
Changes since 1.58: +5 -3 lines
Diff to previous 1.58 (unified) to selected 1.24 (unified)

Support the ".if v" conditional operator (vroff mode, always false)
for groff compatibility because pod2man(1) uses it that way.
Weirdly, groff documents it as "for compatibility with other
troff versions" but neither Heirloom nor Plan 9 have it.
Issue reported by giovanni@ via sthen@.

Revision 1.58 / (download) - annotate - [select for diffs], Sun Sep 7 00:21:53 2014 UTC (9 years, 6 months ago) by schwarze
Branch: MAIN
Changes since 1.57: +7 -2 lines
Diff to previous 1.57 (unified) to selected 1.24 (unified)

Parse and ignore the .pl (page length) request;
Daniel Levai reports that Slackware Linux uses this.

Revision 1.57 / (download) - annotate - [select for diffs], Thu Aug 14 20:27:45 2014 UTC (9 years, 7 months ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_12_4, VERSION_1_12
Changes since 1.56: +3 -3 lines
Diff to previous 1.56 (unified) to selected 1.24 (unified)

remove double word; from jmc@

Revision 1.56 / (download) - annotate - [select for diffs], Wed Aug 13 20:34:29 2014 UTC (9 years, 7 months ago) by kristaps
Branch: MAIN
Changes since 1.55: +11 -5 lines
Diff to previous 1.55 (unified) to selected 1.24 (unified)

Begin cleaning up scaling units.
Start with the horizontal terminal specifiers, making sure that they match
up with troff.
Then move on to PS, PDF, and HTML, noting that we stick to the terminal
default width for "u".
Lastly, fix some completely-wrong documentation and note that we diverge
from troff w/r/t "u".

Revision 1.55 / (download) - annotate - [select for diffs], Mon Jul 7 11:35:06 2014 UTC (9 years, 8 months ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_13_1
Changes since 1.54: +15 -14 lines
Diff to previous 1.54 (unified) to selected 1.24 (unified)

implement .dei and .ami

Revision 1.54 / (download) - annotate - [select for diffs], Tue Apr 8 01:37:27 2014 UTC (9 years, 11 months ago) by schwarze
Branch: MAIN
Changes since 1.53: +17 -8 lines
Diff to previous 1.53 (unified) to selected 1.24 (unified)

Fully implement the \B (validate numerical expression) and
partially implement the \w (measure text width) escape sequence
in a way that makes them usable in numerical expressions and in
conditional requests, similar to how \n (interpolate number register)
and \* (expand user-defined string) are implemented.

This lets mandoc(1) handle the baroque low-level roff code
found at the beginning of the ggrep(1) manual.
Thanks to pascal@ for the report.

Revision 1.53 / (download) - annotate - [select for diffs], Mon Apr 7 15:07:13 2014 UTC (9 years, 11 months ago) by schwarze
Branch: MAIN
Changes since 1.52: +81 -18 lines
Diff to previous 1.52 (unified) to selected 1.24 (unified)

Almost complete implementation of roff(7) numerical expressions.
Support all binary operators except ';' (scale conversion).
Fully support chained operations and nested parentheses.
Use this for the .nr, .if, and .ie requests.
While here, fix parsing of integer numbers in roff_getnum().

Revision 1.52 / (download) - annotate - [select for diffs], Sat Apr 5 20:34:57 2014 UTC (9 years, 11 months ago) by schwarze
Branch: MAIN
Changes since 1.51: +11 -7 lines
Diff to previous 1.51 (unified) to selected 1.24 (unified)

Implement the roff(7) .rr (remove register) request.
As reported by sthen@, the perl-5.18 pod2man(1) preamble
thinks cool kids use that in manuals.  I hope *you* know better.

Revision 1.51 / (download) - annotate - [select for diffs], Sun Mar 30 21:28:01 2014 UTC (10 years ago) by schwarze
Branch: MAIN
Changes since 1.50: +5 -3 lines
Diff to previous 1.50 (unified) to selected 1.24 (unified)

Support relative arguments to .ll (increase or decrease line length).

Revision 1.50 / (download) - annotate - [select for diffs], Sun Mar 30 19:47:48 2014 UTC (10 years ago) by schwarze
Branch: MAIN
Changes since 1.49: +17 -2 lines
Diff to previous 1.49 (unified) to selected 1.24 (unified)

Implement the roff(7) .ll (line length) request.
Found by naddy@ in the textproc/enchant(1) port.
Of course, do not use this in new manuals.

Revision 1.49 / (download) - annotate - [select for diffs], Mon Mar 17 06:57:48 2014 UTC (10 years ago) by schwarze
Branch: MAIN
Changes since 1.48: +30 -2 lines
Diff to previous 1.48 (unified) to selected 1.24 (unified)

sync to OpenBSD: .ft is a roff(7) request, not a man(7) macro,
and it is not even used frequently in man(7)

Revision 1.48 / (download) - annotate - [select for diffs], Sat Mar 8 04:43:54 2014 UTC (10 years ago) by schwarze
Branch: MAIN
Changes since 1.47: +72 -41 lines
Diff to previous 1.47 (unified) to selected 1.24 (unified)

Improve .if/.ie condition handling.
* Support string comparisons.
* Support negation not only for numerical, but for all conditions.
* Switch the `o' condition from false to true.
* Handle the `c', `d', and `r' conditions as false for now.
* Use int for boolean data instead of rolling our own "enum roffrule";
needed such that we can use the standard ! and == operators.

Havard Eidnes reported via the NetBSD bug tracking system that some
Tcl*(3) manuals need this, and Thomas Klausner <wiz at NetBSD>
forwarded the report to me.  This doesn't make the crazy Tcl*(3)
macrology maze happy yet, but brings us a bit closer.

Revision 1.47 / (download) - annotate - [select for diffs], Fri Feb 14 23:50:57 2014 UTC (10 years, 1 month ago) by schwarze
Branch: MAIN
Changes since 1.46: +15 -3 lines
Diff to previous 1.46 (unified) to selected 1.24 (unified)

document .as and .ce

Revision 1.46 / (download) - annotate - [select for diffs], Thu Dec 26 02:43:18 2013 UTC (10 years, 3 months ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_12_3
Changes since 1.45: +255 -9 lines
Diff to previous 1.45 (unified) to selected 1.24 (unified)

The roff language really has two groups of basic building blocks:
Requests and escape sequences.  Consequently, supplement the
REQUEST REFERENCE by an ESCAPE SEQUENCE REFERENCE, such that people
no longer need to guess or experiment what mandoc(1) implements,
what it parses and ignores, and what it doesn't handle at all.

Revision 1.45 / (download) - annotate - [select for diffs], Sun Dec 15 21:23:52 2013 UTC (10 years, 3 months ago) by schwarze
Branch: MAIN
Changes since 1.44: +9 -6 lines
Diff to previous 1.44 (unified) to selected 1.24 (unified)

The "value" argument to the roff(7) .nr requests ends right before
the first non-digit character.  While here, implement and document
an optional sign, requesting increment or decrement, as documented
in the Ossanna/Kernighan/Ritter troff manual and supported by groff.

Reported by bentley@ on discuss@.

Revision 1.44 / (download) - annotate - [select for diffs], Tue Oct 22 20:38:00 2013 UTC (10 years, 5 months ago) by schwarze
Branch: MAIN
Changes since 1.43: +5 -2 lines
Diff to previous 1.43 (unified) to selected 1.24 (unified)

Parse and ignore .hw (hyphenation points in words); this is safe because
we don't do hyphenation anyway, so there is no point in throwing an ERROR
when encountering .hw.
Real-world usage of the request found by naddy@ in sysutils/dwdiff(1).

Revision 1.43 / (download) - annotate - [select for diffs], Mon Oct 14 01:43:14 2013 UTC (10 years, 5 months ago) by schwarze
Branch: MAIN
Changes since 1.42: +8 -2 lines
Diff to previous 1.42 (unified) to selected 1.24 (unified)

Parse and ignore the .fam (font family) request.
Fixes irunner(1) in devel/ipython and uim-xim(1) in inputmethods/uim.
Thanks to naddy@ for bringing these to my attention.

Revision 1.42 / (download) - annotate - [select for diffs], Thu Aug 8 20:07:47 2013 UTC (10 years, 7 months ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_12_2
Changes since 1.41: +11 -4 lines
Diff to previous 1.41 (unified) to selected 1.24 (unified)

Implement the roff(7) font-escape sequence \f(BI "bold+italic".
This improves the formatting of about 40 base manuals
and reduces groff-mandoc formatting differences in base by about 5%.

Revision 1.41 / (download) - annotate - [select for diffs], Sat Jul 13 19:41:16 2013 UTC (10 years, 8 months ago) by schwarze
Branch: MAIN
Changes since 1.40: +4 -6 lines
Diff to previous 1.40 (unified) to selected 1.24 (unified)

For citing the names and email addresses of authors,
consistently use the style ".An name Aq Mt email".

Triggered by a question from Jan Stary <hans at stare dot cz>,
ok jmc@.

Revision 1.40 / (download) - annotate - [select for diffs], Sun Apr 28 07:54:01 2013 UTC (10 years, 11 months ago) by schwarze
Branch: MAIN
Changes since 1.39: +2 -2 lines
Diff to previous 1.39 (unified) to selected 1.24 (unified)

- (mdoc.7) fix Xr to self
- double word fix
from jmc@

Revision 1.39 / (download) - annotate - [select for diffs], Tue Jun 12 20:21:04 2012 UTC (11 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.38: +14 -2 lines
Diff to previous 1.38 (unified) to selected 1.24 (unified)

Add `cc' support.
This was reported by espie@ and in the TODO.
Caveat: `cc' has buggy behaviour when invoked in groff(1) and followed
by a line-breaking control character macro, e.g., in a -man doc,

  .cc |
  .B foo
  'B foo
  |cc
  'B foo

will cause groff(1) to behave properly for `.B' but inline the macro
definition for `B' when invoked with the line-breaking macro.

Revision 1.38 / (download) - annotate - [select for diffs], Tue Jun 12 19:50:50 2012 UTC (11 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.37: +3 -3 lines
Diff to previous 1.37 (unified) to selected 1.24 (unified)

Fix typo (back-space -> backslash).

Revision 1.37 / (download) - annotate - [select for diffs], Sun Dec 11 00:38:11 2011 UTC (12 years, 3 months ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_12_1
Changes since 1.36: +18 -2 lines
Diff to previous 1.36 (unified) to selected 1.24 (unified)

Explain where .so paths are rooted, and why, and discourage its use;
feedback and ok jmc@, suggested by and ok kristaps@.

Revision 1.36 / (download) - annotate - [select for diffs], Wed Nov 23 02:12:24 2011 UTC (12 years, 4 months ago) by schwarze
Branch: MAIN
Changes since 1.35: +4 -4 lines
Diff to previous 1.35 (unified) to selected 1.24 (unified)

typo reported by Steffen Daode Nurpmeso <sdaoden at googlemail dot com>
and remove a trailing blank noticed by jmc@

Revision 1.35 / (download) - annotate - [select for diffs], Mon Nov 21 22:19:23 2011 UTC (12 years, 4 months ago) by kristaps
Branch: MAIN
Changes since 1.34: +17 -9 lines
Diff to previous 1.34 (unified) to selected 1.24 (unified)

Update historical record to be historical and not made-up.  Data from
<manpages.bsd.lv/history.html>.  Ok schwarze@ (with modifications) and
Jason McIntyre.

Revision 1.34 / (download) - annotate - [select for diffs], Sun Nov 6 14:43:14 2011 UTC (12 years, 4 months ago) by kristaps
Branch: MAIN
Changes since 1.33: +4 -2 lines
Diff to previous 1.33 (unified) to selected 1.24 (unified)

Accomodate for \f(Cx formatting.  Noted by Andreas Vogele, thanks!

Revision 1.33 / (download) - annotate - [select for diffs], Mon Sep 26 23:07:31 2011 UTC (12 years, 6 months ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_12_0
Changes since 1.32: +293 -29 lines
Diff to previous 1.32 (unified) to selected 1.24 (unified)

Reorganize part of the content:

1) Move the LANGUAGE SYNTAX from mdoc(7) and man(7) to roff(7),
it's common to both and it's actually roff syntax.
2) Move the MACRO SYNTAX down to the bottom, such that the less
technical parts MANUAL STRUCTURE and MACRO OVERVIEW get to the top.

Getting everything to again fit together after the reshuffling
required various adjustments; also adjust and improve
the DESCRIPTIONS while there.

feedback and "go ahead"  jmc@ kristaps@

Revision 1.32 / (download) - annotate - [select for diffs], Fri Sep 2 19:37:35 2011 UTC (12 years, 6 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_11_7
Changes since 1.31: +5 -5 lines
Diff to previous 1.31 (unified) to selected 1.24 (unified)

Fix typos and spelling errors found by demandoc -w | spell -b.

Revision 1.31 / (download) - annotate - [select for diffs], Thu Aug 18 08:58:44 2011 UTC (12 years, 7 months ago) by kristaps
Branch: MAIN
Changes since 1.30: +7 -5 lines
Diff to previous 1.30 (unified) to selected 1.24 (unified)

Replace the old `An'/`Aq' AUTHORS note with `An'/`Mt'.

Revision 1.30 / (download) - annotate - [select for diffs], Thu Jul 28 14:17:11 2011 UTC (12 years, 8 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_11_6
Changes since 1.29: +17 -6 lines
Diff to previous 1.29 (unified) to selected 1.24 (unified)

An implementation of `tr'.  This routes allocations of TEXT nodes
through libroff, which does the appropriate translations of `tr'.  This
is SLOW: it uses the backend of `ds' and `de', which is a simple linear
list.  However, unlike `ds' and `de', it iterates over EACH CHARACTER of
the entire file looking for replacements.

Revision 1.29 / (download) - annotate - [select for diffs], Tue May 24 15:22:14 2011 UTC (12 years, 10 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_11_5, VERSION_1_11_4, VERSION_1_11_3
Changes since 1.28: +14 -9 lines
Diff to previous 1.28 (unified) to selected 1.24 (unified)

Have conditional closure for both text and macro lines call through to
ccond().  Fix the text handler to behave like the macro handler
regarding escaped \}.  Make \} actually become a zero-width space, too,
and clean up the documentation in this regard.

Revision 1.28 / (download) - annotate - [select for diffs], Sat Apr 30 10:18:25 2011 UTC (12 years, 11 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_11_2
Changes since 1.27: +3 -3 lines
Diff to previous 1.27 (unified) to selected 1.24 (unified)

No code change: fixing spelling errors.  From a patch by uqs@.  Thanks!

Revision 1.27 / (download) - annotate - [select for diffs], Wed Feb 9 10:03:02 2011 UTC (13 years, 1 month ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_11_1, VERSION_1_10_10
Changes since 1.26: +24 -1 lines
Diff to previous 1.26 (unified) to selected 1.24 (unified)

Add stub for eqn.7 manual and flip it on.  Also note COMPATIBILITY issue
of how we considered .TS (etc.) macros and how the preprocessors do.

Revision 1.26 / (download) - annotate - [select for diffs], Tue Jan 25 01:12:02 2011 UTC (13 years, 2 months ago) by schwarze
Branch: MAIN
Changes since 1.25: +16 -2 lines
Diff to previous 1.25 (unified) to selected 1.24 (unified)

Ignore .ns (no-space mode), .ps (change point size), .ta (tab control)
for now.  All of these just cause a bit too much or too little
whitespace, but no serious formatting problems.
Triggered by reports from brad@.

Revision 1.25 / (download) - annotate - [select for diffs], Tue Jan 25 00:40:14 2011 UTC (13 years, 2 months ago) by schwarze
Branch: MAIN
Changes since 1.24: +2 -6 lines
Diff to previous 1.24 (unified)

As noticed by deraadt@, it goes without saying that text files
on a UNIX system use UNIX conventions, and UNIX tools working
on them expect that.
ok jmc@

Revision 1.24 / (download) - annotate - [selected], Mon Jan 24 23:17:19 2011 UTC (13 years, 2 months ago) by schwarze
Branch: MAIN
Changes since 1.23: +36 -7 lines
Diff to previous 1.23 (unified)

Better explain roff(7) macro argument quoting;
ok jmc@.

Revision 1.23 / (download) - annotate - [select for diffs], Tue Jan 4 23:32:21 2011 UTC (13 years, 2 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_10_9
Changes since 1.22: +6 -203 lines
Diff to previous 1.22 (unified) to selected 1.24 (unified)

Moved table stuff from roff.7 into the new tbl.7 (suggested by Jason McIntyre).

Added cross-links to tbl.7 from other manuals.

Revision 1.22 / (download) - annotate - [select for diffs], Tue Jan 4 15:02:00 2011 UTC (13 years, 2 months ago) by kristaps
Branch: MAIN
Changes since 1.21: +7 -2 lines
Diff to previous 1.21 (unified) to selected 1.24 (unified)

Support `T{' and `T}' data blocks.  When a standalone `T{' is
encountered as a line's last data cell, move into TBL_PART_CDATA mode
whilst leaving the cell's designation as TBL_DATA_NONE.  When new data
arrives that's not a standalone `T}', append it to the cell contends.
Close out and warn appropriately.

Revision 1.21 / (download) - annotate - [select for diffs], Tue Jan 4 12:06:21 2011 UTC (13 years, 2 months ago) by kristaps
Branch: MAIN
Changes since 1.20: +50 -23 lines
Diff to previous 1.20 (unified) to selected 1.24 (unified)

Fix to make horizontal spanners in the layout be properly printed.
mandoc also now warns (so does tbl(1)) if a horizontal spanner is
specified along with data.

While here, fix up some documentation and uncomment the tbl reference.

Revision 1.20 / (download) - annotate - [select for diffs], Mon Jan 3 16:04:41 2011 UTC (13 years, 2 months ago) by kristaps
Branch: MAIN
Changes since 1.19: +175 -127 lines
Diff to previous 1.19 (unified) to selected 1.24 (unified)

Switch on the `TS' documentation in roff.7.  As per off-line discussion,
this may be moved to tbl.7, but for the time being, keep it in the
document as it's developed.

Also note that my handling of horizontal rules in layouts needs some
work.

Revision 1.19 / (download) - annotate - [select for diffs], Wed Dec 29 15:21:34 2010 UTC (13 years, 3 months ago) by kristaps
Branch: MAIN
Changes since 1.18: +88 -2 lines
Diff to previous 1.18 (unified) to selected 1.24 (unified)

Update (still-commented) manual bits for tbl.

Also removed lots of superfluous switch cases by using tolower() and
handling only the lowercase keys.

Revision 1.18 / (download) - annotate - [select for diffs], Wed Dec 29 10:19:55 2010 UTC (13 years, 3 months ago) by kristaps
Branch: MAIN
Changes since 1.17: +48 -2 lines
Diff to previous 1.17 (unified) to selected 1.24 (unified)

Initial documentation for TBL, which for the time being is commented-out.

Revision 1.17 / (download) - annotate - [select for diffs], Sat Dec 18 19:32:08 2010 UTC (13 years, 3 months ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_10_8
Changes since 1.16: +140 -90 lines
Diff to previous 1.16 (unified) to selected 1.24 (unified)

Sync to the installed version in OpenBSD, excluding .ft documentation:
Be more careful to not confuse requests, macros and escape sequences.
Add more info at various places, including new SEE ALSO and HISTORY sections.
OK jmc@ kristaps@

Revision 1.16 / (download) - annotate - [select for diffs], Fri Dec 10 20:58:56 2010 UTC (13 years, 3 months ago) by schwarze
Branch: MAIN
Changes since 1.15: +8 -2 lines
Diff to previous 1.15 (unified) to selected 1.24 (unified)

Abort endless loops during roff macro and string expansion.
For now, use the simplest conceivable approach, like groff does:
Just a fixed, ugly input stack limit.
"check it in" kristaps@

Revision 1.15 / (download) - annotate - [select for diffs], Mon Dec 6 16:37:32 2010 UTC (13 years, 3 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_10_7
Changes since 1.14: +272 -84 lines
Diff to previous 1.14 (unified) to selected 1.24 (unified)

Import changes by schwarze@ and Jason McIntyre into manuals.  These are
for the new libroff macros, the new libman macros, and for the sake of
general clarity.

Note that `ft' documentation is NOT included, as I've kept it in -man:
it's highly confusing to have it in roff.7 when it's not implemented for
both -man and -mdoc, as at least in theory, roff.7 should include only
macros recognised by BOTH formats.

Revision 1.14 / (download) - annotate - [select for diffs], Tue Jul 27 13:16:00 2010 UTC (13 years, 8 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_10_6, VERSION_1_10_5
Changes since 1.13: +11 -2 lines
Diff to previous 1.13 (unified) to selected 1.24 (unified)

Fix `ds' handling.  This was stripping characters from "val", when the
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@.

Revision 1.13 / (download) - annotate - [select for diffs], Wed Jul 7 15:04:54 2010 UTC (13 years, 8 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_10_5_PREPDF, VERSION_1_10_4
Changes since 1.12: +16 -7 lines
Diff to previous 1.12 (unified) to selected 1.24 (unified)

Re-constitution of `ds' symbol processing.  First, push the
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.

Revision 1.12 / (download) - annotate - [select for diffs], Sun Jul 4 22:04:04 2010 UTC (13 years, 8 months ago) by schwarze
Branch: MAIN
Changes since 1.11: +3 -2 lines
Diff to previous 1.11 (unified) to selected 1.24 (unified)

Assert my copyright, making it explicit that i'm granting the same license
on those parts of the code and text that i have written as Kristaps is.
"fine with me" kristaps@

Revision 1.11 / (download) - annotate - [select for diffs], Sun Jun 27 16:36:22 2010 UTC (13 years, 9 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_10_3
Changes since 1.10: +7 -4 lines
Diff to previous 1.10 (unified) to selected 1.24 (unified)

Allow registers to be unset.  Implement and document the `.nr nS val'.

Revision 1.10 / (download) - annotate - [select for diffs], Sat Jun 26 15:22:19 2010 UTC (13 years, 9 months ago) by kristaps
Branch: MAIN
Changes since 1.9: +36 -2 lines
Diff to previous 1.9 (unified) to selected 1.24 (unified)

First step of adding register support.  This is inspired by a significant
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.

Revision 1.9 / (download) - annotate - [select for diffs], Thu Jun 10 21:42:02 2010 UTC (13 years, 9 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_10_2
Changes since 1.8: +15 -4 lines
Diff to previous 1.8 (unified) to selected 1.24 (unified)

Fix adding some minimal intelligence to conditional parser.  See roff.7
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.

Revision 1.8 / (download) - annotate - [select for diffs], Tue Jun 1 11:54:23 2010 UTC (13 years, 10 months ago) by kristaps
Branch: MAIN
CVS Tags: VERSION_1_10_1
Changes since 1.7: +4 -2 lines
Diff to previous 1.7 (unified) to selected 1.24 (unified)

Noted that \} collapses into a zero-width space on the front-end.

Revision 1.7 / (download) - annotate - [select for diffs], Mon May 24 23:54:18 2010 UTC (13 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.6: +12 -4 lines
Diff to previous 1.6 (unified) to selected 1.24 (unified)

recognize ".if n" as true;
nothing fancy yet, no negation, no grammer, just that one letter;
from OpenBSD;
"looks fine" kristaps@

Revision 1.6 / (download) - annotate - [select for diffs], Mon May 24 22:25:58 2010 UTC (13 years, 10 months ago) by schwarze
Branch: MAIN
Changes since 1.5: +19 -1 lines
Diff to previous 1.5 (unified) to selected 1.24 (unified)

provide stubs to ignore .ds, .rm and .tr,
which occur in the standard pod2man preamble;
from OpenBSD;
"sounds good" joerg@, "can be checked in" kristaps@

Revision 1.5 / (download) - annotate - [select for diffs], Mon May 17 02:38:13 2010 UTC (13 years, 10 months ago) by kristaps
Branch: MAIN
Changes since 1.4: +25 -1 lines
Diff to previous 1.4 (unified) to selected 1.24 (unified)

Documented ie/el.
Installing roff.7 and added it to index.sgml.
Small fix for `D1' and `Bd' in -Thtml.

Revision 1.4 / (download) - annotate - [select for diffs], Mon May 17 02:01:05 2010 UTC (13 years, 10 months ago) by kristaps
Branch: MAIN
Changes since 1.3: +7 -2 lines
Diff to previous 1.3 (unified) to selected 1.24 (unified)

Full support for ie/el.  This completes the initial roff support.
Added test files for ie/el.
Using `if 0' as a baseline for "false" roff instructions instead of `if t'.

Revision 1.3 / (download) - annotate - [select for diffs], Mon May 17 00:37:26 2010 UTC (13 years, 10 months ago) by kristaps
Branch: MAIN
Changes since 1.2: +52 -4 lines
Diff to previous 1.2 (unified) to selected 1.24 (unified)

libroff now intelligently throws away `am', `ami', `am1', `de', `dei',
and `de1'.  This is also documented in roff.7.

Revision 1.2 / (download) - annotate - [select for diffs], Sun May 16 22:28:33 2010 UTC (13 years, 10 months ago) by kristaps
Branch: MAIN
Changes since 1.1: +67 -7 lines
Diff to previous 1.1 (unified) to selected 1.24 (unified)

`ig' support in all its glory.  Try

  .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.

Revision 1.1 / (download) - annotate - [select for diffs], Sun May 16 19:08:11 2010 UTC (13 years, 10 months ago) by kristaps
Branch: MAIN
Diff to selected 1.24 (unified)

Regression tests in place for `.if' in libroff.
Check against some strange `.if' constructs I missed.
Added initial roff.7 manual.

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.




CVSweb