From 5f88edfed1c44f152fd44112f92a0f876b8a03d9 Mon Sep 17 00:00:00 2001 From: XANTRONIX Development Date: Tue, 22 Sep 2020 09:34:31 -0500 Subject: [PATCH] Rename switch case helpers in src/message.c --- examples/unpack.c | 25 +++++++++++++++++++++++++ src/message.c | 20 ++++++++++---------- 2 files changed, 35 insertions(+), 10 deletions(-) create mode 100644 examples/unpack.c diff --git a/examples/unpack.c b/examples/unpack.c new file mode 100644 index 0000000..cd21016 --- /dev/null +++ b/examples/unpack.c @@ -0,0 +1,25 @@ +#include +#include +#include +#include + +#include + +int main(int argc, char **argv) { + uint8_t buf[6] = "\x5KMFDM", + str[SKIPSTONE_MESSAGE_MAX_STRLEN]; + + if (skipstone_message_unpack(buf, sizeof(buf), "z", str) < 0) { + fprintf(stderr, "%s: %s: %s\n", + argv[0], "skipstone_message_unpack()", strerror(errno)); + + goto message_unpack; + } + + printf("%s\n", str); + + return 0; + +error_message_unpack: + return 1; +} diff --git a/src/message.c b/src/message.c index 04a5dbb..8a00117 100644 --- a/src/message.c +++ b/src/message.c @@ -9,7 +9,7 @@ #include #include -#define case_type(t, type_t) \ +#define case_pack(t, type_t) \ case t: { \ type_t v = va_arg(args, type_t); \ if (len < offset + sizeof(v)) { \ @@ -21,7 +21,7 @@ break; \ } -#define case_type_int(t, type_t) \ +#define case_pack_int(t, type_t) \ case t: { \ type_t v = (type_t)va_arg(args, int); \ if (len < offset + sizeof(v)) { \ @@ -47,14 +47,14 @@ ssize_t skipstone_message_pack(void *message, char c = template[i]; switch (c) { - case_type_int('c', int8_t); - case_type_int('C', uint8_t); - case_type_int('s', int16_t); - case_type_int('S', uint16_t); - case_type('l', int32_t); - case_type('L', uint32_t); - case_type('q', int64_t); - case_type('Q', uint64_t); + case_pack_int('c', int8_t); + case_pack_int('C', uint8_t); + case_pack_int('s', int16_t); + case_pack_int('S', uint16_t); + case_pack('l', int32_t); + case_pack('L', uint32_t); + case_pack('q', int64_t); + case_pack('Q', uint64_t); case 'z': { char *value = va_arg(args, char *);