adj: delay the effect of .in, .ll, and .ti for partial lines
cp: support \n+x and \n-x
ren: .ne should not cause break
tr: add .po and handle requests that save their previous value
tr: tabs are trimmed for request arguments
xroff: \*(.P is TROFFROOT
xroff: read files passed as arguments
ren: \v and \h, absolute positions with |, and .ti
tr: implement conditional input
in: fix finding the correct argument
eval: evaluate integer expressions
ren: page and diversion trap support
ren: preserve line spacing in diversions
out: \v vertical movement escape
ren: diversion dl and dn registers
ren: support nested diversions
reg: restore registers after diverted lines
reg: allow reimplementing built-in macros
reg: move environment support to reg.c
basic environment support
adj: simplify line break handling after blank or indented lines
adj: import the text filling logic
tr: skip everything until eol after macro definitions
cp: initialize arg in cp_arg()
basic diversion support
xroff: use OUT macro for producing troff output
cp: handle concealed newlines and comments
parse arguments of every escape sequence
tr: start a new page when passing \n(.p
ren: handle newlines that cause .sp
tr: insert newlines only once in .de
tr: remove the superfluous argc argument of macros
xroff: copyright notice
out: rename out_put() to output()
tr: support quoted arguments
tr: handle the second argument of .de
tr: improve argument parsing for register names
tr: defining macros with .de
cp: .ds and \*x for string register
ren: implement \s and \f
dev: charwid() should round to the closest number
extract out.c for printing troff code for a line
interpret scaling indicators
cp: expand \nx and \n(xy
change vertical position just before writing a line