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 .B ctl
may be read to recover the five numbers as held in the may be read to recover the five numbers as held in the
.B index .B index
file, described above, plus three more fields: the width of the file, described above, plus five more fields: the width of the
window in pixels, the name of the font used in the window, window in pixels; the name of the font used in the window;
and the width of a tab character in pixels. 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 Text messages may be written to
.B ctl .B ctl
to affect the window. to affect the window.

View file

@ -25,6 +25,8 @@ void savemouse(Window*);
int restoremouse(Window*); int restoremouse(Window*);
void clearmouse(void); void clearmouse(void);
void allwindows(void(*)(Window*, void*), void*); void allwindows(void(*)(Window*, void*), void*);
uint seqof(Window*, int);
uint loadfile(int, uint, int*, int(*)(void*, uint, Rune*, int), void*, DigestState*); uint loadfile(int, uint, int*, int(*)(void*, uint, Rune*, int), void*, DigestState*);
void movetodel(Window*); 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, sprint(buf, "%11d %11d %11d %11d %11d ", w->id, w->tag.file->b.nc,
w->body.file->b.nc, w->isdir, w->dirty); w->body.file->b.nc, w->isdir, w->dirty);
if(fonts) if(fonts)
return smprint("%s%11d %q %11d ", buf, Dx(w->body.fr.r), return smprint("%s%11d %q %11d %11d %11d ", buf, Dx(w->body.fr.r),
w->body.reffont->f->name, w->body.fr.maxtab); w->body.reffont->f->name, w->body.fr.maxtab, seqof(w, 1) != 0, seqof(w, 0) != 0);
return buf; return buf;
} }