wmii

git clone git://oldgit.suckless.org/wmii/
Log | Files | Refs | README | LICENSE

commit 334694882636db39b2b82e8344ab5f62c4db25ae
parent 3e60262324fd5583c3e773fb94677d89b8124ee0
Author: Denis Grelich <denisg@suckless.org>
Date:   Thu,  4 Jan 2007 02:22:07 +0100

tags and view names '.', '..' and '/' are now caught in wmiiwm

Diffstat:
client.c | 7+++++--
rc/wmiirc | 3+--
view.c | 6++++--
3 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/client.c b/client.c @@ -699,6 +699,7 @@ apply_tags(Client *c, const char *tags) { char *toks[32]; strncpy(buf, tags, sizeof(buf)); + trim(buf, " \t/"); if(!(n = ixp_tokenize(toks, 31, buf, '+'))) return; for(i=0, j=0; i < n; i++) { @@ -706,13 +707,15 @@ apply_tags(Client *c, const char *tags) { c->floating = True; else if(!strncmp(toks[i], "!", 2)) toks[j++] = view ? screen->sel->name : "NULL"; - else if(strncmp(toks[i], "sel", 4)) + else if(strncmp(toks[i], "sel", 4) + && strncmp(toks[i], ".", 2) + && strncmp(toks[i], "..", 3)) toks[j++] = toks[i]; } c->tags[0] = '\0'; qsort(toks, j, sizeof(char *), compare_tags); len = sizeof(c->tags); - if(!j) toks[j++] = "NULL"; + if(!j) return; for(i=0, n=0; i < j && len > 1; i++) if(!n || strcmp(toks[i], toks[n-1])) { if(i) diff --git a/rc/wmiirc b/rc/wmiirc @@ -20,8 +20,7 @@ conf_which () { tagsmenu() { tag=`wmiir read /tag/sel/ctl` - tags=`wmiir ls /tag | sed 's|/||; /^sel$/d' | awk "BEGIN{print \"$tag\"} !/^$tag\$/" | $DMENU \ - | sed 's/^\.\.\?$//; s/^\.\.\?+//g; s/+\.\.\?$//g; s/+\.\.\?+/+/g; s/\W//'` + tags=`wmiir ls /tag | sed 's|/||; /^sel$/d' | awk "BEGIN{print \"$tag\"} !/^$tag\$/" | $DMENU` test -n "$tags" && xwrite $@ "$tags" } diff --git a/view.c b/view.c @@ -135,10 +135,12 @@ select_view(const char *arg) { char buf[256]; strncpy(buf, arg, sizeof(buf)); - trim(buf, " \t+"); + trim(buf, " \t+/"); if(!strlen(buf)) return; - assign_sel_view(get_view(arg)); + if(!strncmp(buf, ".", 2) || !strncmp(buf, "..", 3)) + return; + assign_sel_view(get_view(buf)); update_views(); /* performs focus_view */ }