File: groff.info, Node: Built-in Registers, Prev: Assigning Register Formats, Up: Registers 5.8.5 Built-in Registers ------------------------ Predefined registers whose identifiers start with a dot are read-only. Many are Boolean-valued, interpolating a true or false value testable with the 'if', 'ie', or 'while' requests. Some read-only registers are string-valued, meaning that they interpolate text. *Caution:* Built-in registers are subject to removal like others; once removed, they can be recreated only as normal writable registers and will not reflect formatter state. A register name (without the dot) is often associated with a request of the same name. A complete listing of all built-in registers can be found in *note Register Index::. We present here a few built-in registers that are not described elsewhere in this manual; they have to do with invariant properties of GNU 'troff', or obtain information about the formatter's command-line options, processing progress, or the operating environment. '\n[.A]' Approximate output is being formatted (Boolean-valued); see 'groff' '-a' option (*note Groff Options::). '\n[.c]' '\n[c.]' Input line number. 'c.' is a writable synonym, affecting subsequent interpolations of both '.c' and 'c.'. '\n[.F]' Name of input file (string-valued). '\n[.g]' Always true in GNU 'troff' (Boolean-valued). Documents can use this to ask the formatter if it claims 'groff' compatibility. '\n[.P]' Output page selection status (Boolean-valued); see 'groff' '-o' option (*note Groff Options::). '\n[.R]' Count of available unused registers; always 10,000 in GNU 'troff'.(1) (*note Built-in Registers-Footnote-1::) '\n[.T]' Indicator of output device selection (Boolean-valued); see 'groff' '-T' option (*note Groff Options::). '\n[.U]' Unsafe mode enablement status (Boolean-valued); see 'groff' '-U' option (*note Groff Options::). '\n[.x]' Major version number of the running GNU 'troff' formatter. For example, if the version number is 1.23.0, then '.x' contains '1'. '\n[.y]' Minor version number of the running GNU 'troff' formatter. For example, if the version number is 1.23.0, then '.y' contains '23'. '\n[.Y]' Revision number of the running GNU 'troff' formatter. For example, if the version number is 1.23.0, then '.Y' contains '0'. '\n[$$]' Process identifier (PID) of the GNU 'troff' program in its operating environment. Date- and time-related registers are set per the local time as determined by 'localtime(3)' when the formatter launches. This initialization can be overridden by 'SOURCE_DATE_EPOCH' and 'TZ'; see *note Environment::. '\n[seconds]' Count of seconds elapsed in the minute (0-60). '\n[minutes]' Count of minutes elapsed in the hour (0-59). '\n[hours]' Count of hours elapsed since midnight (0-23). '\n[dw]' Day of the week (1-7; 1 is Sunday). '\n[dy]' Day of the month (1-31). '\n[mo]' Month of the year (1-12). '\n[year]' Gregorian year. '\n[yr]' Gregorian year minus 1900. This register is incorrectly documented in the AT&T 'troff' manual as storing the last two digits of the current year. That claim stopped being true in 2000. Old 'troff' input that looks like: '\" The year number is a surprise after 1999. This document was formatted in 19\n(yr. can be corrected to: This document was formatted in \n[year]. or, for portability across many 'roff' programs, to the following. .nr y4 1900+\n(yr This document was formatted in \n(y4.
