main-func: make _DEFINE_MAIN_FUNC() take short function
No functional change, just refactoring.
This commit is contained in:
@@ -102,4 +102,4 @@ void log_setup_generator(void);
|
||||
impl(argv[1], \
|
||||
argv[argc == 4 ? 2 : 1], \
|
||||
argv[argc == 4 ? 3 : 1]), \
|
||||
r < 0 ? EXIT_FAILURE : EXIT_SUCCESS)
|
||||
exit_failure_if_negative)
|
||||
|
||||
+14
-5
@@ -12,7 +12,7 @@
|
||||
#include "spawn-polkit-agent.h"
|
||||
#include "static-destruct.h"
|
||||
|
||||
#define _DEFINE_MAIN_FUNCTION(intro, impl, ret) \
|
||||
#define _DEFINE_MAIN_FUNCTION(intro, impl, result_to_exit_status) \
|
||||
int main(int argc, char *argv[]) { \
|
||||
int r; \
|
||||
assert_se(argc > 0 && !isempty(argv[0])); \
|
||||
@@ -21,22 +21,31 @@
|
||||
r = impl; \
|
||||
if (r < 0) \
|
||||
(void) sd_notifyf(0, "ERRNO=%i", -r); \
|
||||
(void) sd_notifyf(0, "EXIT_STATUS=%i", ret); \
|
||||
(void) sd_notifyf(0, "EXIT_STATUS=%i", \
|
||||
result_to_exit_status(r)); \
|
||||
ask_password_agent_close(); \
|
||||
polkit_agent_close(); \
|
||||
pager_close(); \
|
||||
mac_selinux_finish(); \
|
||||
static_destruct(); \
|
||||
return ret; \
|
||||
return result_to_exit_status(r); \
|
||||
}
|
||||
|
||||
static inline int exit_failure_if_negative(int result) {
|
||||
return result < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
/* Negative return values from impl are mapped to EXIT_FAILURE, and
|
||||
* everything else means success! */
|
||||
#define DEFINE_MAIN_FUNCTION(impl) \
|
||||
_DEFINE_MAIN_FUNCTION(,impl(argc, argv), r < 0 ? EXIT_FAILURE : EXIT_SUCCESS)
|
||||
_DEFINE_MAIN_FUNCTION(,impl(argc, argv), exit_failure_if_negative)
|
||||
|
||||
static inline int exit_failure_if_nonzero(int result) {
|
||||
return result < 0 ? EXIT_FAILURE : result;
|
||||
}
|
||||
|
||||
/* Zero is mapped to EXIT_SUCCESS, negative values are mapped to EXIT_FAILURE,
|
||||
* and positive values are propagated.
|
||||
* Note: "true" means failure! */
|
||||
#define DEFINE_MAIN_FUNCTION_WITH_POSITIVE_FAILURE(impl) \
|
||||
_DEFINE_MAIN_FUNCTION(,impl(argc, argv), r < 0 ? EXIT_FAILURE : r)
|
||||
_DEFINE_MAIN_FUNCTION(,impl(argc, argv), exit_failure_if_nonzero)
|
||||
|
||||
Reference in New Issue
Block a user