-#define ADJUST_BOX(search,insidechrs,want, lim,LIMIT_MUST, TLBR,XY,increm) \
- for (;;) { \
- LIMIT_MUST( (search).tl.XY != (search).br.XY && \
- (search).tl.XY != (lim), \
- MR((search));MSB(#TLBR);MSB(#XY) ); \
- int got=0; \
- Point p=(search).tl; \
- for (p.XY=(search).TLBR.XY; \
- p.OTHERCOORD_##XY <= (search).br.OTHERCOORD_##XY; \
- p.OTHERCOORD_##XY++) \
- got += !!strchr(insidechrs, get_p(p)); \
- if (got >= (want)) \
- break; \
- (search).TLBR.XY += increm; \
+#define ADJUST_BOX(search,insidechrs,OP,want, lim,LIMIT_MUST, TLBR,XY,increm) \
+ for (;;) { \
+ LIMIT_MUST( (search).tl.XY != (search).br.XY && \
+ (search).tl.XY != (lim), \
+ MR((search));MSB(#TLBR);MSB(#XY) ); \
+ int got=0; \
+ Point p=(search).tl; \
+ for (p.XY=(search).TLBR.XY; \
+ p.OTHERCOORD_##XY <= (search).br.OTHERCOORD_##XY; \
+ p.OTHERCOORD_##XY++) \
+ got += !!strchr(insidechrs, get_p(p)); \
+ if ((got) OP (want)) \
+ break; \
+ (search).TLBR.XY += increm; \