diff options
author | Okan Demirmen <okan@cvs.openbsd.org> | 2016-10-04 15:52:33 +0000 |
---|---|---|
committer | Okan Demirmen <okan@cvs.openbsd.org> | 2016-10-04 15:52:33 +0000 |
commit | e9200e3da91dc207982a5af90becce3f60b42f28 (patch) | |
tree | 40ca98871200256de10194d33ebcac5705080766 | |
parent | a7380266d2a6c4a2b098d881cbad6ffb22193e1e (diff) |
Calculate client nameqlen in client_setname(), the only place it's
needed/used.
-rw-r--r-- | app/cwm/calmwm.h | 5 | ||||
-rw-r--r-- | app/cwm/client.c | 15 | ||||
-rw-r--r-- | app/cwm/conf.c | 3 |
3 files changed, 12 insertions, 11 deletions
diff --git a/app/cwm/calmwm.h b/app/cwm/calmwm.h index b70c4db32..d3b81b944 100644 --- a/app/cwm/calmwm.h +++ b/app/cwm/calmwm.h @@ -15,7 +15,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $OpenBSD: calmwm.h,v 1.322 2016/10/04 15:18:20 okan Exp $ + * $OpenBSD: calmwm.h,v 1.323 2016/10/04 15:52:32 okan Exp $ */ #ifndef _CALMWM_H_ @@ -187,8 +187,6 @@ struct client_ctx { int flags; int stackingorder; struct winname_q nameq; -#define CLIENT_MAXNAMEQLEN 5 - int nameqlen; char *name; char *label; char *matchname; @@ -284,6 +282,7 @@ struct conf { struct cmd_q cmdq; int ngroups; int stickygroups; + int nameqlen; int bwidth; int mamount; int snapdist; diff --git a/app/cwm/client.c b/app/cwm/client.c index 9268d05f0..9644a982c 100644 --- a/app/cwm/client.c +++ b/app/cwm/client.c @@ -15,7 +15,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $OpenBSD: client.c,v 1.227 2016/10/03 14:42:34 okan Exp $ + * $OpenBSD: client.c,v 1.228 2016/10/04 15:52:32 okan Exp $ */ #include <sys/types.h> @@ -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--; } } diff --git a/app/cwm/conf.c b/app/cwm/conf.c index 156211dfe..6b523fbfb 100644 --- a/app/cwm/conf.c +++ b/app/cwm/conf.c @@ -15,7 +15,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $OpenBSD: conf.c,v 1.211 2016/10/04 15:18:20 okan Exp $ + * $OpenBSD: conf.c,v 1.212 2016/10/04 15:52:32 okan Exp $ */ #include <sys/types.h> @@ -259,6 +259,7 @@ conf_init(struct conf *c) c->mamount = 1; c->snapdist = 0; c->ngroups = 10; + c->nameqlen = 5; TAILQ_INIT(&c->ignoreq); TAILQ_INIT(&c->cmdq); |