summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* In HTML output, in cells with an "n" (number) layout, pad numbersIngo Schwarze2021-09-091-0/+24
| | | | | | | | | on the right side with UTF-8 punctuation and figure spaces such that numbers in different tbl(7) rows align at the decimal point. The exact HTML output format was suggested by <Oliver dot Corff at email dot de>; the implementation in C is mine.
* If the layout or data of an individual cell in a tbl(7) containsIngo Schwarze2021-09-093-1/+8
| | | | | | | | | | | | | | only "_", "-", or "=", requesting a horizontal line to be drawn across the middle of the cell, print <hr/> in that cell in HTML output. That is arguably slightly ugly because HTML 5 regards <hr/> as semantic markup, meaning "thematic break". If somebody knowns a better way to render a horizontal line across the middle of a table cell with pure HTML and CSS, and without implying a specific meaning, please tell me. Missing feature reported by <Oliver dot Corff at email dot de>.
* Fix an infinite loop that could occur during some cases of horizontallyIngo Schwarze2021-09-071-33/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | overlapping horizontal spans. One span would calculate a desired target width and start preparations for applying it to some columns, then the other span would overwrite the target width with a different value and also start preparations for applying that one to some columns, which could sometimes confuse the code doing the final distribution to the point of not doing anything at all before entering the next iteration. Fix this by making sure the distribution is done step by step, doing one step at a time rather than allowing multiple steps to conflict. Specifically, always do the smallest useful step first. This change also simplifies the code. For example, the local "colwidth" array is no longer needed. Note that the algorithm still differs from the one implemented in GNU tbl(1), which appears to not even try to harmonize column widths but seems to simply distribute the same amount to all constituent columns, no matter whether their intrinsic width is narrow or wide. Adopting a GNU-compatible algorithm might allow further simplifiction in addition to yielding even more similar output, but i do not want to implement any major changes of the algorithm at this time. The infinite loop was reported by <Oliver dot Corff at email dot de>.
* Correctly calculate required column widths for tables containingIngo Schwarze2021-09-073-6/+24
| | | | | | | cells that horizontally span columns which contains "n" (number) formatted cells on other rows. This requires updating total column widths from "n" formatted cells before starting width distribution from the spanning cells to their constituent columns.
* we already parse the GNU tbl(7) "nospaces" option,Ingo Schwarze2021-09-072-9/+18
| | | | so let it have the intended effect, too
* do not crash when a tbl(7) cell uses roman fontIngo Schwarze2021-09-071-0/+2
|
* TODO: let makewhatis(8) follow symbolic links to dirsIngo Schwarze2021-09-061-0/+5
|
* during prioritization for man(1), correctly extract the section nameIngo Schwarze2021-09-041-6/+11
| | | | | | from the file name extension of gzipped manual page files; bug found on Alpine Linux by Soeren Tempel <soeren at soeren hyphen tempel dot net>, who also tested this patch
* mdoc(7): improve output of .At 32vIngo Schwarze2021-09-041-1/+1
| | | | | | | | | | | | | | | | | | | The official designation by AT&T was "UNIX/32V", so use that in the output. That also makes sense because "system/architecture" is a widespread convention to refer to the port of an operating system to a specific architecture, in this case 32V (32bit DEC VAX). The former wording "Version 32V AT&T UNIX" was misleading because 32V is not a version number. Even though UNIX/32V was not officially designated as Version 7 by AT&T, prepend "Version 7" because it was in fact a straightforward port of Version 7 AT&T UNIX. That makes it easier to understand for 21st century readers of manual pages. Suggested by nabijaczleweli at nabijaczleweli dot xyz. Same change as in GNU troff commit 21d30728. OK G dot Branden dot Robinson at gmail dot com (gbranden@ in groff)
* In the fallback code to look for manual pages without using mandoc.db(5),Ingo Schwarze2021-09-041-21/+65
| | | | | | | | | | | | | | | accept files "man<one-digit-section>/<name>.<full-section>" in addition to the already supported "man<full-section>/name.[01-9]*". Needed for example on Alpine Linux which puts its Perl manuals into "man3/<name>.3pm" and the POSIX manuals into "man3/<name>.3p". While here, allow the glob(3) at the end of fs_lookup() to add multiple matches to the result set. This improves man -w output and may also help some cases of plain man(1), allowing main() to prioritize properly rather than fs_lookup() picking a random match. Issue reported and patch tested by Soeren Tempel <soeren at soeren hyphen tempel dot net>.
* do not crash when a manpath directory contains a symbolic linkIngo Schwarze2021-08-191-0/+2
| | | | | | that points to a directory rather than to a regular file; bug reported by Lukas Epple <sternenseemann at systemli dot org>, and my patch also tested by him on NixOS
* fix the section number in the <title> element for preformatted pages;Ingo Schwarze2021-08-191-8/+24
| | | | minibug reported by Ian <Ropers at gmail dot com> on misc@
* print a BAGARG message if -T markdown is requested on man(7) input;Ingo Schwarze2021-08-144-0/+13
| | | | suggested by Michael Stapelberg at debian dot org
* Support two-character font names (BI, CW, CR, CB, CI)Ingo Schwarze2021-08-1027-84/+174
| | | | | | | | | | | | | | | | | | | | | | | | in the tbl(7) layout font modifier. Get rid of the TBL_CELL_BOLD and TBL_CELL_ITALIC flags and use the usual ESCAPE_FONT* enum mandoc_esc members from mandoc.h instead, which simplifies and unifies some code. While here, also support CB and CI in roff(7) \f escape sequences and in roff(7) .ft requests for all output modes. Using those is certainly not recommended because portability is limited even with groff, but supporting them makes some existing third-party manual pages look better, in particular in HTML output mode. Bug-compatible with groff as far as i'm aware, except that i consider font names starting with the '\n' (ASCII 0x0a line feed) character so insane that i decided to not support them. Missing feature reported by nabijaczleweli dot xyz in https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=992002. I used none of the code from the initial patch submitted by nabijaczleweli, but some of their ideas. Final patch tested by them, too.
* Rename the compile-time configuration variable $HOMEBREWDIR toIngo Schwarze2021-08-073-12/+49
| | | | | | | | | $READ_ALLOWED_PATH, allow it to contain more than one directory, and explain how to use it for NixOS and for GNU Guix Linux. Feature improvement based on observations, input, and earlier patches from Lukas Epple <sternenseemann at systemli dot org>, and final patch also tested by Lukas.
* .OP is not a GNU extension but first appeared in the Documenter's Workbench,Ingo Schwarze2021-08-051-2/+2
| | | | | | | see https://github.com/n-t-roff/DWB3.3/blob/master/macros/man/an.sr#L33 from g dot branden dot robinson at gmail dot com via GNU troff commit e3459327 2 Aug 2021 10:49:46 -0400
* manually tag the macro names that have false positivesIngo Schwarze2021-07-291-0/+71
|
* Improve the description of .Fl in multiple respects and in paricularIngo Schwarze2021-07-291-11/+17
| | | | | | | improve the .Fl examples in multiple respects, including better demonstrating long options. Prompted by a question from espie@. Feedback and OK jmc@.
* Support auto-tagging for ".It Va".Ingo Schwarze2021-07-181-1/+1
| | | | | | | | | This combination is somewhat rare because few libraries expose so many global variables that they need a list to enumerate them, but when the idiom does occur, tagging the variable names is generally useful. For example, this helps awk(1), dc(1), make(1), rc.subr(8), ... Missing feature reported and patch reviewed, tested, and OK'ed by kn@.
* s/The arguments are as follows:/The options are as follows:/Ingo Schwarze2021-07-041-1/+1
| | | | | because that's what the example is talking about; patch from kn@
* The mandoc(1) manual already mentions that -T man output modeIngo Schwarze2021-07-045-12/+53
| | | | | | | | | | neither supports tbl(7) nor eqn(7) input. If an input file contains such code anyway, tell the user rather than failing an assert(3)ion. Fixing a crash reported by Bjarni Ingi Gislason <bjarniig at rhi dot hi dot is> in https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=901636 which the Debian maintainer of mandoc, Michael at Stapelberg dot ch, forwarded to me.
* delete the two pairs of extra blank lines from expected man(7) terminalIngo Schwarze2021-06-28216-864/+22
| | | | output that are no longer printed since man_term.c rev. 1.236
* In terminal output of man(7) documents, stop printing two extra blankIngo Schwarze2021-06-282-10/+2
| | | | | | | | | | | lines before the NAME section and before the page footer. While these blank lines had a long tradition, they didn't really serve any purpose and merely wasted screen real estate. Besides, this makes output from man(7) more similar to output from mdoc(7). This commit keeps mandoc compatible with groff-current, where G. Branden Robinson committed the same change on June 16 (groff commit 2278d6ed).
* add a style message about overlong text lines,Ingo Schwarze2021-06-276-3/+19
| | | | | | | | trying very hard to avoid false positives, not at all trying to catch as many cases as possible; feature originally suggested by tb@, OK tb@ kn@ jmc@
* new TODO entry: HTML formatting of .nfIngo Schwarze2021-06-271-0/+5
|
* three new TODO itemsIngo Schwarze2021-06-261-0/+19
|
* In -W style mode, check .Xr links along the full manpath becauseIngo Schwarze2021-06-024-30/+54
| | | | | | | | | | | that is more useful for validating manuals of non-base software. Nothing changes in -W all mode: by default for -T lint, we still assume we want to check base system conventions, including usually not wanting to link to non-base manual pages. The use case, a partial idea how to handle it, and a preliminary patch was originally presented by kn@, then refined by me. Final patch tested and OK'ed by kn@.
* tbl(7) layout "n" specifier for HTML outputIngo Schwarze2021-06-021-0/+6
|
* In revision 1.157 of cgi.c, a meta viewport element was added toIngo Schwarze2021-06-021-0/+2
| | | | | | the HTML output. Let `mandoc -Thtml' behave the same, making the generated HTML a bit more pleasant to view on a mobile device. Patch from anton@.
* test private use areas some more as they have proven fragileIngo Schwarze2021-06-028-38/+74
|
* Cleanup:Ingo Schwarze2021-06-024-53/+57
| | | | | | | | | | 1. Move invalid two-byte sequences after valid ones and make their descriptions easier to understand. 2. Replace the wrong and confusing expression "middle byte" with the correct term "start byte". 3. Add test lines for U+EFFFF and U+F0000. 4. Replace the unhelpful word "strange" with more descriptive terms. Arguably, nothing about this (or maybe everything?) is strange.
* The wcwidth(3) of Plane 15 and Plane 16 Private Use CharactersIngo Schwarze2021-06-022-4/+4
| | | | | was changed from 0 to 1. Adjust the test results accordingly. Issue reported by bluhm@
* When looking for column separators on tbl(7) data lines, properly skipIngo Schwarze2021-05-181-3/+7
| | | | | | escape sequences; do not misinterpret bytes from the middle of escape sequence names or arguments as column separators. Bug reported and patch tested by Oliver dot Corff at email dot de.
* Implement the layout specification "a" (left justify with 1em indentation)Ingo Schwarze2021-05-161-0/+2
| | | | | | in HTML output mode; before this patch, the indentation was missing. Terminal output already supported the "a" specifier since 2010. Issue reported and patch tested by Oliver dot Corff at email dot de.
* test font modifiers in the layout; related to tbl_html.c rev. 1.34Ingo Schwarze2021-05-164-2/+49
|
* implement the tbl(7) layout modifiers "b" (bold) and "i" (italic)Ingo Schwarze2021-05-162-2/+11
| | | | | in HTML output mode, similar to tbl_term.c, function tbl_word(); issue reported by Oliver dot Corff at email dot de
* When looking for the last layout row used, we need to look at the layoutIngo Schwarze2021-05-151-4/+5
| | | | | | | | | | | | | | row used for the previous data line containing data, not at the previous data line outright, which might be a horizontal ruler. If it is, do not restart from the first layout row but still proceed to the next data row, which may have been just read from T&. Bug originally reported by Oliver dot Corff at email dot de on groff at gnu dot org: https://lists.gnu.org/archive/html/groff/2021-03/msg00003.html and forwarded to me by bentley@. Patch OK'ed by bentley@ back in April.
* Add OpenBSD riscv64 architecture; patch from jsg@.Ingo Schwarze2021-05-132-3/+4
| | | | While here, retire sgi and socppc.
* remove stray byte from broken escape sequence; diff from jmc@Ingo Schwarze2021-05-121-1/+1
|
* typo; diff from fcambus@Ingo Schwarze2021-05-121-1/+1
|
* \s with arbitrary arg delimitersIngo Schwarze2021-05-121-0/+4
|
* In HTML output, correctly render .Bd -unfilled in proportionally-spacedIngo Schwarze2021-03-303-3/+7
| | | | | | | | | | | font, rather than with the monospace font appropriate for .Bd -literal. This fixes a minibug reported by anton@. Implemented by no longer relying on the typical browser default of "pre { font-family: monospace }" but instead letting <pre> elements inherit the font family from their parent, then adding an explicit CSS .Li class only for those displays where the manual page author requested it by using the -literal option on the .Bd macro.
* Append .html suffix to temporary files enabling browsers to recognise it.Ingo Schwarze2021-03-303-5/+7
| | | | | | | | | | | | | Occasionally one might read a manual page in a webbrowser, e.g. "MANPAGER=firefox man -T html jq", however temporary files created for pagers lack file extensions and most web browsers are unable to detect a file's content without it. Special case mandoc(1)'s HTML output format by appending the ".html" suffix to file names such that browsers will actually render HTML as such instead of showing it as plain text. Idea and patch from kn@, with minor help from me.
* double .TH in man(7)Ingo Schwarze2021-03-281-0/+4
|
* more about .Bd -unfilledIngo Schwarze2021-03-281-1/+6
|
* Rename syntax test of the \O escape sequence (suppress output groffIngo Schwarze2020-12-216-26/+26
| | | | | | extension; mandoc only implements syntax checking but ignores the sequence) to please Bill Gates and didickman@: avoid path names that only differ by case, like o.in vs. O.in.
* MANWIDTHIngo Schwarze2020-11-131-0/+6
|
* old groff_char(7) reported by kamil at NetBSDIngo Schwarze2020-11-121-0/+4
|
* Delete a sentence pointing to "the Predefined Strings subsectionIngo Schwarze2020-10-311-5/+0
| | | | | | of the roff(7) manual." Such a subsection does not exist, and i do not see why it should. Predefined strings are an obsolete feature of macro packages, not a feature of the roff language.
* Finally get rid of the "overflow: auto" property of ".Bl-tag > dd"Ingo Schwarze2020-10-301-2/+2
| | | | | | | | | | | | | | | | | | | | | | which has long been know to cause ugly and pointless scroll bars. Matthew Martin <phy1729 at gmail dot com> helpfully explained the following two points to me: 1. What we need to do here is establish a new block formatting context such that the first line of the <dd> content moves down rather than to the right if the preceding <dt> is wide. 2. A comprehensive list of methods to establish block formatting context is available in: https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context In that list, i found that "column-count: 1" does the job. It is part of CSS Multi-column Layout Level 1. While that is still in Working Draft status according to https://www.w3.org/Style/CSS/current-work , it is fully supported by all browsers according to https://developer.mozilla.org/en-US/docs/Web/CSS/column-count , probably because it was already part of the second draft of this standard almost 20 years ago: WD-css3-multicol-20010118.