aboutsummaryrefslogtreecommitdiffstatshomepage
Commit message (Collapse)AuthorAgeFilesLines
* The name "struct tbl" was badly misleading for two reasons:Ingo Schwarze2013-05-315-34/+34
| | | | | | | 1) This struct almost exclusively contains the table options. 2) Information about the table as a whole is actually in "struct tbl_node". Besides, "struct tbl" was almost impossible to search for. So rename it to "struct tbl_opts". No functional change.
* Reject non-printable characters found in the input stream even whenIngo Schwarze2013-05-301-9/+24
| | | | | | | | preceded by a backslash; otherwise, the escape sequence would later be identified as invalid and the non-printable character would be passed through to the output backends, sometimes triggering assertions. Reported by Mike Small <smallm at panix dot com> on the mdocml discuss list.
* Sync to OpenBSD:Ingo Schwarze2013-05-291-3/+5
| | | | | | | | * Guard <sys/param.h> inclusion by #ifdef USE_MANPATH to make it more obvious why this isn't needed on OpenBSD. Noticed by deraadt@. * Resolve gratuitious whitespace differences: Blanks before tabs and on empty lines.
* Simplify condition, avoid duplicate code; no functional change.Ingo Schwarze2013-05-291-7/+3
|
* In SYNOPSIS mode, .Ek doesn't end a keep.Ingo Schwarze2013-05-292-4/+4
| | | | Found and fixed on the plane to the OpenBSD t2k13 hackathon in Toronto.
* In keep mode, if any text is printed (even in NOSPACE mode),Ingo Schwarze2013-05-291-3/+3
| | | | | | | any text that follows must be kept on the same line. I already found the issue and wrote the patch in April 2011, but didn't come round to do proper testing and forgot about it.
* Support .Bl -offset in -mdoc -Tman.Ingo Schwarze2013-05-191-4/+22
| | | | | Issue found when Thomas Klausner <wiz at NetBSD dot org> made me look at the manuals of his http://www.nih.at/libzip library.
* Move printing of the .RS macro into print_offs() such that print_offs()Ingo Schwarze2013-05-191-5/+5
| | | | | | | takes care of printing the whole line. This reduces code duplication - in particular after the upcoming commit to repair .Bl -offset - and makes print_offs() more similar to what print_width() does. No functional change.
* Should termp_xx_pre() ever get called for a macro it cannot handle,Ingo Schwarze2013-05-181-2/+3
| | | | | | | | use abort(3), just like in the three other comparable cases in this file, instead of ignoring the problem and causing a null pointer access. Cosmetical issue reported by Ulrich Spoerlein <uqs@spoerlein.net> found by Coverity Scan CID 976115. No functional change.
* Remove the variable sz because it's invariantly == 0,Ingo Schwarze2013-05-181-8/+3
| | | | | | | | | along with the dead code testing whether it's positive. Reported by Ulrich Spoerlein <uqs@spoerlein.net>, found by Coverity Scan CID 975717. While here, remove the now unused **params array as well, which Coverity apparently missed, at least it wasn't reported...
* Even though the size of a pointer should not depend on the type of theIngo Schwarze2013-05-181-2/+2
| | | | | | | data pointed to, pass the size of the right pointer type to calloc; cosmetic issue reported by Ulrich Spoerlein <uqs@spoerlein.net> found in Coverity Scan CID 978734. No binary change - ok cmp(1).
* - (mdoc.7) fix Xr to selfIngo Schwarze2013-04-283-10/+10
| | | | | - double word fix from jmc@
* Cavium Octeon (new architecture in OpenBSD); from jmc@.Ingo Schwarze2013-03-271-1/+2
|
* legancy -> legacy; reported by Chris HettrickIngo Schwarze2013-03-061-3/+3
|
* In literal mode (.nf), each input line must be kept togetherIngo Schwarze2013-01-051-4/+4
| | | | | | | | | | on the same output line, even if it is longer than the output width. This commit fixes a bug allowing an overly long last line of an indented block (.RS) to be broken even in literal mode. The bug was found using the sudo_plugin(4) manual provided by millert@. I introduced the bug in rev. 1.84 during the g2k12 Budapest hackathon.
* Rewrite indentation handling for nested lists in a more systematic wayIngo Schwarze2012-12-311-35/+49
| | | | | | | | | | | | to fix multiple issues reported by Todd Miller; thanks! Specifically, - avoid double indentation after .Bd inside .Bl - set up correct indentation after .Bl inside .Bl - set up correct indentation after .Dl and .D1 inside .Bl While here, also - set up correct indentation *inside* .Dl and .D1 inside .Bl.
* Do not crash on stray .Ta macros found outside column lists.Ingo Schwarze2012-11-194-14/+19
| | | | Problem reported by jmc@, thanks.
* In groff, trying to redefine standard man(7) macros before .TH has no effect;Ingo Schwarze2012-11-193-8/+73
| | | | | | | | | | | | | | 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). Merging from OpenBSD libmandoc.h 1.18, read.c 1.8, roff.c 1.47, June 2, 2012.
* sync usage(), and tidy up the output a little; from jmc@Ingo Schwarze2012-11-191-4/+4
|
* In -Tman mode, support automatic word keeps in the SYNOPSISIngo Schwarze2012-11-191-22/+34
| | | | | | | | | just like in -Tascii mode; requested by millert@. While here, do not escape the blank characters terminating man(7) macros; this is becoming more important as we use more keeps now. Note that -Tman still does not support .nr nS.
* Three portability improvements by millert@:Ingo Schwarze2012-11-191-9/+10
| | | | | | | | | | | * Use "\\ " not "\\~" as the non-breaking space as historic nroff doesn't support the latter. * The '-' before the flags needs to be quoted to prevent nroff from putting a line break between the '-' and the flag character. * Disable hyphenation and, for nroff, disable justification which is consistent with how mdoc behaves (and produces more readable manuals). (OpenBSD rev. 1.39, 1.40 and 1.41)
* Make the generated man(7) code more portable by using .PDIngo Schwarze2012-11-181-6/+20
| | | | | | | instead of .sp -1v, which for example Solaris nroff handles poorly. Problem report and patch by millert@, with the print_word chunk tweaked by me.
* Correct indentation for lists and displays inside lists.Ingo Schwarze2012-11-181-7/+104
| | | | | | | Inspired by a diff from millert@, but implemented rather differently and with slightly better functionality. In particular, this one respects -offset and -width arguments found in the input file.
* Fix four small whitespace issues related to trailing punctuationIngo Schwarze2012-11-183-7/+17
| | | | | | | | | reported by Nicolas Joly <njoly at pasteur dot fr>: - add EOS spacing after trailing punctuation after .Cd, .Fc, and .Lb - suppress spacing before trailing punctuation after .Fd Add the remaining issues from the same report to the TODO file.
* Cleanup naming of local variables to make the code easier on the eye:Ingo Schwarze2012-11-1714-781/+779
| | | | | | | | 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
* Warn about unknown volume or arch in Dt macro arguments;Ingo Schwarze2012-11-163-4/+6
| | | | patch written by Nicolas Joly <njoly at pasteur dot fr>.
* End of sentence spacing after trailing punctuation after .In and .ApIngo Schwarze2012-11-161-9/+1
| | | | | has just been fixed. Note that my problem description was somewhat misleading, even though Nicolas Joly's problem report was fine.
* Two more macros (.Ap and .In) do trailing delimiter handling.Ingo Schwarze2012-11-161-3/+4
| | | | | | | This fixes the end of sentence spacing in OpenBSD open(2) and in about 150 pages in the NetBSD base system. Reported by Nicolas Joly <njoly a pasteur point fr>, merci!
* Improve formatting of badly nested font blocks.Ingo Schwarze2012-11-163-10/+11
| | | | | | | | | | | | | | | | | The basic idea is to already pop the font at the end marker instead of allowing it to linger until the final end of the block. This requires a few preliminaries: * For each block, save a pointer to the previous font to be used in case the block breaks another and gets extended. * That requires making node information writable during rendering. * Now fonts may get popped in the wrong order; hence, after the stack has already been rewound further by some block that began earlier, ignore popping a font that was put on the stack later. * To be able to exploit all this for font blocks, tie processing to their body, not their block, which is more logical anyway. Triggered by florian@ reporting vaguely similar issues with list blocks.
* Fix a crash triggered by .Bl -tag .It Xo .El .Sh found by florian@.Ingo Schwarze2012-11-162-3/+6
| | | | | | | | | | | | | | | * When allocating a body end marker, copy the pointer to the normalized block information from the body block, avoiding the risk of subsequent null pointer derefence. * When inserting the body end marker into the syntax tree, do not try to copy that pointer from the parent block, because not being a direkt child of the block it belongs to is the whole point of a body end marker. * Even non-callable blocks (like Bd and Bl) can break other blocks; when this happens, postpone closing them out in the usual way. Completed and tested at the OpenBSD impromptu Coimbra hackathon (c2k12). Thanks to Pedro Almeida and the Laborat'orio de Computa,c~ao Avan,cada da Universidade de Coimbra (http://www.uc.pt/lca) for their hospitality!
* crash caused by .Ta outside .BlIngo Schwarze2012-11-041-1/+11
|
* freeciv wants .UR/.UE too; from bentley@Ingo Schwarze2012-10-311-1/+3
|
* minor EOS issue reported by Nicolas JolyIngo Schwarze2012-10-121-1/+9
|
* 1) Remove documentation of the groff-1.15 compatibility quirkIngo Schwarze2012-08-291-12/+6
| | | | | | | | | | | of suppressing spacing before a third .Xr argument because that quirk was removed in mdoc_macro.c rev. 1.113. 2) Mark the "section" argument to .Xr as (syntactically) optional, but still do not encourage omitting it. The missing .Op was reported by espie@. Wording tweaked by and ok jmc@, ok millert@.
* .Sq should use curly right quotes in HTML output to match its curlyIngo Schwarze2012-08-121-4/+4
| | | | | | | | | left quotes. Also, properly reinitialize the styles attribute string buffer for each column in a table so that the attributes don't accumulate. Patch from Matthew@ Dempsky, tweaked by me; OpenBSD rev. 1.66.
* document .PD; related to man_term.c rev. 1.134Ingo Schwarze2012-07-291-3/+34
| | | | OpenBSD man.7 rev. 1.30
* Implement .PD for -Tascii.Ingo Schwarze2012-07-292-15/+38
| | | | | | Reminded about the missing feature by millert@. This reduces mandoc/groff differences in OpenBSD base by 25%. ok millert@
* Drop empty .IP such that is does not cause additional vertical spacing.Ingo Schwarze2012-07-182-23/+23
| | | | | Issue first reported by naddy@ in rsync(1). OpenBSD rev. 1.55.
* Drop .sp and .br right after .SH and .SS.Ingo Schwarze2012-07-182-17/+21
| | | | | | | Fixes vertical spacing after "OPTIONS" in gcc(1). Issue first reported by naddy@ in rsync(1). OpenBSD rev. 1.54.
* Let a trailing .Ns macro take effectIngo Schwarze2012-07-182-12/+10
| | | | | | | | even on an input line containing a partial implicit macro. Fixes horizontal spacing in vi(1), ddb(4), and ppp(8). OpenBSD rev. 1.74.
* Fix handling of paragraph macros inside lists:Ingo Schwarze2012-07-186-18/+51
| | | | | | | * When they are trailing the last item, move them outside the list. * When they are trailing any other none-compact item, drop them. OpenBSD rev. mdoc_validate.c 1.107, mdoc.c 1.91
* The mdoc(7) \*(Ba predefined string actually forces roman font;Ingo Schwarze2012-07-183-17/+5
| | | | | | | | | | | | that's stupid because it may break enclosing font changes, but let's do the same for groff bug compatibility. --> Never use \*(Ba, use just plain "|"! <-- Also, predefined strings are already expanded by the roff(7) parser, so the mdoc(7) parser has to look for the expanded string. OpenBSD rev. mdoc.c 1.90 and predefs.in 1.3
* Always fix the man(7) subsection header (.SS) indent to 3n,Ingo Schwarze2012-07-161-2/+2
| | | | | | | do not let it depend on the default indent provided by -Oindent. By default, this doesn't change anything because 7 / 2 = 3; in -Omdoc mode, it makes man(7) output the same as mdoc(7) output. OpenBSD rev. 1.87
* In flush-left mode of both man(7) and mdoc(7), when an output line is brokenIngo Schwarze2012-07-162-5/+10
| | | | | at the position of a literal tab, the tab indents the following line. Fixes the perl(1) SYNOPSIS; reminded by deraadt@; OpenBSD rev. 1.66.
* For .El .sp, avoid the weird .sp -1v .PP .PP output sequence.Ingo Schwarze2012-07-161-3/+4
| | | | Synching to OpenBSD rev. 1.38.
* Several -mdoc parser improvements related to vertical spacing:Ingo Schwarze2012-07-163-11/+45
| | | | | | | | | | * So far, .Pp and .Lp were removed before paragraph type blocks. * Now also remove .br before paragraph type blocks. * Treat .Lp as a paragraph like .Pp, so remove .Pp, .Lp, .br before it. * Do not treat .sp as a paragraph, don't remove anything before it. * After .Sh, .Ss, .Pp, and .Lp, remove .Pp, .Lp, .sp, .br, and blank lines. * After .sp and .br, remove .br. OpenBSD rev. mdoc.c 1.89 and mdoc_validate.c 1.106
* Translate blank input lines to .sp just like in mdoc(7),Ingo Schwarze2012-07-142-7/+19
| | | | | | and ignore .sp after .PP. This fixes vertical spacing for blank lines after .PP and for .sp after .PP. OpenBSD rev. man.c 1.68 and man_term.c 1.86
* In -Tman .Bl -compact, skip the blank line only before the first itemIngo Schwarze2012-07-141-2/+3
| | | | | of the first list in a section, not before every item of the first list. OpenBSD rev. 1.37
* Adjust -Tman SYNOPSIS .Nm indentation using .HP; requested by millert@.Ingo Schwarze2012-07-131-2/+11
| | | | | There are still lots of ugly line breaks, to be fixed later. OpenBSD rev. 1.36
* If the tag in .Bl -tag .It would leave exactly one blank before theIngo Schwarze2012-07-131-28/+55
| | | | | | | | | 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(). OpenBSD rev. 1.35