1 #ifdef NDEBUG
debug(const char * errstr,...)2 static void debug(const char *errstr, ...) { }
print_packet(const char * prefix,Packet * pkt)3 static void print_packet(const char *prefix, Packet *pkt) { }
4 #else
5
debug(const char * errstr,...)6 static void debug(const char *errstr, ...) {
7 va_list ap;
8 va_start(ap, errstr);
9 vfprintf(stderr, errstr, ap);
10 va_end(ap);
11 }
12
print_packet(const char * prefix,Packet * pkt)13 static void print_packet(const char *prefix, Packet *pkt) {
14 static const char *msgtype[] = {
15 [MSG_CONTENT] = "CONTENT",
16 [MSG_ATTACH] = "ATTACH",
17 [MSG_DETACH] = "DETACH",
18 [MSG_RESIZE] = "RESIZE",
19 [MSG_REDRAW] = "REDRAW",
20 [MSG_EXIT] = "EXIT",
21 };
22 const char *type = "UNKNOWN";
23 if (pkt->type < countof(msgtype) && msgtype[pkt->type])
24 type = msgtype[pkt->type];
25
26 fprintf(stderr, "%s: %s ", prefix, type);
27 switch (pkt->type) {
28 case MSG_CONTENT:
29 fwrite(pkt->u.msg, pkt->len, 1, stderr);
30 break;
31 case MSG_RESIZE:
32 fprintf(stderr, "%dx%d", pkt->u.ws.ws_col, pkt->u.ws.ws_row);
33 break;
34 case MSG_ATTACH:
35 fprintf(stderr, "readonly: %d low-priority: %d",
36 pkt->u.i & CLIENT_READONLY,
37 pkt->u.i & CLIENT_LOWPRIORITY);
38 break;
39 default:
40 fprintf(stderr, "len: %zu", pkt->len);
41 break;
42 }
43 fprintf(stderr, "\n");
44 }
45
46 #endif /* NDEBUG */
47