summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@centraldogma>2011-11-19 19:14:46 +0100
committercinap_lenrek <cinap_lenrek@centraldogma>2011-11-19 19:14:46 +0100
commitd58b30d90ccb20934ac0faac5fd674bfcb5588aa (patch)
tree7e6afd28854c678d7051c41f1ec81b6bba5a73ea
parentf3a21be163d919490f6e4eab464b3146228f3661 (diff)
downloadplan9front-d58b30d90ccb20934ac0faac5fd674bfcb5588aa.tar.xz
mothra: query screendump arguments
-rw-r--r--sys/src/cmd/mothra/mothra.c28
1 files changed, 12 insertions, 16 deletions
diff --git a/sys/src/cmd/mothra/mothra.c b/sys/src/cmd/mothra/mothra.c
index 82865bc42..73829252f 100644
--- a/sys/src/cmd/mothra/mothra.c
+++ b/sys/src/cmd/mothra/mothra.c
@@ -572,7 +572,7 @@ void save(int ifd, char *name){
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 @@ char *urltofile(Url *url){
* 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 @@ void docmd(Panel *p, char *s){
*/
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,21 +651,16 @@ void docmd(Panel *p, char *s){
else
message("Usage: j index");
break;
- case 'W':
- s = arg(s);
- if(s=='\0'){
- message("Usage: W file");
- break;
- }
- screendump(s, 1);
- 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, 0);
+ screendump(s, c == 'W');
break;
case 's':
s = arg(s);
@@ -671,8 +669,6 @@ void docmd(Panel *p, char *s){
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;