diff options
author | comex | 2015-01-30 03:45:56 -0500 |
---|---|---|
committer | comex | 2015-01-30 03:45:56 -0500 |
commit | 63aa828ced9add480a0d974d20d93b0d0abc00fa (patch) | |
tree | cb193c558e0abbe5c1b2616a2e4fd6b7ae8feadf /lib/cbit | |
parent | not even alpha yet (diff) | |
download | substitute-63aa828ced9add480a0d974d20d93b0d0abc00fa.tar.gz |
remove GNU-isms from cbit
Diffstat (limited to 'lib/cbit')
-rw-r--r-- | lib/cbit/misc.h | 41 |
1 files changed, 30 insertions, 11 deletions
diff --git a/lib/cbit/misc.h b/lib/cbit/misc.h index 45876f9..52835b1 100644 --- a/lib/cbit/misc.h +++ b/lib/cbit/misc.h @@ -1,22 +1,41 @@ #pragma once #define LET_LOOP__(expr, ctr) \ - if (0) \ - __done_##ctr: continue; \ - else if (0) \ - __break_##ctr: break; \ - else \ - for (; ; ({ goto __break_##ctr; })) \ - for (expr; ; ({ goto __done_##ctr; })) + if (0) \ + __done_##ctr: continue; \ + else if (0) \ + __break_##ctr: break; \ + else \ + for (expr; ;) \ + if (1) \ + goto __body_##ctr; \ + else \ + for (;;) \ + if (1) \ + goto __break_##ctr; \ + else \ + for (;;) \ + if (1) \ + goto __done_##ctr; \ + else \ + __body_##ctr: #define LET_LOOP_(expr, ctr) LET_LOOP__(expr, ctr) #define LET_LOOP(expr) LET_LOOP_(expr, __COUNTER__) #define LET__(expr, ctr) \ - if (0) \ - __done_##ctr: ; \ - else \ - for (expr; ; ({ goto __done_##ctr; })) + if (0) \ + __done_##ctr:; \ + else \ + for (expr; ;) \ + if (1) \ + goto __body_##ctr; \ + else \ + for (;;) \ + if (1) \ + goto __done_##ctr; \ + else \ + __body_##ctr: #define LET_(expr, ctr) LET__(expr, ctr) #define LET(expr) LET_(expr, __COUNTER__) |