summaryrefslogtreecommitdiffstats
path: root/roff.7
Commit message (Collapse)AuthorAgeFilesLines
* Reduce memory and time consumption on certain malformed input filesIngo Schwarze2014-12-251-2/+4
| | | | | | by limiting the length of expanded input lines during the (usually recursive) expansion of user defined strings. Resource hogging found by jsg@ with afl.
* Fix the implementation and documentation of \c (continue text input line).Ingo Schwarze2014-12-021-2/+4
| | | | | In particular, make it work in no-fill mode, too. Reminded by Carsten dot Kunze at arcor dot de (Heirloom roff).
* Support the ".if v" conditional operator (vroff mode, always false)Ingo Schwarze2014-11-191-1/+3
| | | | | | | for groff compatibility because pod2man(1) uses it that way. Weirdly, groff documents it as "for compatibility with other troff versions" but neither Heirloom nor Plan 9 have it. Issue reported by giovanni@ via sthen@.
* Parse and ignore the .pl (page length) request;Ingo Schwarze2014-09-071-0/+5
| | | | Daniel Levai reports that Slackware Linux uses this.
* remove double word; from jmc@Ingo Schwarze2014-08-141-1/+1
|
* Begin cleaning up scaling units.Kristaps Dzonsons2014-08-131-3/+9
| | | | | | | | | Start with the horizontal terminal specifiers, making sure that they match up with troff. Then move on to PS, PDF, and HTML, noting that we stick to the terminal default width for "u". Lastly, fix some completely-wrong documentation and note that we diverge from troff w/r/t "u".
* implement .dei and .amiIngo Schwarze2014-07-071-12/+13
|
* Fully implement the \B (validate numerical expression) andIngo Schwarze2014-04-081-6/+15
| | | | | | | | | | | partially implement the \w (measure text width) escape sequence in a way that makes them usable in numerical expressions and in conditional requests, similar to how \n (interpolate number register) and \* (expand user-defined string) are implemented. This lets mandoc(1) handle the baroque low-level roff code found at the beginning of the ggrep(1) manual. Thanks to pascal@ for the report.
* Almost complete implementation of roff(7) numerical expressions.Ingo Schwarze2014-04-071-16/+79
| | | | | | | Support all binary operators except ';' (scale conversion). Fully support chained operations and nested parentheses. Use this for the .nr, .if, and .ie requests. While here, fix parsing of integer numbers in roff_getnum().
* Implement the roff(7) .rr (remove register) request.Ingo Schwarze2014-04-051-6/+10
| | | | | As reported by sthen@, the perl-5.18 pod2man(1) preamble thinks cool kids use that in manuals. I hope *you* know better.
* Support relative arguments to .ll (increase or decrease line length).Ingo Schwarze2014-03-301-1/+3
|
* Implement the roff(7) .ll (line length) request.Ingo Schwarze2014-03-301-0/+15
| | | | | Found by naddy@ in the textproc/enchant(1) port. Of course, do not use this in new manuals.
* sync to OpenBSD: .ft is a roff(7) request, not a man(7) macro,Ingo Schwarze2014-03-171-0/+28
| | | | and it is not even used frequently in man(7)
* Improve .if/.ie condition handling.Ingo Schwarze2014-03-081-39/+70
| | | | | | | | | | | | | | * Support string comparisons. * Support negation not only for numerical, but for all conditions. * Switch the `o' condition from false to true. * Handle the `c', `d', and `r' conditions as false for now. * Use int for boolean data instead of rolling our own "enum roffrule"; needed such that we can use the standard ! and == operators. Havard Eidnes reported via the NetBSD bug tracking system that some Tcl*(3) manuals need this, and Thomas Klausner <wiz at NetBSD> forwarded the report to me. This doesn't make the crazy Tcl*(3) macrology maze happy yet, but brings us a bit closer.
* document .as and .ceIngo Schwarze2014-02-141-1/+13
|
* The roff language really has two groups of basic building blocks:Ingo Schwarze2013-12-261-7/+253
| | | | | | | Requests and escape sequences. Consequently, supplement the REQUEST REFERENCE by an ESCAPE SEQUENCE REFERENCE, such that people no longer need to guess or experiment what mandoc(1) implements, what it parses and ignores, and what it doesn't handle at all.
* The "value" argument to the roff(7) .nr requests ends right beforeIngo Schwarze2013-12-151-4/+7
| | | | | | | | the first non-digit character. While here, implement and document an optional sign, requesting increment or decrement, as documented in the Ossanna/Kernighan/Ritter troff manual and supported by groff. Reported by bentley@ on discuss@.
* Parse and ignore .hw (hyphenation points in words); this is safe becauseIngo Schwarze2013-10-221-0/+3
| | | | | | we don't do hyphenation anyway, so there is no point in throwing an ERROR when encountering .hw. Real-world usage of the request found by naddy@ in sysutils/dwdiff(1).
* Parse and ignore the .fam (font family) request.Ingo Schwarze2013-10-141-0/+6
| | | | | Fixes irunner(1) in devel/ipython and uim-xim(1) in inputmethods/uim. Thanks to naddy@ for bringing these to my attention.
* Implement the roff(7) font-escape sequence \f(BI "bold+italic".Ingo Schwarze2013-08-081-2/+9
| | | | | This improves the formatting of about 40 base manuals and reduces groff-mandoc formatting differences in base by about 5%.
* For citing the names and email addresses of authors,Ingo Schwarze2013-07-131-4/+2
| | | | | | | consistently use the style ".An name Aq Mt email". Triggered by a question from Jan Stary <hans at stare dot cz>, ok jmc@.
* - (mdoc.7) fix Xr to selfIngo Schwarze2013-04-281-1/+1
| | | | | - double word fix from jmc@
* Add `cc' support.Kristaps Dzonsons2012-06-121-0/+12
| | | | | | | | | | | | | | | This was reported by espie@ and in the TODO. Caveat: `cc' has buggy behaviour when invoked in groff(1) and followed by a line-breaking control character macro, e.g., in a -man doc, .cc | .B foo 'B foo |cc 'B foo will cause groff(1) to behave properly for `.B' but inline the macro definition for `B' when invoked with the line-breaking macro.
* Fix typo (back-space -> backslash).Kristaps Dzonsons2012-06-121-1/+1
|
* Explain where .so paths are rooted, and why, and discourage its use;Ingo Schwarze2011-12-111-0/+16
| | | | feedback and ok jmc@, suggested by and ok kristaps@.
* typo reported by Steffen Daode Nurpmeso <sdaoden at googlemail dot com>Ingo Schwarze2011-11-231-2/+2
| | | | and remove a trailing blank noticed by jmc@
* Update historical record to be historical and not made-up. Data fromKristaps Dzonsons2011-11-211-7/+15
| | | | | <manpages.bsd.lv/history.html>. Ok schwarze@ (with modifications) and Jason McIntyre.
* Accomodate for \f(Cx formatting. Noted by Andreas Vogele, thanks!Kristaps Dzonsons2011-11-061-0/+2
|
* Reorganize part of the content:Ingo Schwarze2011-09-261-27/+291
| | | | | | | | | | | | | 1) Move the LANGUAGE SYNTAX from mdoc(7) and man(7) to roff(7), it's common to both and it's actually roff syntax. 2) Move the MACRO SYNTAX down to the bottom, such that the less technical parts MANUAL STRUCTURE and MACRO OVERVIEW get to the top. Getting everything to again fit together after the reshuffling required various adjustments; also adjust and improve the DESCRIPTIONS while there. feedback and "go ahead" jmc@ kristaps@
* Fix typos and spelling errors found by demandoc -w | spell -b.Kristaps Dzonsons2011-09-021-3/+3
|
* Replace the old `An'/`Aq' AUTHORS note with `An'/`Mt'.Kristaps Dzonsons2011-08-181-3/+5
|
* An implementation of `tr'. This routes allocations of TEXT nodesKristaps Dzonsons2011-07-281-4/+15
| | | | | | | through libroff, which does the appropriate translations of `tr'. This is SLOW: it uses the backend of `ds' and `de', which is a simple linear list. However, unlike `ds' and `de', it iterates over EACH CHARACTER of the entire file looking for replacements.
* Have conditional closure for both text and macro lines call through toKristaps Dzonsons2011-05-241-7/+12
| | | | | | ccond(). Fix the text handler to behave like the macro handler regarding escaped \}. Make \} actually become a zero-width space, too, and clean up the documentation in this regard.
* No code change: fixing spelling errors. From a patch by uqs@. Thanks!Kristaps Dzonsons2011-04-301-1/+1
|
* Add stub for eqn.7 manual and flip it on. Also note COMPATIBILITY issueKristaps Dzonsons2011-02-091-0/+23
| | | | of how we considered .TS (etc.) macros and how the preprocessors do.
* Ignore .ns (no-space mode), .ps (change point size), .ta (tab control)Ingo Schwarze2011-01-251-0/+14
| | | | | | for now. All of these just cause a bit too much or too little whitespace, but no serious formatting problems. Triggered by reports from brad@.
* As noticed by deraadt@, it goes without saying that text filesIngo Schwarze2011-01-251-4/+0
| | | | | | on a UNIX system use UNIX conventions, and UNIX tools working on them expect that. ok jmc@
* Better explain roff(7) macro argument quoting;Ingo Schwarze2011-01-241-6/+35
| | | | ok jmc@.
* Moved table stuff from roff.7 into the new tbl.7 (suggested by Jason McIntyre).Kristaps Dzonsons2011-01-041-202/+5
| | | | Added cross-links to tbl.7 from other manuals.
* Support `T{' and `T}' data blocks. When a standalone `T{' isKristaps Dzonsons2011-01-041-0/+5
| | | | | | | encountered as a line's last data cell, move into TBL_PART_CDATA mode whilst leaving the cell's designation as TBL_DATA_NONE. When new data arrives that's not a standalone `T}', append it to the cell contends. Close out and warn appropriately.
* Fix to make horizontal spanners in the layout be properly printed.Kristaps Dzonsons2011-01-041-21/+48
| | | | | | | mandoc also now warns (so does tbl(1)) if a horizontal spanner is specified along with data. While here, fix up some documentation and uncomment the tbl reference.
* Switch on the `TS' documentation in roff.7. As per off-line discussion,Kristaps Dzonsons2011-01-031-126/+174
| | | | | | | | this may be moved to tbl.7, but for the time being, keep it in the document as it's developed. Also note that my handling of horizontal rules in layouts needs some work.
* Update (still-commented) manual bits for tbl.Kristaps Dzonsons2010-12-291-0/+86
| | | | | Also removed lots of superfluous switch cases by using tolower() and handling only the lowercase keys.
* Initial documentation for TBL, which for the time being is commented-out.Kristaps Dzonsons2010-12-291-0/+46
|
* Sync to the installed version in OpenBSD, excluding .ft documentation:Ingo Schwarze2010-12-181-88/+138
| | | | | | Be more careful to not confuse requests, macros and escape sequences. Add more info at various places, including new SEE ALSO and HISTORY sections. OK jmc@ kristaps@
* Abort endless loops during roff macro and string expansion.Ingo Schwarze2010-12-101-0/+6
| | | | | | For now, use the simplest conceivable approach, like groff does: Just a fixed, ugly input stack limit. "check it in" kristaps@
* Import changes by schwarze@ and Jason McIntyre into manuals. These areKristaps Dzonsons2010-12-061-82/+270
| | | | | | | | | | for the new libroff macros, the new libman macros, and for the sake of general clarity. Note that `ft' documentation is NOT included, as I've kept it in -man: it's highly confusing to have it in roff.7 when it's not implemented for both -man and -mdoc, as at least in theory, roff.7 should include only macros recognised by BOTH formats.
* Fix `ds' handling. This was stripping characters from "val", when theKristaps Dzonsons2010-07-271-0/+9
| | | | | | syntax of `ds' is such that ALL text following the first non-space/non-double-quote is part of the value. This also fixes the warning of *(string++) = NULL report by kristaps@ and joerg@.
* Re-constitution of `ds' symbol processing. First, push theKristaps Dzonsons2010-07-071-5/+14
| | | | | | | | | roff_getstr() family of functions into roff.c with the "first_string" directly in struct roff. Second, pre-process each line for reserved words in libroff, splicing and re-running a line if it has one (this allows defined symbols to be macros). Remove term.c's invocation of the roff_getstrn() function. Removed function documentation in roff.3 and added roff.7 `ds' documentation.
* Assert my copyright, making it explicit that i'm granting the same licenseIngo Schwarze2010-07-041-0/+1
| | | | | on those parts of the code and text that i have written as Kristaps is. "fine with me" kristaps@