summaryrefslogtreecommitdiff
path: root/usr.bin/mandoc
AgeCommit message (Collapse)Author
2010-03-29merge 1.9.19, keeping local patchesIngo Schwarze
* scoping fixes for roff instructions * accept apostroph in place of dot as a macro control character * accept tabs between the control character and the macro name * check that man(7) .TH titles use capital letters
2010-03-26merge 1.9.17, keeping local patchesIngo Schwarze
* much improved pod2man support and low-level roff robustness * have -Tlint imply -Wall and -fstrict * use fewer macros and more enum in libman * and various bug fixes
2010-03-25merge 1.9.16, keeping local patchesIngo Schwarze
This is mostly cleanup by kristaps@ after my rather hackish patch to tolerate the non-text macros .na, .sp, .br in next-line scope; plus some nesting issues fixed by him, all in man(7). This survived a full cd /usr/src; make man.
2010-03-25fix a stupid out-of-bounds read access introduced in the previousIngo Schwarze
revision, in the code searching for the end of a sentence
2010-03-22Only try to break the line at an existing hyphenIngo Schwarze
when there actually IS a hyphen. Fixing an endless loop that broke the xenocara build.
2010-03-20When the length of a single words exceeds the maximum acceptable lineIngo Schwarze
length, rather ignore the right margin than entering an endless loop. Found the hard way in /usr/xenocara/app/fvwm/modules/FvwmM4/FvwmM4.1.
2010-03-06When the last field on an output line is empty, break the lineIngo Schwarze
if and only if something was printed on that line. This avoids double line breaks after nested lists while still breaking lines after items with empty body.
2010-03-05At the end of lines, split words at existing hyphens:Ingo Schwarze
Making pages look better and helping comparisons with groff output. Note that proper hyphenation is postponed for now because it doesn't really help the switch.
2010-03-02In man(7), do not crash on very long title lines,Ingo Schwarze
and do not emulate groff's habit of printing garbage either, but just print the wanted information even though the format must be sacrificed because it won't fit.
2010-03-02For -man -Tascii, limit the width of normal text to 65 characters,Ingo Schwarze
and effectively unlimit the width of literal displays. Following this traditional behaviour allows for automatic output comparisons.
2010-03-02Accept the non-standard macros .Sp (similar to .sp)Ingo Schwarze
and .Vb/.Ve (similar to .nf/.fi) in man(7) mode. These are not intended to be used manually, but they allow us to properly render man(7) code autogenerated by pod2man(1), making Perl and OpenSSL happy in our tree.
2010-03-02Proper inter-sentence spacing for mdoc(7).Ingo Schwarze
When a text line or a non-block macro line in the source code ends in any of ".!?", consider that an end of sentence (EOS). This makes Jason's rule "new sentence, new line" even more important. Let the parser detect the EOS and insert a token into the AST. Let the -Tascii frontend render the EOS token as a double space before the next word.
2010-03-02Distinguish opening and closing delimiters, and close out blockIngo Schwarze
macros after closing delimiters only, not after opening ones. Besides, neither roff nor old nor new groff consider braces { } as delimiters. This fixes some frequent misrenderings by mandoc, for example ".Ql (" being rendered as "`'(" instead of "`('".
2010-02-26Old news: there is an experimental "loongson" port.Ingo Schwarze
This commit corresponds to what jmc@ did in share/tmac/mdoc/doc-common and share/man/man7/mdoc.samples.7 on January 24.
2010-02-26The groff_man(7) manual says "the first line of text following" .TP isIngo Schwarze
used as a label, not "the first line following", so allow (some kinds of) intervening macros - some people actually put macros in between. On the other hand, when there is no text line before the next block macro, that is, when the .TP block ends without any text line, then something *is* broken, so still error out in that case.
2010-02-26Support .It .Xo.Ingo Schwarze
The trick is to not switch from the .It header to the body at EOL, but, in case an explicit block macro follows, at the end of the block.
2010-02-18sync to release 1.9.15:Ingo Schwarze
* corrected .Vt handling (spotted by Joerg Sonnenberger) * corrected .Xr argument handling (based on my patch) * removed \\ escape sequence (because it is for low-level roff only) * warn about trailing whitespace (suggested by jmc@) * -Txhtml support * and some general cleanup and doc improvements
2010-01-03This is not intended to document just the mandoc(1) program, but ratherIngo Schwarze
man(7) and mdoc(7) special characters and predefined strings in general; just as mandoc(1) is not intending to implement new languages, but provide standard formatting for man(7) and mdoc(7) files, whatever "standard" may mean in this context (sigh). So move this to the right place. noticed by deraadt@
2010-01-03Install mandoc_char(7), a comprehensive overview of mandoc(1) specialIngo Schwarze
characters and predefined strings. In kristaps@'s words: "Note that mandoc_char(7) is a superset of the latest groff_char(7) (which defines most special characters), groff(7) (more special characters, mostly formatting), and mdoc_samples(7) (predefined strings and other nits). Thus, some of the characters that mandoc(1) accepts are not accepted by the groff in OpenBSD base." This is useful because you now have everything in one place, and in a form authoritative for mandoc(1). At least as long as we still have groff(1) in base, we must keep groff_char(7) as well, of course. "sure" jmc@
2010-01-02complete the sync to 1.9.15-pre2: mostly minor fixesIngo Schwarze
* bugfix: do not restore TERMP flags when leaving lists, just reset them * and a few HTML fixes * clarity: return width from a2width, not width+2, and adapt to it * manual: document .Bl and .Fl * portability: no need to escape '%' in macro names
2010-01-01When a .Fl macro without an argument is followed by text,Ingo Schwarze
we need a space in between; patch by kristaps@, rev. 1.103 and 1.104; fixes regress/usr.bin/mandoc/mdoc/Fl/noarg.in.
2010-01-01.Bl may have .Sm as a child.Ingo Schwarze
The comment in the source code and OK by kristaps@; merged upstream in rev. 1.55.
2010-01-01Fix .Bl -column horizontal spacing to agree with groff.Ingo Schwarze
My original patch nicely improved by and OK kristaps@; merged upstream as rev. 1.105, 1.106.
2010-01-01When multiple arguments are passed to .Fl,Ingo Schwarze
each should be rendered with its own dash. Fixes regress/usr.bin/mandoc/mdoc/Fl/multiarg.in; ok kristaps@ and merged upstream in rev. 1.39.
2009-12-24sync to 1.9.14: rewrite escape sequence handling:Ingo Schwarze
- new function a2roffdeco - font modes (\f) only affect the current stack point - implement scaling (\s) - implement space suppression (\c) - implement non-breaking space (\~) in -Tascii - many manual improvements
2009-12-23sync to 1.9.13: minor fixes:Ingo Schwarze
correctness/functionality: - bugfix: properly ignore lines with only a dot in -man - bugfix: .Bl -ohang doesn't allow -width, warn about this - improve date string handling by new function mandoc_a2time - some HTML improvements - significant documentation additions in man.7 and mdoc.7 portability: - replace __dead by __attribute__((noreturn)) - bugfix: correct .Dx rendering - some more library names for NetBSD simplicity: - replace hand-rolled putchar(3)-loops by fwrite(3) - replace single-character printf(3) by putchar(3)
2009-12-22sync to 1.9.12, mostly portability and refactoring:Ingo Schwarze
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/
2009-10-27sync to 1.9.11: adapt printing of dates to groff conventions,Ingo Schwarze
NetBSD portability fixes and some minor bugfixes and feature enhancements; also checked that my hyphenation code still works on top of this
2009-10-24simplify overstep handling, removing one local variable;Ingo Schwarze
no functional change; ok kristaps@ and merged as rev. 1.110
2009-10-21sync to 1.9.9, featuring:Ingo Schwarze
* -Thtml output mode * roff scaling units * and some minor fixes for full changelogs, see http://bsd.lv/cgi-bin/cvsweb.cgi/
2009-10-20sync to 1.9.7: use .In instead of .Fd #includeIngo Schwarze
2009-10-19sync to 1.9.7: consolidate some -man -Tascii functions,Ingo Schwarze
and use a static buffer for the footer
2009-10-19sync to 1.9.7: kristaps@ renamed part of the DECL_ARGS :-(Ingo Schwarze
intricately mixed with three minor .Bd fixes
2009-10-19sync to 1.9.7: the same function was declared in two different headers;Ingo Schwarze
spotted by Ulrich Spoerlein, uqs at spoerlein dot net
2009-10-19sync to 1.9.7: avoid using the same identifier for a static functionIngo Schwarze
and for a local variable in another function in the same compilation unit; suggested by Ulrich Spoerlein, uqs at spoerlein dot net
2009-10-19sync to 1.9.7: compatibility fix; from joerg at netbsd dot orgIngo Schwarze
2009-10-19sync to 1.9.7: typo; from Alan Bueno, alan dot bsd at gmail dot comIngo Schwarze
2009-10-19sync to 1.9.6: minor fixes:Ingo Schwarze
* avoid blank character before the closing ">" of .In * .Bt can not have children
2009-10-19sync to 1.9.6: multiple improvements to references (.Rs)Ingo Schwarze
* 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
2009-10-19sync to 1.9.6: do not die from .Bd -literal -offset w/o arg (and similar)Ingo Schwarze
Actually, our ancient groff behaves slightly differently than this fix, but not to die is already an improvement. Needs a closer look later.
2009-10-19sync to 1.9.6: two newline fixes:Ingo Schwarze
* newline before .Rs only below SEE ALSO * newline after .Lb only below LIBRARY
2009-10-19sync to 1.9.6: u_char lives in <sys/types.h>Ingo Schwarze
noticed by uqs at spoerlein dot net on FreeBSD, where <stdlib.h> does not include <sys/types.h>
2009-10-19sync to 1.9.6: here is the sync of special characters to new groffIngo Schwarze
as mentioned in the preceding manual commit (oops)
2009-10-19sync to 1.9.6: rework the documentation for special characters andIngo Schwarze
predefined strings, including the recent sync to new groff
2009-10-19sync to 1.9.6: fix segfault in .Bl -columnIngo Schwarze
2009-10-19sync to 1.9.5: partial rewrite of special character and predefined stringIngo Schwarze
tables and the supporting infrastructure, mostly in preparation for HTML output support
2009-10-18sync to 1.9.5: integrate closedelim() and opendelim() into term_word(),Ingo Schwarze
removing unnecessary extra functions
2009-09-21sync to 1.9.5: lookup hashes are now static tablesIngo Schwarze
shortening the code, and, according to kristaps@, speeding it up
2009-09-21sync to 1.9.5: make terminal_*, tree_* and out_* functions return void,Ingo Schwarze
making the code simpler
2009-09-21sync to 1.9.5: remove TERMP_STYLE bit field in favour of recursion-friendlyIngo Schwarze
integer flags, simplifying and shortening the code