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
This commit is contained in:
Roger Peppe 2021-10-19 17:08:45 +01:00 committed by GitHub
parent 7b0b2065fa
commit d0d440860f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 5 deletions

View file

@ -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.

View file

@ -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*);

View file

@ -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;
}