Set page(1)'s window label to the name of the currently displayed file. Reference: /n/sources/patch/applied/page-label Date: Thu Jul 7 05:39:34 CES 2011 Signed-off-by: lyndon@orthanc.ca --- /sys/src/cmd/page/gfx.c Thu Jul 7 05:38:12 2011 +++ /sys/src/cmd/page/gfx.c Thu Jul 7 05:38:10 2011 @@ -87,6 +87,7 @@ static Image* gfxdrawpage(Document *doc, int page) { + setlabel(gfxpagename(doc, page)); GfxInfo *gfx = doc->extra; return convert(gfx->g+page); } --- /sys/src/cmd/page/page.h Thu Jul 7 05:38:16 2011 +++ /sys/src/cmd/page/page.h Thu Jul 7 05:38:14 2011 @@ -25,6 +25,7 @@ Document *inittroff(Biobuf*, int, char**, uchar*, int); Document *initdvi(Biobuf*, int, char**, uchar*, int); Document *initmsdoc(Biobuf*, int, char**, uchar*, int); +void setlabel(char *); void viewer(Document*); extern Cursor reading; --- /sys/src/cmd/page/util.c Thu Jul 7 05:38:20 2011 +++ /sys/src/cmd/page/util.c Thu Jul 7 05:38:18 2011 @@ -129,3 +129,20 @@ _exits(0); return -1; /* not reached */ } + +/* try to update the label, but don't fail on any errors */ +void +setlabel(char *label) +{ + char *s; + int fd; + + s = smprint("%s/label", display->windir); + fd = open(s, OWRITE); + free(s); + if(fd >= 0){ + write(fd, label, strlen(label)); + close(fd); + } + werrstr(""); +} --- /sys/src/cmd/page/view.c Thu Jul 7 05:38:25 2011 +++ /sys/src/cmd/page/view.c Thu Jul 7 05:38:22 2011 @@ -317,6 +317,8 @@ midmenu.gen = 0; midmenu.lasthit = Next; + if(doc->docname != nil) + setlabel(doc->docname); showpage(page, &menu); esetcursor(nil);