Clean up debug packet printing code

This commit is contained in:
Marc André Tanner 2014-03-21 23:00:08 +01:00
parent 6000bc6240
commit 3aa08a2d89
1 changed files with 21 additions and 28 deletions

49
debug.c
View File

@ -11,39 +11,32 @@ static void debug(const char *errstr, ...) {
} }
static void print_packet(const char *prefix, Packet *pkt) { static void print_packet(const char *prefix, Packet *pkt) {
// XXX: look up table static const char *msgtype[] = {
char *s = "UNKNOWN"; [MSG_CONTENT] = "CONTENT",
[MSG_ATTACH] = "ATTACH",
[MSG_DETACH] = "DETACH",
[MSG_RESIZE] = "RESIZE",
[MSG_REDRAW] = "REDRAW",
[MSG_EXIT] = "EXIT",
};
const char *type = "UNKNOWN";
if (pkt->type < countof(msgtype) && msgtype[pkt->type])
type = msgtype[pkt->type];
fprintf(stderr, "%s: %s ", prefix, type);
switch (pkt->type) { switch (pkt->type) {
case MSG_CONTENT: case MSG_CONTENT:
s = "CONTENT";
break;
case MSG_ATTACH:
s = "ATTACH";
break;
case MSG_DETACH:
s = "DETACH";
break;
case MSG_RESIZE:
s = "RESIZE";
break;
case MSG_REDRAW:
s = "REDRAW";
break;
case MSG_EXIT:
s = "EXIT";
break;
}
if (pkt->type == MSG_CONTENT) {
fprintf(stderr, "%s %s len: %d content: ", prefix, s, pkt->len);
for (size_t i = 0; i < pkt->len && i < sizeof(pkt->u.msg); i++) for (size_t i = 0; i < pkt->len && i < sizeof(pkt->u.msg); i++)
fprintf(stderr, "%c", pkt->u.msg[i]); fprintf(stderr, "%c", pkt->u.msg[i]);
fprintf(stderr, "\n"); break;
} else if (pkt->type == MSG_RESIZE) { case MSG_RESIZE:
fprintf(stderr, "%s %s %d x %d\n", prefix, s, pkt->u.ws.ws_col, pkt->u.ws.ws_row); fprintf(stderr, "%dx%d", pkt->u.ws.ws_col, pkt->u.ws.ws_row);
} else { break;
fprintf(stderr, "%s %s len: %d\n", prefix, s, pkt->len); default:
fprintf(stderr, "len: %d", pkt->len);
break;
} }
fprintf(stderr, "\n");
} }
#endif /* NDEBUG */ #endif /* NDEBUG */