summaryrefslogtreecommitdiffstats
path: root/roff.7
Commit message (Collapse)AuthorAgeFilesLines
* 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@
* Allow registers to be unset. Implement and document the `.nr nS val'.Kristaps Dzonsons2010-06-271-2/+5
|
* First step of adding register support. This is inspired by a significantKristaps Dzonsons2010-06-261-0/+34
| | | | | | patch by schwarze@. This commit adds support to libroff parsing `nr' into register set defined in regs.h. This will propogate into libmdoc and libman in later commits.
* Fix adding some minimal intelligence to conditional parser. See roff.7Kristaps Dzonsons2010-06-101-2/+13
| | | | | | | | | | for what's supported. This simplified the roff_cond() function quite nicely. From a bug report by uqs@. Added regression test based on bug-report example by uqs@. Also added ROFF_DEBUG to see what the hell the parser is actually doing. Obviously turned off by default.
* Noted that \} collapses into a zero-width space on the front-end.Kristaps Dzonsons2010-06-011-1/+3
|
* recognize ".if n" as true;Ingo Schwarze2010-05-241-2/+10
| | | | | | nothing fancy yet, no negation, no grammer, just that one letter; from OpenBSD; "looks fine" kristaps@
* provide stubs to ignore .ds, .rm and .tr,Ingo Schwarze2010-05-241-0/+18
| | | | | | which occur in the standard pod2man preamble; from OpenBSD; "sounds good" joerg@, "can be checked in" kristaps@
* Documented ie/el.Kristaps Dzonsons2010-05-171-0/+24
| | | | | Installing roff.7 and added it to index.sgml. Small fix for `D1' and `Bd' in -Thtml.