diff options
author | cinap_lenrek <cinap_lenrek@centraldogma> | 2011-11-19 19:14:46 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@centraldogma> | 2011-11-19 19:14:46 +0100 |
commit | d58b30d90ccb20934ac0faac5fd674bfcb5588aa (patch) | |
tree | 7e6afd28854c678d7051c41f1ec81b6bba5a73ea | |
parent | f3a21be163d919490f6e4eab464b3146228f3661 (diff) | |
download | plan9front-d58b30d90ccb20934ac0faac5fd674bfcb5588aa.tar.xz |
mothra: query screendump arguments
-rw-r--r-- | sys/src/cmd/mothra/mothra.c | 28 |
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; |