void cyclelayout(const Arg *arg) { Layout *l; for (l = (Layout *)layouts; l != selmon->lt[selmon->sellt]; l++); if (arg->i > 0) { if (l->symbol && (l + 1)->symbol) setlayout(&((Arg) { .v = (l + 1) })); else setlayout(&((Arg) { .v = layouts })); } else { if (l != layouts && (l - 1)->symbol) setlayout(&((Arg) { .v = (l - 1) })); else setlayout(&((Arg) { .v = &layouts[LENGTH(layouts) - 2] })); } }