ren: .br should flush the current partial word
char: unlike \s20, \s+20 should be parsed as \s+2\&0
eval: even for "&" and ":", only positive numbers are true
cp: skip all of the spaces after .if's open brace
Makefile: compatibility with openbsd
reg: modify y only if x is defined in .rn x y
tr: escaped spaces inside macro arguments
ren: ".ch xx" should remove the trap
reg: \n(.D is the directory containing current file
in: \n(.c when eof is reached
hyph: handle very long words in hyphenate()
roff: try x for -mx if both x.tmac and tmac.x are missing
font: allow .fmap to shadow characters
font: the third argument of .cs
wb: use SDEVWID() for glyph position adjustments
font: simplify font_featlg()
font: perform substitution rules in font order
font: rename some of font struct's fields
cp: never pass on \{ and \}
reg: extract num_inc() from num_get()
cp: handle conditional blocks with no spaces between .ie/.if and \{
ren: allow .tl with no arguments
ren: allow scale indicators for arguments of .ps
reg: \n[.ev] for the current environment name
reg: start with environment named "0"
fmt: mention that fmt.c does not perform hyphenation
font: inline glyph groups with only one glyph
font: "ggrp" lines in font descriptions define character groups
wb: call wb_putbuf() to mark hyphenation points
font: for positioning rules, always start from the current index
wb: scale glyph positioning adjustments according to wb->s
font: assign distinct hashes to rules with specific second glyphs
font: enable or disable ligatures and kerning in font_layout()
font: allocate rule->pats from the heap
font: prefer rules appearing first in the font
font: support alternative glyphs in gpos rules
font: support gsub/gpos context glyphs
wb: allow calls to wb_hmov() and wb_vmov() from wb_flushsub()
tr: handle invalid fonts in .ff
wb: find glyphs in the current font of word buffers
font: support advanced font features
hyph: make hcode_add() static
dev: the third argument of .fp can be a path
font: move font struct to font.c
wb: hyphenate, insert ligatures and kern after each subword
roff: prefer macro.tmac to tmac.macro for -mmacro
ren: do not execute tr.c requests when a character is queued in ren.c
char: break escape sequence reading functions
ren: \Z'xyz' restores current position after printing xyz
README: update the reference to neatmkfn
font: free font gdict and cdict in font_close()
hyph: ignore multi-character hcode mappings
hyph: clean up hy_dohyph()
hyph: read hcode mappings from the third argument of .hpf
hyph: read the correct file for the second argument of .hpf
hyph: overwrite hwhyph[] and hynums[] in hw_add() and hy_add()
ren: do not output completed lines unnecessarily in render_rec()
tr: clean up macrobody()
hyph: .hcode should behave like .tr
tr: do not call dict_put() unnecessarily
hyph: move the .hcode mapping to hcode_strcpy()
dict: reset dict->head in dict_init()
roff: call xmalloc() to report when neatroff is out of memory
hyph: stop at NARGS in tr_hcode()
hyph: load english hyphenation patterns with ".hpf"
dict: use dict struct where possible
hyph: allow utf-8 hyphenation patterns
ren: output completed lines with 'br
eval: report divide-by-zero errors
cp: support conditional interpolation with \?'cond@expr1@expr2@'
cp: passing arguments when interpolating strings
reg: store the current partial word in the environment
cp: \R'x n' is equivalent to .nr x n
ren: report invalid TR_DIVEND requests
cp: \E is an escape character when not in copy-mode
ren: replace \e with the current escape character
fmt: consider the whole paragraphs before traps
fmt: specifying sentence space
fmt: shrink word spaces with .ssh request
ren: executing traps while half of an input line is read
fmt: import the handling of HY_LAST and \p from ren.c
fmt: handle zero line length
hyph: search for hyphenation patterns in hyfind()
hyph: per starting character lists for the hyphenation dictionary
README: mention neateqn
fmt: preserve current font and size when hyphenating
ren: allow right-adjusted un-filled text
fmt: not hyphenating last lines if requested
fmt: new hyphenation support with penalties
fmt: filling whole paragraphs without hyphenating
fmt: collect words in fmt buffer for whole paragraphs
reg: \n[.neat] is always one!
adj: store the words as strings