plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

commit d0d440860f2000a1560abb3f593cdc325fcead4c
parent 7b0b2065faf449f820b092afb74cf0af2dae79a3
Author: Roger Peppe <rogpeppe@gmail.com>
Date:   Tue, 19 Oct 2021 17:08:45 +0100

src/cmd/acme: provide info on presense or absence of undo history (#528)

It's sometimes useful to know whether there's been editing activity
in a window. This PR adds that information to the ctl file.

Change-Id: I21a342ac636dd5c7701b3ed560e3526867329c2c
Diffstat:
Mman/man4/acme.4 | 7++++---
Msrc/cmd/acme/fns.h | 2++
Msrc/cmd/acme/wind.c | 4++--
3 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/man/man4/acme.4 b/man/man4/acme.4 @@ -184,9 +184,10 @@ is always appended; the file offset is ignored. .B ctl may be read to recover the five numbers as held in the .B index -file, described above, plus three more fields: the width of the -window in pixels, the name of the font used in the window, -and the width of a tab character in pixels. +file, described above, plus five more fields: the width of the +window in pixels; the name of the font used in the window; +the width of a tab character in pixels; a 1 if there is undo history, 0 otherwise; +a 1 if there is redo history, 0 otherwise. Text messages may be written to .B ctl to affect the window. diff --git a/src/cmd/acme/fns.h b/src/cmd/acme/fns.h @@ -25,6 +25,8 @@ void savemouse(Window*); int restoremouse(Window*); void clearmouse(void); void allwindows(void(*)(Window*, void*), void*); +uint seqof(Window*, int); + uint loadfile(int, uint, int*, int(*)(void*, uint, Rune*, int), void*, DigestState*); void movetodel(Window*); diff --git a/src/cmd/acme/wind.c b/src/cmd/acme/wind.c @@ -689,8 +689,8 @@ winctlprint(Window *w, char *buf, int fonts) sprint(buf, "%11d %11d %11d %11d %11d ", w->id, w->tag.file->b.nc, w->body.file->b.nc, w->isdir, w->dirty); if(fonts) - return smprint("%s%11d %q %11d ", buf, Dx(w->body.fr.r), - w->body.reffont->f->name, w->body.fr.maxtab); + return smprint("%s%11d %q %11d %11d %11d ", buf, Dx(w->body.fr.r), + w->body.reffont->f->name, w->body.fr.maxtab, seqof(w, 1) != 0, seqof(w, 0) != 0); return buf; }