123456789101112131415161718192021222324252627282930313233343536373839 |
- --- 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 {
|