I tried that too, still the same.
Heres are the examples Ive tried a few minutes ago with 8.30.3 commercial,
listed along with their respective compile-errors.
All code here has just been tested and copy/paste'd from source-code to here.
//generates "'wait': recursive definition" error [What I originally tried in the past]
#define wait(i) do{ diag("waiting\n"); wait(i); } while(0)
//generates "'_wait': recursive definition" error [what I understand your last post to mean]
#define wait(i) _wait(i);
#define _wait(i) do{ diag("waiting\n"); wait(i); } while(0)
//generates "'my_wait': recursive definition" error [duplicate of above with different name]
#define wait(i) my_wait(i);
#define my_wait(i) do{ diag("waiting\n"); wait(i); } while(0)
//compiles sucessfully but ODDLY ENOUGH doesnt executes waits correctly and locks up... ;D
_wait() { wait(1); }
#define wait(i) do{ diag("waiting\n"); _wait(i); } while(0)
So ... any other ideas?