1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
|
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
|