]> arthur.barton.de Git - netatalk.git/blobdiff - include/atalk/errchk.h
Writing metadata xattr on directories with sticky bit set, FR#94
[netatalk.git] / include / atalk / errchk.h
index 64a12764525282e0c19a4431e0ed362c413e683c..47576bec029424ce74de5bbb4a48da544e904e75 100644 (file)
 
 #define EC_INIT int ret = 0
 #define EC_STATUS(a) ret = (a)
-#define EC_FAIL ret = -1; goto cleanup
+#define EC_EXIT_STATUS(a) do { ret = (a); goto cleanup; } while (0)
+#define EC_FAIL do { ret = -1; goto cleanup; } while (0)
+#define EC_FAIL_LOG(...)                     \
+    do {               \
+        LOG(log_error, logtype_default, __VA_ARGS__);   \
+        ret = -1;      \
+        goto cleanup;  \
+    } while (0)
 #define EC_CLEANUP cleanup
 #define EC_EXIT return ret