aboutsummaryrefslogtreecommitdiff
path: root/tmac
Commit message (Collapse)AuthorAgeFilesLines
* initHEADmasterEthan Morgan36 hours3-4/+4
|
* tmac/tmac.an*: work around formatter bugG. Branden Robinson2025-10-262-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ...when rendering some man pages, such as those of ncurses. I did not manage (nor seriously attempt) to identify the root cause of this bug. ncurses's use of `SH` and `SS` man(7) macros is unremarkable.[1] I cannot account for why the less(1) man page renders fine and ncurses pages like insstr(3) do not. But render badly they do, emitting *roff logic as formatted output. ``` $ 9 nroff -man $(man -w insstr) | grep -F .ss | cat -v "'''if^GNAME^GSYNOPSIS^G .ss 18 NAME "'''if^GSYNOPSIS^GSYNOPSIS^G .ss 18 SYNOPSIS "'''if^GDESCRIPTION^GSYNOPSIS^G .ss 18 DESCRIPTION "'''if^GRETURN^GSYNOPSIS^G .ss 18 RETURN VALUE "'''if^GNOTES^GSYNOPSIS^G .ss 18 NOTES "'''if^GEXTENSIONS^GSYNOPSIS^G .ss 18 EXTENSIONS "'''if^GPORTABILITY^GSYNOPSIS^G .ss 18 PORTABILITY "'''if^GHISTORY^GSYNOPSIS^G .ss 18 HISTORY "'''if^GSEE^GSYNOPSIS^G .ss 18 SEE ALSO ``` With this patch: ``` $ 9 nroff -man $(man -w insstr) | grep -F .ss | cat -v | grep . || echo NO OUTPUT NO OUTPUT ``` I do observe that the problem seems to correspond to the only use in the package of the old-fashioned `'''` commenting convention _within a macro definition_. I have a notion of how GNU troff works, but little about AT&T troff. That said, if I were to try to get to the bottom of this problem, I'd look into if and how the no-break command character is handled differently in copy mode. I see nothing in CSTR #54 to suggest that the command characters have different meanings in copy mode and its complement.[2] My solution is to use idiomatic comment syntax inside macro definitions. [1] https://github.com/ThomasDickey/ncurses-snapshots/blob/d5dc8a4a7c15474652d73dee37d905c8205f6ab4/man/curs_insstr.3x#L47 [2] unnamed in AT&T documentation but which I term "interpretation mode" in groff
* tmac/tmac.an*: support `lq`, `rq` stringsG. Branden Robinson2025-10-102-0/+16
| | | | | | | | | | | | | | | | | | | | | | | The `lq` and `rq` strings are not a groffism, but _almost_ universally portable to man(7) renderers. They originate in 4BSD (1980).[1] They entered Unix System V with SVR4 (1988 or 1989).[2] mandoc(1) has supported them since its inception.[3] * tmac/tmac.an: * tmac/tmac.antimes: Do it. Use U+201C and U+201D if the output device is "utf", otherwise define them as `` and ''. Don't define them as `"` because that breaks when interpolating the strings in macro arguments.[4] [1] https://minnie.tuhs.org/cgi-bin/utree.pl?file=4BSD/usr/lib/tmac/tmac.an.new [2] https://github.com/ryanwoodsmall/oldsysv/blob/e68293af91e2dc39f5f29c20d7e429f9e0cabc75/sysvr4/svr4/ucbcmd/troff/troff.d/tmac.d/an#L46 [3] https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/mandoc/predefs.in?rev=1.1&content-type=text/x-cvsweb-markup [4] https://www.gnu.org/software/groff/manual/groff.html.node/Calling-Macros.html "For the (neutral) double quote, you have recourse to an obscure syntactical feature of AT&T troff. ..."
* tmac/tmac.an: define .MR in a groff compatible wayDmitri Vereshchagin2025-07-271-2/+2
| | | | | | | | | | | | | | | | groff 1.23.0 added .MR to its -man macro package. The NEWS file states that the inclusion of the macro "was prompted by its introduction to Plan 9 from User Space's troff in August 2020." From d32deab it seems that the name for Plan 9 from User Space's implementation was suggested by groff maintainer G. Brandon Robinson. Not sure if the intention was to make these definitions compatible, but it would be nice if they were. Currently, Plan 9 from User Space's .MR expects its second argument to be parenthesized. groff's .MR does not. This results in extra parentheses appearing in manual references when viewing Plan 9 from User Space's manual pages on a system using groff.
* man: don't paginate when using nroffAnthony Sorace2025-01-291-1/+3
| | | | | | This tells bin/man to set the register L to very high to avoid pagination and updates tmac/tmac.an to use that value, if it's set, to set the page length. This is per Plan 9's rc/bin/man and sys/lib/tmac/tmac.an.
* tmac: rename IM (italic manual) to MR (manual reference)Russ Cox2020-08-151-1/+4
| | | | Suggested by G. Brandon Robinson.
* tmac: introduce real manual reference macro instead of overloading IRRuss Cox2020-08-131-1/+6
| | | | | | | | | | | The overloading of IR emits magic \X'...' sequences that turn into HTML manual links. But not all such IR invocations should be manual links; those had to be written to avoid the IR macro before. Worse, the \X'...' ending the IR causes troff to emit only a single space after a period. Defining a new IM macro for manual references fixes both problems. Fixes #441.
* tmac: fix troff -ms .KS after .1CRuss Cox2020-01-131-6/+6
| | | | Fixes #233.
* tmac.an: insert spaces after .?? request namesRuss Cox2008-11-111-308/+308
|
* new from plan 9rsc2006-05-061-68/+5
|
* new fontsrsc2006-03-192-4/+23
|
* addrsc2006-02-213-2/+165
|
* Add tmac.pm.rsc2005-09-131-0/+966
|
* set HT to 1 in html modersc2005-03-181-0/+1
|
* better HRrsc2005-01-161-1/+1
|
* better hrefrsc2005-01-141-1/+2
|
* checkpointrsc2005-01-141-0/+3
|
* Many small edits.rsc2005-01-132-3/+8
|
* add \*9 stringrsc2005-01-111-0/+1
|
* Patch paths.wkj2004-05-177-8/+8
|
* For mpm.wkj2004-05-1613-0/+827
|
* More files!rsc2004-05-1532-0/+15535