ref: be8b66b5f49e5ea3891d531e4b7c4479ce18e46c
dir: /vdir-tweaks/
diff 8154ecb3fc6c1265e0d5c0ab4288ad514463924d uncommitted
--- a/vdir.c
+++ b/vdir.c
@@ -29,10 +29,10 @@
enum
{
- Mdelete,
Mrename,
+ Mdelete,
};
-char *menu2str[] = { "delete", "rename", nil };
+char *menu2str[] = { "rename", "delete", nil };
Menu menu2 = { menu2str };
const char ellipsis[] = "…";
@@ -252,7 +252,7 @@
{
char cmd[300];
- snprint(cmd, sizeof cmd, "rm -r %s/%s", path, name);
+ snprint(cmd, sizeof cmd, "rm %s/%s", path, name);
if(doexec(cmd) < 0)
showerrstr("Cannot remove file/directory");
else
@@ -272,7 +272,7 @@
}
int
-plumbfile(char *path, char *name)
+plumbfile(char *path, char *name, int isdir)
{
char *f;
int e;
@@ -279,9 +279,12 @@
f = smprint("%s/%s", path, name);
e = access(f, 0)==0;
- if(e)
- plumbsendtext(plumbfd, "vdir", nil, path, name);
- else{
+ if(e){
+ if(isdir)
+ plumbsendtext(plumbfd, "vdir", nil, nil, f);
+ else
+ plumbsendtext(plumbfd, "vdir", nil, path, name);
+ }else{
alert("Error", "File does not exist anymore", nil, mctl, kctl);
loaddirs();
redraw();
@@ -591,6 +594,15 @@
if(scrolling){
dy = 1+nlines*((double)(m.xy.y - scrollr.min.y)/Dy(scrollr));
scrollup(dy);
+ }else if(ptinrect(m.xy, viewr)){
+ n = indexat(m.xy);
+ if(n==-1)
+ return;
+ d = dirs[offset+n];
+ if(d.qid.type & QTDIR){
+ cd(d.name);
+ redraw();
+ }
}
}else if(m.buttons&2){
if(ptinrect(m.xy, viewr)){
@@ -598,6 +610,7 @@
if(n==-1)
return;
d = dirs[offset+n];
+ menu2.lasthit = 0;
switch(menuhit(2, mctl, &menu2, nil)){
case Mdelete:
rm(d.name);
@@ -633,7 +646,7 @@
redraw();
}
}else if(ptinrect(m.xy, pathr)){
- plumbsendtext(plumbfd, "vdir", nil, nil, path);
+ plumbsendtext(plumbfd, "vdirw", nil, nil, path);
}else if(ptinrect(m.xy, newdirr)){
m.xy = cept("Create directory");
if(enter("Create directory", buf, sizeof buf, mctl, kctl, nil)>0){
@@ -651,13 +664,8 @@
if(n==-1)
return;
d = dirs[offset+n];
- if(d.qid.type & QTDIR){
- cd(d.name);
- redraw();
- }else{
- if(plumbfile(path, d.name))
- flash(n);
- }
+ if(plumbfile(path, d.name, d.qid.type & QTDIR))
+ flash(n);
}
}else if(m.buttons&8)
scrollup(Slowscroll);