summaryrefslogtreecommitdiff
path: root/usr.bin/mandoc
AgeCommit message (Collapse)Author
2012-07-14Translate blank input lines to .sp just like in mdoc(7),Ingo Schwarze
and ignore .sp after .PP. This fixes vertical spacing for blank lines after .PP and for .sp after .PP.
2012-07-14In -Tman .Bl -compact, skip the blank line only before the first itemIngo Schwarze
of the first list in a section, not before every item of the first list.
2012-07-13Adjust -Tman SYNOPSIS .Nm indentation using .HP; requested by millert@.Ingo Schwarze
There are still lots of ugly line breaks, to be fixed later.
2012-07-13If the tag in .Bl -tag .It would leave exactly one blank before theIngo Schwarze
body of the item, mdoc(7) breaks the line, whereas the .TP used to translate this to man(7) does not. Thus, insert an explicit roff(7) line break in this place. To be able to correctly count the characters, do not pass font escapes an the like through print_word().
2012-07-13In -man -Tascii, support .sp with negative argument.Ingo Schwarze
In -mdoc -Tman, improve the framework to control vertical spacing. Use both to support .Bl -compact (surprisingly hard to get right).
2012-07-12The post_nm() validation function crashed when the first .Nm child nodeIngo Schwarze
was a non-text node. Fix this by rewriting post_nm() to always set the meta name to UNKNOWN when the name is missing or unusable. While here, make MANDOCERR_NONAME an ERROR, as it usually renders the page content unintelligible. Bug reported by Maxim <Belooussov at gmail dot com>, thanks.
2012-07-12Do not crash in -Tman on:Ingo Schwarze
* .Fn with exactly one argument * .Bl -hang without a -width Now all 3776 base manuals build without crashing.
2012-07-11Polish -Tman .Rs support.Ingo Schwarze
All mdoc(7) macros are now supported by -Tman.
2012-07-11fix position and formatting of %UIngo Schwarze
2012-07-11Basic implementation of -Tman .Bl -column using tbl(7).Ingo Schwarze
In the end, this turned out to be surprisingly simple; of course, getting identical output will be quite hard, so there is no way to quickly set up unit tests.
2012-07-10basic implementation of -Tman .Bl -tagIngo Schwarze
while here, do some minor outflags cleanup
2012-07-10multiple fixes to -Tascii .HP rendering:Ingo Schwarze
* do not add an excessive blank line before the block * in literal mode, start a new line after the tag getting this to work requires some general (print_man_node) fixes: * in literal mode, break the output line at the end of each input line, not just after those input lines ending in text * but don't break it when there was no output on the line * and adjust the margins after the .HP tag these general fixes require an adjustment to -Tascii .TP rendering: * set up NOBREAK mode before the body, not after the head finally, based on all this, implement -Tman .Bl -hang in terms of .HP
2012-07-10Remove a hack that was intended for groff-1.15 bug compatibility:Ingo Schwarze
When the width of a tag in .Bl -hang was exactly one character shorter than the maximum length that would fit, the following text would have a negative hang of one character (i.e., hang to the left). That bug is no longer present in groff-1.21, so relax mandoc, too.
2012-07-10* implement -Tman .Bl -item -inset -diag -ohang -dash -hyphen -enum .ItIngo Schwarze
* fix -Tman .Bl -bullet .It * adjust the -Tascii .Bl -bullet -dash -hyphen .It default and minimum width to new groff standards, it changed from 4n (in groff 1.15) to 2n (in groff 1.21) * same for -Tascii -enum, it changed from 5n to 2n * use -hang formatting for -Tascii -enum -width 2n * for -Tascii -enum, the default is -width 3n
2012-07-09fix -Tascii .Fd line breakingIngo Schwarze
and implement -Tman .Fd
2012-07-09implement -Tman .Eo and .EcIngo Schwarze
2012-07-09Implement -Tman .Bf.Ingo Schwarze
To get the spacing right, * avoid man(7) code line breaks at places where no spacing is allowed * allow spacing right after .Sm on * allow spacing after empty .Fl at the end of an input line
2012-07-09fix -Tman font handling for:Ingo Schwarze
.Ad .Ar .Cd .Cm .Dv .Em .Er .Ev .Fa .Fl .Fn .Fo .Ft .Ic .In .Lk .Li .Ms .Mt .Nm .Pa .Sx .Sy .Tn .Va .Vt
2012-07-09implement -Tman .No and .MtIngo Schwarze
2012-07-08fix .Lk for -Tascii and implement it for -TmanIngo Schwarze
2012-07-08fix vertical spacing for -Tman SYNOPSIS .Fn .Fo .Ft .In .Nm .Va .VtIngo Schwarze
2012-07-08implement -Tman .AnIngo Schwarze
also reset -[no]split mode at .Sh AUTHORS in -Tascii
2012-07-08Add flags to insert a .sp or .br request before the next output,Ingo Schwarze
shortening some frequent idioms and preparing for better vertical spacing in the SYNOPSIS; no functional change intended.
2012-07-08Instead of adding one integer variable for each global boolean output flagIngo Schwarze
and passing around a structure containing them into each and every function, just use a single static bitfield. In preparation for adding more output flags to support more features.
2012-07-08implement -Tman .VaIngo Schwarze
and fix -Tman .Vt for the non-SYNOPSIS case
2012-07-08ouch, in the SYNOPSIS, .Vt is a block,Ingo Schwarze
so avoid printing pointless goo in -Tman
2012-07-08implement -Tman .VtIngo Schwarze
2012-07-08Basic implementation of -Tman .Fo and .Fa;Ingo Schwarze
again, some blank lines still missing from the output. While here, remove the trailing semicolon from .Fn when outside .Sh SYNOPSIS.
2012-07-07rudimentary support for -Tman .Ft and .Fn;Ingo Schwarze
some blank lines are still missing from the output
2012-07-07basic support for -Tman .InIngo Schwarze
2012-07-07Support the .cc request; code by kristaps@, tests by me.Ingo Schwarze
Needed for sqlite3(1) as reported by espie@.
2012-07-07Fix an assert() raised by `RS' when following `TP' without a tag.Ingo Schwarze
The reason was that `RS' wasn't BSCOPE'd, so the next-line (BLINE) scope opened by `TP' would still be in the macro HEAD. This was from joerg@'s archive of failures. Fix by kristaps@, bsd.lv rev. 1.74.
2012-07-07after .Lb in library section, break the line in the final outputIngo Schwarze
2012-07-07implement -Tman .BkIngo Schwarze
2012-07-07implement -Tman .SmIngo Schwarze
2012-07-07implement -Tman .Bd -offset and -compactIngo Schwarze
2012-07-07minor -mdoc -Tman fixesIngo Schwarze
* right after .Ns, avoid breaking the line in man code * after .Fl without arguments, do not insert a blank into man code * before each .Nm in .Sh SYNOPSIS, insert a .br into man code * skip .Pp arguments, don't copy them to man code
2012-06-03Close a preceding implicit block before opening an explicit block.Ingo Schwarze
To allow doing so, no longer abuse rew_scope() to unwind explicit blocks; explicitly call man_unscope() instead. Fixing the indentation of slapd.conf(5) in the OpenLDAP port; thanks to guenther@ for the report.
2012-06-02In groff, trying to redefine standard man(7) macros before .TH has no effect;Ingo Schwarze
after .TH, it works. Trying to redefine standard mdoc(7) macros before .Dd works when calling groff with the -mdoc command line option, but does not when calling groff with -mandoc; after .Dd, it always works. Arguably, one might call that buggy behaviour in groff, but it is very unlikely that anybody will change groff in this respect (certainly, i'm not volunteering). So let's be bug-compatible. This fixes the vertical spacing in sox(1).
2012-06-02Minimal implementation of .EX and .EE for GNU compatibility.Ingo Schwarze
Do not use this, it is not portable and only defined in esr's man-ext. For example, sox(1) wants these macros.
2012-05-31Fix blank line handling in .if.Ingo Schwarze
In particular, two cases were wrong: - single-line .if with trailing whitespace gave no blank line - multiline .if with \{ but without \{\ gave no blank line While here, simplify roff_cond() by partially reordering the code.
2012-05-28While i already got my fingers dirty on mandoc_escape(),Ingo Schwarze
profit of the occasion to pull out some spaghetti, that is, three confusing variables and fourteen pointless assignments among them; instead, always operate on the official pointers **start, **end, and *sz, each of which conveys an obvious meaning. No functional change intended, and the new tests confirm that everything still (err...) "works", as far as that word can be applied to the kind of roff(7) mock-up code i'm polishing here.
2012-05-28Make recursive parsing of roff(7) escapes actually work in the general case,Ingo Schwarze
in particular when the inner escapes are preceded or followed by other terms. While doing so, remove lots of bogus code that was trying to make pointless distinctions between numeric and non-numeric escape sequences, while both actually share the same syntax and we ignore the semantics anyway. This prevents some of the strings defined in the pod2man(1) preamble from producing garbage output, in particular in scandinavian words. Of course, proper rendering of scandinavian national characters cannot be expected even with these fixes.
2012-05-28Implement the roff \z escape sequence, intended to output the nextIngo Schwarze
character without advancing the cursor position; implement it to simply skip the next character, as it will usually be overwritten. With this change, the pod2man(1) preamble user-defined string \*:, intended to render as a diaeresis or umlaut diacritic above the preceding character, is rendered in a slightly less ugly way, though still not correctly. It was rendered as "z.." and is now rendered as ".". Given that the definition of \*: uses elaborate manual \h positioning, there is little chance for mandoc(1) to ever render it correctly, but at least we can refrain from printing out a spurious "z", and we can make the \z do something semi-reasonable for easier cases.
2012-05-27Fix the vertical spacing around tbl(7) instances in man(7).Ingo Schwarze
Groff forces the document author to manually request sufficient spacing after .TE - that is, at least .sp 1v after a table with the "box" option and at least .sp 2v after a table with the "doublebox" option - or else it clobbers the box. I consider that insane, so i'm not imitating groff in that respect. Instead, i add at least as much vertical space as groff, or more where required to avoid clobbering the box. Consequently, output will be identical for input that looks sane with groff, and mandoc will make output look better for input that looks bad with groff. As a side effect, having identical output for portable input makes it possible to set up the first regression tests for tbl(7).
2012-05-26Correct width of horizontal spans; relevant in case of centered orIngo Schwarze
flush right text, for boxes, and when more columns follow the span. Issue found by sthen@ in the net/arp-scan(1) port manual.
2012-05-26Do not handle vertical lines as additional tbl(7) columns,Ingo Schwarze
instead save their properties with the following column. This simplifies layout parsing and saves a lot of code related to column handling. At output time, print all white space and vertical lines separating columns before printing the following column, and none after printing the preceding column, considerably simplifying white space handling and width calculations. No functional change, but it saves 150 lines of code, and it allows the next patch to tbl_term.c, tbl_literal().
2012-05-24Support -Ios='OpenBSD 5.1' to override uname(3) as the source of theIngo Schwarze
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.
2012-04-18backout non-portable codeTheo de Raadt
2012-04-15Call this mandoc 1.12.1.Ingo Schwarze
I refrained from merging one patch that i dislike and one that requires additional review, but we are now definitely much closer to 1.12.1 than to 1.12.0.