1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
typedef struct regnode { char flags; } regnode; extern const unsigned char A[]; char *foo (regnode *c, char *s, int norun) { int uskip; while (s + (uskip = A[*s])) { if ((c->flags || bar (c)) && norun) goto got_it; s += uskip; } got_it: return s; }