summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Write text boxes as <mi>, <mn>, or <mo> as appropriate,Ingo Schwarze2017-06-233-3/+51
| | | | | and write fontstyle or fontweight attributes where required. Missing features reported by bentley@.
* Simplify font handling:Ingo Schwarze2017-06-231-36/+40
| | | | | | | | | | | | | | | 1. Inherit the font attribute from the parent box, such that iteration is no longer required to find the current font. 2. For well-known function name tokens, do not insert an EQN_LISTONE box into the AST; simply set the font attribute of the text box itself that contains the name. Also improve word splitting of unquoted strings in default font mode: 3. Split between numbers and punctuation because both will soon get different HTML markup. 4. Do not split between letters. With the newly ubiquitious font attributes, all formatters will be able to figure out what to do without putting each letter into a separate box.
* Fix font selection for text boxes in the terminal formatter.Ingo Schwarze2017-06-221-8/+22
| | | | | | | | Issue reported by bentley@. The AST data structure is powerful enough that all required information can easily be provided in the parser, and no change of the formatting code is needed.
* Outside explicit font context, give every letter its own box.Ingo Schwarze2017-06-211-14/+45
| | | | | The formatters need this to correctly select fonts. Missing feature reported by bentley@.
* quoted words are not parsed for defined keysIngo Schwarze2017-06-211-11/+10
|
* Recognize well-known functions names (the same that Heirloom recognizes,Ingo Schwarze2017-06-211-16/+37
| | | | | | which includes those recognized by groff) and wrap them in a roman box unless they already are in roman context. Missing feature reported by bentley@.
* KNF: remove parentheses from switch case labels; no binary changeIngo Schwarze2017-06-203-82/+82
|
* Fix a regression in the previous revision:Ingo Schwarze2017-06-191-2/+6
| | | | | When there is no link description, reuse the URI. Reported by tj@ and bentley@.
* Implement appending to standard man(7) and mdoc(7) macros with .am.Ingo Schwarze2017-06-1813-141/+285
| | | | | | | | | | | | | | | | | | With roff_getstrn(), provide finer control which definitions can be used for what: * All definitions can be used for .if d tests and .am appending. * User-defined for \* expansion, .dei expansion, and macro calling. * Predefined for \* expansion. * Standard macros, original or renamed, for macro calling. Several related improvements while here: * Do not return string table entries that have explicitly been removed. * Do not create a rentab entry when trying to rename a non-existent macro. * Clear an existing rentab entry when the external interface roff_setstr() is called with its name. * Avoid trailing blanks in macro lines generated from renamed and from aliased macros. * Delete the duplicate __m*_reserved[] tables, just use roff_name[].
* style message about duplicate RCS ids; inspired by mdoclintIngo Schwarze2017-06-174-1/+12
|
* style message about missing RCS ids; inspired by mdoclintIngo Schwarze2017-06-1742-19/+45
|
* style message about missing RCS ids; inspired by mdoclintIngo Schwarze2017-06-1785-4/+85
|
* style message about missing RCS ids; inspired by mdoclintIngo Schwarze2017-06-17116-3/+184
|
* if .in is used inside the .TP head, it's always relativeIngo Schwarze2017-06-175-4/+55
|
* tables leak tab settings to subsequent textIngo Schwarze2017-06-1714-0/+68
|
* correct handling of blank lines after \cIngo Schwarze2017-06-177-14/+77
|
* properly set the default indentationIngo Schwarze2017-06-171-4/+4
| | | | such that even pages without any .SH macros get it
* Multiple tbl(7) improvements:Ingo Schwarze2017-06-167-115/+12306
| | | | | | | | | | | | * Do not discard data that lacks a matching layout cell but remains within the number of columns of the table as a whole. * Do not insert dummy data rows for any layout row starting with a horizontal line, but only for layout rows that would discard all the data on a matching non-empty data row. * Print horizontal lines specified in the layout even if there is no matching data cell. * Improve the logic for extending vertical lines to adjacent rows, for choosing cross marks versus line segments, and some related details.
* round default width of tbl(7) text blocks in the same way as groffIngo Schwarze2017-06-154-2/+168
|
* implement so-called absolute horizontal motion: \h'|...',Ingo Schwarze2017-06-145-4/+15
| | | | used for example by zoem(1)
* Naive implementation of the roff(7) .po (page offset) request.Ingo Schwarze2017-06-1411-8/+84
| | | | | | 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 :).
* add the \(ru (0.5m baseline ruler) character escape sequence,Ingo Schwarze2017-06-146-4/+6
| | | | abused by mail/nmh; groff_char(7) confirms that this really exists
* simple implementation of the roff(7) .als (macro alias) request,Ingo Schwarze2017-06-142-5/+35
| | | | sufficient for pages using po4a(1)
* let \l use the right fill characterIngo Schwarze2017-06-146-10/+48
|
* improve rounding rules for scaling unitsIngo Schwarze2017-06-1423-47/+66
| | | | in horizontal orientation in the terminal formatter
* harmless, but weird typo; found with afterstep_faq(1)Ingo Schwarze2017-06-141-1/+1
|
* implement the roff(7) d (macro or string defined) conditionalIngo Schwarze2017-06-145-8/+70
|
* implement roff(7) .rj (right justify) requestIngo Schwarze2017-06-147-32/+39
|
* implement the roff(7) \p (break output line) escape sequenceIngo Schwarze2017-06-149-9/+110
|
* Partial support for the \n[an-margin] number register.Ingo Schwarze2017-06-134-2/+56
| | | | | | | | | | | | | | | Manuals autogenerated from reStructuredText are reckless enough to peek at this non-portable, implementation-dependent, highly groff-specific internal register - for no good reason, because the man(7) language natively provides in a much simpler way what they are trying to emulate here with much fragility. A full implementation would be very hard because it would require access to output-device-specific formatting data at the roff(7) preprocessor stage, which mandoc doesn't support at all. So hardcode a few magic numbers as reStructuredText expects them for terminal output. For other output modes (like HTML), code using this register is utterly broken anyway.
* If the layout is empty except for requesting a left vertical frame,Ingo Schwarze2017-06-131-0/+2
| | | | | | | record that detail in struct tbl_opts, such that term_tbl() can do correct column calculations and doesn't prematurely break lines. Fixes the tbl/layout/empty regression test that got broken when line breaking in text block cells was implemented.
* Delete the arbitrary range restriction for -Owidth.Ingo Schwarze2017-06-132-3/+2
| | | | | | | We provide users with tools. We don't attempt to prevent them from using them in stupid ways: depending on the context, not every stupid-looking use is necessarily actually stupid, and not every stupidity can be automatically detected anyway, so don't even try.
* fix the interaction of the allbox option with spanned cells in the layoutIngo Schwarze2017-06-133-16/+49
|
* Explicitly ignore .br, .ce, and .sp inside tbl(7) text blocks.Ingo Schwarze2017-06-131-2/+3
| | | | | | With the current code structure, they would appear at the wrong place in the syntax tree, so it is better to not insert them into the tree at all and issue an UNSUPP message instead.
* test the new allbox and wrapping featuresIngo Schwarze2017-06-125-1/+95
|
* Two minor fixes for the "allbox" modifier:Ingo Schwarze2017-06-121-2/+5
| | | | | | 1. It does not reduce explicit "||" in the layout to "|". 2. It does not cause three horizontal lines at the end of a table, even if the table ends with an explicit "_" data line.
* If a tbl(7) layout contains a 'w' (minimum width) modifier for aIngo Schwarze2017-06-121-2/+3
| | | | | | | given column, that column contains no literal or numeric cell of larger width, and all text block cells in that column can be line wrapped to fit into that minimum width, groff does not increase that column width beyond the specified minimum: so do the same.
* implement the tbl(7) "allbox" option;Ingo Schwarze2017-06-121-1/+7
| | | | used for example by curs_getch(3) and GLwDrawingArea(3)
* fix column width calculation for text block cellsIngo Schwarze2017-06-124-14/+21
|
* Implement automatic line breakingIngo Schwarze2017-06-1212-88/+343
| | | | | inside individual table cells that contain text blocks. This cures overlong lines in various Xenocara manuals.
* ooops, fix a glitch in the previous commit...Ingo Schwarze2017-06-111-1/+1
|
* Style message about legacy man(7) date format in mdoc(7) documentsIngo Schwarze2017-06-1159-0/+59
| | | | | and operating system dependent messages about missing or unexpected Mdocdate; inspired by mdoclint(1).
* Style message about legacy man(7) date format in mdoc(7) documentsIngo Schwarze2017-06-11101-15/+142
| | | | | and operating system dependent messages about missing or unexpected Mdocdate; inspired by mdoclint(1).
* style message about missing .Fn markup; inspired by mdoclintIngo Schwarze2017-06-114-7/+35
|
* Do not issue the message "no blank before trailing delimiter" for .No.Ingo Schwarze2017-06-112-4/+3
| | | | | | | In practice, that message only matters inside .Bf, and even there, it can occasionally be a false positive. In all other cases, it usually is a false positive, so it is better to drop it outright. Suggested by jmc@.
* add forgotten fileIngo Schwarze2017-06-111-0/+0
|
* fix order of messagesIngo Schwarze2017-06-111-1/+1
|
* Reduce false positives for the "no blank before trailing delimiter" message.Ingo Schwarze2017-06-101-2/+75
| | | | This brings us down to one false positive for about every 18 pages.
* minor markup simplificationsIngo Schwarze2017-06-102-2/+2
|
* style message about missing blank before trailing delimiter;Ingo Schwarze2017-06-10155-238/+483
| | | | inspired by mdoclint(1), and jmc@ considers it useful