commit d0d440860f2000a1560abb3f593cdc325fcead4c from: Roger Peppe via: GitHub date: Tue Oct 19 16:08:45 2021 UTC 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 commit - 7b0b2065faf449f820b092afb74cf0af2dae79a3 commit + d0d440860f2000a1560abb3f593cdc325fcead4c blob - a285b3b8954ba5773766573124da4ed6ac3673b9 blob + f55a85b75b11ec7be5cb4ca1a36cc42648726dd0 --- man/man4/acme.4 +++ 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. blob - c0339c23069ae9c9929f4d808580d1a8c770a6a9 blob + 969db417f2a7c78e16ddc8273a246a0f37522390 --- src/cmd/acme/fns.h +++ 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*); blob - 0cba59205b164d841b11947980baf9d523e95cbe blob + 98c97368c6f01df3e10a1a74ed4a32c7c71bf710 --- src/cmd/acme/wind.c +++ 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; }