summaryrefslogtreecommitdiffstats
path: root/Parser
diff options
context:
space:
mode:
Diffstat (limited to 'Parser')
-rw-r--r--Parser/intrcheck.c34
-rw-r--r--Parser/pgenmain.c6
-rw-r--r--Parser/tokenizer.c2
3 files changed, 26 insertions, 16 deletions
diff --git a/Parser/intrcheck.c b/Parser/intrcheck.c
index 8dbeb5f..ee14eca 100644
--- a/Parser/intrcheck.c
+++ b/Parser/intrcheck.c
@@ -24,6 +24,11 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
/* Check for interrupts */
+#ifdef THINK_C
+#define macintosh
+#endif
+
+
#ifdef MSDOS
/* This might work for MS-DOS (untested though): */
@@ -49,19 +54,26 @@ intrcheck()
#endif
-#ifdef THINK_C
+#ifdef macintosh
+#ifdef THINK_C
/* This is for THINK C 4.0.
For 3.0, you may have to remove the signal stuff. */
-
#include <MacHeaders>
+#else
+/* This is for MPW 3.1 */
+/* XXX Untested */
+#include <OSEvents.h>
+#include <SysEqu.h>
+#endif
+
#include <signal.h>
#include "sigtype.h"
static int interrupted;
static SIGTYPE
-intcatcher(sig)
+intcatcher(ig)
int sig;
{
interrupted = 1;
@@ -80,17 +92,15 @@ intrcheck()
{
register EvQElPtr q;
- /* This is like THINK C 4.0's <console.h>.
- I'm not sure why FlushEvents must be called from asm{}. */
- for (q = (EvQElPtr)EventQueue.qHead; q; q = (EvQElPtr)q->qLink) {
+ /* This is like THINK C 4.0's <console.h> */
+ /* q = (EvQElPtr) EventQueue.qHead; */
+ q = (EvQElPtr) GetEvQHdr()->qHead;
+
+ for (; q; q = (EvQElPtr)q->qLink) {
if (q->evtQWhat == keyDown &&
(char)q->evtQMessage == '.' &&
(q->evtQModifiers & cmdKey) != 0) {
-
- asm {
- moveq #keyDownMask,d0
- _FlushEvents
- }
+ FlushEvents(keyDownMask, 0);
interrupted = 1;
break;
}
@@ -104,7 +114,7 @@ intrcheck()
#define OK
-#endif /* THINK_C */
+#endif /* macintosh */
#ifndef OK
diff --git a/Parser/pgenmain.c b/Parser/pgenmain.c
index c1bd486..da6aa2e 100644
--- a/Parser/pgenmain.c
+++ b/Parser/pgenmain.c
@@ -42,7 +42,7 @@ int debugging;
/* Forward */
grammar *getgrammar PROTO((char *filename));
-#ifdef THINK_C
+#ifdef macintosh
int main PROTO((int, char **));
char *askfile PROTO((void));
#endif
@@ -57,7 +57,7 @@ main(argc, argv)
FILE *fp;
char *filename;
-#ifdef THINK_C
+#ifdef macintosh
filename = askfile();
#else
if (argc != 2) {
@@ -115,7 +115,7 @@ getgrammar(filename)
return g;
}
-#ifdef THINK_C
+#ifdef macintosh
char *
askfile()
{
diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c
index 62a3da0..ccff9d1 100644
--- a/Parser/tokenizer.c
+++ b/Parser/tokenizer.c
@@ -37,7 +37,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include "tokenizer.h"
#include "errcode.h"
-#ifdef THINK_C
+#ifdef macintosh
#define TABSIZE 4
#endif