From fc583c7d4f91d03e1950a12ea7dfdbe9745b5ca2 Mon Sep 17 00:00:00 2001 From: Andrew Ayer Date: Sat, 7 Feb 2015 12:43:17 -0800 Subject: [PATCH] Add helper to get exit status of command --- util-unix.cpp | 4 ++-- util-win32.cpp | 4 ++-- util.hpp | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/util-unix.cpp b/util-unix.cpp index 1cebf3f..b1de1a1 100644 --- a/util-unix.cpp +++ b/util-unix.cpp @@ -273,9 +273,9 @@ int exec_command_with_input (const std::vector& command, const char return status; } -bool successful_exit (int status) +int exit_status (int wait_status) { - return status != -1 && WIFEXITED(status) && WEXITSTATUS(status) == 0; + return wait_status != -1 && WIFEXITED(wait_status) ? WEXITSTATUS(wait_status) : -1; } void touch_file (const std::string& filename) diff --git a/util-win32.cpp b/util-win32.cpp index 21576c7..7d9edf1 100644 --- a/util-win32.cpp +++ b/util-win32.cpp @@ -316,9 +316,9 @@ int exec_command_with_input (const std::vector& command, const char return exit_code; } -bool successful_exit (int status) +int exit_status (int status) { - return status == 0; + return status; } void touch_file (const std::string& filename) diff --git a/util.hpp b/util.hpp index 8b5bc33..1b044dc 100644 --- a/util.hpp +++ b/util.hpp @@ -63,7 +63,8 @@ std::string our_exe_path (); int exec_command (const std::vector&); int exec_command (const std::vector&, std::ostream& output); int exec_command_with_input (const std::vector&, const char* p, size_t len); -bool successful_exit (int status); +int exit_status (int wait_status); // returns -1 if process did not exit (but was signaled, etc.) +inline bool successful_exit (int wait_status) { return exit_status(wait_status) == 0; } void touch_file (const std::string&); void remove_file (const std::string&); std::string escape_shell_arg (const std::string&);