summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevin J. Pohly <djpohly@gmail.com>2020-05-03 00:41:37 -0500
committerDevin J. Pohly <djpohly@gmail.com>2020-05-03 00:41:37 -0500
commitb10ef0e80a3c610d8ec0502b042df77df6f6ce1c (patch)
tree85395c32cedc988514dc81876c045979b460ef9a
parent2e7b5310b4271018f66fd6813ba1ef46663d0d81 (diff)
loop over array pointers directly
-rw-r--r--dwl.c42
1 files changed, 20 insertions, 22 deletions
diff --git a/dwl.c b/dwl.c
index 26659bf..94900c6 100644
--- a/dwl.c
+++ b/dwl.c
@@ -34,6 +34,7 @@
#define CLEANMASK(mask) (mask & ~WLR_MODIFIER_CAPS)
#define VISIBLEON(C, M) ((C)->mon == (M) && ((C)->tags & (M)->tagset[(M)->seltags]))
#define LENGTH(X) (sizeof X / sizeof X[0])
+#define END(A) ((A) + LENGTH(A))
#define TAGMASK ((1 << LENGTH(tags)) - 1)
/* enums */
@@ -271,7 +272,7 @@ buttonpress(struct wl_listener *listener, void *data)
struct wlr_keyboard *keyboard;
uint32_t mods;
Client *c;
- int i;
+ const Button *b;
switch (event->state) {
case WLR_BUTTON_PRESSED:;
@@ -282,11 +283,10 @@ buttonpress(struct wl_listener *listener, void *data)
keyboard = wlr_seat_get_keyboard(seat);
mods = wlr_keyboard_get_modifiers(keyboard);
- for (i = 0; i < LENGTH(buttons); i++) {
- if (event->button == buttons[i].button &&
- CLEANMASK(mods) == CLEANMASK(buttons[i].mod) &&
- buttons[i].func) {
- buttons[i].func(&buttons[i].arg);
+ for (b = buttons; b < END(buttons); b++) {
+ if (CLEANMASK(mods) == CLEANMASK(b->mod) &&
+ event->button == b->button && b->func) {
+ b->func(&b->arg);
return;
}
}
@@ -351,7 +351,7 @@ createmon(struct wl_listener *listener, void *data)
struct wlr_output *wlr_output = data;
struct wlr_output_mode *mode;
Monitor *m;
- int i;
+ const MonitorRule *r;
/* Some backends don't have modes. DRM+KMS does, and we need to set a mode
* before we can use the output. The mode is a tuple of (width, height,
@@ -370,15 +370,14 @@ createmon(struct wl_listener *listener, void *data)
m = wlr_output->data = calloc(1, sizeof(*m));
m->wlr_output = wlr_output;
m->tagset[0] = m->tagset[1] = 1;
- for (i = 0; i < LENGTH(monrules); i++) {
- if (!monrules[i].name ||
- !strcmp(wlr_output->name, monrules[i].name)) {
- m->mfact = monrules[i].mfact;
- m->nmaster = monrules[i].nmaster;
- wlr_output_set_scale(wlr_output, monrules[i].scale);
- wlr_xcursor_manager_load(cursor_mgr, monrules[i].scale);
- m->lt[0] = m->lt[1] = monrules[i].lt;
- wlr_output_set_transform(wlr_output, monrules[i].rr);
+ for (r = monrules; r < END(monrules); r++) {
+ if (!r->name || !strcmp(wlr_output->name, r->name)) {
+ m->mfact = r->mfact;
+ m->nmaster = r->nmaster;
+ wlr_output_set_scale(wlr_output, r->scale);
+ wlr_xcursor_manager_load(cursor_mgr, r->scale);
+ m->lt[0] = m->lt[1] = r->lt;
+ wlr_output_set_transform(wlr_output, r->rr);
break;
}
}
@@ -608,12 +607,11 @@ keybinding(uint32_t mods, xkb_keysym_t sym)
* processing.
*/
int handled = 0;
- int i;
- for (i = 0; i < LENGTH(keys); i++) {
- if (sym == keys[i].keysym &&
- CLEANMASK(mods) == CLEANMASK(keys[i].mod) &&
- keys[i].func) {
- keys[i].func(&keys[i].arg);
+ const Key *k;
+ for (k = keys; k < END(keys); k++) {
+ if (CLEANMASK(mods) == CLEANMASK(k->mod) &&
+ sym == k->keysym && k->func) {
+ k->func(&k->arg);
handled = 1;
}
}