resurrect mg' no-tab-mode
authorop <op@openbsd.org>
Mon, 17 Apr 2023 09:49:04 +0000 (09:49 +0000)
committerop <op@openbsd.org>
Mon, 17 Apr 2023 09:49:04 +0000 (09:49 +0000)
commit3873338219a8751b86d9f9c7a4899d5b5173d59b
tree380cb51f3660443c373af67d043a1af85162f670
parentafe6f64c816985297ca766d9fd176491dc92f52f
resurrect mg' no-tab-mode

It's a mode that makes mg insert spaces up to the next tab stop upon
pressing TAB, along with the various tweaks needed in other places so
for e.g. auto-indent-mode also uses spaces.

This is not just an unifdef NOTAB: even under no-tab-mode mg should
consider literal TAB characters wide up to the next tab stop, while the
hidden code considered hard tabs to be just control character (i.e. ^I)
with width of two columns.  I'm also introducing the helper function
doindent() in utils.c to de-obfuscate the insertion of tabs/spaces until
the given column.

ok tb@
usr.bin/mg/basic.c
usr.bin/mg/cmode.c
usr.bin/mg/def.h
usr.bin/mg/display.c
usr.bin/mg/funmap.c
usr.bin/mg/keymap.c
usr.bin/mg/match.c
usr.bin/mg/mg.1
usr.bin/mg/modes.c
usr.bin/mg/paragraph.c
usr.bin/mg/util.c