ref: 59e24f9788b8f6a51dfe7cb95b0c44aad637b313
parent: df5e6592517971f3028e99ad62e250573b621822
author: cinap_lenrek <cinap_lenrek@centraldogma>
date: Sat Nov 19 14:14:46 EST 2011
mothra: query screendump arguments
--- a/sys/src/cmd/mothra/mothra.c
+++ b/sys/src/cmd/mothra/mothra.c
@@ -572,7 +572,7 @@
void screendump(char *name, int full){Image *b;
int fd;
- fd=create(name, OWRITE|OTRUNC, 0666);
+ fd=create(name, OWRITE, 0666);
if(fd==-1){ message("can't create %s", name);return;
@@ -614,6 +614,9 @@
* user typed a command.
*/
void docmd(Panel *p, char *s){+ char buf[NNAME];
+ int c;
+
USED(p);
while(*s==' ' || *s=='\t') s++;
/*
@@ -621,7 +624,7 @@
*/
if(s[0]!='\0' && s[1]!='\0' && s[1]!=' ')
geturl(s, GET, 0, 0, 0);
- else switch(s[0]){+ else switch(c = s[0]){default:
message("Unknown command %s, type h for help", s);break;
@@ -648,22 +651,17 @@
else
message("Usage: j index");break;
+ case 'w':
case 'W':
s = arg(s);
- if(s=='\0'){- message("Usage: W file");- break;
+ if(s==0 || *s=='\0'){+ snprint(buf, sizeof(buf), "dump.bit");
+ if(eenter("Screendump to", buf, sizeof(buf), &mouse) <= 0)+ break;
+ s = buf;
}
- screendump(s, 1);
+ screendump(s, c == 'W');
break;
- case 'w':
- s = arg(s);
- if(s=='\0'){- message("Usage: w file");- break;
- }
- screendump(s, 0);
- break;
case 's':
s = arg(s);
if(!selection){@@ -671,8 +669,6 @@
break;
}
if(s==0 || *s=='\0'){- static char buf[NNAME];
-
snprint(buf, sizeof(buf), "%s", urltofile(selection));
if(eenter("Save to", buf, sizeof(buf), &mouse) <= 0)break;
--
⑨