changeset 1235:f60f6f4ffc6f

Make some dynamic X11 symbols option. _XData32 and _XRead32 are only available on 64-bit systems, and are chosen with macros in the X11 headers. So on 32-bit systems, it should fail to find these symbols and keep going anyhow.
author Ryan C. Gordon <icculus@icculus.org>
date Fri, 06 Jan 2006 20:56:13 +0000
parents 73676c1f56ee
children ed252764287a
files src/video/x11/SDL_x11dyn.c src/video/x11/SDL_x11dyn.h src/video/x11/SDL_x11sym.h
diffstat 3 files changed, 130 insertions(+), 128 deletions(-) [+]
line wrap: on
line diff
--- a/src/video/x11/SDL_x11dyn.c	Fri Jan 06 13:20:10 2006 +0000
+++ b/src/video/x11/SDL_x11dyn.c	Fri Jan 06 20:56:13 2006 +0000
@@ -20,7 +20,9 @@
     slouken@libsdl.org
 */
 
-/*#define DEBUG_DYNAMIC_X11 1*/
+#if 0
+#define DEBUG_DYNAMIC_X11 1
+#endif
 
 #define __SDL_NO_REDEFINE_X11_HEADER_SYMS 1
 #include "SDL_x11dyn.h"
@@ -38,7 +40,7 @@
 static const char *x11ext_library = X11EXT_DYNAMIC;
 static void *x11ext_handle = NULL;
 
-static void *X11_GetSym(const char *fnname, int *rc)
+static void *X11_GetSym(int required, const char *fnname, int *rc)
 {
 	void *fn = NULL;
 	if (*rc) {  /* haven't already failed on a previous lookup? */
@@ -57,7 +59,7 @@
 				printf("X11: Symbol '%s' NOT FOUND!\n", fnname);
 			#endif
 		}
-		*rc = (fn != NULL);
+		*rc = ((fn != NULL) || (!required));
 	}
 
 	return fn;
@@ -65,7 +67,7 @@
 #endif  /* defined X11_DYNAMIC */
 
 /* Define all the function pointers... */
-#define SDL_X11_SYM(ret,fn,params) ret (*p##fn) params = NULL;
+#define SDL_X11_SYM(req,ret,fn,params) ret (*p##fn) params = NULL;
 #include "SDL_x11sym.h"
 #undef SDL_X11_SYM
 
@@ -77,7 +79,7 @@
 	if (x11_load_refcount > 0) {
 		if (--x11_load_refcount == 0) {
 			/* set all the function pointers to NULL. */
-			#define SDL_X11_SYM(ret,fn,params) p##fn = NULL;
+			#define SDL_X11_SYM(req,ret,fn,params) p##fn = NULL;
 			#include "SDL_x11sym.h"
 			#undef SDL_X11_SYM
 
@@ -106,7 +108,7 @@
 			x11_handle = SDL_LoadObject(x11_library);
 			x11ext_handle = SDL_LoadObject(x11ext_library);
 			rc = ((x11_handle != NULL) && (x11ext_handle != NULL));
-			#define SDL_X11_SYM(r,fn,arg) p##fn = X11_GetSym(#fn, &rc);
+			#define SDL_X11_SYM(req,r,fn,arg) p##fn = X11_GetSym(req,#fn, &rc);
 			#include "SDL_x11sym.h"
 			#undef SDL_X11_SYM
 
@@ -114,7 +116,7 @@
 				SDL_X11_UnloadSymbols();  /* in case one of these loaded... */
 
 		#else
-			#define SDL_X11_SYM(r,fn,arg) p##fn = fn;
+			#define SDL_X11_SYM(req,r,fn,arg) p##fn = fn;
 			#include "SDL_x11sym.h"
 			#undef SDL_X11_SYM
 		#endif
--- a/src/video/x11/SDL_x11dyn.h	Fri Jan 06 13:20:10 2006 +0000
+++ b/src/video/x11/SDL_x11dyn.h	Fri Jan 06 20:56:13 2006 +0000
@@ -58,7 +58,7 @@
 typedef int (*SDL_X11_XSynchronizeRetType)(Display*);
 typedef Status (*SDL_X11_XESetEventToWireRetType)(Display*,XEvent*,xEvent*);
 
-#define SDL_X11_SYM(ret,fn,params) extern ret (*p##fn) params;
+#define SDL_X11_SYM(req,ret,fn,params) extern ret (*p##fn) params;
 #include "SDL_x11sym.h"
 #undef SDL_X11_SYM
 
--- a/src/video/x11/SDL_x11sym.h	Fri Jan 06 13:20:10 2006 +0000
+++ b/src/video/x11/SDL_x11sym.h	Fri Jan 06 20:56:13 2006 +0000
@@ -20,136 +20,136 @@
     slouken@libsdl.org
 */
 
-SDL_X11_SYM(XClassHint*,XAllocClassHint,(void))
-SDL_X11_SYM(Status,XAllocColor,(Display*,Colormap,XColor*))
-SDL_X11_SYM(XSizeHints*,XAllocSizeHints,(void))
-SDL_X11_SYM(XWMHints*,XAllocWMHints,(void))
-SDL_X11_SYM(int,XChangePointerControl,(Display*,Bool,Bool,int,int,int))
-SDL_X11_SYM(int,XChangeProperty,(Display*,Window,Atom,Atom,int,int,_Xconst unsigned char*,int))
-SDL_X11_SYM(int,XChangeWindowAttributes,(Display*,Window,unsigned long,XSetWindowAttributes*))
-SDL_X11_SYM(Bool,XCheckTypedEvent,(Display*,int,XEvent*))
-SDL_X11_SYM(int,XClearWindow,(Display*,Window))
-SDL_X11_SYM(int,XCloseDisplay,(Display*))
-SDL_X11_SYM(Colormap,XCreateColormap,(Display*,Window,Visual*,int))
-SDL_X11_SYM(Cursor,XCreatePixmapCursor,(Display*,Pixmap,Pixmap,XColor*,XColor*,unsigned int,unsigned int))
-SDL_X11_SYM(GC,XCreateGC,(Display*,Drawable,unsigned long,XGCValues*))
-SDL_X11_SYM(XImage*,XCreateImage,(Display*,Visual*,unsigned int,int,int,char*,unsigned int,unsigned int,int,int))
-SDL_X11_SYM(Pixmap,XCreatePixmap,(Display*,Drawable,unsigned int,unsigned int,unsigned int))
-SDL_X11_SYM(Pixmap,XCreatePixmapFromBitmapData,(Display*,Drawable,char*,unsigned int,unsigned int,unsigned long,unsigned long,unsigned int))
-SDL_X11_SYM(Window,XCreateSimpleWindow,(Display*,Window,int,int,unsigned int,unsigned int,unsigned int,unsigned long,unsigned long))
-SDL_X11_SYM(Window,XCreateWindow,(Display*,Window,int,int,unsigned int,unsigned int,unsigned int,int,unsigned int,Visual*,unsigned long,XSetWindowAttributes*))
-SDL_X11_SYM(int,XDefineCursor,(Display*,Window,Cursor))
-SDL_X11_SYM(int,XDeleteProperty,(Display*,Window,Atom))
-SDL_X11_SYM(int,XDestroyWindow,(Display*,Window))
-SDL_X11_SYM(char*,XDisplayName,(_Xconst char*))
-SDL_X11_SYM(int,XEventsQueued,(Display*,int))
-SDL_X11_SYM(int,XFlush,(Display*))
-SDL_X11_SYM(int,XFree,(void*))
-SDL_X11_SYM(int,XFreeColormap,(Display*,Colormap))
-SDL_X11_SYM(int,XFreeColors,(Display*,Colormap,unsigned long*,int,unsigned long))
-SDL_X11_SYM(int,XFreeCursor,(Display*,Cursor))
-SDL_X11_SYM(int,XFreeGC,(Display*,GC))
-SDL_X11_SYM(int,XFreeModifiermap,(XModifierKeymap*))
-SDL_X11_SYM(int,XFreePixmap,(Display*,Pixmap))
-SDL_X11_SYM(int,XGetErrorDatabaseText,(Display*,_Xconst char*,_Xconst char*,_Xconst char*,char*,int))
-SDL_X11_SYM(XModifierKeymap*,XGetModifierMapping,(Display*))
-SDL_X11_SYM(int,XGetPointerControl,(Display*,int*,int*,int*))
-SDL_X11_SYM(XVisualInfo*,XGetVisualInfo,(Display*,long,XVisualInfo*,int*))
-SDL_X11_SYM(XWMHints*,XGetWMHints,(Display*,Window))
-SDL_X11_SYM(Status,XGetWMIconName,(Display*,Window,XTextProperty*))
-SDL_X11_SYM(Status,XGetWMName,(Display*,Window,XTextProperty*))
-SDL_X11_SYM(Status,XGetWindowAttributes,(Display*,Window,XWindowAttributes*))
-SDL_X11_SYM(int,XGrabKeyboard,(Display*,Window,Bool,int,int,Time))
-SDL_X11_SYM(int,XGrabPointer,(Display*,Window,Bool,unsigned int,int,int,Window,Cursor,Time))
-SDL_X11_SYM(Status,XIconifyWindow,(Display*,Window,int))
-SDL_X11_SYM(int,XInstallColormap,(Display*,Colormap))
-SDL_X11_SYM(KeyCode,XKeysymToKeycode,(Display*,KeySym))
-SDL_X11_SYM(Atom,XInternAtom,(Display*,_Xconst char*,Bool))
-SDL_X11_SYM(XPixmapFormatValues*,XListPixmapFormats,(Display*,int*))
-SDL_X11_SYM(int,XLookupString,(XKeyEvent*,char*,int,KeySym*,XComposeStatus*))
-SDL_X11_SYM(int,XMapRaised,(Display*,Window))
-SDL_X11_SYM(int,XMapWindow,(Display*,Window))
-SDL_X11_SYM(int,XMaskEvent,(Display*,long,XEvent*))
-SDL_X11_SYM(Status,XMatchVisualInfo,(Display*,int,int,int,XVisualInfo*))
-SDL_X11_SYM(int,XMissingExtension,(Display*,_Xconst char*))
-SDL_X11_SYM(int,XMoveResizeWindow,(Display*,Window,int,int,unsigned int,unsigned int))
-SDL_X11_SYM(int,XMoveWindow,(Display*,Window,int,int))
-SDL_X11_SYM(int,XNextEvent,(Display*,XEvent*))
-SDL_X11_SYM(Display*,XOpenDisplay,(_Xconst char*))
-SDL_X11_SYM(int,XPeekEvent,(Display*,XEvent*))
-SDL_X11_SYM(int,XPending,(Display*))
-SDL_X11_SYM(int,XPutImage,(Display*,Drawable,GC,XImage*,int,int,int,int,unsigned int,unsigned int))
-SDL_X11_SYM(int,XQueryColors,(Display*,Colormap,XColor*,int))
-SDL_X11_SYM(int,XQueryKeymap,(Display*,char [32]))
-SDL_X11_SYM(Bool,XQueryPointer,(Display*,Window,Window*,Window*,int*,int*,int*,int*,unsigned int*))
-SDL_X11_SYM(int,XRaiseWindow,(Display*,Window))
-SDL_X11_SYM(int,XReparentWindow,(Display*,Window,Window,int,int))
-SDL_X11_SYM(int,XResizeWindow,(Display*,Window,unsigned int,unsigned int))
-SDL_X11_SYM(int,XSelectInput,(Display*,Window,long))
-SDL_X11_SYM(Status,XSendEvent,(Display*,Window,Bool,long,XEvent*))
-SDL_X11_SYM(int,XSetClassHint,(Display*,Window,XClassHint*))
-SDL_X11_SYM(XErrorHandler,XSetErrorHandler,(XErrorHandler))
-SDL_X11_SYM(XIOErrorHandler,XSetIOErrorHandler,(XIOErrorHandler))
-SDL_X11_SYM(int,XSetTransientForHint,(Display*,Window,Window))
-SDL_X11_SYM(int,XSetWMHints,(Display*,Window,XWMHints*))
-SDL_X11_SYM(void,XSetWMIconName,(Display*,Window,XTextProperty*))
-SDL_X11_SYM(void,XSetWMName,(Display*,Window,XTextProperty*))
-SDL_X11_SYM(void,XSetWMNormalHints,(Display*,Window,XSizeHints*))
-SDL_X11_SYM(Status,XSetWMProtocols,(Display*,Window,Atom*,int))
-SDL_X11_SYM(int,XSetWindowBackground,(Display*,Window,unsigned long))
-SDL_X11_SYM(int,XSetWindowBackgroundPixmap,(Display*,Window,Pixmap))
-SDL_X11_SYM(int,XSetWindowColormap,(Display*,Window,Colormap))
-SDL_X11_SYM(int,XStoreColors,(Display*,Colormap,XColor*,int))
-SDL_X11_SYM(Status,XStringListToTextProperty,(char**,int,XTextProperty*))
-SDL_X11_SYM(int,XSync,(Display*,Bool))
-SDL_X11_SYM(int,XUngrabKeyboard,(Display*,Time))
-SDL_X11_SYM(int,XUngrabPointer,(Display*,Time))
-SDL_X11_SYM(int,XUnmapWindow,(Display*,Window))
-SDL_X11_SYM(int,XWarpPointer,(Display*,Window,Window,int,int,unsigned int,unsigned int,int,int))
-SDL_X11_SYM(VisualID,XVisualIDFromVisual,(Visual*))
-SDL_X11_SYM(XExtDisplayInfo*,XextAddDisplay,(XExtensionInfo*,Display*,char*,XExtensionHooks*,int,XPointer))
-SDL_X11_SYM(XExtensionInfo*,XextCreateExtension,(void))
-SDL_X11_SYM(void,XextDestroyExtension,(XExtensionInfo*))
-SDL_X11_SYM(XExtDisplayInfo*,XextFindDisplay,(XExtensionInfo*,Display*))
-SDL_X11_SYM(int,XextRemoveDisplay,(XExtensionInfo*,Display*))
+SDL_X11_SYM(1,XClassHint*,XAllocClassHint,(void))
+SDL_X11_SYM(1,Status,XAllocColor,(Display*,Colormap,XColor*))
+SDL_X11_SYM(1,XSizeHints*,XAllocSizeHints,(void))
+SDL_X11_SYM(1,XWMHints*,XAllocWMHints,(void))
+SDL_X11_SYM(1,int,XChangePointerControl,(Display*,Bool,Bool,int,int,int))
+SDL_X11_SYM(1,int,XChangeProperty,(Display*,Window,Atom,Atom,int,int,_Xconst unsigned char*,int))
+SDL_X11_SYM(1,int,XChangeWindowAttributes,(Display*,Window,unsigned long,XSetWindowAttributes*))
+SDL_X11_SYM(1,Bool,XCheckTypedEvent,(Display*,int,XEvent*))
+SDL_X11_SYM(1,int,XClearWindow,(Display*,Window))
+SDL_X11_SYM(1,int,XCloseDisplay,(Display*))
+SDL_X11_SYM(1,Colormap,XCreateColormap,(Display*,Window,Visual*,int))
+SDL_X11_SYM(1,Cursor,XCreatePixmapCursor,(Display*,Pixmap,Pixmap,XColor*,XColor*,unsigned int,unsigned int))
+SDL_X11_SYM(1,GC,XCreateGC,(Display*,Drawable,unsigned long,XGCValues*))
+SDL_X11_SYM(1,XImage*,XCreateImage,(Display*,Visual*,unsigned int,int,int,char*,unsigned int,unsigned int,int,int))
+SDL_X11_SYM(1,Pixmap,XCreatePixmap,(Display*,Drawable,unsigned int,unsigned int,unsigned int))
+SDL_X11_SYM(1,Pixmap,XCreatePixmapFromBitmapData,(Display*,Drawable,char*,unsigned int,unsigned int,unsigned long,unsigned long,unsigned int))
+SDL_X11_SYM(1,Window,XCreateSimpleWindow,(Display*,Window,int,int,unsigned int,unsigned int,unsigned int,unsigned long,unsigned long))
+SDL_X11_SYM(1,Window,XCreateWindow,(Display*,Window,int,int,unsigned int,unsigned int,unsigned int,int,unsigned int,Visual*,unsigned long,XSetWindowAttributes*))
+SDL_X11_SYM(1,int,XDefineCursor,(Display*,Window,Cursor))
+SDL_X11_SYM(1,int,XDeleteProperty,(Display*,Window,Atom))
+SDL_X11_SYM(1,int,XDestroyWindow,(Display*,Window))
+SDL_X11_SYM(1,char*,XDisplayName,(_Xconst char*))
+SDL_X11_SYM(1,int,XEventsQueued,(Display*,int))
+SDL_X11_SYM(1,int,XFlush,(Display*))
+SDL_X11_SYM(1,int,XFree,(void*))
+SDL_X11_SYM(1,int,XFreeColormap,(Display*,Colormap))
+SDL_X11_SYM(1,int,XFreeColors,(Display*,Colormap,unsigned long*,int,unsigned long))
+SDL_X11_SYM(1,int,XFreeCursor,(Display*,Cursor))
+SDL_X11_SYM(1,int,XFreeGC,(Display*,GC))
+SDL_X11_SYM(1,int,XFreeModifiermap,(XModifierKeymap*))
+SDL_X11_SYM(1,int,XFreePixmap,(Display*,Pixmap))
+SDL_X11_SYM(1,int,XGetErrorDatabaseText,(Display*,_Xconst char*,_Xconst char*,_Xconst char*,char*,int))
+SDL_X11_SYM(1,XModifierKeymap*,XGetModifierMapping,(Display*))
+SDL_X11_SYM(1,int,XGetPointerControl,(Display*,int*,int*,int*))
+SDL_X11_SYM(1,XVisualInfo*,XGetVisualInfo,(Display*,long,XVisualInfo*,int*))
+SDL_X11_SYM(1,XWMHints*,XGetWMHints,(Display*,Window))
+SDL_X11_SYM(1,Status,XGetWMIconName,(Display*,Window,XTextProperty*))
+SDL_X11_SYM(1,Status,XGetWMName,(Display*,Window,XTextProperty*))
+SDL_X11_SYM(1,Status,XGetWindowAttributes,(Display*,Window,XWindowAttributes*))
+SDL_X11_SYM(1,int,XGrabKeyboard,(Display*,Window,Bool,int,int,Time))
+SDL_X11_SYM(1,int,XGrabPointer,(Display*,Window,Bool,unsigned int,int,int,Window,Cursor,Time))
+SDL_X11_SYM(1,Status,XIconifyWindow,(Display*,Window,int))
+SDL_X11_SYM(1,int,XInstallColormap,(Display*,Colormap))
+SDL_X11_SYM(1,KeyCode,XKeysymToKeycode,(Display*,KeySym))
+SDL_X11_SYM(1,Atom,XInternAtom,(Display*,_Xconst char*,Bool))
+SDL_X11_SYM(1,XPixmapFormatValues*,XListPixmapFormats,(Display*,int*))
+SDL_X11_SYM(1,int,XLookupString,(XKeyEvent*,char*,int,KeySym*,XComposeStatus*))
+SDL_X11_SYM(1,int,XMapRaised,(Display*,Window))
+SDL_X11_SYM(1,int,XMapWindow,(Display*,Window))
+SDL_X11_SYM(1,int,XMaskEvent,(Display*,long,XEvent*))
+SDL_X11_SYM(1,Status,XMatchVisualInfo,(Display*,int,int,int,XVisualInfo*))
+SDL_X11_SYM(1,int,XMissingExtension,(Display*,_Xconst char*))
+SDL_X11_SYM(1,int,XMoveResizeWindow,(Display*,Window,int,int,unsigned int,unsigned int))
+SDL_X11_SYM(1,int,XMoveWindow,(Display*,Window,int,int))
+SDL_X11_SYM(1,int,XNextEvent,(Display*,XEvent*))
+SDL_X11_SYM(1,Display*,XOpenDisplay,(_Xconst char*))
+SDL_X11_SYM(1,int,XPeekEvent,(Display*,XEvent*))
+SDL_X11_SYM(1,int,XPending,(Display*))
+SDL_X11_SYM(1,int,XPutImage,(Display*,Drawable,GC,XImage*,int,int,int,int,unsigned int,unsigned int))
+SDL_X11_SYM(1,int,XQueryColors,(Display*,Colormap,XColor*,int))
+SDL_X11_SYM(1,int,XQueryKeymap,(Display*,char [32]))
+SDL_X11_SYM(1,Bool,XQueryPointer,(Display*,Window,Window*,Window*,int*,int*,int*,int*,unsigned int*))
+SDL_X11_SYM(1,int,XRaiseWindow,(Display*,Window))
+SDL_X11_SYM(1,int,XReparentWindow,(Display*,Window,Window,int,int))
+SDL_X11_SYM(1,int,XResizeWindow,(Display*,Window,unsigned int,unsigned int))
+SDL_X11_SYM(1,int,XSelectInput,(Display*,Window,long))
+SDL_X11_SYM(1,Status,XSendEvent,(Display*,Window,Bool,long,XEvent*))
+SDL_X11_SYM(1,int,XSetClassHint,(Display*,Window,XClassHint*))
+SDL_X11_SYM(1,XErrorHandler,XSetErrorHandler,(XErrorHandler))
+SDL_X11_SYM(1,XIOErrorHandler,XSetIOErrorHandler,(XIOErrorHandler))
+SDL_X11_SYM(1,int,XSetTransientForHint,(Display*,Window,Window))
+SDL_X11_SYM(1,int,XSetWMHints,(Display*,Window,XWMHints*))
+SDL_X11_SYM(1,void,XSetWMIconName,(Display*,Window,XTextProperty*))
+SDL_X11_SYM(1,void,XSetWMName,(Display*,Window,XTextProperty*))
+SDL_X11_SYM(1,void,XSetWMNormalHints,(Display*,Window,XSizeHints*))
+SDL_X11_SYM(1,Status,XSetWMProtocols,(Display*,Window,Atom*,int))
+SDL_X11_SYM(1,int,XSetWindowBackground,(Display*,Window,unsigned long))
+SDL_X11_SYM(1,int,XSetWindowBackgroundPixmap,(Display*,Window,Pixmap))
+SDL_X11_SYM(1,int,XSetWindowColormap,(Display*,Window,Colormap))
+SDL_X11_SYM(1,int,XStoreColors,(Display*,Colormap,XColor*,int))
+SDL_X11_SYM(1,Status,XStringListToTextProperty,(char**,int,XTextProperty*))
+SDL_X11_SYM(1,int,XSync,(Display*,Bool))
+SDL_X11_SYM(1,int,XUngrabKeyboard,(Display*,Time))
+SDL_X11_SYM(1,int,XUngrabPointer,(Display*,Time))
+SDL_X11_SYM(1,int,XUnmapWindow,(Display*,Window))
+SDL_X11_SYM(1,int,XWarpPointer,(Display*,Window,Window,int,int,unsigned int,unsigned int,int,int))
+SDL_X11_SYM(1,VisualID,XVisualIDFromVisual,(Visual*))
+SDL_X11_SYM(1,XExtDisplayInfo*,XextAddDisplay,(XExtensionInfo*,Display*,char*,XExtensionHooks*,int,XPointer))
+SDL_X11_SYM(1,XExtensionInfo*,XextCreateExtension,(void))
+SDL_X11_SYM(1,void,XextDestroyExtension,(XExtensionInfo*))
+SDL_X11_SYM(1,XExtDisplayInfo*,XextFindDisplay,(XExtensionInfo*,Display*))
+SDL_X11_SYM(1,int,XextRemoveDisplay,(XExtensionInfo*,Display*))
 #ifdef X_HAVE_UTF8_STRING
-SDL_X11_SYM(int,Xutf8TextListToTextProperty,(Display*,char**,int,XICCEncodingStyle,XTextProperty*))
-SDL_X11_SYM(int,Xutf8LookupString,(XIC,XKeyPressedEvent*,char*,int,KeySym*,Status*))
-SDL_X11_SYM(XIC,XCreateIC,(XIM, ...))
-SDL_X11_SYM(void,XDestroyIC,(XIC))
-SDL_X11_SYM(void,XSetICFocus,(XIC))
-SDL_X11_SYM(void,XUnsetICFocus,(XIC))
-SDL_X11_SYM(XIM,XOpenIM,(Display*,struct _XrmHashBucketRec*,char*,char*))
-SDL_X11_SYM(Status,XCloseIM,(XIM))
+SDL_X11_SYM(1,int,Xutf8TextListToTextProperty,(Display*,char**,int,XICCEncodingStyle,XTextProperty*))
+SDL_X11_SYM(1,int,Xutf8LookupString,(XIC,XKeyPressedEvent*,char*,int,KeySym*,Status*))
+SDL_X11_SYM(1,XIC,XCreateIC,(XIM, ...))
+SDL_X11_SYM(1,void,XDestroyIC,(XIC))
+SDL_X11_SYM(1,void,XSetICFocus,(XIC))
+SDL_X11_SYM(1,void,XUnsetICFocus,(XIC))
+SDL_X11_SYM(1,XIM,XOpenIM,(Display*,struct _XrmHashBucketRec*,char*,char*))
+SDL_X11_SYM(1,Status,XCloseIM,(XIM))
 #endif
-SDL_X11_SYM(void,_XEatData,(Display*,unsigned long))
-SDL_X11_SYM(void,_XFlush,(Display*))
-SDL_X11_SYM(void,_XFlushGCCache,(Display*,GC))
-SDL_X11_SYM(int,_XRead,(Display*,char*,long))
-SDL_X11_SYM(void,_XReadPad,(Display*,char*,long))
-SDL_X11_SYM(void,_XSend,(Display*,_Xconst char*,long))
-SDL_X11_SYM(Status,_XReply,(Display*,xReply*,int,Bool))
-SDL_X11_SYM(unsigned long,_XSetLastRequestRead,(Display*,xGenericReply*))
-SDL_X11_SYM(int,_XData32,(Display *dpy,register long *data,unsigned len))
-SDL_X11_SYM(void,_XRead32,(Display *dpy,register long *data,long len))
+SDL_X11_SYM(1,void,_XEatData,(Display*,unsigned long))
+SDL_X11_SYM(1,void,_XFlush,(Display*))
+SDL_X11_SYM(1,void,_XFlushGCCache,(Display*,GC))
+SDL_X11_SYM(1,int,_XRead,(Display*,char*,long))
+SDL_X11_SYM(1,void,_XReadPad,(Display*,char*,long))
+SDL_X11_SYM(1,void,_XSend,(Display*,_Xconst char*,long))
+SDL_X11_SYM(1,Status,_XReply,(Display*,xReply*,int,Bool))
+SDL_X11_SYM(1,unsigned long,_XSetLastRequestRead,(Display*,xGenericReply*))
+SDL_X11_SYM(0,int,_XData32,(Display *dpy,register long *data,unsigned len))
+SDL_X11_SYM(0,void,_XRead32,(Display *dpy,register long *data,long len))
 
 #if NeedWidePrototypes
-SDL_X11_SYM(KeySym,XKeycodeToKeysym,(Display*,unsigned int,int))
+SDL_X11_SYM(1,KeySym,XKeycodeToKeysym,(Display*,unsigned int,int))
 #else
-SDL_X11_SYM(KeySym,XKeycodeToKeysym,(Display*,KeyCode,int))
+SDL_X11_SYM(1,KeySym,XKeycodeToKeysym,(Display*,KeyCode,int))
 #endif
 
 #ifndef NO_SHARED_MEMORY
-SDL_X11_SYM(Status,XShmAttach,(Display*,XShmSegmentInfo*))
-SDL_X11_SYM(Status,XShmDetach,(Display*,XShmSegmentInfo*))
-SDL_X11_SYM(Status,XShmPutImage,(Display*,Drawable,GC,XImage*,int,int,int,int,unsigned int,unsigned int,Bool))
-SDL_X11_SYM(XImage*,XShmCreateImage,(Display*,Visual*,unsigned int,int,char*,XShmSegmentInfo*,unsigned int,unsigned int))
-SDL_X11_SYM(Bool,XShmQueryExtension,(Display*))
+SDL_X11_SYM(1,Status,XShmAttach,(Display*,XShmSegmentInfo*))
+SDL_X11_SYM(1,Status,XShmDetach,(Display*,XShmSegmentInfo*))
+SDL_X11_SYM(1,Status,XShmPutImage,(Display*,Drawable,GC,XImage*,int,int,int,int,unsigned int,unsigned int,Bool))
+SDL_X11_SYM(1,XImage*,XShmCreateImage,(Display*,Visual*,unsigned int,int,char*,XShmSegmentInfo*,unsigned int,unsigned int))
+SDL_X11_SYM(1,Bool,XShmQueryExtension,(Display*))
 #endif
 
-SDL_X11_SYM(SDL_X11_XSynchronizeRetType,XSynchronize,(Display*,Bool))
-SDL_X11_SYM(SDL_X11_XESetWireToEventRetType,XESetWireToEvent,(Display*,int,SDL_X11_XESetWireToEventRetType))
-SDL_X11_SYM(SDL_X11_XESetEventToWireRetType,XESetEventToWire,(Display*,int,SDL_X11_XESetEventToWireRetType))
+SDL_X11_SYM(1,SDL_X11_XSynchronizeRetType,XSynchronize,(Display*,Bool))
+SDL_X11_SYM(1,SDL_X11_XESetWireToEventRetType,XESetWireToEvent,(Display*,int,SDL_X11_XESetWireToEventRetType))
+SDL_X11_SYM(1,SDL_X11_XESetEventToWireRetType,XESetEventToWire,(Display*,int,SDL_X11_XESetEventToWireRetType))
 
 /* end of SDL_x11sym.h ... */