src/video/x11/SDL_x11sym.h
author Sam Lantinga <slouken@libsdl.org>
Sat, 31 Dec 2011 09:28:07 -0500
changeset 6138 4c64952a58fb
parent 6027 56185b574d61
child 6168 47dc1acea66f
permissions -rwxr-xr-x
Happy New Year!
     1 /*
     2   Simple DirectMedia Layer
     3   Copyright (C) 1997-2012 Sam Lantinga <slouken@libsdl.org>
     4 
     5   This software is provided 'as-is', without any express or implied
     6   warranty.  In no event will the authors be held liable for any damages
     7   arising from the use of this software.
     8 
     9   Permission is granted to anyone to use this software for any purpose,
    10   including commercial applications, and to alter it and redistribute it
    11   freely, subject to the following restrictions:
    12 
    13   1. The origin of this software must not be misrepresented; you must not
    14      claim that you wrote the original software. If you use this software
    15      in a product, an acknowledgment in the product documentation would be
    16      appreciated but is not required.
    17   2. Altered source versions must be plainly marked as such, and must not be
    18      misrepresented as being the original software.
    19   3. This notice may not be removed or altered from any source distribution.
    20 */
    21 
    22 /* *INDENT-OFF* */
    23 
    24 SDL_X11_MODULE(BASEXLIB)
    25 SDL_X11_SYM(XClassHint*,XAllocClassHint,(void),(),return)
    26 SDL_X11_SYM(XSizeHints*,XAllocSizeHints,(void),(),return)
    27 SDL_X11_SYM(XWMHints*,XAllocWMHints,(void),(),return)
    28 SDL_X11_SYM(int,XAutoRepeatOn,(Display* a),(a),return)
    29 SDL_X11_SYM(int,XAutoRepeatOff,(Display* a),(a),return)
    30 SDL_X11_SYM(int,XChangePointerControl,(Display* a,Bool b,Bool c,int d,int e,int f),(a,b,c,d,e,f),return)
    31 SDL_X11_SYM(int,XChangeProperty,(Display* a,Window b,Atom c,Atom d,int e,int f,_Xconst unsigned char* g,int h),(a,b,c,d,e,f,g,h),return)
    32 SDL_X11_SYM(int,XCloseDisplay,(Display* a),(a),return)
    33 SDL_X11_SYM(int,XConvertSelection,(Display* a,Atom b,Atom c,Atom d,Window e,Time f),(a,b,c,d,e,f),return)
    34 SDL_X11_SYM(Pixmap,XCreateBitmapFromData,(Display *dpy,Drawable d,_Xconst char *data,unsigned int width,unsigned int height),(dpy,d,data,width,height),return)
    35 SDL_X11_SYM(Colormap,XCreateColormap,(Display* a,Window b,Visual* c,int d),(a,b,c,d),return)
    36 SDL_X11_SYM(Cursor,XCreatePixmapCursor,(Display* a,Pixmap b,Pixmap c,XColor* d,XColor* e,unsigned int f,unsigned int g),(a,b,c,d,e,f,g),return)
    37 SDL_X11_SYM(GC,XCreateGC,(Display* a,Drawable b,unsigned long c,XGCValues* d),(a,b,c,d),return)
    38 SDL_X11_SYM(XImage*,XCreateImage,(Display* a,Visual* b,unsigned int c,int d,int e,char* f,unsigned int g,unsigned int h,int i,int j),(a,b,c,d,e,f,g,h,i,j),return)
    39 SDL_X11_SYM(Window,XCreateWindow,(Display* a,Window b,int c,int d,unsigned int e,unsigned int f,unsigned int g,int h,unsigned int i,Visual* j,unsigned long k,XSetWindowAttributes* l),(a,b,c,d,e,f,g,h,i,j,k,l),return)
    40 SDL_X11_SYM(int,XDefineCursor,(Display* a,Window b,Cursor c),(a,b,c),return)
    41 SDL_X11_SYM(int,XDeleteProperty,(Display* a,Window b,Atom c),(a,b,c),return)
    42 SDL_X11_SYM(int,XDestroyWindow,(Display* a,Window b),(a,b),return)
    43 SDL_X11_SYM(int,XDisplayKeycodes,(Display* a,int* b,int* c),(a,b,c),return)
    44 SDL_X11_SYM(char*,XDisplayName,(_Xconst char* a),(a),return)
    45 SDL_X11_SYM(int,XEventsQueued,(Display* a,int b),(a,b),return)
    46 SDL_X11_SYM(Bool,XFilterEvent,(XEvent *event,Window w),(event,w),return)
    47 SDL_X11_SYM(int,XFlush,(Display* a),(a),return)
    48 SDL_X11_SYM(int,XFree,(void*a),(a),return)
    49 SDL_X11_SYM(int,XFreeCursor,(Display* a,Cursor b),(a,b),return)
    50 SDL_X11_SYM(int,XFreeGC,(Display* a,GC b),(a,b),return)
    51 SDL_X11_SYM(int,XFreeModifiermap,(XModifierKeymap* a),(a),return)
    52 SDL_X11_SYM(int,XFreePixmap,(Display* a,Pixmap b),(a,b),return)
    53 SDL_X11_SYM(char*,XGetAtomName,(Display *a,Atom b),(a,b),return)
    54 SDL_X11_SYM(int,XGetInputFocus,(Display *a,Window *b,int *c),(a,b,c),return)
    55 SDL_X11_SYM(int,XGetErrorDatabaseText,(Display* a,_Xconst char* b,_Xconst char* c,_Xconst char* d,char* e,int f),(a,b,c,d,e,f),return)
    56 SDL_X11_SYM(XModifierKeymap*,XGetModifierMapping,(Display* a),(a),return)
    57 SDL_X11_SYM(int,XGetPointerControl,(Display* a,int* b,int* c,int* d),(a,b,c,d),return)
    58 SDL_X11_SYM(Window,XGetSelectionOwner,(Display* a,Atom b),(a,b),return)
    59 SDL_X11_SYM(XVisualInfo*,XGetVisualInfo,(Display* a,long b,XVisualInfo* c,int* d),(a,b,c,d),return)
    60 SDL_X11_SYM(Status,XGetWindowAttributes,(Display* a,Window b,XWindowAttributes* c),(a,b,c),return)
    61 SDL_X11_SYM(int,XGetWindowProperty,(Display* a,Window b,Atom c,long d,long e,Bool f,Atom g,Atom* h,int* i,unsigned long* j,unsigned long *k,unsigned char **l),(a,b,c,d,e,f,g,h,i,j,k,l),return)
    62 SDL_X11_SYM(XWMHints*,XGetWMHints,(Display* a,Window b),(a,b),return)
    63 SDL_X11_SYM(Status,XGetWMNormalHints,(Display *a,Window b, XSizeHints *c, long *d),(a,b,c,d),return)
    64 SDL_X11_SYM(int,XGrabKeyboard,(Display* a,Window b,Bool c,int d,int e,Time f),(a,b,c,d,e,f),return)
    65 SDL_X11_SYM(int,XGrabPointer,(Display* a,Window b,Bool c,unsigned int d,int e,int f,Window g,Cursor h,Time i),(a,b,c,d,e,f,g,h,i),return)
    66 SDL_X11_SYM(int,XGrabServer,(Display* a),(a),return)
    67 SDL_X11_SYM(Status,XIconifyWindow,(Display* a,Window b,int c),(a,b,c),return)
    68 SDL_X11_SYM(KeyCode,XKeysymToKeycode,(Display* a,KeySym b),(a,b),return)
    69 SDL_X11_SYM(char*,XKeysymToString,(KeySym a),(a),return)
    70 SDL_X11_SYM(Atom,XInternAtom,(Display* a,_Xconst char* b,Bool c),(a,b,c),return)
    71 SDL_X11_SYM(XPixmapFormatValues*,XListPixmapFormats,(Display* a,int* b),(a,b),return)
    72 SDL_X11_SYM(KeySym,XLookupKeysym,(XKeyEvent* a,int b),(a,b),return)
    73 SDL_X11_SYM(int,XLookupString,(XKeyEvent* a,char* b,int c,KeySym* d,XComposeStatus* e),(a,b,c,d,e),return)
    74 SDL_X11_SYM(int,XMapRaised,(Display* a,Window b),(a,b),return)
    75 SDL_X11_SYM(Status,XMatchVisualInfo,(Display* a,int b,int c,int d,XVisualInfo* e),(a,b,c,d,e),return)
    76 SDL_X11_SYM(int,XMissingExtension,(Display* a,_Xconst char* b),(a,b),return)
    77 SDL_X11_SYM(int,XMoveWindow,(Display* a,Window b,int c,int d),(a,b,c,d),return)
    78 SDL_X11_SYM(int,XNextEvent,(Display* a,XEvent* b),(a,b),return)
    79 SDL_X11_SYM(Display*,XOpenDisplay,(_Xconst char* a),(a),return)
    80 SDL_X11_SYM(int,XPeekEvent,(Display* a,XEvent* b),(a,b),return)
    81 SDL_X11_SYM(int,XPending,(Display* a),(a),return)
    82 SDL_X11_SYM(int,XPutImage,(Display* a,Drawable b,GC c,XImage* d,int e,int f,int g,int h,unsigned int i,unsigned int j),(a,b,c,d,e,f,g,h,i,j),return)
    83 SDL_X11_SYM(int,XQueryKeymap,(Display* a,char *b),(a,b),return)
    84 SDL_X11_SYM(Bool,XQueryPointer,(Display* a,Window b,Window* c,Window* d,int* e,int* f,int* g,int* h,unsigned int* i),(a,b,c,d,e,f,g,h,i),return)
    85 SDL_X11_SYM(int,XRaiseWindow,(Display* a,Window b),(a,b),return)
    86 SDL_X11_SYM(int,XResetScreenSaver,(Display* a),(a),return)
    87 SDL_X11_SYM(int,XResizeWindow,(Display* a,Window b,unsigned int c,unsigned int d),(a,b,c,d),return)
    88 SDL_X11_SYM(int,XSelectInput,(Display* a,Window b,long c),(a,b,c),return)
    89 SDL_X11_SYM(Status,XSendEvent,(Display* a,Window b,Bool c,long d,XEvent* e),(a,b,c,d,e),return)
    90 SDL_X11_SYM(int,XSetClassHint,(Display* a,Window b,XClassHint* c),(a,b,c),return)
    91 SDL_X11_SYM(XErrorHandler,XSetErrorHandler,(XErrorHandler a),(a),return)
    92 SDL_X11_SYM(XIOErrorHandler,XSetIOErrorHandler,(XIOErrorHandler a),(a),return)
    93 SDL_X11_SYM(int,XSetSelectionOwner,(Display* a,Atom b,Window c,Time d),(a,b,c,d),return)
    94 SDL_X11_SYM(int,XSetTransientForHint,(Display* a,Window b,Window c),(a,b,c),return)
    95 SDL_X11_SYM(void,XSetTextProperty,(Display* a,Window b,XTextProperty* c,Atom d),(a,b,c,d),)
    96 SDL_X11_SYM(int,XSetWMHints,(Display* a,Window b,XWMHints* c),(a,b,c),return)
    97 SDL_X11_SYM(void,XSetWMNormalHints,(Display* a,Window b,XSizeHints* c),(a,b,c),)
    98 SDL_X11_SYM(Status,XSetWMProtocols,(Display* a,Window b,Atom* c,int d),(a,b,c,d),return)
    99 SDL_X11_SYM(int,XStoreColors,(Display* a,Colormap b,XColor* c,int d),(a,b,c,d),return)
   100 SDL_X11_SYM(Status,XStringListToTextProperty,(char** a,int b,XTextProperty* c),(a,b,c),return)
   101 SDL_X11_SYM(int,XSync,(Display* a,Bool b),(a,b),return)
   102 SDL_X11_SYM(int,XUndefineCursor,(Display* a,Window b),(a,b),return)
   103 SDL_X11_SYM(int,XUngrabKeyboard,(Display* a,Time b),(a,b),return)
   104 SDL_X11_SYM(int,XUngrabPointer,(Display* a,Time b),(a,b),return)
   105 SDL_X11_SYM(int,XUngrabServer,(Display* a),(a),return)
   106 SDL_X11_SYM(int,XUnmapWindow,(Display* a,Window b),(a,b),return)
   107 SDL_X11_SYM(int,XWarpPointer,(Display* a,Window b,Window c,int d,int e,unsigned int f,unsigned int g,int h,int i),(a,b,c,d,e,f,g,h,i),return)
   108 SDL_X11_SYM(VisualID,XVisualIDFromVisual,(Visual* a),(a),return)
   109 SDL_X11_SYM(XExtDisplayInfo*,XextAddDisplay,(XExtensionInfo* a,Display* b,char* c,XExtensionHooks* d,int e,XPointer f),(a,b,c,d,e,f),return)
   110 SDL_X11_SYM(XExtensionInfo*,XextCreateExtension,(void),(),return)
   111 SDL_X11_SYM(void,XextDestroyExtension,(XExtensionInfo* a),(a),)
   112 SDL_X11_SYM(XExtDisplayInfo*,XextFindDisplay,(XExtensionInfo* a,Display* b),(a,b),return)
   113 SDL_X11_SYM(int,XextRemoveDisplay,(XExtensionInfo* a,Display* b),(a,b),return)
   114 SDL_X11_SYM(Bool,XQueryExtension,(Display* a,_Xconst char* b,int* c,int* d,int* e),(a,b,c,d,e),return)
   115 SDL_X11_SYM(char *,XDisplayString,(Display* a),(a),return)
   116 SDL_X11_SYM(int,XGetErrorText,(Display* a,int b,char* c,int d),(a,b,c,d),return)
   117 SDL_X11_SYM(void,_XEatData,(Display* a,unsigned long b),(a,b),)
   118 SDL_X11_SYM(void,_XFlush,(Display* a),(a),)
   119 SDL_X11_SYM(void,_XFlushGCCache,(Display* a,GC b),(a,b),)
   120 SDL_X11_SYM(int,_XRead,(Display* a,char* b,long c),(a,b,c),return)
   121 SDL_X11_SYM(void,_XReadPad,(Display* a,char* b,long c),(a,b,c),)
   122 SDL_X11_SYM(void,_XSend,(Display* a,_Xconst char* b,long c),(a,b,c),)
   123 SDL_X11_SYM(Status,_XReply,(Display* a,xReply* b,int c,Bool d),(a,b,c,d),return)
   124 SDL_X11_SYM(unsigned long,_XSetLastRequestRead,(Display* a,xGenericReply* b),(a,b),return)
   125 SDL_X11_SYM(SDL_X11_XSynchronizeRetType,XSynchronize,(Display* a,Bool b),(a,b),return)
   126 SDL_X11_SYM(SDL_X11_XESetWireToEventRetType,XESetWireToEvent,(Display* a,int b,SDL_X11_XESetWireToEventRetType c),(a,b,c),return)
   127 SDL_X11_SYM(SDL_X11_XESetEventToWireRetType,XESetEventToWire,(Display* a,int b,SDL_X11_XESetEventToWireRetType c),(a,b,c),return)
   128 
   129 #if NeedWidePrototypes
   130 SDL_X11_SYM(KeySym,XKeycodeToKeysym,(Display* a,unsigned int b,int c),(a,b,c),return)
   131 #else
   132 SDL_X11_SYM(KeySym,XKeycodeToKeysym,(Display* a,KeyCode b,int c),(a,b,c),return)
   133 #endif
   134 
   135 #ifdef X_HAVE_UTF8_STRING
   136 SDL_X11_MODULE(UTF8)
   137 SDL_X11_SYM(int,Xutf8TextListToTextProperty,(Display* a,char** b,int c,XICCEncodingStyle d,XTextProperty* e),(a,b,c,d,e),return)
   138 SDL_X11_SYM(int,Xutf8LookupString,(XIC a,XKeyPressedEvent* b,char* c,int d,KeySym* e,Status* f),(a,b,c,d,e,f),return)
   139 /*SDL_X11_SYM(XIC,XCreateIC,(XIM, ...),return)  !!! ARGH! */
   140 SDL_X11_SYM(void,XDestroyIC,(XIC a),(a),)
   141 /*SDL_X11_SYM(char*,XGetICValues,(XIC, ...),return)  !!! ARGH! */
   142 SDL_X11_SYM(void,XSetICFocus,(XIC a),(a),)
   143 SDL_X11_SYM(void,XUnsetICFocus,(XIC a),(a),)
   144 SDL_X11_SYM(XIM,XOpenIM,(Display* a,struct _XrmHashBucketRec* b,char* c,char* d),(a,b,c,d),return)
   145 SDL_X11_SYM(Status,XCloseIM,(XIM a),(a),return)
   146 #endif
   147 
   148 #ifndef NO_SHARED_MEMORY
   149 SDL_X11_MODULE(SHM)
   150 SDL_X11_SYM(Status,XShmAttach,(Display* a,XShmSegmentInfo* b),(a,b),return)
   151 SDL_X11_SYM(Status,XShmDetach,(Display* a,XShmSegmentInfo* b),(a,b),return)
   152 SDL_X11_SYM(Status,XShmPutImage,(Display* a,Drawable b,GC c,XImage* d,int e,int f,int g,int h,unsigned int i,unsigned int j,Bool k),(a,b,c,d,e,f,g,h,i,j,k),return)
   153 SDL_X11_SYM(XImage*,XShmCreateImage,(Display* a,Visual* b,unsigned int c,int d,char* e,XShmSegmentInfo* f,unsigned int g,unsigned int h),(a,b,c,d,e,f,g,h),return)
   154 SDL_X11_SYM(Pixmap,XShmCreatePixmap,(Display *a,Drawable b,char* c,XShmSegmentInfo* d, unsigned int e, unsigned int f, unsigned int g),(a,b,c,d,e,f,g),return)
   155 SDL_X11_SYM(Bool,XShmQueryExtension,(Display* a),(a),return)
   156 #endif
   157 
   158 /*
   159  * Not required...these only exist in code in headers on some 64-bit platforms,
   160  *  and are removed via macros elsewhere, so it's safe for them to be missing.
   161  */
   162 #ifdef LONG64
   163 SDL_X11_MODULE(IO_32BIT)
   164 SDL_X11_SYM(int,_XData32,(Display *dpy,register long *data,unsigned len),(dpy,data,len),return)
   165 SDL_X11_SYM(void,_XRead32,(Display *dpy,register long *data,long len),(dpy,data,len),)
   166 #endif
   167 
   168 /*
   169  * These only show up on some variants of Unix.
   170  */
   171 #if defined(__osf__)
   172 SDL_X11_MODULE(OSF_ENTRY_POINTS)
   173 SDL_X11_SYM(void,_SmtBufferOverflow,(Display *dpy,register smtDisplayPtr p),(dpy,p),)
   174 SDL_X11_SYM(void,_SmtIpError,(Display *dpy,register smtDisplayPtr p,int i),(dpy,p,i),)
   175 SDL_X11_SYM(int,ipAllocateData,(ChannelPtr a,IPCard b,IPDataPtr * c),(a,b,c),return)
   176 SDL_X11_SYM(int,ipUnallocateAndSendData,(ChannelPtr a,IPCard b),(a,b),return)
   177 #endif
   178 
   179 /* XCursor support */
   180 #if SDL_VIDEO_DRIVER_X11_XCURSOR
   181 SDL_X11_MODULE(XCURSOR)
   182 SDL_X11_SYM(XcursorImage*,XcursorImageCreate,(int a,int b),(a,b),return)
   183 SDL_X11_SYM(void,XcursorImageDestroy,(XcursorImage *a),(a),)
   184 SDL_X11_SYM(Cursor,XcursorImageLoadCursor,(Display *a,const XcursorImage *b),(a,b),return)
   185 #endif
   186 
   187 /* Xinerama support */
   188 #if SDL_VIDEO_DRIVER_X11_XINERAMA
   189 SDL_X11_MODULE(XINERAMA)
   190 SDL_X11_SYM(Bool,XineramaIsActive,(Display *a),(a),return)
   191 SDL_X11_SYM(Bool,XineramaQueryExtension,(Display *a,int *b,int *c),(a,b,c),return)
   192 SDL_X11_SYM(Status,XineramaQueryVersion,(Display *a,int *b,int *c),(a,b,c),return)
   193 SDL_X11_SYM(XineramaScreenInfo*,XineramaQueryScreens,(Display *a, int *b),(a,b),return)
   194 #endif
   195 
   196 /* XInput support for multiple mice, tablets, etc. */
   197 #if SDL_VIDEO_DRIVER_X11_XINPUT
   198 SDL_X11_MODULE(XINPUT)
   199 SDL_X11_SYM(XDeviceInfo*,XListInputDevices,(Display *a,int *b),(a,b),return)
   200 SDL_X11_SYM(void,XFreeDeviceList,(XDeviceInfo *a),(a),)
   201 SDL_X11_SYM(int,XSelectExtensionEvent,(Display *a,Window b,XEventClass *c,int d),(a,b,c,d),return)
   202 SDL_X11_SYM(XDevice*,XOpenDevice,(Display *a,XID b),(a,b),return)
   203 SDL_X11_SYM(int,XCloseDevice,(Display* a,XDevice* b),(a,b),return)
   204 #endif
   205 
   206 /* XRandR support */
   207 #if SDL_VIDEO_DRIVER_X11_XRANDR
   208 SDL_X11_MODULE(XRANDR)
   209 SDL_X11_SYM(Status,XRRQueryVersion,(Display *dpy,int *major_versionp,int *minor_versionp),(dpy,major_versionp,minor_versionp),return)
   210 SDL_X11_SYM(XRRScreenConfiguration *,XRRGetScreenInfo,(Display *dpy,Drawable draw),(dpy,draw),return)
   211 SDL_X11_SYM(SizeID,XRRConfigCurrentConfiguration,(XRRScreenConfiguration *config,Rotation *rotation),(config,rotation),return)
   212 SDL_X11_SYM(short,XRRConfigCurrentRate,(XRRScreenConfiguration *config),(config),return)
   213 SDL_X11_SYM(short *,XRRConfigRates,(XRRScreenConfiguration *config,int sizeID,int *nrates),(config,sizeID,nrates),return)
   214 SDL_X11_SYM(XRRScreenSize *,XRRConfigSizes,(XRRScreenConfiguration *config,int *nsizes),(config,nsizes),return)
   215 SDL_X11_SYM(Status,XRRSetScreenConfigAndRate,(Display *dpy,XRRScreenConfiguration *config,Drawable draw,int size_index,Rotation rotation,short rate,Time timestamp),(dpy,config,draw,size_index,rotation,rate,timestamp),return)
   216 SDL_X11_SYM(void,XRRFreeScreenConfigInfo,(XRRScreenConfiguration *config),(config),)
   217 #endif
   218 
   219 /* MIT-SCREEN-SAVER support */
   220 #if SDL_VIDEO_DRIVER_X11_XSCRNSAVER
   221 SDL_X11_MODULE(XSS)
   222 SDL_X11_SYM(Bool,XScreenSaverQueryExtension,(Display *dpy,int *event_base,int *error_base),(dpy,event_base,error_base),return)
   223 SDL_X11_SYM(Status,XScreenSaverQueryVersion,(Display *dpy,int *major_versionp,int *minor_versionp),(dpy,major_versionp,minor_versionp),return)
   224 SDL_X11_SYM(void,XScreenSaverSuspend,(Display *dpy,Bool suspend),(dpy,suspend),return)
   225 #endif
   226 
   227 #if SDL_VIDEO_DRIVER_X11_XSHAPE
   228 SDL_X11_MODULE(XSHAPE)
   229 SDL_X11_SYM(void,XShapeCombineMask,(Display *dpy,Window dest,int dest_kind,int x_off,int y_off,Pixmap src,int op),(dpy,dest,dest_kind,x_off,y_off,src,op),)
   230 #endif
   231 
   232 #if SDL_VIDEO_DRIVER_X11_XVIDMODE
   233 SDL_X11_MODULE(XVIDMODE)
   234 SDL_X11_SYM(Bool,XF86VidModeGetAllModeLines,(Display *a,int b,int *c,XF86VidModeModeInfo ***d),(a,b,c,d),return)
   235 SDL_X11_SYM(Bool,XF86VidModeGetModeLine,(Display *a,int b,int *c,XF86VidModeModeLine *d),(a,b,c,d),return)
   236 SDL_X11_SYM(Bool,XF86VidModeGetViewPort,(Display *a,int b,int *c,int *d),(a,b,c,d),return)
   237 SDL_X11_SYM(Bool,XF86VidModeQueryExtension,(Display *a,int *b,int *c),(a,b,c),return)
   238 SDL_X11_SYM(Bool,XF86VidModeQueryVersion,(Display *a,int *b,int *c),(a,b,c),return)
   239 SDL_X11_SYM(Bool,XF86VidModeSwitchToMode,(Display *a,int b,XF86VidModeModeInfo *c),(a,b,c),return)
   240 #endif
   241 
   242 /* *INDENT-ON* */
   243 
   244 /* vi: set ts=4 sw=4 expandtab: */