return;
}
#endif
-#ifdef LL_USERHOOK
- LL_USERHOOK(t);
- LLread();
-#endif LL_USERHOOK
if ((LLcsymb = LLindex[LLsymb]) < 0) {
LLmessage(0);
LLread();
}
i = LLindex[t];
LLtcnt[i]++;
- if (LLdoskip()) /* nothing */;
+#ifdef LL_USERHOOK
+ if (LLdoskip(t)) /* nothing */;
+#else
+ if (LLskip()) /* nothing */;
+#endif
LLtcnt[i]--;
if (LLsymb != t) LLmessage(t);
}
LLskip() {
#ifdef LL_USERHOOK
- LL_USERHOOK(0);
- LLread();
-#endif LL_USERHOOK
- return LLdoskip();
+ return LLdoskip(0);
}
-LLdoskip()
-{
+LLdoskip(exp) {
+#endif LL_USERHOOK
register int i;
int retval;
int LLi, LLb;
if (LLsets[LL_SSIZE*i+LLi] & LLb) return retval;
}
}
- retval = 1;
+#ifdef LL_USERHOOK
+ {
+ int old = LLsymb;
+ LL_USERHOOK(exp);
+ LLread();
+ if (LLsymb != old) continue;
+ }
+#endif LL_USERHOOK
LLmessage(0);
+ retval = 1;
LLread();
}
/* NOTREACHED */