diff -u ../xlander-19920427/game.c ../xlander.sig/game.c
--- ../xlander-19920427/game.c	Wed Jul 29 04:25:34 1992
+++ ../xlander.sig/game.c	Sat Aug 26 13:00:10 2000
@@ -33,10 +33,18 @@
 {
    XEvent event;
    int x, y;
+# ifndef POSIX
    extern int mask;
+# else
+   extern sigset_t pmask;
+   extern sigset_t omask;
+# endif
    void DisplayWorld ();
-
+# ifdef POSIX
+       sigprocmask(SIG_SETMASK, &omask, NULL);
+# else
    (void) sigsetmask (mask);
+# endif
    x = (viewWidth >> 1) - (XTextWidth (font, string, strlen (string)) >> 1);
    y = (viewHeight >> 2) - ((font->ascent + font->descent) >> 1);
    DisplayWorld ();
@@ -46,7 +54,9 @@
       switch (event.type) {
       case ButtonPress:
 #ifdef POSIX
-	 mask = sigsetmask (siggetmask()|sigmask (SIGINT));
+	 sigemptyset(&pmask);
+         sigaddset(&pmask,SIGINT);
+         sigprocmask(SIG_BLOCK, &pmask, &omask);
 #else
 	 mask = sigblock (sigmask (SIGINT));
 #endif
@@ -168,7 +178,7 @@
       switch (event.type) {
       case KeyPress:
 	 if (lander->fuel > 0.0) {
-	    XLookupString (&event, &ch, 1, &keysym, (XComposeStatus *) 0);
+	    XLookupString ((XKeyPressedEvent*)&event, &ch, 1, &keysym, (XComposeStatus *) 0);
 	    if (ch == lander->controls[0] || keysym == XK_Up)
 	       lander->rear_thruster = lander->lateral_thrust;
 	    else if (ch == lander->controls[1] || keysym == XK_Down)
@@ -182,7 +192,7 @@
 	 }
 	 break;
       case KeyRelease:
-	 XLookupString (&event, &ch, 1, &keysym, (XComposeStatus *) 0);
+	 XLookupString ((XKeyReleasedEvent*)&event, &ch, 1, &keysym, (XComposeStatus *) 0);
 	 if (ch == lander->controls[0] || keysym == XK_Up)
 	    lander->rear_thruster = 0;
 	 else if (ch == lander->controls[1] || keysym == XK_Down)
diff -u ../xlander-19920427/initialize.c ../xlander.sig/initialize.c
--- ../xlander-19920427/initialize.c	Sun Jul 26 14:12:33 1992
+++ ../xlander.sig/initialize.c	Sat Aug 26 00:41:14 2000
@@ -293,7 +293,7 @@
 
    world->min_x = world->min_y = -HALF_WORLD_LENGTH;
    world->max_x = world->max_y = HALF_WORLD_WIDTH;
-   srandom ((long) time ((int *) 0));
+   srandom ((long) time ((time_t *) 0));
    for (x = -HALF_WORLD_WIDTH; x < HALF_WORLD_WIDTH;
 	r ^= 1, x += EDGE_LENGTH + (int) x_offset)
       for (y = r * (int) y_offset - HALF_WORLD_LENGTH; y < HALF_WORLD_LENGTH;
diff -u ../xlander-19920427/xlander.c ../xlander.sig/xlander.c
--- ../xlander-19920427/xlander.c	Wed Jul 29 04:32:36 1992
+++ ../xlander.sig/xlander.c	Sat Aug 26 13:00:10 2000
@@ -14,6 +14,7 @@
 
 #include "xlander.h"
 #include "globals.h"
+int Pause (char*);
 
 /*
  * A lander
@@ -67,8 +68,11 @@
 
 static DATABASE *world, *craft, *thrust, *shadow;
 static LANDER lander;
+# ifndef POSIX
 int mask;
-
+# else
+sigset_t pmask, omask; /* for POSIX sigprocmask() */
+# endif
 /******************************************************************************
 ** DisplayWorld
 **
@@ -98,7 +102,7 @@
    XSync (d,False);
 }
 
-void main (argc, argv)
+int main (argc, argv)
    int argc;
    char *argv[];
 {
@@ -140,7 +144,9 @@
     * wrong time.
     */
 #ifdef POSIX
-   mask = sigsetmask (siggetmask()|sigmask (SIGINT));
+   sigemptyset(&pmask);
+   sigaddset(&pmask,SIGINT);
+   sigprocmask(SIG_BLOCK, &pmask, &omask);
 #else
    mask = sigblock (sigmask (SIGINT));
 #endif
@@ -149,11 +155,18 @@
    for (;;) {
       UpdateOrientation (world, craft, &lander);
       DisplayWorld ();
+# ifdef POSIX
+       sigprocmask(SIG_SETMASK, &omask, NULL);
+# else
       (void) sigsetmask (mask);
+# endif
 #ifdef POSIX
-      mask = sigsetmask (siggetmask()|sigmask (SIGINT));
+      sigemptyset(&pmask);
+      sigaddset(&pmask,SIGINT);
+      sigprocmask(SIG_BLOCK, &pmask, &omask);
 #else
       mask = sigblock (sigmask (SIGINT));
 #endif
    }
+   return 0;
 }
Only in ../xlander-19920427/: xlander_akk.diff
