summaryrefslogtreecommitdiff
path: root/decode11.c
diff options
context:
space:
mode:
authorAlan Coopersmith <alan.coopersmith@oracle.com>2012-07-08 11:58:20 -0700
committerAlan Coopersmith <alan.coopersmith@oracle.com>2012-07-21 23:47:00 -0700
commitb8160915909e59fc65cc08855fb32fee6f5d89ad (patch)
tree4cb5717e10917d33b66c88a34398b55d31392eb2 /decode11.c
parent5b30118f1504fb065cf0b4aca150703834881d9e (diff)
downloadxscope-b8160915909e59fc65cc08855fb32fee6f5d89ad.tar.gz
Convert to X.Org standard indentation & cleanup whitespace
Performed with util/modular/x-indent-all.sh, followed by manual fixups Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Diffstat (limited to 'decode11.c')
-rw-r--r--decode11.c1895
1 files changed, 926 insertions, 969 deletions
diff --git a/decode11.c b/decode11.c
index f4d721c..89a4c48 100644
--- a/decode11.c
+++ b/decode11.c
@@ -1,8 +1,8 @@
-/* ************************************************************ *
- * *
- * Decoding and switching routines for the X11 protocol *
- * *
- * James Peterson, 1988 *
+/*
+ * Decoding and switching routines for the X11 protocol
+ *
+ * James Peterson, 1988
+ *
* Copyright (C) 1988 MCC
*
* Permission to use, copy, modify, distribute, and sell this software and its
@@ -22,8 +22,9 @@
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
- * *
- * *
+ *
+ */
+/*
* Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
@@ -45,7 +46,7 @@
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * ************************************************************ */
+ */
#include "scope.h"
#include "x11.h"
@@ -82,107 +83,100 @@
to be handled as a FIFO queue.
*/
-struct QueueEntry
-{
- struct QueueEntry *Next;
- long SequenceNumber;
- short Request;
- short RequestMinor;
+struct QueueEntry {
+ struct QueueEntry *Next;
+ long SequenceNumber;
+ short Request;
+ short RequestMinor;
};
/* free space list of Q entries */
-static struct QueueEntry *FreeQEntries = NULL;
+static struct QueueEntry *FreeQEntries = NULL;
/* ************************************************************ */
-static struct QueueEntry *
-NewQEntry (
- long SequenceNumber,
- short Request,
- short RequestMinor)
+static struct QueueEntry *
+NewQEntry(long SequenceNumber, short Request, short RequestMinor)
{
- struct QueueEntry *p;
-
- /* Get a Queue Entry */
- if (FreeQEntries == NULL)
- {
- /* create new queue entry */
- p = malloc (sizeof (*p));
- if (p == NULL)
- panic("unable to allocate new QueueEntry");
+ struct QueueEntry *p;
+
+ /* Get a Queue Entry */
+ if (FreeQEntries == NULL) {
+ /* create new queue entry */
+ p = malloc(sizeof(*p));
+ if (p == NULL)
+ panic("unable to allocate new QueueEntry");
}
- else
- {
- /* reuse an old queue entry */
- p = FreeQEntries;
- FreeQEntries = FreeQEntries->Next;
+ else {
+ /* reuse an old queue entry */
+ p = FreeQEntries;
+ FreeQEntries = FreeQEntries->Next;
}
- /* fill in its values */
- p->Next = NULL;
- p->SequenceNumber = SequenceNumber;
- p->Request = Request;
- p->RequestMinor = RequestMinor;
- return(p);
+ /* fill in its values */
+ p->Next = NULL;
+ p->SequenceNumber = SequenceNumber;
+ p->Request = Request;
+ p->RequestMinor = RequestMinor;
+ return (p);
}
+
/* ************************************************************ */
/* define a queue of entries for each FD */
-struct QueueHeader
-{
- struct QueueEntry *Head;
- struct QueueEntry *Tail;
+struct QueueHeader {
+ struct QueueEntry *Head;
+ struct QueueEntry *Tail;
};
-static struct QueueHeader *ReplyQ;
+static struct QueueHeader *ReplyQ;
/* ************************************************************ */
void
-InitReplyQ (void)
+InitReplyQ(void)
{
- ReplyQ = calloc(MaxFD, sizeof(struct QueueHeader));
- if (ReplyQ == NULL)
- panic("unable to allocate ReplyQ");
+ ReplyQ = calloc(MaxFD, sizeof(struct QueueHeader));
+ if (ReplyQ == NULL)
+ panic("unable to allocate ReplyQ");
}
void
-FlushReplyQ (
- FD fd)
+FlushReplyQ(FD fd)
{
- struct QueueEntry *p;
- struct QueueEntry *NextQEntry;
+ struct QueueEntry *p;
+ struct QueueEntry *NextQEntry;
- /* go down the reply queue and free all entries */
- for (p = ReplyQ[fd].Head; p != NULL; p = NextQEntry)
- {
- NextQEntry = p->Next;
-
- /* put freed entry on list of free entries (for later reuse) */
- p->Next = FreeQEntries;
- FreeQEntries = p;
+ /* go down the reply queue and free all entries */
+ for (p = ReplyQ[fd].Head; p != NULL; p = NextQEntry) {
+ NextQEntry = p->Next;
+
+ /* put freed entry on list of free entries (for later reuse) */
+ p->Next = FreeQEntries;
+ FreeQEntries = p;
}
-
- ReplyQ[fd].Head = NULL;
- ReplyQ[fd].Tail = NULL;
+
+ ReplyQ[fd].Head = NULL;
+ ReplyQ[fd].Tail = NULL;
}
static void
-DumpReplyQ (
- FD fd)
+DumpReplyQ(FD fd)
{
- fprintf(stderr, "ReplyQ[%d] = { Head 0x%lx; Tail 0x%lx }\n",
- fd, (unsigned long)ReplyQ[fd].Head, (unsigned long)ReplyQ[fd].Tail);
- {
- struct QueueEntry *p;
- for (p = ReplyQ[fd].Head; p != NULL; p = p->Next)
- fprintf(stderr,
- "0x%lx = { Next 0x%lx; SequenceNumber %ld; Request %d }\n",
- (unsigned long) p, (unsigned long) p->Next,
- (unsigned long) p->SequenceNumber, p->Request);
- }
+ fprintf(stderr, "ReplyQ[%d] = { Head 0x%lx; Tail 0x%lx }\n", fd,
+ (unsigned long) ReplyQ[fd].Head, (unsigned long) ReplyQ[fd].Tail);
+ {
+ struct QueueEntry *p;
+
+ for (p = ReplyQ[fd].Head; p != NULL; p = p->Next)
+ fprintf(stderr,
+ "0x%lx = { Next 0x%lx; SequenceNumber %ld; Request %d }\n",
+ (unsigned long) p, (unsigned long) p->Next,
+ (unsigned long) p->SequenceNumber, p->Request);
+ }
}
+
/* ************************************************************ */
/* */
/* */
@@ -192,36 +186,33 @@ DumpReplyQ (
with this one */
static void
-SequencedReplyExpected (
- FD fd,
- long SequenceNumber,
- short RequestType,
- short RequestMinorType)
+SequencedReplyExpected(FD fd, long SequenceNumber,
+ short RequestType, short RequestMinorType)
{
- struct QueueEntry *p;
-
- debug(8,(stderr,
- "Reply expected: sequence %ld and request type %d,%d for fd %d\n",
- SequenceNumber, RequestType, RequestMinorType, fd));
- /* create a new queue entry */
- p = NewQEntry(SequenceNumber, RequestType, RequestMinorType);
-
- /* find the server associated with this client */
- fd = FDPair(fd);
- if (fd < 0 || fd >= MaxFD) return;
-
- /* attach the new queue entry to the end of the queue for the Server */
- if (ReplyQ[fd].Tail != NULL)
- (ReplyQ[fd].Tail)->Next = p;
- else
- ReplyQ[fd].Head = p;
- ReplyQ[fd].Tail = p;
-
- debug(8,(stderr, "Save sequence %ld and request type %d,%d for fd %d\n",
- p->SequenceNumber, p->Request, p->RequestMinor, fd));
+ struct QueueEntry *p;
+
+ debug(8, (stderr,
+ "Reply expected: sequence %ld and request type %d,%d for fd %d\n",
+ SequenceNumber, RequestType, RequestMinorType, fd));
+ /* create a new queue entry */
+ p = NewQEntry(SequenceNumber, RequestType, RequestMinorType);
+
+ /* find the server associated with this client */
+ fd = FDPair(fd);
+ if (fd < 0 || fd >= MaxFD)
+ return;
+
+ /* attach the new queue entry to the end of the queue for the Server */
+ if (ReplyQ[fd].Tail != NULL)
+ (ReplyQ[fd].Tail)->Next = p;
+ else
+ ReplyQ[fd].Head = p;
+ ReplyQ[fd].Tail = p;
+
+ debug(8, (stderr, "Save sequence %ld and request type %d,%d for fd %d\n",
+ p->SequenceNumber, p->Request, p->RequestMinor, fd));
}
-
static FD Lastfd;
static long LastSequenceNumber;
static short LastReplyType;
@@ -231,51 +222,46 @@ static short LastReplyMinorType;
to the given sequence number for this fd */
short
-CheckReplyTable (
- FD fd,
- short SequenceNumber,
- short *minorp)
+CheckReplyTable(FD fd, short SequenceNumber, short *minorp)
{
- struct QueueEntry *p;
- struct QueueEntry *trailer;
-
- if (debuglevel & 128) DumpReplyQ(fd);
- for (trailer = NULL, p = ReplyQ[fd].Head;
- p != NULL;
- trailer = p, p = p->Next)
- {
- /* look for matching sequence number in queue of this fd */
- if (SequenceNumber == ((short)(0xFFFF & p->SequenceNumber)))
- {
- /* save the Request type */
- Lastfd = fd;
- LastSequenceNumber = p->SequenceNumber;
- LastReplyType = p->Request;
- LastReplyMinorType = p->RequestMinor;
-
- /* pull the queue entry out of the queue for this fd */
- if (trailer == NULL)
- ReplyQ[fd].Head = p->Next;
- else
- trailer->Next = p->Next;
- if (ReplyQ[fd].Tail == p) ReplyQ[fd].Tail = trailer;
-
-
- /* put freed entry on list of free entries (for later reuse) */
- p->Next = FreeQEntries;
- FreeQEntries = p;
-
- debug(8,(stderr, "Reply on fd %d for sequence %d is type %d,%x\n",
- fd, SequenceNumber, LastReplyType, LastReplyMinorType));
- *minorp = LastReplyMinorType;
- return(LastReplyType);
- }
+ struct QueueEntry *p;
+ struct QueueEntry *trailer;
+
+ if (debuglevel & 128)
+ DumpReplyQ(fd);
+ for (trailer = NULL, p = ReplyQ[fd].Head;
+ p != NULL; trailer = p, p = p->Next) {
+ /* look for matching sequence number in queue of this fd */
+ if (SequenceNumber == ((short) (0xFFFF & p->SequenceNumber))) {
+ /* save the Request type */
+ Lastfd = fd;
+ LastSequenceNumber = p->SequenceNumber;
+ LastReplyType = p->Request;
+ LastReplyMinorType = p->RequestMinor;
+
+ /* pull the queue entry out of the queue for this fd */
+ if (trailer == NULL)
+ ReplyQ[fd].Head = p->Next;
+ else
+ trailer->Next = p->Next;
+ if (ReplyQ[fd].Tail == p)
+ ReplyQ[fd].Tail = trailer;
+
+ /* put freed entry on list of free entries (for later reuse) */
+ p->Next = FreeQEntries;
+ FreeQEntries = p;
+
+ debug(8, (stderr, "Reply on fd %d for sequence %d is type %d,%x\n",
+ fd, SequenceNumber, LastReplyType, LastReplyMinorType));
+ *minorp = LastReplyMinorType;
+ return (LastReplyType);
+ }
}
- /* not expecting a reply for that sequence number */
- debug(8,(stderr, "Reply on fd %d for sequence %d is not found\n",
- fd, SequenceNumber));
- return(0);
+ /* not expecting a reply for that sequence number */
+ debug(8, (stderr, "Reply on fd %d for sequence %d is not found\n",
+ fd, SequenceNumber));
+ return (0);
}
@@ -284,31 +270,26 @@ CheckReplyTable (
sequence number associated with this fd */
void
-ReplyExpected (
- FD fd,
- short Request)
+ReplyExpected(FD fd, short Request)
{
- SequencedReplyExpected(fd, CS[fd].SequenceNumber, Request, 0);
+ SequencedReplyExpected(fd, CS[fd].SequenceNumber, Request, 0);
}
void
-ExtendedReplyExpected (
- FD fd,
- short Request,
- short RequestMinor)
+ExtendedReplyExpected(FD fd, short Request, short RequestMinor)
{
- SequencedReplyExpected(fd, CS[fd].SequenceNumber, Request, RequestMinor);
+ SequencedReplyExpected(fd, CS[fd].SequenceNumber, Request, RequestMinor);
}
/* ************************************************************ */
/* another reply is expected for the same reply as we just had */
/* This is only used with ListFontsWithInfo */
-void
-KeepLastReplyExpected (void)
+void
+KeepLastReplyExpected(void)
{
- SequencedReplyExpected(Lastfd, LastSequenceNumber, LastReplyType,
- LastReplyMinorType);
+ SequencedReplyExpected(Lastfd, LastSequenceNumber, LastReplyType,
+ LastReplyMinorType);
}
#define DUMP_REQUEST 0
@@ -316,7 +297,7 @@ KeepLastReplyExpected (void)
#define DUMP_EVENT 2
#define DUMP_ERROR 3
-static const char * const simple_names[] = {
+static const char *const simple_names[] = {
"REQUEST",
"REPLY ",
"EVENT ",
@@ -324,470 +305,463 @@ static const char * const simple_names[] = {
};
static void
-SimpleDump (int type, FD fd, short Major, short Minor, long bytes)
+SimpleDump(int type, FD fd, short Major, short Minor, long bytes)
{
- PrintTime ();
- fprintf (stdout, "@@%s %3d %3d %3d %7ld\n",
- simple_names[type],
- ClientNumber(fd),
- Major, Minor, bytes);
+ PrintTime();
+ fprintf(stdout, "@@%s %3d %3d %3d %7ld\n",
+ simple_names[type], ClientNumber(fd), Major, Minor, bytes);
}
-
+
/* ************************************************************ */
/* */
/* */
/* ************************************************************ */
void
-DecodeRequest (
- FD fd,
- const unsigned char *buf,
- long n)
+DecodeRequest(FD fd, const unsigned char *buf, long n)
{
- short Request = IByte (&buf[0]);
- short RequestMinor = Request >= 128 ? IByte (&buf[1]) : 0;
- unsigned long seq;
-
- CS[fd].SequenceNumber += 1;
- seq = CS[fd].SequenceNumber;
- if (CS[fd].littleEndian) {
- SBf[0] = seq;
- SBf[1] = seq >> 8;
- SBf[2] = seq >> 16;
- SBf[3] = seq >> 24;
- } else {
- SBf[0] = seq >> 24;
- SBf[1] = seq >> 16;
- SBf[2] = seq >> 8;
- SBf[3] = seq;
- }
- SetIndentLevel(PRINTCLIENT);
-
- /* Special handling of QueryExtension to save extension names */
- if (Request == 98)
- {
- ProcessQueryExtensionRequest(seq, buf);
- }
-
- if (Verbose < 0)
- {
- SimpleDump (DUMP_REQUEST, fd, Request, RequestMinor, n);
- return;
- }
-
- if (Raw || (Verbose > 3))
- DumpItem("Request", fd, buf, n);
-
- if (Request < 0 || 127 < Request)
- {
- ExtensionRequest(fd, buf, Request);
- }
- else switch (Request)
- {
- case 1:
- CreateWindow(fd, buf);
- break;
- case 2:
- ChangeWindowAttributes(fd, buf);
- break;
- case 3:
- GetWindowAttributes(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 4:
- DestroyWindow(fd, buf);
- break;
- case 5:
- DestroySubwindows(fd, buf);
- break;
- case 6:
- ChangeSaveSet(fd, buf);
- break;
- case 7:
- ReparentWindow(fd, buf);
- break;
- case 8:
- MapWindow(fd, buf);
- break;
- case 9:
- MapSubwindows(fd, buf);
- break;
- case 10:
- UnmapWindow(fd, buf);
- break;
- case 11:
- UnmapSubwindows(fd, buf);
- break;
- case 12:
- ConfigureWindow(fd, buf);
- break;
- case 13:
- CirculateWindow(fd, buf);
- break;
- case 14:
- GetGeometry(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 15:
- QueryTree(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 16:
- InternAtom(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 17:
- GetAtomName(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 18:
- ChangeProperty(fd, buf);
- break;
- case 19:
- DeleteProperty(fd, buf);
- break;
- case 20:
- GetProperty(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 21:
- ListProperties(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 22:
- SetSelectionOwner(fd, buf);
- break;
- case 23:
- GetSelectionOwner(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 24:
- ConvertSelection(fd, buf);
- break;
- case 25:
- SendEvent(fd, buf);
- break;
- case 26:
- GrabPointer(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 27:
- UngrabPointer(fd, buf);
- break;
- case 28:
- GrabButton(fd, buf);
- break;
- case 29:
- UngrabButton(fd, buf);
- break;
- case 30:
- ChangeActivePointerGrab(fd, buf);
- break;
- case 31:
- GrabKeyboard(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 32:
- UngrabKeyboard(fd, buf);
- break;
- case 33:
- GrabKey(fd, buf);
- break;
- case 34:
- UngrabKey(fd, buf);
- break;
- case 35:
- AllowEvents(fd, buf);
- break;
- case 36:
- GrabServer(fd, buf);
- break;
- case 37:
- UngrabServer(fd, buf);
- break;
- case 38:
- QueryPointer(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 39:
- GetMotionEvents(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 40:
- TranslateCoordinates(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 41:
- WarpPointer(fd, buf);
- break;
- case 42:
- SetInputFocus(fd, buf);
- break;
- case 43:
- GetInputFocus(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 44:
- QueryKeymap(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 45:
- OpenFont(fd, buf);
- break;
- case 46:
- CloseFont(fd, buf);
- break;
- case 47:
- QueryFont(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 48:
- QueryTextExtents(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 49:
- ListFonts(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 50:
- ListFontsWithInfo(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 51:
- SetFontPath(fd, buf);
- break;
- case 52:
- GetFontPath(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 53:
- CreatePixmap(fd, buf);
- break;
- case 54:
- FreePixmap(fd, buf);
- break;
- case 55:
- CreateGC(fd, buf);
- break;
- case 56:
- ChangeGC(fd, buf);
- break;
- case 57:
- CopyGC(fd, buf);
- break;
- case 58:
- SetDashes(fd, buf);
- break;
- case 59:
- SetClipRectangles(fd, buf);
- break;
- case 60:
- FreeGC(fd, buf);
- break;
- case 61:
- ClearArea(fd, buf);
- break;
- case 62:
- CopyArea(fd, buf);
- break;
- case 63:
- CopyPlane(fd, buf);
- break;
- case 64:
- PolyPoint(fd, buf);
- break;
- case 65:
- PolyLine(fd, buf);
- break;
- case 66:
- PolySegment(fd, buf);
- break;
- case 67:
- PolyRectangle(fd, buf);
- break;
- case 68:
- PolyArc(fd, buf);
- break;
- case 69:
- FillPoly(fd, buf);
- break;
- case 70:
- PolyFillRectangle(fd, buf);
- break;
- case 71:
- PolyFillArc(fd, buf);
- break;
- case 72:
- PutImage(fd, buf);
- break;
- case 73:
- GetImage(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 74:
- PolyText8(fd, buf);
- break;
- case 75:
- PolyText16(fd, buf);
- break;
- case 76:
- ImageText8(fd, buf);
- break;
- case 77:
- ImageText16(fd, buf);
- break;
- case 78:
- CreateColormap(fd, buf);
- break;
- case 79:
- FreeColormap(fd, buf);
- break;
- case 80:
- CopyColormapAndFree(fd, buf);
- break;
- case 81:
- InstallColormap(fd, buf);
- break;
- case 82:
- UninstallColormap(fd, buf);
- break;
- case 83:
- ListInstalledColormaps(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 84:
- AllocColor(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 85:
- AllocNamedColor(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 86:
- AllocColorCells(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 87:
- AllocColorPlanes(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 88:
- FreeColors(fd, buf);
- break;
- case 89:
- StoreColors(fd, buf);
- break;
- case 90:
- StoreNamedColor(fd, buf);
- break;
- case 91:
- QueryColors(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 92:
- LookupColor(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 93:
- CreateCursor(fd, buf);
- break;
- case 94:
- CreateGlyphCursor(fd, buf);
- break;
- case 95:
- FreeCursor(fd, buf);
- break;
- case 96:
- RecolorCursor(fd, buf);
- break;
- case 97:
- QueryBestSize(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 98:
- QueryExtension(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 99:
- ListExtensions(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 100:
- ChangeKeyboardMapping(fd, buf);
- break;
- case 101:
- GetKeyboardMapping(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 102:
- ChangeKeyboardControl(fd, buf);
- break;
- case 103:
- GetKeyboardControl(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 104:
- Bell(fd, buf);
- break;
- case 105:
- ChangePointerControl(fd, buf);
- break;
- case 106:
- GetPointerControl(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 107:
- SetScreenSaver(fd, buf);
- break;
- case 108:
- GetScreenSaver(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 109:
- ChangeHosts(fd, buf);
- break;
- case 110:
- ListHosts(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 111:
- SetAccessControl(fd, buf);
- break;
- case 112:
- SetCloseDownMode(fd, buf);
- break;
- case 113:
- KillClient(fd, buf);
- break;
- case 114:
- RotateProperties(fd, buf);
- break;
- case 115:
- ForceScreenSaver(fd, buf);
- break;
- case 116:
- SetPointerMapping(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 117:
- GetPointerMapping(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 118:
- SetModifierMapping(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 119:
- GetModifierMapping(fd, buf);
- ReplyExpected(fd, Request);
- break;
- case 127:
- NoOperation(fd, buf);
- break;
- default:
- warn("Unimplemented request opcode");
- break;
- }
+ short Request = IByte(&buf[0]);
+ short RequestMinor = Request >= 128 ? IByte(&buf[1]) : 0;
+ unsigned long seq;
+
+ CS[fd].SequenceNumber += 1;
+ seq = CS[fd].SequenceNumber;
+ if (CS[fd].littleEndian) {
+ SBf[0] = seq;
+ SBf[1] = seq >> 8;
+ SBf[2] = seq >> 16;
+ SBf[3] = seq >> 24;
+ }
+ else {
+ SBf[0] = seq >> 24;
+ SBf[1] = seq >> 16;
+ SBf[2] = seq >> 8;
+ SBf[3] = seq;
+ }
+ SetIndentLevel(PRINTCLIENT);
+
+ /* Special handling of QueryExtension to save extension names */
+ if (Request == 98) {
+ ProcessQueryExtensionRequest(seq, buf);
+ }
+
+ if (Verbose < 0) {
+ SimpleDump(DUMP_REQUEST, fd, Request, RequestMinor, n);
+ return;
+ }
+
+ if (Raw || (Verbose > 3))
+ DumpItem("Request", fd, buf, n);
+
+ if (Request < 0 || 127 < Request) {
+ ExtensionRequest(fd, buf, Request);
+ }
+ else
+ switch (Request) {
+ case 1:
+ CreateWindow(fd, buf);
+ break;
+ case 2:
+ ChangeWindowAttributes(fd, buf);
+ break;
+ case 3:
+ GetWindowAttributes(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 4:
+ DestroyWindow(fd, buf);
+ break;
+ case 5:
+ DestroySubwindows(fd, buf);
+ break;
+ case 6:
+ ChangeSaveSet(fd, buf);
+ break;
+ case 7:
+ ReparentWindow(fd, buf);
+ break;
+ case 8:
+ MapWindow(fd, buf);
+ break;
+ case 9:
+ MapSubwindows(fd, buf);
+ break;
+ case 10:
+ UnmapWindow(fd, buf);
+ break;
+ case 11:
+ UnmapSubwindows(fd, buf);
+ break;
+ case 12:
+ ConfigureWindow(fd, buf);
+ break;
+ case 13:
+ CirculateWindow(fd, buf);
+ break;
+ case 14:
+ GetGeometry(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 15:
+ QueryTree(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 16:
+ InternAtom(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 17:
+ GetAtomName(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 18:
+ ChangeProperty(fd, buf);
+ break;
+ case 19:
+ DeleteProperty(fd, buf);
+ break;
+ case 20:
+ GetProperty(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 21:
+ ListProperties(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 22:
+ SetSelectionOwner(fd, buf);
+ break;
+ case 23:
+ GetSelectionOwner(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 24:
+ ConvertSelection(fd, buf);
+ break;
+ case 25:
+ SendEvent(fd, buf);
+ break;
+ case 26:
+ GrabPointer(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 27:
+ UngrabPointer(fd, buf);
+ break;
+ case 28:
+ GrabButton(fd, buf);
+ break;
+ case 29:
+ UngrabButton(fd, buf);
+ break;
+ case 30:
+ ChangeActivePointerGrab(fd, buf);
+ break;
+ case 31:
+ GrabKeyboard(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 32:
+ UngrabKeyboard(fd, buf);
+ break;
+ case 33:
+ GrabKey(fd, buf);
+ break;
+ case 34:
+ UngrabKey(fd, buf);
+ break;
+ case 35:
+ AllowEvents(fd, buf);
+ break;
+ case 36:
+ GrabServer(fd, buf);
+ break;
+ case 37:
+ UngrabServer(fd, buf);
+ break;
+ case 38:
+ QueryPointer(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 39:
+ GetMotionEvents(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 40:
+ TranslateCoordinates(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 41:
+ WarpPointer(fd, buf);
+ break;
+ case 42:
+ SetInputFocus(fd, buf);
+ break;
+ case 43:
+ GetInputFocus(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 44:
+ QueryKeymap(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 45:
+ OpenFont(fd, buf);
+ break;
+ case 46:
+ CloseFont(fd, buf);
+ break;
+ case 47:
+ QueryFont(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 48:
+ QueryTextExtents(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 49:
+ ListFonts(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 50:
+ ListFontsWithInfo(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 51:
+ SetFontPath(fd, buf);
+ break;
+ case 52:
+ GetFontPath(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 53:
+ CreatePixmap(fd, buf);
+ break;
+ case 54:
+ FreePixmap(fd, buf);
+ break;
+ case 55:
+ CreateGC(fd, buf);
+ break;
+ case 56:
+ ChangeGC(fd, buf);
+ break;
+ case 57:
+ CopyGC(fd, buf);
+ break;
+ case 58:
+ SetDashes(fd, buf);
+ break;
+ case 59:
+ SetClipRectangles(fd, buf);
+ break;
+ case 60:
+ FreeGC(fd, buf);
+ break;
+ case 61:
+ ClearArea(fd, buf);
+ break;
+ case 62:
+ CopyArea(fd, buf);
+ break;
+ case 63:
+ CopyPlane(fd, buf);
+ break;
+ case 64:
+ PolyPoint(fd, buf);
+ break;
+ case 65:
+ PolyLine(fd, buf);
+ break;
+ case 66:
+ PolySegment(fd, buf);
+ break;
+ case 67:
+ PolyRectangle(fd, buf);
+ break;
+ case 68:
+ PolyArc(fd, buf);
+ break;
+ case 69:
+ FillPoly(fd, buf);
+ break;
+ case 70:
+ PolyFillRectangle(fd, buf);
+ break;
+ case 71:
+ PolyFillArc(fd, buf);
+ break;
+ case 72:
+ PutImage(fd, buf);
+ break;
+ case 73:
+ GetImage(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 74:
+ PolyText8(fd, buf);
+ break;
+ case 75:
+ PolyText16(fd, buf);
+ break;
+ case 76:
+ ImageText8(fd, buf);
+ break;
+ case 77:
+ ImageText16(fd, buf);
+ break;
+ case 78:
+ CreateColormap(fd, buf);
+ break;
+ case 79:
+ FreeColormap(fd, buf);
+ break;
+ case 80:
+ CopyColormapAndFree(fd, buf);
+ break;
+ case 81:
+ InstallColormap(fd, buf);
+ break;
+ case 82:
+ UninstallColormap(fd, buf);
+ break;
+ case 83:
+ ListInstalledColormaps(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 84:
+ AllocColor(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 85:
+ AllocNamedColor(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 86:
+ AllocColorCells(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 87:
+ AllocColorPlanes(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 88:
+ FreeColors(fd, buf);
+ break;
+ case 89:
+ StoreColors(fd, buf);
+ break;
+ case 90:
+ StoreNamedColor(fd, buf);
+ break;
+ case 91:
+ QueryColors(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 92:
+ LookupColor(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 93:
+ CreateCursor(fd, buf);
+ break;
+ case 94:
+ CreateGlyphCursor(fd, buf);
+ break;
+ case 95:
+ FreeCursor(fd, buf);
+ break;
+ case 96:
+ RecolorCursor(fd, buf);
+ break;
+ case 97:
+ QueryBestSize(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 98:
+ QueryExtension(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 99:
+ ListExtensions(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 100:
+ ChangeKeyboardMapping(fd, buf);
+ break;
+ case 101:
+ GetKeyboardMapping(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 102:
+ ChangeKeyboardControl(fd, buf);
+ break;
+ case 103:
+ GetKeyboardControl(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 104:
+ Bell(fd, buf);
+ break;
+ case 105:
+ ChangePointerControl(fd, buf);
+ break;
+ case 106:
+ GetPointerControl(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 107:
+ SetScreenSaver(fd, buf);
+ break;
+ case 108:
+ GetScreenSaver(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 109:
+ ChangeHosts(fd, buf);
+ break;
+ case 110:
+ ListHosts(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 111:
+ SetAccessControl(fd, buf);
+ break;
+ case 112:
+ SetCloseDownMode(fd, buf);
+ break;
+ case 113:
+ KillClient(fd, buf);
+ break;
+ case 114:
+ RotateProperties(fd, buf);
+ break;
+ case 115:
+ ForceScreenSaver(fd, buf);
+ break;
+ case 116:
+ SetPointerMapping(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 117:
+ GetPointerMapping(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 118:
+ SetModifierMapping(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 119:
+ GetModifierMapping(fd, buf);
+ ReplyExpected(fd, Request);
+ break;
+ case 127:
+ NoOperation(fd, buf);
+ break;
+ default:
+ warn("Unimplemented request opcode");
+ break;
+ }
}
/* ************************************************************ */
@@ -796,165 +770,159 @@ DecodeRequest (
/* ************************************************************ */
void
-DecodeReply (
- FD fd,
- const unsigned char *buf,
- long n)
+DecodeReply(FD fd, const unsigned char *buf, long n)
{
- short SequenceNumber = IShort (&buf[2]);
- short RequestMinor;
- short Request = CheckReplyTable (fd, SequenceNumber, &RequestMinor);
-
- /* Special handling of QueryExtension to save extension names */
- if (Request == 98)
- {
- ProcessQueryExtensionReply(SequenceNumber, buf);
- }
-
- if (Verbose < 0)
- {
- SimpleDump (DUMP_REPLY, fd, Request, RequestMinor, n);
- return;
- }
-
- SetIndentLevel(PRINTSERVER);
- RBf[0] = Request /* for the PrintField in the Reply procedure */ ;
- RBf[1] = RequestMinor;
- if (Raw || (Verbose > 3))
- DumpItem("Reply", fd, buf, n);
- if (Request < 0 || 127 < Request)
- {
- ExtensionReply(fd, buf, Request, RequestMinor);
- }
- else switch (Request)
- {
- case 0:
- UnknownReply(buf);
- break;
- case 3:
- GetWindowAttributesReply(buf);
- break;
- case 14:
- GetGeometryReply(buf);
- break;
- case 15:
- QueryTreeReply(buf);
- break;
- case 16:
- InternAtomReply(buf);
- break;
- case 17:
- GetAtomNameReply(buf);
- break;
- case 20:
- GetPropertyReply(buf);
- break;
- case 21:
- ListPropertiesReply(buf);
- break;
- case 23:
- GetSelectionOwnerReply(buf);
- break;
- case 26:
- GrabPointerReply(buf);
- break;
- case 31:
- GrabKeyboardReply(buf);
- break;
- case 38:
- QueryPointerReply(buf);
- break;
- case 39:
- GetMotionEventsReply(buf);
- break;
- case 40:
- TranslateCoordinatesReply(buf);
- break;
- case 43:
- GetInputFocusReply(buf);
- break;
- case 44:
- QueryKeymapReply(buf);
- break;
- case 47:
- QueryFontReply(buf);
- break;
- case 48:
- QueryTextExtentsReply(buf);
- break;
- case 49:
- ListFontsReply(buf);
- break;
- case 50:
- ListFontsWithInfoReply(buf);
- break;
- case 52:
- GetFontPathReply(buf);
- break;
- case 73:
- GetImageReply(buf);
- break;
- case 83:
- ListInstalledColormapsReply(buf);
- break;
- case 84:
- AllocColorReply(buf);
- break;
- case 85:
- AllocNamedColorReply(buf);
- break;
- case 86:
- AllocColorCellsReply(buf);
- break;
- case 87:
- AllocColorPlanesReply(buf);
- break;
- case 91:
- QueryColorsReply(buf);
- break;
- case 92:
- LookupColorReply(buf);
- break;
- case 97:
- QueryBestSizeReply(buf);
- break;
- case 98:
- QueryExtensionReply(buf);
- break;
- case 99:
- ListExtensionsReply(buf);
- break;
- case 101:
- GetKeyboardMappingReply(buf);
- break;
- case 103:
- GetKeyboardControlReply(buf);
- break;
- case 106:
- GetPointerControlReply(buf);
- break;
- case 108:
- GetScreenSaverReply(buf);
- break;
- case 110:
- ListHostsReply(buf);
- break;
- case 116:
- SetPointerMappingReply(buf);
- break;
- case 117:
- GetPointerMappingReply(buf);
- break;
- case 118:
- SetModifierMappingReply(buf);
- break;
- case 119:
- GetModifierMappingReply(buf);
- break;
- default:
- warn("Unimplemented reply opcode");
- break;
+ short SequenceNumber = IShort(&buf[2]);
+ short RequestMinor;
+ short Request = CheckReplyTable(fd, SequenceNumber, &RequestMinor);
+
+ /* Special handling of QueryExtension to save extension names */
+ if (Request == 98) {
+ ProcessQueryExtensionReply(SequenceNumber, buf);
}
+
+ if (Verbose < 0) {
+ SimpleDump(DUMP_REPLY, fd, Request, RequestMinor, n);
+ return;
+ }
+
+ SetIndentLevel(PRINTSERVER);
+ RBf[0] = Request; /* for the PrintField in the Reply procedure */
+ RBf[1] = RequestMinor;
+ if (Raw || (Verbose > 3))
+ DumpItem("Reply", fd, buf, n);
+ if (Request < 0 || 127 < Request) {
+ ExtensionReply(fd, buf, Request, RequestMinor);
+ }
+ else
+ switch (Request) {
+ case 0:
+ UnknownReply(buf);
+ break;
+ case 3:
+ GetWindowAttributesReply(buf);
+ break;
+ case 14:
+ GetGeometryReply(buf);
+ break;
+ case 15:
+ QueryTreeReply(buf);
+ break;
+ case 16:
+ InternAtomReply(buf);
+ break;
+ case 17:
+ GetAtomNameReply(buf);
+ break;
+ case 20:
+ GetPropertyReply(buf);
+ break;
+ case 21:
+ ListPropertiesReply(buf);
+ break;
+ case 23:
+ GetSelectionOwnerReply(buf);
+ break;
+ case 26:
+ GrabPointerReply(buf);
+ break;
+ case 31:
+ GrabKeyboardReply(buf);
+ break;
+ case 38:
+ QueryPointerReply(buf);
+ break;
+ case 39:
+ GetMotionEventsReply(buf);
+ break;
+ case 40:
+ TranslateCoordinatesReply(buf);
+ break;
+ case 43:
+ GetInputFocusReply(buf);
+ break;
+ case 44:
+ QueryKeymapReply(buf);
+ break;
+ case 47:
+ QueryFontReply(buf);
+ break;
+ case 48:
+ QueryTextExtentsReply(buf);
+ break;
+ case 49:
+ ListFontsReply(buf);
+ break;
+ case 50:
+ ListFontsWithInfoReply(buf);
+ break;
+ case 52:
+ GetFontPathReply(buf);
+ break;
+ case 73:
+ GetImageReply(buf);
+ break;
+ case 83:
+ ListInstalledColormapsReply(buf);
+ break;
+ case 84:
+ AllocColorReply(buf);
+ break;
+ case 85:
+ AllocNamedColorReply(buf);
+ break;
+ case 86:
+ AllocColorCellsReply(buf);
+ break;
+ case 87:
+ AllocColorPlanesReply(buf);
+ break;
+ case 91:
+ QueryColorsReply(buf);
+ break;
+ case 92:
+ LookupColorReply(buf);
+ break;
+ case 97:
+ QueryBestSizeReply(buf);
+ break;
+ case 98:
+ QueryExtensionReply(buf);
+ break;
+ case 99:
+ ListExtensionsReply(buf);
+ break;
+ case 101:
+ GetKeyboardMappingReply(buf);
+ break;
+ case 103:
+ GetKeyboardControlReply(buf);
+ break;
+ case 106:
+ GetPointerControlReply(buf);
+ break;
+ case 108:
+ GetScreenSaverReply(buf);
+ break;
+ case 110:
+ ListHostsReply(buf);
+ break;
+ case 116:
+ SetPointerMappingReply(buf);
+ break;
+ case 117:
+ GetPointerMappingReply(buf);
+ break;
+ case 118:
+ SetModifierMappingReply(buf);
+ break;
+ case 119:
+ GetModifierMappingReply(buf);
+ break;
+ default:
+ warn("Unimplemented reply opcode");
+ break;
+ }
}
/* ************************************************************ */
@@ -963,89 +931,84 @@ DecodeReply (
/* ************************************************************ */
void
-DecodeError (
- FD fd,
- const unsigned char *buf,
- long n)
+DecodeError(FD fd, const unsigned char *buf, long n)
{
- short Error = IByte (&buf[1]);
- short Request = 0;
- short RequestMinor = 0;
+ short Error = IByte(&buf[1]);
+ short Request = 0;
+ short RequestMinor = 0;
- Request = CheckReplyTable (fd, (short)IShort(&buf[2]), &RequestMinor);
+ Request = CheckReplyTable(fd, (short) IShort(&buf[2]), &RequestMinor);
- if (Verbose < 0)
- {
- SimpleDump (DUMP_ERROR, fd, Request, RequestMinor, n);
- return;
+ if (Verbose < 0) {
+ SimpleDump(DUMP_ERROR, fd, Request, RequestMinor, n);
+ return;
}
SetIndentLevel(PRINTSERVER);
if (Raw || (Verbose > 3))
- DumpItem("Error", fd, buf, n);
+ DumpItem("Error", fd, buf, n);
- if (Error < 1 || Error > 17)
- {
- ExtensionError(fd, buf, Error);
- }
- else switch (Error)
- {
- case 1:
- RequestError(buf);
- break;
- case 2:
- ValueError(buf);
- break;
- case 3:
- WindowError(buf);
- break;
- case 4:
- PixmapError(buf);
- break;
- case 5:
- AtomError(buf);
- break;
- case 6:
- CursorError(buf);
- break;
- case 7:
- FontError(buf);
- break;
- case 8:
- MatchError(buf);
- break;
- case 9:
- DrawableError(buf);
- break;
- case 10:
- AccessError(buf);
- break;
- case 11:
- AllocError(buf);
- break;
- case 12:
- ColormapError(buf);
- break;
- case 13:
- GContextError(buf);
- break;
- case 14:
- IDChoiceError(buf);
- break;
- case 15:
- NameError(buf);
- break;
- case 16:
- LengthError(buf);
- break;
- case 17:
- ImplementationError(buf);
- break;
- default:
- warn("Unimplemented error code");
- UnknownError(buf);
- break;
+ if (Error < 1 || Error > 17) {
+ ExtensionError(fd, buf, Error);
}
+ else
+ switch (Error) {
+ case 1:
+ RequestError(buf);
+ break;
+ case 2:
+ ValueError(buf);
+ break;
+ case 3:
+ WindowError(buf);
+ break;
+ case 4:
+ PixmapError(buf);
+ break;
+ case 5:
+ AtomError(buf);
+ break;
+ case 6:
+ CursorError(buf);
+ break;
+ case 7:
+ FontError(buf);
+ break;
+ case 8:
+ MatchError(buf);
+ break;
+ case 9:
+ DrawableError(buf);
+ break;
+ case 10:
+ AccessError(buf);
+ break;
+ case 11:
+ AllocError(buf);
+ break;
+ case 12:
+ ColormapError(buf);
+ break;
+ case 13:
+ GContextError(buf);
+ break;
+ case 14:
+ IDChoiceError(buf);
+ break;
+ case 15:
+ NameError(buf);
+ break;
+ case 16:
+ LengthError(buf);
+ break;
+ case 17:
+ ImplementationError(buf);
+ break;
+ default:
+ warn("Unimplemented error code");
+ UnknownError(buf);
+ break;
+ }
}
/* ************************************************************ */
@@ -1054,138 +1017,132 @@ DecodeError (
/* ************************************************************ */
void
-DecodeEvent (
- FD fd,
- const unsigned char *buf,
- long n)
+DecodeEvent(FD fd, const unsigned char *buf, long n)
{
- short Event = IByte (&buf[0]);
- short EventMinor = Event == LBXEvent ? IByte (&buf[1]) : 0;
+ short Event = IByte(&buf[0]);
+ short EventMinor = Event == LBXEvent ? IByte(&buf[1]) : 0;
- if (Verbose < 0)
- {
- SimpleDump (DUMP_EVENT, fd, Event, EventMinor, n);
- return;
+ if (Verbose < 0) {
+ SimpleDump(DUMP_EVENT, fd, Event, EventMinor, n);
+ return;
}
SetIndentLevel(PRINTSERVER);
if (Raw || (Verbose > 3))
- DumpItem("Event", fd, buf, n);
+ DumpItem("Event", fd, buf, n);
/* high-order bit means SendEvent generated */
- if (Event & 0x80)
- {
- debug(8,(stderr, "SendEvent generated event 0x%x\n", Event));
- Event = Event & 0x7F;
+ if (Event & 0x80) {
+ debug(8, (stderr, "SendEvent generated event 0x%x\n", Event));
+ Event = Event & 0x7F;
}
- if (Event < 2 || Event > 34)
- {
- ExtensionEvent(fd, buf, Event);
- }
- else switch (Event)
- {
- case 2:
- KeyPressEvent(buf);
- break;
- case 3:
- KeyReleaseEvent(buf);
- break;
- case 4:
- ButtonPressEvent(buf);
- break;
- case 5:
- ButtonReleaseEvent(buf);
- break;
- case 6:
- MotionNotifyEvent(buf);
- break;
- case 7:
- EnterNotifyEvent(buf);
- break;
- case 8:
- LeaveNotifyEvent(buf);
- break;
- case 9:
- FocusInEvent(buf);
- break;
- case 10:
- FocusOutEvent(buf);
- break;
- case 11:
- KeymapNotifyEvent(buf);
- break;
- case 12:
- ExposeEvent(buf);
- break;
- case 13:
- GraphicsExposureEvent(buf);
- break;
- case 14:
- NoExposureEvent(buf);
- break;
- case 15:
- VisibilityNotifyEvent(buf);
- break;
- case 16:
- CreateNotifyEvent(buf);
- break;
- case 17:
- DestroyNotifyEvent(buf);
- break;
- case 18:
- UnmapNotifyEvent(buf);
- break;
- case 19:
- MapNotifyEvent(buf);
- break;
- case 20:
- MapRequestEvent(buf);
- break;
- case 21:
- ReparentNotifyEvent(buf);
- break;
- case 22:
- ConfigureNotifyEvent(buf);
- break;
- case 23:
- ConfigureRequestEvent(buf);
- break;
- case 24:
- GravityNotifyEvent(buf);
- break;
- case 25:
- ResizeRequestEvent(buf);
- break;
- case 26:
- CirculateNotifyEvent(buf);
- break;
- case 27:
- CirculateRequestEvent(buf);
- break;
- case 28:
- PropertyNotifyEvent(buf);
- break;
- case 29:
- SelectionClearEvent(buf);
- break;
- case 30:
- SelectionRequestEvent(buf);
- break;
- case 31:
- SelectionNotifyEvent(buf);
- break;
- case 32:
- ColormapNotifyEvent(buf);
- break;
- case 33:
- ClientMessageEvent(buf);
- break;
- case 34:
- MappingNotifyEvent(buf);
- break;
- default:
- warn("Unimplemented event code");
- UnknownEvent(buf);
- break;
+ if (Event < 2 || Event > 34) {
+ ExtensionEvent(fd, buf, Event);
}
+ else
+ switch (Event) {
+ case 2:
+ KeyPressEvent(buf);
+ break;
+ case 3:
+ KeyReleaseEvent(buf);
+ break;
+ case 4:
+ ButtonPressEvent(buf);
+ break;
+ case 5:
+ ButtonReleaseEvent(buf);
+ break;
+ case 6:
+ MotionNotifyEvent(buf);
+ break;
+ case 7:
+ EnterNotifyEvent(buf);
+ break;
+ case 8:
+ LeaveNotifyEvent(buf);
+ break;
+ case 9:
+ FocusInEvent(buf);
+ break;
+ case 10:
+ FocusOutEvent(buf);
+ break;
+ case 11:
+ KeymapNotifyEvent(buf);
+ break;
+ case 12:
+ ExposeEvent(buf);
+ break;
+ case 13:
+ GraphicsExposureEvent(buf);
+ break;
+ case 14:
+ NoExposureEvent(buf);
+ break;
+ case 15:
+ VisibilityNotifyEvent(buf);
+ break;
+ case 16:
+ CreateNotifyEvent(buf);
+ break;
+ case 17:
+ DestroyNotifyEvent(buf);
+ break;
+ case 18:
+ UnmapNotifyEvent(buf);
+ break;
+ case 19:
+ MapNotifyEvent(buf);
+ break;
+ case 20:
+ MapRequestEvent(buf);
+ break;
+ case 21:
+ ReparentNotifyEvent(buf);
+ break;
+ case 22:
+ ConfigureNotifyEvent(buf);
+ break;
+ case 23:
+ ConfigureRequestEvent(buf);
+ break;
+ case 24:
+ GravityNotifyEvent(buf);
+ break;
+ case 25:
+ ResizeRequestEvent(buf);
+ break;
+ case 26:
+ CirculateNotifyEvent(buf);
+ break;
+ case 27:
+ CirculateRequestEvent(buf);
+ break;
+ case 28:
+ PropertyNotifyEvent(buf);
+ break;
+ case 29:
+ SelectionClearEvent(buf);
+ break;
+ case 30:
+ SelectionRequestEvent(buf);
+ break;
+ case 31:
+ SelectionNotifyEvent(buf);
+ break;
+ case 32:
+ ColormapNotifyEvent(buf);
+ break;
+ case 33:
+ ClientMessageEvent(buf);
+ break;
+ case 34:
+ MappingNotifyEvent(buf);
+ break;
+ default:
+ warn("Unimplemented event code");
+ UnknownEvent(buf);
+ break;
+ }
}