1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
struct z_candidate { struct z_candidate *next;int viable;}; int pedantic; static struct z_candidate * splice_viable (cands) struct z_candidate *cands; { struct z_candidate **p = &cands; for (; *p; ) { if (pedantic ? (*p)->viable == 1 : (*p)->viable) p = &((*p)->next); else *p = (*p)->next; } return cands; }