|
@@ -0,0 +1,39 @@
|
|
|
+--- SDL-1.2.14.orig/src/video/x11/SDL_x11dyn.c 2009-10-13 01:07:15.000000000 +0200
|
|
|
++++ SDL-1.2.14/src/video/x11/SDL_x11dyn.c 2013-07-12 12:15:17.000000000 +0200
|
|
|
+@@ -108,6 +108,20 @@ char *(*pXGetICValues)(XIC, ...) = NULL;
|
|
|
+ #undef SDL_X11_MODULE
|
|
|
+ #undef SDL_X11_SYM
|
|
|
+
|
|
|
++static void *SDL_XGetRequest_workaround(Display* dpy, CARD8 type, size_t len)
|
|
|
++{
|
|
|
++ xReq *req;
|
|
|
++ WORD64ALIGN
|
|
|
++ if (dpy->bufptr + len > dpy->bufmax)
|
|
|
++ _XFlush(dpy);
|
|
|
++ dpy->last_req = dpy->bufptr;
|
|
|
++ req = (xReq*)dpy->bufptr;
|
|
|
++ req->reqType = type;
|
|
|
++ req->length = len / 4;
|
|
|
++ dpy->bufptr += len;
|
|
|
++ dpy->request++;
|
|
|
++ return req;
|
|
|
++}
|
|
|
+
|
|
|
+ static int x11_load_refcount = 0;
|
|
|
+
|
|
|
+@@ -168,6 +182,15 @@ int SDL_X11_LoadSymbols(void)
|
|
|
+ X11_GetSym("XGetICValues",&SDL_X11_HAVE_UTF8,(void **)&pXGetICValues);
|
|
|
+ #endif
|
|
|
+
|
|
|
++ /*
|
|
|
++ * In case we're built with newer Xlib headers, we need to make sure
|
|
|
++ * that _XGetRequest() is available, even on older systems.
|
|
|
++ * Otherwise, various Xlib macros we use will call a NULL pointer.
|
|
|
++ */
|
|
|
++ if (!SDL_X11_HAVE_XGETREQUEST) {
|
|
|
++ p_XGetRequest = SDL_XGetRequest_workaround;
|
|
|
++ }
|
|
|
++
|
|
|
+ if (SDL_X11_HAVE_BASEXLIB) { /* all required symbols loaded. */
|
|
|
+ SDL_ClearError();
|
|
|
+ } else {
|