9term: hold mode back door

R=rsc
http://codereview.appspot.com/5248056
This commit is contained in:
Russ Cox 2011-10-11 09:34:25 -04:00
parent f9c8cdb5a6
commit 0e881c054a
2 changed files with 23 additions and 16 deletions

View file

@ -468,9 +468,14 @@ label(Rune *sr, int n)
dir = smprint("%.*S", (el-1)-(sl+3), sl+3);
if(dir){
drawsetlabel(dir);
free(w->dir);
w->dir = dir;
if(strcmp(dir, "*9term-hold+") == 0) {
w->holding = 1;
wrepaint(w);
} else {
drawsetlabel(dir);
free(w->dir);
w->dir = dir;
}
}
/* remove trailing /-sysname if present */

View file

@ -598,20 +598,22 @@ label(char *sr, int n)
return n;
*r = 0;
/*
* add /-sysname if not present
*/
snprint(wdir, sizeof wdir, "name %s", sl+3);
p = strrchr(wdir, '/');
if(p==nil || *(p+1) != '-'){
p = wdir+strlen(wdir);
if(*(p-1) != '/')
*p++ = '/';
*p++ = '-';
strcpy(p, name);
if(strcmp(sl+3, "*9term-hold+") != 0) {
/*
* add /-sysname if not present
*/
snprint(wdir, sizeof wdir, "name %s", sl+3);
p = strrchr(wdir, '/');
if(p==nil || *(p+1) != '-'){
p = wdir+strlen(wdir);
if(*(p-1) != '/')
*p++ = '/';
*p++ = '-';
strcpy(p, name);
}
strcat(wdir, "\n0\n");
fswrite(ctlfd, wdir, strlen(wdir));
}
strcat(wdir, "\n0\n");
fswrite(ctlfd, wdir, strlen(wdir));
memmove(sl, el, er-el);
n -= (el-sl);