summaryrefslogtreecommitdiff
path: root/dev-games/KXL/files/KXL-1.1.7-amd64.patch
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /dev-games/KXL/files/KXL-1.1.7-amd64.patch
reinit the tree, so we can have metadata
Diffstat (limited to 'dev-games/KXL/files/KXL-1.1.7-amd64.patch')
-rw-r--r--dev-games/KXL/files/KXL-1.1.7-amd64.patch95
1 files changed, 95 insertions, 0 deletions
diff --git a/dev-games/KXL/files/KXL-1.1.7-amd64.patch b/dev-games/KXL/files/KXL-1.1.7-amd64.patch
new file mode 100644
index 000000000000..ec4b141d2a3e
--- /dev/null
+++ b/dev-games/KXL/files/KXL-1.1.7-amd64.patch
@@ -0,0 +1,95 @@
+--- src/KXLsound.c.old 2007-05-13 21:59:27.000000000 +0200
++++ src/KXLsound.c 2007-05-13 22:09:19.000000000 +0200
+@@ -4,6 +4,9 @@
+ #include <sys/ioctl.h>
+ #include <sys/time.h>
+ #include <linux/soundcard.h>
++#include <stdlib.h>
++#include <errno.h>
++#include <string.h>
+ #include "KXL.h"
+
+ #define MIN(a, b) (((a) < (b)) ? (a) : (b))
+@@ -22,7 +24,7 @@
+ struct {
+ Uint16 ListCnt;
+ Sint32 ID;
+- Sint32 Pipe[2];
++ int Pipe[2];
+ Sint32 Device;
+ Uint16 PlayCnt;
+ KXL_SoundControl PlaySound[MAX_SOUNDS_PLAYING];
+@@ -242,11 +244,19 @@
+ KXL_SoundOk = False;
+
+ KXL_LoadSoundData(path, fname);
+- // device check
+- if ((KXL_SoundData.Device = open("/dev/dsp", O_WRONLY)) == -1) {
+- fprintf(stderr, "KXL error message\nnot found sound card\n");
++ // Open the sound device in non-blocking mode, because ALSA's OSS
++ // emulation and some broken OSS drivers would make a blocking call
++ // wait forever until the device is available. Since this breaks the
++ // OSS spec, we immediately put it back to blocking mode if the
++ // operation was successful.
++ KXL_SoundData.Device = open("/dev/dsp", O_WRONLY|O_NDELAY);
++ if (KXL_SoundData.Device < 0) {
++ fprintf(stderr, "KXL error message\ncould not open sound card (%s)\n",
++ strerror(errno));
+ return;
+ }
++ fcntl( KXL_SoundData.Device, F_SETFL,
++ fcntl( KXL_SoundData.Device, F_GETFL ) &~ FNDELAY );
+ // create pipe
+ if (pipe(KXL_SoundData.Pipe) < 0) {
+ fprintf(stderr, "KXL error message\npipe error\n");
+--- src/KXL.h.old 2007-05-13 22:25:11.000000000 +0200
++++ src/KXL.h 2007-05-13 22:25:47.000000000 +0200
+@@ -205,6 +205,7 @@
+ KXL_Frame *Frame; // Pointer of frame structure
+ GC FontGC; // GC of font
+ XFontStruct *WinFont; // Pointer of font structrue
++ Bool DetectAutoRepeat; // Does the server have detectable auto repeat
+ } KXL_Window;
+ // RGBE palette
+ typedef struct {
+--- src/KXLimage.c.old 2007-05-13 22:29:02.000000000 +0200
++++ src/KXLimage.c 2007-05-13 22:29:33.000000000 +0200
+@@ -1,4 +1,5 @@
+ #include <stdio.h>
++#include <stdlib.h>
+ #include "KXL.h"
+
+ extern KXL_Window *KXL_Root;
+--- src/KXLvisual.c.old 2007-05-13 22:22:34.000000000 +0200
++++ src/KXLvisual.c 2007-05-13 22:28:39.000000000 +0200
+@@ -1,4 +1,6 @@
+ #include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
+ #include "KXL.h"
+
+ //================================================================
+@@ -364,7 +366,11 @@
+ KXL_ReSizeFrame(w, h);
+ KXL_Clear_Frame(0, 0, w, h);
+ // Auto repeat off
+- XAutoRepeatOff(KXL_Root->Display);
++ XkbSetDetectableAutoRepeat(KXL_Root->Display, True,
++ &KXL_Root->DetectAutoRepeat);
++ if(!KXL_Root->DetectAutoRepeat) {
++ XAutoRepeatOff(KXL_Root->Display);
++ }
+ }
+
+ //==============================================================
+@@ -377,7 +383,9 @@
+ XFreeGC(KXL_Root->Display, KXL_Root->Frame->Gc);
+ KXL_Free(KXL_Root->Frame);
+ // Auto repeat on
+- XAutoRepeatOn(KXL_Root->Display);
++ if(!KXL_Root->DetectAutoRepeat) {
++ XAutoRepeatOn(KXL_Root->Display);
++ }
+ // Delete font
+ XFreeGC(KXL_Root->Display, KXL_Root->FontGC);
+ // Delete window