summaryrefslogtreecommitdiff
path: root/print11.c
diff options
context:
space:
mode:
authorAlan Coopersmith <alan.coopersmith@oracle.com>2012-08-26 21:45:45 -0700
committerAlan Coopersmith <alan.coopersmith@oracle.com>2012-10-02 22:16:09 -0700
commit95a436f7efd7061a15e3be533c56e573aac2db92 (patch)
treec6d28a9dac6e96c8401e26d722c98ca12011016d /print11.c
parent8b26ded773e1cd4890e93836692ecc9f136c5efd (diff)
downloadxscope-95a436f7efd7061a15e3be533c56e573aac2db92.tar.gz
Refactor error printing to use common functions
All errors currently recognized by xscope fall into two forms, with or without a 32-bit value to print as a bad value, so use common implementations for those two forms so we can stop duplicating that code for every new extension-defined error. Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Diffstat (limited to 'print11.c')
-rw-r--r--print11.c150
1 files changed, 39 insertions, 111 deletions
diff --git a/print11.c b/print11.c
index 7935b84..cf477e2 100644
--- a/print11.c
+++ b/print11.c
@@ -193,213 +193,141 @@ const char *REPLYHEADER = "..............REPLY";
/* Error Printing procedures */
+/* generic routine for printing common format error messages with a
+ labeled bad value in bytes 4-7. */
void
-RequestError(const unsigned char *buf)
+printErrorWithValue(const unsigned char *buf,
+ short FieldType, const char *desc)
{
- PrintField(buf, 1, 1, ERROR, ERRORHEADER); /* Request */
+ PrintField(buf, 1, 1, ERROR, ERRORHEADER);
if (Verbose < 1)
return;
printfield(buf, 2, 2, CARD16, "sequence number");
+ PrintField(buf, 4, 4, FieldType, desc);
PrintField(buf, 8, 2, CARD16, "minor opcode");
PrintField(buf, 10, 1, CARD8, "major opcode");
}
+/* generic routine for printing common format error messages with
+ no additional information provided. */
void
-ValueError(const unsigned char *buf)
+printErrorNoValue(const unsigned char *buf)
{
- PrintField(buf, 1, 1, ERROR, ERRORHEADER); /* Value */
+ PrintField(buf, 1, 1, ERROR, ERRORHEADER);
if (Verbose < 1)
return;
printfield(buf, 2, 2, CARD16, "sequence number");
- PrintField(buf, 4, 4, INT32, "bad value");
+ /* 4 bytes unused */
PrintField(buf, 8, 2, CARD16, "minor opcode");
PrintField(buf, 10, 1, CARD8, "major opcode");
}
void
+RequestError(const unsigned char *buf)
+{
+ printErrorNoValue(buf);
+}
+
+void
+ValueError(const unsigned char *buf)
+{
+ printErrorWithValue(buf, INT32, "bad value");
+}
+
+void
WindowError(const unsigned char *buf)
{
- PrintField(buf, 1, 1, ERROR, ERRORHEADER); /* Window */
- if (Verbose < 1)
- return;
- printfield(buf, 2, 2, CARD16, "sequence number");
- PrintField(buf, 4, 4, CARD32, "bad resource id");
- PrintField(buf, 8, 2, CARD16, "minor opcode");
- PrintField(buf, 10, 1, CARD8, "major opcode");
+ printErrorWithValue(buf, CARD32, "bad resource id");
}
void
PixmapError(const unsigned char *buf)
{
- PrintField(buf, 1, 1, ERROR, ERRORHEADER); /* Pixmap */
- if (Verbose < 1)
- return;
- printfield(buf, 2, 2, CARD16, "sequence number");
- PrintField(buf, 4, 4, CARD32, "bad resource id");
- PrintField(buf, 8, 2, CARD16, "minor opcode");
- PrintField(buf, 10, 1, CARD8, "major opcode");
+ printErrorWithValue(buf, CARD32, "bad resource id");
}
void
AtomError(const unsigned char *buf)
{
- PrintField(buf, 1, 1, ERROR, ERRORHEADER); /* Atom */
- if (Verbose < 1)
- return;
- printfield(buf, 2, 2, CARD16, "sequence number");
- PrintField(buf, 4, 4, CARD32, "bad atom id");
- PrintField(buf, 8, 2, CARD16, "minor opcode");
- PrintField(buf, 10, 1, CARD8, "major opcode");
+ printErrorWithValue(buf, CARD32, "bad atom id");
}
void
CursorError(const unsigned char *buf)
{
- PrintField(buf, 1, 1, ERROR, ERRORHEADER); /* Cursor */
- if (Verbose < 1)
- return;
- printfield(buf, 2, 2, CARD16, "sequence number");
- PrintField(buf, 4, 4, CARD32, "bad resource id");
- PrintField(buf, 8, 2, CARD16, "minor opcode");
- PrintField(buf, 10, 1, CARD8, "major opcode");
+ printErrorWithValue(buf, CARD32, "bad resource id");
}
void
FontError(const unsigned char *buf)
{
- PrintField(buf, 1, 1, ERROR, ERRORHEADER); /* Font */
- if (Verbose < 1)
- return;
- printfield(buf, 2, 2, CARD16, "sequence number");
- PrintField(buf, 4, 4, CARD32, "bad resource id");
- PrintField(buf, 8, 2, CARD16, "minor opcode");
- PrintField(buf, 10, 1, CARD8, "major opcode");
+ printErrorWithValue(buf, CARD32, "bad resource id");
}
void
MatchError(const unsigned char *buf)
{
- PrintField(buf, 1, 1, ERROR, ERRORHEADER); /* Match */
- if (Verbose < 1)
- return;
- printfield(buf, 2, 2, CARD16, "sequence number");
- PrintField(buf, 8, 2, CARD16, "minor opcode");
- PrintField(buf, 10, 1, CARD8, "major opcode");
+ printErrorNoValue(buf);
}
void
DrawableError(const unsigned char *buf)
{
- PrintField(buf, 1, 1, ERROR, ERRORHEADER); /* Drawable */
- if (Verbose < 1)
- return;
- printfield(buf, 2, 2, CARD16, "sequence number");
- PrintField(buf, 4, 4, CARD32, "bad resource id");
- PrintField(buf, 8, 2, CARD16, "minor opcode");
- PrintField(buf, 10, 1, CARD8, "major opcode");
+ printErrorWithValue(buf, CARD32, "bad resource id");
}
void
AccessError(const unsigned char *buf)
{
- PrintField(buf, 1, 1, ERROR, ERRORHEADER); /* Access */
- if (Verbose < 1)
- return;
- printfield(buf, 2, 2, CARD16, "sequence number");
- PrintField(buf, 8, 2, CARD16, "minor opcode");
- PrintField(buf, 10, 1, CARD8, "major opcode");
+ printErrorNoValue(buf);
}
void
AllocError(const unsigned char *buf)
{
- PrintField(buf, 1, 1, ERROR, ERRORHEADER); /* Alloc */
- if (Verbose < 1)
- return;
- printfield(buf, 2, 2, CARD16, "sequence number");
- PrintField(buf, 8, 2, CARD16, "minor opcode");
- PrintField(buf, 10, 1, CARD8, "major opcode");
+ printErrorNoValue(buf);
}
void
ColormapError(const unsigned char *buf)
{
- PrintField(buf, 1, 1, ERROR, ERRORHEADER); /* Colormap */
- if (Verbose < 1)
- return;
- printfield(buf, 2, 2, CARD16, "sequence number");
- PrintField(buf, 4, 4, CARD32, "bad resource id");
- PrintField(buf, 8, 2, CARD16, "minor opcode");
- PrintField(buf, 10, 1, CARD8, "major opcode");
+ printErrorWithValue(buf, CARD32, "bad resource id");
}
void
GContextError(const unsigned char *buf)
{
- PrintField(buf, 1, 1, ERROR, ERRORHEADER); /* GContext */
- if (Verbose < 1)
- return;
- printfield(buf, 2, 2, CARD16, "sequence number");
- PrintField(buf, 4, 4, CARD32, "bad resource id");
- PrintField(buf, 8, 2, CARD16, "minor opcode");
- PrintField(buf, 10, 1, CARD8, "major opcode");
+ printErrorWithValue(buf, CARD32, "bad resource id");
}
void
IDChoiceError(const unsigned char *buf)
{
- PrintField(buf, 1, 1, ERROR, ERRORHEADER); /* IDChoice */
- if (Verbose < 1)
- return;
- printfield(buf, 2, 2, CARD16, "sequence number");
- PrintField(buf, 4, 4, CARD32, "bad resource id");
- PrintField(buf, 8, 2, CARD16, "minor opcode");
- PrintField(buf, 10, 1, CARD8, "major opcode");
+ printErrorWithValue(buf, CARD32, "bad resource id");
}
void
NameError(const unsigned char *buf)
{
- PrintField(buf, 1, 1, ERROR, ERRORHEADER); /* Name */
- if (Verbose < 1)
- return;
- printfield(buf, 2, 2, CARD16, "sequence number");
- PrintField(buf, 8, 2, CARD16, "minor opcode");
- PrintField(buf, 10, 1, CARD8, "major opcode");
+ printErrorNoValue(buf);
}
void
LengthError(const unsigned char *buf)
{
- PrintField(buf, 1, 1, ERROR, ERRORHEADER); /* Length */
- if (Verbose < 1)
- return;
- printfield(buf, 2, 2, CARD16, "sequence number");
- PrintField(buf, 8, 2, CARD16, "minor opcode");
- PrintField(buf, 10, 1, CARD8, "major opcode");
+ printErrorNoValue(buf);
}
void
ImplementationError(const unsigned char *buf)
{
- PrintField(buf, 1, 1, ERROR, ERRORHEADER); /* Implementation */
- if (Verbose < 1)
- return;
- printfield(buf, 2, 2, CARD16, "sequence number");
- PrintField(buf, 8, 2, CARD16, "minor opcode");
- PrintField(buf, 10, 1, CARD8, "major opcode");
+ printErrorNoValue(buf);
}
void
UnknownError(const unsigned char *buf)
{
- PrintField(RBf, 1, 1, ERROR, ERRORHEADER);
- if (Verbose < 1)
- return;
- printfield(buf, 2, 2, CARD16, "sequence number");
- PrintField(buf, 4, 4, CARD32, "bad resource id");
- PrintField(buf, 8, 2, CARD16, "minor opcode");
- PrintField(buf, 10, 1, CARD8, "major opcode");
+ printErrorWithValue(buf, CARD32, "bad resource id");
}
/* ************************************************************ */