diff options
author | Egor Tensin <Egor.Tensin@gmail.com> | 2022-08-26 06:53:49 +0200 |
---|---|---|
committer | Egor Tensin <Egor.Tensin@gmail.com> | 2022-08-26 07:15:45 +0200 |
commit | 964f8f40639453ddb42aa3d2aea9e1519b2d74cb (patch) | |
tree | 65c4e809a514d6a6fba4e2dfdb7df117e5e40e6c | |
parent | fix pthread error handling (diff) | |
download | cimple-964f8f40639453ddb42aa3d2aea9e1519b2d74cb.tar.gz cimple-964f8f40639453ddb42aa3d2aea9e1519b2d74cb.zip |
fix macros
do { ... } while (0) is objectively better:
https://stackoverflow.com/q/1067226/514684
-rw-r--r-- | src/git.c | 4 | ||||
-rw-r--r-- | src/log.h | 16 |
2 files changed, 10 insertions, 10 deletions
@@ -5,11 +5,11 @@ #include <git2.h> #define git_print_error(fn) \ - { \ + do { \ const git_error *error = git_error_last(); \ const char *msg = error && error->message ? error->message : "???"; \ print_error("%s: %s\n", fn, msg); \ - } + } while (0) int libgit_init() { @@ -10,30 +10,30 @@ #define CONCAT(a, b) CONCAT_INNER(a, b) #define print_errno(s) \ - { \ + do { \ fprintf(stderr, "%s(%d): ", basename(__FILE__), __LINE__); \ perror(s); \ - } + } while (0) #define pthread_print_errno(var, s) \ - { \ + do { \ errno = var; \ print_errno(s); \ var = -var; \ - } + } while (0) #define pthread_check(expr, s) \ - { \ + do { \ int CONCAT(ret, __LINE__) = expr; \ if (CONCAT(ret, __LINE__)) \ pthread_print_errno(CONCAT(ret, __LINE__), s); \ - } + } while (0) #define print_error(...) \ - { \ + do { \ fprintf(stderr, "%s(%d): ", basename(__FILE__), __LINE__); \ fprintf(stderr, __VA_ARGS__); \ - } + } while (0) #define print_log(...) printf(__VA_ARGS__) |