OS/2, eCS & ArcaOS - Technical > Programming

Need help patching SDL

(1/3) > >>

R.M. Klippstein:
I've downloaded SDL-1.2.10-bin-20060602.zip and unzipped it into D:\tools\os2.x86\libsdl. This gives me the following directorie in D:\tools\os2.x86\libsdl: SDL, SDLGfx, SDLImage, SDLMixer, SDLNet, SDLTTF & readme.txt. I need to apply the following patch (diff?) to SDL I don't know how to accomplish this. Thanks much to anybody that can give me a fairly detailed description of how todo this.

klipp

diff -rwu SDL/include/SDL_audio.h D:/coding/vbox/svn/trunk/tools/os2.x86/libsdl/v1.2.10-20060602/SDL/include/SDL_audio.h
--- SDL/include/SDL_audio.h   Mon May  1 03:03:00 2006
+++ D:/coding/vbox/svn/trunk/tools/os2.x86/libsdl/v1.2.10-20060602/SDL/include/SDL_audio.h   Sat Jan 13 06:47:04 2007
@@ -76,6 +76,8 @@
 #define AUDIO_S16SYS   AUDIO_S16MSB
 #endif
 
+/* A filter callback */
+typedef void (SDLCALL * SDL_AudioCVTFilterCall)(struct SDL_AudioCVT *cvt, Uint16 format);
 
 /* A structure to hold a set of audio conversion filters and buffers */
 typedef struct SDL_AudioCVT {
@@ -88,7 +90,7 @@
    int    len_cvt;         /* Length of converted audio buffer */
    int    len_mult;      /* buffer must be len*len_mult big */
    double len_ratio;    /* Given len, final size is len*len_ratio */
-   void (SDLCALL *filters[10])(struct SDL_AudioCVT *cvt, Uint16 format);
+   SDL_AudioCVTFilterCall filters[10];
    int filter_index;      /* Current audio conversion function */
 } SDL_AudioCVT;
 
diff -rwu SDL/include/SDL_config_os2.h D:/coding/vbox/svn/trunk/tools/os2.x86/libsdl/v1.2.10-20060602/SDL/include/SDL_config_os2.h
--- SDL/include/SDL_config_os2.h   Mon May  1 03:03:00 2006
+++ D:/coding/vbox/svn/trunk/tools/os2.x86/libsdl/v1.2.10-20060602/SDL/include/SDL_config_os2.h   Sat Jan 13 06:44:38 2007
@@ -27,6 +27,9 @@
 
 /* This is a set of defines to configure the SDL features */
 
+#ifdef __GNUC__
+# include <stdint.h>
+#else
 typedef signed char         int8_t;
 typedef unsigned char       uint8_t;
 typedef signed short        int16_t;
@@ -37,6 +40,7 @@
 typedef unsigned long       uintptr_t;
 typedef signed long long    int64_t;
 typedef unsigned long long  uint64_t;
+#endif
 
 #define SDL_HAS_64BIT_TYPE   1
 

TeLLie:
Hi Klipp

Why not take latest SDL, http://hobbes.nmsu.edu/download/pub/incoming/SDL-1.2.15-20140930.zip
Normaly it's patch -p1 < *.diff

Martin Iturbide:
Or try cloning some Github repository: https://github.com/os2world?query=SDL

I was not able to find the source code of the newer ones.

R.M. Klippstein:
Thanks for the response tellie. I've got the newer version of SDL also but could'nt make it work. It might work with this patch also but I believe the older version is what's needed with the patch applied. The patch modify's SDL so that it will compile in vbox source. Which directory should I be in when I execute the patch command?  --  thanks again.

klipp

Dave Yeo:
You need the source to patch, then you need to rebuild the binaries.  The official sources only support compiling with OpenWatcom, see README.OS2. Also someone has done quite a bit of work fixing some of the bugs and uploading binaries to Hobbes, probably best to start from his sources.
As Tellie said, use patch to apply a patch except it is usually -p0 and sometimes such as with diffs made by git -p1. best to try both, patch will complain if you pick the wrong -p option. Patch will also inform you of other problems so it is good to log the command.
The other way is to apply by hand.  The first number,  such as @@ 76,6 means line 76, position 6, ignore the position. Second number is the new line number after applying the patch. Just go to the line number,  find the line that starts with a minus sign and replace with the line that begins with the plus sign. Sometimes if applying for a different version, the  code can be a few or more lines different then the patch indicates. so you have to go by the neighbouring lines.

Navigation

[0] Message Index

[#] Next page

Go to full version