[Cryptech-Commits] [sw/libhal] 56/58: Use C99 variadic macro as safety wrapper around variadic function. Are we having fun yet?

git at cryptech.is git at cryptech.is
Tue Jul 7 18:25:40 UTC 2015


This is an automated email from the git hooks/post-receive script.

sra at hactrn.net pushed a commit to branch master
in repository sw/libhal.

commit 48565020c549105baed47ef4fcb7630cccd7ffa1
Author: Rob Austein <sra at hactrn.net>
Date:   Sun Jul 5 18:10:54 2015 -0400

    Use C99 variadic macro as safety wrapper around variadic function.
    Are we having fun yet?
---
 utils/eim_peek_poke.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/utils/eim_peek_poke.c b/utils/eim_peek_poke.c
index a6316fe..2511483 100644
--- a/utils/eim_peek_poke.c
+++ b/utils/eim_peek_poke.c
@@ -40,7 +40,10 @@
 
 #include "novena-eim.h"
 
-static int string_match(const char *s1, ...)
+#define string_match(...) \
+  _string_match(__VA_ARGS__, NULL)
+
+static int _string_match(const char *s1, ...)
 {
   const char *s2;
 
@@ -91,7 +94,7 @@ int main(int argc, char *argv[])
   off_t offset = 0;
   uint32_t value;
 
-  if (argc == 1 || string_match(argv[1], "-?", "-h", "--help", NULL))
+  if (argc == 1 || string_match(argv[1], "-?", "-h", "--help"))
     usage(EXIT_SUCCESS, argv[0]);
 
   if (eim_setup() != 0) {
@@ -99,14 +102,14 @@ int main(int argc, char *argv[])
     return EXIT_FAILURE;
   }
 
-  if (string_match(argv[1], "r", "-r", "--read", "--peek", NULL)) {
+  if (string_match(argv[1], "r", "-r", "--read", "--peek")) {
     if (argc != 3 || !parse_offset(argv[2], &offset))
       usage(EXIT_FAILURE, argv[0]);
     eim_read_32(offset, &value);
     printf("%08x\n", value);
   }
 
-  else if (string_match(argv[1], "w", "-w", "--write", "--poke", NULL)) {
+  else if (string_match(argv[1], "w", "-w", "--write", "--poke")) {
     if (argc != 4 || !parse_offset(argv[2], &offset) || !parse_value(argv[3], &value))
       usage(EXIT_FAILURE, argv[0]);
     eim_write_32(offset, &value);



More information about the Commits mailing list