From eecddb535342b644e6f63826397f5cebff24755a Mon Sep 17 00:00:00 2001 From: Markus Seeber Date: Sun, 9 Oct 2016 23:39:33 +0200 Subject: [PATCH] detect version option before all other oprion parsing jackd now checks its arguments for "-V" and "--version" before all other option parsing happens. --- common/Jackdmp.cpp | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/common/Jackdmp.cpp b/common/Jackdmp.cpp index 55f2c671..c253f626 100644 --- a/common/Jackdmp.cpp +++ b/common/Jackdmp.cpp @@ -241,6 +241,15 @@ static void usage(FILE* file, jackctl_server_t *server, bool full = true) // Prototype to be found in libjackserver extern "C" void silent_jack_error_callback(const char *desc); +void print_version() +{ + printf( "jackdmp version " VERSION " tmpdir " + jack_server_dir " protocol %d" "\n", + JACK_PROTOCOL_VERSION); + exit(-1); + +} + int main(int argc, char** argv) { jackctl_server_t * server_ctl; @@ -249,6 +258,12 @@ int main(int argc, char** argv) jackctl_driver_t * master_driver_ctl; jackctl_driver_t * loopback_driver_ctl = NULL; int replace_registry = 0; + + for(int a = 1; a < argc; ++a) { + if(strstr(argv[a], "--version") || strstr(argv[a], "-V")) { + print_version(); + } + } const char *options = "-d:X:I:P:uvshVrRL:STFl:t:mn:p:" "a:" #ifdef __linux__ @@ -470,6 +485,9 @@ int main(int argc, char** argv) break; case 'V': + //TODO unreachable (refactoring needed) + fprintf(stderr, "should not be reachable.\n"); + return -1; show_version = true; break; @@ -491,11 +509,7 @@ int main(int argc, char** argv) } if (show_version) { - printf( "jackdmp version " VERSION - " tmpdir " jack_server_dir - " protocol %d" - "\n", JACK_PROTOCOL_VERSION); - return -1; + //TODO refactor unreachable } if (!master_driver_name) {