K
Xlib Release 3 Update
This appendix is an update to Volume Two, Xlib Reference Manual. It describes the changes to Xlib, and to application writing standards in general, that took place in Release 3. Next, there is a description of corrections to the book based on Release 3 protocol clarifications. Some of these apply to Release 2 as well.
New Routines
Five new routines have been added to Xlib in Release 3. They are all very simple, and in fact four of them could actually have been simple macros. Here are their definitions:
Example K-1. Code for routines added to Xlib in Release 3 Update
long XMaxRequestSize(dpy)
Display *dpy;
{
return dpy->max_request_size;
}
char *XResourceManagerString(dpy)
Display *dpy;
{
return dpy->xdefaults;
}
unsigned long XDisplayMotionBufferSize(dpy)
Display *dpy;
{
return dpy->motion_buffer;
}
XDisplayKeycodes(dpy, min_keycode_return, max_keycode_return)
Display *dpy;
int *min_keycode_return, *max_keycode_return;
{
*min_keycode_return = dpy->min_keycode;
*max_keycode_return = dpy->max_keycode;
}
VisualID XVisualIDFromVisual(visual)
Visual *visual;
{
return visual->visualid;
}
All of these routines were added to allow applications access to members of structures that are intended to be opaque, namely Display and visual. Applications should reference only the pointers to these structures. When applications are coded without direct reference to members of the opaque structures, this allows the X Consortium or an Xlib implementor on a particular system ...