I took a look. I don't think it would be hideously hacky to do something like ...#define EXECUTE_IF_SET_IN_BITMAP(BITMAP, MIN, BITNUM, ITER) \ for ((BITMAP)->ro_flag = true, \ bmp_iter_set_init (&(ITER), (BITMAP), (MIN), &(BITNUM)); \ (BITMAP)->ro_flag = bmp_iter_set (&(ITER), &(BITNUM)); \ bmp_iter_next (&(ITER), &(BITNUM)))
You should add a BREAK_FROM_EXECUTE_IF_SET(BITMAP) macro too, however. Paolo