Stefan Tibus <[EMAIL PROTECTED]> once said:
> 4) the filesystem suffers from several bugs
> a) wmiir read /tag or /def/tag or /ws/tag give the same output
> though not all of them are shown when reading the directories
> b) the same applies to "tags"
> c) wmiir read /ws and wmiir read /ws/sel only show client 0
> and others (e.g. 1) are accessible
The attached patch fixes the issues described in 4a-b. It was just a
case of falling through cases. :)
The behaviour in 4c, however, is correct. /ws shows the namespace of the
current workspace, including the areas of that workspace. For example,
if you had two columns and focus was on the second, /ws would look like:
sh% wmiir read /ws
d-r-x------ apm apm 0 Sun Mar 19 23:50:59 2006 0
d-r-x------ apm apm 0 Sun Mar 19 23:50:59 2006 1
---w------- apm apm 0 Sun Mar 19 23:50:59 2006 ctl
d-r-x------ apm apm 0 Sun Mar 19 23:50:59 2006 sel
--rw------- apm apm 1 Sun Mar 19 23:50:59 2006 tag
0 is the floating area, 1 is the first column, and sel is the second
column. You can still access /ws/2 but listing it as sel has advantages.
For /ws/sel, the client namespaces in the selected area are listed. If
you have a column with three clients and focus is on the first client,
/ws/sel would look like:
d-r-x------ apm apm 0 Mon Mar 20 00:00:59 2006 1
d-r-x------ apm apm 0 Mon Mar 20 00:00:59 2006 2
---w------- apm apm 0 Mon Mar 20 00:00:59 2006 ctl
--rw------- apm apm 5 Mon Mar 20 00:00:59 2006 mode
d-r-x------ apm apm 0 Mon Mar 20 00:00:59 2006 sel
Here, sel is the namespace of client 0 (in respect to the area), 1 is
client 1, and 2 is client 2.
regards,
ality
--
"The right to be left alone is indeed the beginning of all freedom."
diff -r 6fae6f4c5e82 cmd/wm/fs.c
--- a/cmd/wm/fs.c Sun Mar 19 22:50:49 2006 +0100
+++ b/cmd/wm/fs.c Sun Mar 19 23:40:54 2006 -0800
@@ -401,10 +401,20 @@ mkqid(Qid *dir, char *wname, Qid *new)
new->type = IXP_QTFILE;
new->path = mkqpath(type, qpath_i1id(dir->path),
qpath_i2id(dir->path), qpath_i3id(dir->path));
break;
+ case FsFtag:
+ if(dir_i1 == -1 || dir_type != FsDws)
+ return -1;
+ new->type = IXP_QTFILE;
+ new->path = mkqpath(type, qpath_i1id(dir->path),
qpath_i2id(dir->path), qpath_i3id(dir->path));
+ break;
case FsFgeom:
case FsFname:
case FsFclass:
+ if(dir_type == FsDroot)
+ return -1;
case FsFtags:
+ if(dir_type != FsDroot && dir_type != FsDGclient && dir_type !=
FsDclient)
+ return -1;
if((dir_type == FsDclient) && ((dir_i1 == -1 || dir_i2 == -1 ||
dir_i3 == -1)))
return -1;
else if((dir_type == FsDGclient) && (dir_i1 == -1))
_______________________________________________
[email protected] mailing list
http://wmii.de/cgi-bin/mailman/listinfo/wmii