FOR_KEYS
FOR_KEYS(i, scanned[i] = 0);
FOR_KEYS(i, changed[i] = sc->mxkp_pressed[i] ^ scanned[i]);
FOR_KEYS(i, anychanged |= changed[i]);
FOR_KEYS(i, changed[i] &= sc->mxkp_pressed[i] ^ scanned[i]);
FOR_KEYS(i, anychanged |= changed[i]);
FOR_KEYS(i, set[i] = changed[i] & scanned[i]);
FOR_KEYS(i, cleared[i] = changed[i] & sc->mxkp_pressed[i]);
FOR_KEYS(i, sc->mxkp_pressed[i] &= ~cleared[i]);
FOR_KEYS(i, sc->mxkp_pressed[i] |= set[i]);
FOR_KEYS(i, last_val[i] = scan[i]);
FOR_KEYS(i, scan[i] = 0);
FOR_KEYS(i, anyset |= (scan[i] ^ last_val[i]) & mask[i]);
FOR_KEYS(i, last_val[i] = scan[i]);
FOR_KEYS(i, sc->mxkp_pressed[i] = 0);