diff options
author | okan <okan> | 2016-10-04 15:52:32 +0000 |
---|---|---|
committer | okan <okan> | 2016-10-04 15:52:32 +0000 |
commit | 5c13775d31ce277bba94c68daff12cf50224aba0 (patch) | |
tree | 210c8ac83b54ec23d1b2e0d6917ca7d7cf1d416a /client.c | |
parent | 9306c1fbd3e491b9dcdcbb8587460296843a10ce (diff) | |
download | cwm-5c13775d31ce277bba94c68daff12cf50224aba0.tar.gz cwm-5c13775d31ce277bba94c68daff12cf50224aba0.tar.xz cwm-5c13775d31ce277bba94c68daff12cf50224aba0.zip |
Calculate client nameqlen in client_setname(), the only place it's
needed/used.
Diffstat (limited to 'client.c')
-rw-r--r-- | client.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/client.c b/client.c index 1de9290..ce7392e 100644 --- a/client.c +++ b/client.c @@ -605,6 +605,7 @@ client_setname(struct client_ctx *cc) { struct winname *wn; char *newname; + int i = 0; if (!xu_getstrprop(cc->win, ewmh[_NET_WM_NAME], &newname)) if (!xu_getstrprop(cc->win, XA_WM_NAME, &newname)) @@ -621,19 +622,19 @@ client_setname(struct client_ctx *cc) wn = xmalloc(sizeof(*wn)); wn->name = newname; TAILQ_INSERT_TAIL(&cc->nameq, wn, entry); - cc->nameqlen++; match: cc->name = wn->name; - /* Now, do some garbage collection. */ - if (cc->nameqlen > CLIENT_MAXNAMEQLEN) { - if ((wn = TAILQ_FIRST(&cc->nameq)) == NULL) - errx(1, "client_setname: window name queue empty"); + /* Do some garbage collection. */ + TAILQ_FOREACH(wn, &cc->nameq, entry) + i++; + if (i > Conf.nameqlen) { + wn = TAILQ_FIRST(&cc->nameq); TAILQ_REMOVE(&cc->nameq, wn, entry); free(wn->name); free(wn); - cc->nameqlen--; + i--; } } |