#ifndef _XlibPublic_h_
#define _XlibPublic_h_

#ifndef _XLIB_H_
#include "Xlib.h"
#endif

#ifndef _XUTIL_H_
#include "Xutil.h"
#endif

/* public */

extern void XActivateScreenSaver(Display *dpy);

extern XExtCodes *XAddExtension(Display *dpy);

extern void XAddHost(Display *dpy, XHostAddress *host);

extern void XAddHosts(Display *dpy, XHostAddress *hosts, int n);

extern int XAddPixel(XImage *ximage, unsigned long value);

extern void XAddToSaveSet(Display *dpy, Window win);

extern unsigned long XAllPlanes();

extern Status XAllocColor(Display *dpy, Colormap cmap, XColor *def);

extern Status XAllocColorCells(
    Display *dpy, Colormap cmap, Bool contig, unsigned long masks[], 
    unsigned int nplanes, unsigned long pixels[], unsigned int ncolors);

extern Status XAllocColorPlanes(
    Display *dpy, Colormap cmap, Bool contig, unsigned long pixels[], 
    int ncolors, int nreds, int ngreen, int nblues, unsigned long *rmas,
    unsigned long *gmas, unsigned long *bmask);

extern Status XAllocNamedColor(
    Display *dpy, Colormap cmap, char *colorname, XColor *hard_def, 
    XColor *exact_def);

extern void XAllowEvents(Display *dpy, int mode, Time time);

extern void XAutoRepeatOff(Display *dpy);

extern void XAutoRepeatOn(Display *dpy);

extern void XBell(Display *dpy, int percent);

extern int XBitmapBitOrder(Display *dpy);

extern int XBitmapPad(Display *dpy);

extern int XBitmapUnit(Display *dpy);

extern unsigned long XBlackPixel(Display *dpy, int scr);

extern unsigned long XBlackPixelOfScreen(Screen *s);

extern int XCellsOfScreen(Screen *s);

extern void XChangeActivePointerGrab(
    Display *dpy, unsigned int event_mask, Cursor curs, Time time);

extern void XChangeGC(
    Display *dpy, GC gc, unsigned long valuemask, XGCValues *values);

extern void XChangeKeyboardControl(
    Display *dpy, unsigned long mask, XKeyboardControl *value_list);

extern void XChangeKeyboardMapping(
    Display *dpy, int first_keycode, int keysyms_per_keycode, KeySym *keysyms, 
    int nkeycodes);

extern void XChangePointerControl(
    Display *dpy, Bool do_acc, Bool do_thresh, int acc_numerator, 
    int acc_denominator, int threshold);

extern void XChangeProperty(
    Display *dpy, Window w, Atom property, Atom type, int format, int mode, 
    unsigned char *data, int nelements);

extern void XChangeSaveSet(Display *dpy, Window win, int mode);

extern void XChangeWindowAttributes(
    Display *dpy, Window w, unsigned long valuemask, 
    XSetWindowAttributes *attributes);

extern Bool XCheckIfEvent(
    Display *dpy, XEvent *event, Bool (*predicate)(), char *arg);

extern Bool XCheckMaskEvent(Display *dpy, long mask, XEvent *event);

extern Bool XCheckTypedEvent(Display *dpy, int type, XEvent *event);

extern Bool XCheckTypedWindowEvent(
    Display *dpy, Window w, int type, XEvent *event);

extern Bool XCheckWindowEvent(Display *dpy, Window w, long mask, XEvent *event);

extern void XCirculateSubwindows(Display *dpy, Window w, int direction);

extern void XCirculateSubwindowsDown(Display *dpy,Window w);

extern void XCirculateSubwindowsUp(Display *dpy, Window w);

extern void XClearArea(
    Display *dpy, Window w, int x, int y, unsigned int width, 
    unsigned int height, Bool exposures);

extern void XClearWindow(Display *dpy, Window w);

extern void XClipBox(Region r, XRectangle *rect);

extern void XCloseDisplay(Display *dpy);

extern void XConfigureWindow(
    Display *dpy, Window w, unsigned int mask, XWindowChanges *changes);

extern int XConnectionNumber(Display *dpy);

extern void XConvertSelection(
    Display *dpy, Atom selection, Atom target, Atom property, 
    Window requestor, Time time);

extern void XCopyArea(
    Display *dpy, Drawable src_drawable, Drawable dst_drawable, GC gc, 
    int src_x, int src_y, unsigned int width, unsigned int height, int dst_x, 
    int dst_y);

extern Colormap XCopyColormapAndFree(Display *dpy, Colormap src_cmap);

extern void XCopyGC(Display *dpy, GC srcGC, unsigned long mask, GC destGC);

extern void XCopyPlane(
    Display *dpy, Drawable src_drawable, Drawable dst_drawable, GC gc, 
    int src_x, int src_y, unsigned int width, unsigned int height, int dst_x, 
    int dst_y, unsigned long bit_plane);

extern Pixmap XCreateBitmapFromData(
    Display *display, Drawable d, char *data, unsigned int width, 
    unsigned int height);

extern Colormap XCreateColormap(
    Display *dpy, Window w, Visual *visual, int alloc);

extern Cursor XCreateFontCursor(Display *dpy, unsigned int which);

extern GC XCreateGC(
    Display *dpy, Drawable d, unsigned long valuemask, XGCValues *values);

extern Cursor XCreateGlyphCursor(
    Display *dpy, Font source_font, Font mask_font, unsigned int source_char, 
    unsigned int mask_char, XColor *foreground, XColor *background);

extern XImage *XCreateImage(
    Display *dpy, Visual *visual, unsigned int depth, int format, int offset, 
    char  *data, unsigned int width, unsigned int height, int xpad, 
    int image_bytes_per_line);

extern Pixmap XCreatePixmap(
    Display *dpy, Drawable d, unsigned int width, unsigned int height, 
    unsigned int depth);

extern Cursor XCreatePixmapCursor(
    Display *dpy, Pixmap source, Pixmap mask, XColor *foreground, 
    XColor *background, unsigned int x, 
    unsigned int y);

extern Pixmap XCreatePixmapFromBitmapData(
    Display *display, Drawable d, char *data, unsigned int width, 
    unsigned int height, unsigned long fg, unsigned long bg, 
    unsigned int depth);

extern Region XCreateRegion();

extern Region XCreateRegion();

extern Window XCreateSimpleWindow(
    Display *dpy, Window parent, int x, int y, unsigned int width, 
    unsigned int height, unsigned int borderWidth, unsigned long border, 
    unsigned long background);

extern Window XCreateWindow(
    Display *dpy, Window parent, int x, int y, unsigned int width, 
    unsigned int height, unsigned int borderWidth, int depth, 
    unsigned int window_class, Visual *visual, unsigned long valuemask, 
    XSetWindowAttributes *attributes);

extern Colormap XDefaultColormap(Display *dpy, int scr);

extern Colormap XDefaultColormapOfScreen(Screen *s);

extern int XDefaultDepth(Display *dpy, int scr);

extern int XDefaultDepthOfScreen(Screen *s);

extern GC XDefaultGC(Display *dpy, int scr);

extern GC XDefaultGCOfScreen(Screen *s);

extern Window XDefaultRootWindow(Display *dpy);

extern int XDefaultScreen(Display *dpy);

extern Screen *XDefaultScreenOfDisplay(Display *dpy);

extern Visual *XDefaultVisual(Display *dpy, int scr);

extern Visual *XDefaultVisualOfScreen(Screen *s);

extern void XDefineCursor(Display *dpy, Window w, Cursor cursor);

extern int XDeleteContext(Display *display, Window window, XContext context);

extern XModifierKeymap * XDeleteModifiermapEntry(
    XModifierKeymap *map, KeyCode keysym, int modifier);

extern void XDeleteProperty(Display *dpy, Window window, Atom property);

extern int XDestroyImage(XImage *ximage);

extern void XDestroyRegion(Region r);

extern void XDestroySubwindows(Display *dpy, Window win);

extern void XDestroyWindow(Display *dpy, Window w);

extern void XDisableAccessControl(Display *dpy);

extern int XDisplayCells(Display *dpy, int scr);

extern int XDisplayHeight(Display *dpy, int scr);

extern int XDisplayHeightMM(Display *dpy, int scr);

extern void XDisplayKeycodes(
    Display *dpy, int *min_keycode_return, int *max_keycode_return);

extern unsigned long XDisplayMotionBufferSize(Display *dpy);

extern char *XDisplayName(char *display);

extern Display *XDisplayOfScreen(Screen *s);

extern int XDisplayPlanes(Display *dpy, int scr);

extern char *XDisplayString(Display *dpy);

extern int XDisplayWidth(Display *dpy, int scr);

extern int XDisplayWidthMM(Display *dpy, int scr);

extern int XDoesBackingStore(Screen *s);

extern Bool XDoesSaveUnders(Screen *s);

extern void XDrawArc(
    Display *dpy, Drawable d, GC gc, int x, int y, unsigned int width, 
    unsigned int height, int angle1, int angle2);

extern void XDrawArcs(Display *dpy, Drawable d, GC gc, XArc *arcs, int n_arcs);

extern void XDrawImageString(
    Display *dpy, Drawable d, GC gc, int x, int y, char *string, int length);

extern void XDrawImageString16(
    Display *dpy, Drawable d, GC gc, int x, int y, XChar2b *string, 
    int length);

extern void XDrawLine(
    Display *dpy, Drawable d, GC gc, int x1, int y1, int x2, int y2);

extern void XDrawLines(
    Display *dpy, Drawable d, GC gc, XPoint *points, int npoints, int mode);

extern void XDrawPoint(Display *dpy, Drawable d, GC gc, int x, int y);

extern void XDrawPoints(
    Display *dpy, Drawable d, GC gc, XPoint *points, int n_points, int mode);

extern void XDrawRectangle(
    Display *dpy, Drawable d, GC gc, int x, int y, unsigned int width, 
    unsigned int height);

extern void XDrawRectangles(
    Display *dpy, Drawable d, GC gc, XRectangle *rects, int n_rects);

extern void XDrawSegments(
    Display *dpy, Drawable d, GC gc, XSegment *segments, int nsegments);

extern void XDrawString(
    Display *dpy, Drawable d, GC gc, int x, int y, char *string, int length);

extern void XDrawString16(
    Display *dpy, Drawable d, GC gc, int x, int y, XChar2b *string, 
    int length);

extern void XDrawText(
    Display *dpy, Drawable d, GC gc, int x, int y, XTextItem *items, 
    int nitems);

extern void XDrawText16(
    Display *dpy, Drawable d, GC gc, int x, int y, XTextItem16 *items, 
    int nitems);

/* not defined yet in our stuff...

extern XExtData **XEHeadOfExtensionList(XEDataObject object);

*/

extern int (*XESetCloseDisplay(Display *dpy, int extension, int (*proc)()))();

extern int (*XESetCopyGC(Display *dpy, int extension, int (*proc)()))();

extern int (*XESetCreateFont(Display *dpy, int extension, int (*proc)()))();

extern int (*XESetCreateGC(Display *dpy, int extension, int (*proc)()))();

extern int (*XESetError(Display *dpy, int extension, int (*proc)()))();

extern int (*XESetErrorString(Display *dpy, int extension, int (*proc)()))();

extern Status (
    *XESetEventToWire(Display *dpy, int event_number, Status (*proc)()))();

extern int (*XESetFlushGC(Display *dpy, int extension, int (*proc)()))();

extern int (*XESetFreeFont(Display *dpy, int extension, int (*proc)()))();

extern int (*XESetFreeGC(Display *dpy, int extension, int (*proc)()))();

extern Bool (
    *XESetWireToEvent(Display *dpy, int event_number, Bool (*proc)()))();

extern int XEmptyRegion(Region r);

extern void XEnableAccessControl(Display *dpy);

extern int XEqualRegion(Region r1, Region r2);

extern long XEventMaskOfScreen(Screen *s);

extern int XEventsQueued(Display *dpy, int mode);

extern char *XFetchBuffer(Display *dpy, int *nbytes, int buffer);

extern char *XFetchBytes(Display *dpy, int *nbytes);

extern Status XFetchName(Display *dpy, Window w, char **name);

extern void XFillArc(
    Display *dpy, Drawable d, GC gc, int x, int y, unsigned int width, 
    unsigned int height, int angle1, int angle2);

extern void XFillArcs(Display *dpy, Drawable d, GC gc, XArc *arcs, int n_arcs);

extern void XFillPolygon(
    Display *dpy, Drawable d, GC gc, XPoint *points, int n_points, int shape, 
    int mode);

extern void XFillRectangle(
    Display *dpy, Drawable d, GC gc, int x, int y, unsigned int width, 
    unsigned int height);

extern void XFillRectangles(
    Display *dpy, Drawable d, GC gc, XRectangle *rectangles, int n_rects);

extern int XFindContext(
    Display *display, Window window, XContext context, caddr_t *data);

extern XExtData *XFindOnExtensionList(XExtData **structure, int number);

extern void XFlush(Display *dpy);

extern void XForceScreenSaver(Display *dpy, int mode);

extern void XFree(char *data);

extern void XFreeColormap(Display *dpy, Colormap cmap);

extern void XFreeColors(
    Display *dpy, Colormap cmap, unsigned long *pixels, int npixels, 
    unsigned long planes);

extern void XFreeCursor(Display *dpy, Cursor cursor);

extern void XFreeExtensionList(char **list);

extern void XFreeFont(Display *dpy, XFontStruct *fs);

extern void XFreeFontInfo(char **names, XFontStruct *info, int actualCount);

extern void XFreeFontNames(char **list);

extern void XFreeFontPath(char **list);

extern void XFreeGC(Display *dpy, GC gc);

extern void XFreeModifiermap(XModifierKeymap *map);

extern void XFreePixmap(Display *dpy, Pixmap pixmap);

extern GContext XGContextFromGC(GC gc);

extern int XGeometry(
    Display *dpy, int screen, char *pos, char *def, unsigned int bwidth, 
    unsigned int fwidth, unsigned int fheight, int xadd, int yadd, int *x, 
    int *y, int *width, int *height);

extern char *XGetAtomName(Display *dpy, Atom atom);

extern Status XGetClassHint(Display *dpy, Window w, XClassHint *classhint);

extern char *XGetDefault(Display *dpy, char *prog, char *name);

extern void XGetErrorDatabaseText(
    Display *dpy, char *name, char *type, char *defaultp, char *buffer, 
    int nbytes);

extern void XGetErrorText(Display *dpy, int code, char *buffer, int nbytes);

extern char **XGetFontPath(Display *dpy, int *npaths);

extern Bool XGetFontProperty(
    XFontStruct *fs, Atom name, unsigned long *valuePtr);

extern Status XGetGeometry(
    Display *dpy, Drawable d, Window *root, int *x, int *y, 
    unsigned int *width, unsigned int *height, unsigned int *borderWidth, 
    unsigned int *depth);

extern Status XGetIconName(Display *dpy, Window w, char **icon_name);

extern Status XGetIconSizes(
    Display *dpy, Window w, XIconSize **size_list, int *count);

extern XImage *XGetImage(
    Display *dpy, Drawable d, int x, int y, unsigned int width, 
    unsigned int height, unsigned long plane_mask, int format);

extern void XGetInputFocus(Display *dpy, Window *focus, int *revert_to);

extern void XGetKeyboardControl(Display *dpy, XKeyboardState *state);

extern KeySym *XGetKeyboardMapping(
    Display *dpy, KeyCode first_keycode, int count, 
    int *keysyms_per_keycode);

extern XModifierKeymap * XGetModifierMapping(Display *dpy);

extern XTimeCoord *XGetMotionEvents(
    Display *dpy, Window w, Time start, Time stop, int *nEvents);

extern Status XGetNormalHints(Display *dpy, Window w, XSizeHints *hints);

extern unsigned long XGetPixel(XImage *ximage, int x, int y);

extern void XGetPointerControl(
    Display *dpy, int *accel_numer, int *accel_denom, int *threshold);

extern int XGetPointerMapping(Display *dpy, unsigned char map[], int nmaps);

extern void XGetScreenSaver(
    Display *dpy, int *timeout, int *interval, int *prefer_blanking, 
    int *allow_exp);

extern Window XGetSelectionOwner(Display *dpy, Atom selection);

extern Status XGetSizeHints(
    Display *dpy, Window w, XSizeHints *hints, Atom property);

extern Status XGetStandardColormap(
    Display *dpy, Window w, XStandardColormap *cmap, Atom property);

extern XImage *XGetSubImage(
    Display *dpy, Drawable d, int x, int y, unsigned int width, 
    unsigned int height, unsigned long plane_mask, int format, 
    XImage *dest_image, int dest_x, int dest_y);

extern Status XGetTransientForHint(Display *dpy, Window w, Window *propWindow);

extern XVisualInfo *XGetVisualInfo(
    Display *dpy, long visual_info_mask, XVisualInfo *visual_info_template, 
    int *nitems);

extern XWMHints *XGetWMHints(Display *dpy, Window w);

extern Status XGetWindowAttributes(
    Display *dpy, Window w, XWindowAttributes *att);

extern int XGetWindowProperty(
    Display *dpy, Window w, Atom property, long offset, long length, 
    Bool delete_prop, Atom req_type, Atom *actual_type, int *actual_format, 
    unsigned long *nitems, unsigned long *bytesafter, unsigned char **prop);

extern Status XGetZoomHints(Display *dpy, Window w, XSizeHints *zhints);

extern void XGrabButton(
    Display *dpy, unsigned int button, unsigned int modifiers, 
    Window grab_window, Bool owner_events, unsigned int event_mask, 
    int pointer_mode, int keyboard_mode, Window confine_to, Cursor curs);

extern void XGrabKey(
    Display *dpy, int key, unsigned int modifiers, Window grab_window, 
    Bool owner_events, int pointer_mode, int keyboard_mode);

extern int XGrabKeyboard(
    Display *dpy, Window window, Bool ownerEvents, int pointerMode, 
    int keyboardMode, Time time);

extern int XGrabPointer(
    Display *dpy, Window grab_window, Bool owner_events, 
    unsigned int event_mask, int pointer_mode, int keyboard_mode, 
    Window confine_to, Cursor curs, Time time);

extern void XGrabServer(Display *dpy);

extern int XHeightMMOfScreen(Screen *s);

extern int XHeightOfScreen(Screen *s);

extern void XIfEvent(
    Display *dpy, XEvent *event, Bool (*predicate)(), char *arg);

extern int XImageByteOrder(Display *dpy);

extern XExtCodes *XInitExtension(Display *dpy, char *name);

extern XModifierKeymap * XInsertModifiermapEntry(
    XModifierKeymap *map, KeyCode keysym, int modifier);

extern void XInstallColormap(Display *dpy, Colormap cmap);

extern Atom XInternAtom(Display *dpy, char *name, Bool onlyIfExists);

extern void XIntersectRegion(Region reg1, Region reg2, Region newReg);

extern KeySym XKeycodeToKeysym(Display *dpy, KeyCode kc, int col);

extern KeyCode XKeysymToKeycode(Display *dpy, KeySym ks);

extern char *XKeysymToString(KeySym ks);

extern void XKillClient(Display *dpy, XID resource);

extern unsigned long XLastKnownRequestProcessed(Display *dpy);

extern char **XListExtensions(Display *dpy, int *nextensions);

extern char **XListFonts(
    Display *dpy, char *pattern, int maxNames, int *actualCount);

extern char **XListFontsWithInfo(
    Display *dpy, char *pattern, int maxNames, int *actualCount, 
    XFontStruct **info);

extern XHostAddress *XListHosts(Display *dpy, int *nhosts, Bool *enabled);

extern Colormap *XListInstalledColormaps(Display *dpy, Window win, int *n);

extern Atom *XListProperties(Display *dpy, Window window, int *n_props);

extern Font XLoadFont(Display *dpy, char *name);

extern XFontStruct *XLoadQueryFont(Display *dpy, char *name);

extern Status XLookupColor(
    Display *dpy, Colormap cmap, char *spec, XColor *def, XColor *scr);

extern KeySym XLookupKeysym(XKeyEvent *event, int col);

extern int XLookupString(
    XKeyEvent *event, char *buffer, int nbytes, KeySym *keysym, 
    XComposeStatus *status);

extern void XLowerWindow(Display *dpy, Window w);

extern void XMapRaised(Display *dpy, Window w);

extern void XMapSubwindows(Display *dpy, Window win);

extern void XMapWindow(Display *dpy, Window w);

extern void XMaskEvent(Display *dpy, long mask, XEvent *event);

extern Status XMatchVisualInfo(
    Display *dpy, int screen, int depth, int visual_class, 
    XVisualInfo *visual_info);

extern int XMaxCmapsOfScreen(Screen *s);

extern long XMaxRequestSize(Display *dpy);

extern int XMinCmapsOfScreen(Screen *s);

extern void XMoveResizeWindow(
    Display *dpy, Window w, int x, int y, unsigned int width, 
    unsigned int height);

extern void XMoveWindow(Display *dpy, Window w, int x, int y);

extern XModifierKeymap * XNewModifiermap(int keyspermodifier);

extern void XNextEvent(Display *dpy, XEvent *event);

extern unsigned long XNextRequest(Display *dpy);

extern void XNoOp(Display *dpy);

extern void XOffsetRegion(Region pRegion, int x, int y);

extern Display *XOpenDisplay(char *display);

extern Status XParseColor(Display *dpy, Colormap cmap, char *spec, XColor *def);

extern int XParseGeometry(
    char *string, int *x, int *y, unsigned int *width, unsigned int *height);

extern void XPeekEvent(Display *dpy, XEvent *event);

extern void XPeekIfEvent(
    Display *dpy, XEvent *event, Bool (*predicate)(), char *arg);

extern int XPending(Display *dpy);

extern int XPlanesOfScreen(Screen *s);

extern int XPointInRegion(Region pRegion, int x, int y);

extern Region XPolygonRegion(XPoint *Pts, int Count, int rule);

extern int XProtocolRevision(Display *dpy);

extern int XProtocolVersion(Display *dpy);

extern void XPutBackEvent(Display *dpy, XEvent *event);

extern void XPutImage(
    Display *dpy, Drawable d, GC gc, XImage *image, int req_xoffset, 
    int req_yoffset, int x, int y, unsigned int req_width, 
    unsigned int req_height);

extern int XPutPixel(XImage *ximage, int x, int y, unsigned long pixel);

extern int XQLength(Display *dpy);

extern Status XQueryBestCursor(
    Display *dpy, Drawable drawable, unsigned int width, unsigned int height, 
    unsigned int *ret_width, unsigned int *ret_height);

extern Status XQueryBestSize(
    Display *dpy, int cl, Drawable drawable, unsigned int width, 
    unsigned int height, unsigned int *ret_width, unsigned int *ret_height);

extern Status XQueryBestStipple(
    Display *dpy, Drawable drawable, unsigned int width, unsigned int height, 
    unsigned int *ret_width, unsigned int *ret_height);

extern Status XQueryBestTile(
    Display *dpy, Drawable drawable, unsigned int width, unsigned int height, 
    unsigned int *ret_width, unsigned int *ret_height);

extern void XQueryColor(Display *dpy, Colormap cmap, XColor *def);

extern void XQueryColors(
    Display *dpy, Colormap cmap, XColor defs[], int ncolors);

extern Bool XQueryExtension(
    Display *dpy, char *name, int *major_opcode, int *first_event, 
    int *first_error);

extern XFontStruct *XQueryFont(Display *dpy, Font fid);

extern void XQueryKeymap(Display *dpy, char keys[32]);

extern Bool XQueryPointer(
    Display *dpy, Window w, Window *root, Window *child, int *root_x, 
    int *root_y, int *win_x, int *win_y, unsigned int *mask);

extern void XQueryTextExtents(
    Display *dpy, Font fid, char *string, int nchars, int *dir, 
    int *font_ascent, int *font_descent, XCharStruct *overall);

extern void XQueryTextExtents16(
    Display *dpy, Font fid, XChar2b *string, int nchars, int *dir, 
    int *font_ascent, int *font_descent, XCharStruct *overall);

extern Status XQueryTree(
    Display *dpy, Window w, Window *root, Window *parent, Window **children, 
    unsigned int *nchildren);

extern void XRaiseWindow(Display *dpy, Window w);

extern int XReadBitmapFile(
    Display *display, Drawable d, char *filename, unsigned int *width, 
    unsigned int *height, Pixmap *pixmap, int *x_hot, int *y_hot);

extern void XRebindKeysym(
    Display *dpy, KeySym keysym, KeySym *mlist, int nm, unsigned char *str, 
    int nbytes);

extern void XRecolorCursor(
    Display *dpy, Cursor cursor, XColor *foreground, XColor *background);

extern int XRectInRegion(
    Region region, int rx, int ry, unsigned int rwidth, 
    unsigned int rheight);

extern void XRefreshKeyboardMapping(XMappingEvent *event);

extern void XRemoveFromSaveSet(Display *dpy, Window win);

extern void XRemoveHost(Display *dpy, XHostAddress *host);

extern void XRemoveHosts(Display *dpy, XHostAddress *hosts, int n);

extern void XReparentWindow(Display *dpy, Window w, Window p, int x, int y);

extern void XResetScreenSaver(Display *dpy);

extern void XResizeWindow(
    Display *dpy, Window w, unsigned int width, unsigned int height);

extern char *XResourceManagerString(Display *dpy);

extern void XRestackWindows(Display *dpy, Window *windows, int n);

extern Window XRootWindow(Display *dpy, int scr);

extern Window XRootWindowOfScreen(Screen *s);

extern void XRotateBuffers(Display *dpy, int rotate);

extern void XRotateWindowProperties(
    Display *dpy, Window w, Atom properties[], int nprops, int npositions);

extern int XSaveContext(
    Display *display, Window window, XContext context, caddr_t data);

extern int XScreenCount(Display *dpy);

extern Screen *XScreenOfDisplay(Display *dpy, int scr);

extern void XSelectInput(Display *dpy, Window w, long mask);

extern Status XSendEvent(
    Display *dpy, Window w, Bool propagate, long event_mask, XEvent *event);

extern char *XServerVendor(Display *dpy);

extern void XSetAccessControl(Display *dpy, int mode);

extern int (*XSetAfterFunction(Display *dpy,int(*func)()))();

extern void XSetArcMode(Display *dpy, GC gc, int arc_mode);

extern void XSetBackground(Display *dpy, GC gc, unsigned long background);

extern void XSetClassHint(Display *dpy, Window w, XClassHint *classhint);

extern void XSetClipMask(Display *dpy, GC gc, Pixmap mask);

extern void XSetClipOrigin(Display *dpy, GC gc, int xorig, int yorig);

extern void XSetClipRectangles(
    Display *dpy, GC gc, int clip_x_origin, int clip_y_origin, 
    XRectangle *rectangles, int n, int ordering);

extern void XSetCloseDownMode(Display *dpy, int mode);

extern void XSetCommand(Display *dpy, Window w, char **argv, int argc);

extern void XSetDashes(Display *dpy, GC gc, int dash_offset, char *list, int n);

typedef int (*XErrorHandlerProc)();

extern void XSetErrorHandler(XErrorHandlerProc handler);

extern void XSetFillRule(Display *dpy, GC gc, int fill_rule);

extern void XSetFillStyle(Display *dpy, GC gc, int fill_style);

extern void XSetFont(Display *dpy, GC gc, Font font);

extern void XSetFontPath(Display *dpy, char **directories, int ndirs);

extern void XSetForeground(Display *dpy, GC gc, unsigned long foreground);

extern void XSetFunction(Display *dpy, GC gc, int function);

extern void XSetGraphicsExposures(Display *dpy, GC gc, Bool graphics_exposures);

typedef int (*XIOErrorHandlerProc)();

extern void XSetIOErrorHandler(XIOErrorHandlerProc handler);

extern void XSetIconName(Display *dpy, Window w, char *icon_name);

extern void XSetIconSizes(Display *dpy, Window w, XIconSize *list, int count);

extern void XSetInputFocus(Display *dpy, Window focus, int revert_to, Time time);

extern void XSetLineAttributes(
    Display *dpy, GC gc, unsigned int linewidth, int linestyle, int capstyle, 
    int joinstyle);

extern int XSetModifierMapping(Display *dpy, XModifierKeymap *modifier_map);

extern void XSetNormalHints(Display *dpy, Window w, XSizeHints *hints);

extern void XSetPlaneMask(Display *dpy, GC gc, unsigned long planemask);

extern int XSetPointerMapping(Display *dpy, unsigned char map[], int nmaps);

extern void XSetRegion(Display *dpy, GC gc, Region r);

extern void XSetScreenSaver(
    Display *dpy, int timeout, int interval, int prefer_blank, 
    int allow_exp);

extern void XSetSelectionOwner(
    Display *dpy, Atom selection, Window owner, Time time);

extern void XSetSizeHints(
    Display *dpy, Window w, XSizeHints *hints, Atom property);

extern void XSetStandardColormap(
    Display *dpy, Window w, XStandardColormap *cmap, Atom property);

extern void XSetStandardProperties(
    Display *dpy, Window w, char *name, char *icon_string, 
    Pixmap icon_pixmap, char *argv[], int argc, XSizeHints *hints);

extern void XSetState(
    Display *dpy, GC gc, unsigned long foreground, unsigned long background, 
    int function, unsigned long planemask);

extern void XSetStipple(Display *dpy, GC gc, Pixmap stipple);

extern void XSetSubwindowMode(Display *dpy, GC gc, int subwindow_mode);

extern void XSetTSOrigin(Display *dpy, GC gc, int x, int y);

extern void XSetTile(Display *dpy, GC gc, Pixmap tile);

extern void XSetTransientForHint(Display *dpy, Window w, Window propWindow);

extern void XSetWMHints(Display *dpy, Window w, XWMHints *wmhints);

extern void XSetWindowBackground(Display *dpy, Window w, unsigned long pixel);

extern void XSetWindowBackgroundPixmap(Display *dpy, Window w, Pixmap pixmap);

extern void XSetWindowBorder(Display *dpy, Window w, unsigned long pixel);

extern void XSetWindowBorderPixmap(Display *dpy, Window w, Pixmap pixmap);

extern void XSetWindowBorderWidth(Display *dpy, Window w, unsigned int width);

extern void XSetWindowColormap(Display *dpy, Window w, Colormap colormap);

extern void XSetZoomHints(Display *dpy, Window w, XSizeHints *zhints);

extern void XShrinkRegion(Region r, int dx, int dy);

extern void XStoreBuffer(Display *dpy, char bytes[], int nbytes, int buffer);

extern void XStoreBytes(Display *dpy, char bytes[], int nbytes);

extern void XStoreColor(Display *dpy, Colormap cmap, XColor *def);

extern void XStoreColors(
    Display *dpy, Colormap cmap, XColor defs[], int ncolors);

extern void XStoreName(Display *dpy, Window w, char *name);

extern void XStoreNamedColor(
    Display *dpy, Colormap cmap, char *name, unsigned long pixel, int flags);

extern KeySym XStringToKeysym(char *s);

extern XImage *XSubImage(
    XImage *ximage, int x, int y, unsigned int width, unsigned int height);

extern void XSubtractRegion(Region regM, Region regS, Region regD);

extern void XSync(Display *dpy, Bool discard);

extern int (*XSynchronize(Display *dpy,int onoff))();

extern void XTextExtents(
    XFontStruct *fontstruct, char *string, int nchars, int *dir, 
    int *font_ascent, int *font_descent, XCharStruct *overall);

extern void XTextExtents16(
    XFontStruct *fontstruct, XChar2b *string, int nchars, int *dir, 
    int *font_ascent, int *font_descent, XCharStruct *overall);

extern int XTextWidth(XFontStruct *fontstruct, char *string, int count);

extern int XTextWidth16(XFontStruct *fontstruct, XChar2b *string, int count);

extern int XTranslateCoordinates(
    Display *dpy, Window src_win, Window dest_win, int src_x, int src_y, 
    int *dst_x, int *dst_y, Window *child);

extern void XUndefineCursor(Display *dpy,Window w);

extern void XUngrabButton(
    Display *dpy, unsigned int button, unsigned int modifiers, 
    Window grab_window);

extern void XUngrabKey(
    Display *dpy, int key, unsigned int modifiers, Window grab_window);

extern void XUngrabKeyboard(Display *dpy, Time time);

extern void XUngrabPointer(Display *dpy, Time time);

extern void XUngrabServer(Display *dpy);

extern void XUninstallColormap(Display *dpy, Colormap cmap);

extern void XUnionRectWithRegion(XRectangle *rect, Region source, Region dest);

extern void XUnionRegion(Region reg1, Region reg2, Region newReg);

extern void XUnloadFont(Display *dpy, Font font);

extern void XUnmapSubwindows(Display *dpy, Window win);

extern void XUnmapWindow(Display *dpy, Window w);

extern int XUseKeymap(char *filename);

extern int XVendorRelease(Display *dpy);

extern VisualID XVisualIDFromVisual(Visual *visual);

extern void XWarpPointer(
    Display *dpy, Window src_win, Window dest_win, int src_x, int src_y, 
    unsigned int src_width, unsigned int src_height, int dest_x, int dest_y);

extern unsigned long XWhitePixel(Display *dpy, int scr);

extern unsigned long XWhitePixelOfScreen(Screen *s);

extern int XWidthMMOfScreen(Screen *s);

extern int XWidthOfScreen(Screen *s);

extern void XWindowEvent(Display *dpy, Window w, long mask, XEvent *event);

extern int XWriteBitmapFile(
    Display *display, char *filename, Pixmap bitmap, unsigned int width, 
    unsigned int height, int x_hot, int y_hot);

extern void XXorRegion(Region sra, Region srb, Region dr);

extern char *Xpermalloc(unsigned int length);

/* don't add anything after this endif! */
#endif
