-#define DOOP(ppname) PUTBACK; op = ppname(); SPAGAIN
+#define DOOP(ppname) PUTBACK; op = ppname(ARGS); SPAGAIN
#define PP_LIST(g) do { \
dMARK; \
SPAGAIN; \
} while(0)
-#if PATCHLEVEL < 3
-#define RUN() run()
-#else
-#define RUN() runops()
-#endif
-
-#if PATCHLEVEL > 3
/* Anyone using eval "" deserves this mess */
#define PP_EVAL(ppaddr, nxt) do { \
dJMPENV; \
JMPENV_PUSH(ret); \
switch (ret) { \
case 0: \
- op = ppaddr(); \
+ op = ppaddr(ARGS); \
retstack[retstack_ix - 1] = Nullop; \
- if (op != nxt) RUN(); \
+ if (op != nxt) runops(); \
JMPENV_POP; \
break; \
case 1: JMPENV_POP; JMPENV_JUMP(1); \
case 3: JMPENV_POP; SPAGAIN; goto label;\
} \
} while (0)
-#else
-/* Anyone using eval "" deserves this mess */
-#define PP_EVAL(ppaddr, nxt) do { \
- Sigjmp_buf oldtop; \
- Copy(top_env,oldtop,1,Sigjmp_buf); \
- PUTBACK; \
- switch (Sigsetjmp(top_env,1)) { \
- case 0: \
- op = ppaddr(); \
- retstack[retstack_ix - 1] = Nullop; \
- Copy(oldtop,top_env,1,Sigjmp_buf); \
- if (op != nxt) RUN(); \
- break; \
- case 1: Copy(oldtop,top_env,1,Sigjmp_buf); Siglongjmp(top_env,1); \
- case 2: Copy(oldtop,top_env,1,Sigjmp_buf); Siglongjmp(top_env,2); \
- case 3: \
- Copy(oldtop,top_env,1,Sigjmp_buf); \
- if (restartop != nxt) \
- Siglongjmp(top_env, 3); \
- } \
- op = nxt; \
- SPAGAIN; \
- } while (0)
-
-#define PP_ENTERTRY(jmpbuf,label) do { \
- Copy(top_env,jmpbuf,1,Sigjmp_buf); \
- switch (Sigsetjmp(top_env,1)) { \
- case 1: Copy(jmpbuf,top_env,1,Sigjmp_buf); Siglongjmp(top_env,1); \
- case 2: Copy(jmpbuf,top_env,1,Sigjmp_buf); Siglongjmp(top_env,2); \
- case 3: Copy(jmpbuf,top_env,1,Sigjmp_buf); SPAGAIN; goto label; \
- } \
- } while (0)
-#endif