From 3ba33321de0790d60dc473acee093de5a3650480 Mon Sep 17 00:00:00 2001 From: Christoph Gysin Date: Sat, 28 Nov 2015 15:47:44 +0200 Subject: Use macros for exit values --- sway/main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'sway/main.c') diff --git a/sway/main.c b/sway/main.c index dd609214..60a41923 100644 --- a/sway/main.c +++ b/sway/main.c @@ -90,7 +90,7 @@ int main(int argc, char **argv) { #else fprintf(stdout, "version not detected\n"); #endif - exit(0); + exit(EXIT_SUCCESS); break; case 'V': // verbose verbose = 1; @@ -98,10 +98,10 @@ int main(int argc, char **argv) { case 'p': ; // --get-socketpath if (getenv("SWAYSOCK")) { fprintf(stdout, "%s\n", getenv("SWAYSOCK")); - exit(0); + exit(EXIT_SUCCESS); } else { fprintf(stderr, "sway socket not detected.\n"); - exit(1); + exit(EXIT_FAILURE); } break; } -- cgit v1.2.3 From e48a16ce5ec0719f9f119ad5fb5891081e5e6dcd Mon Sep 17 00:00:00 2001 From: Christoph Gysin Date: Thu, 26 Nov 2015 21:01:37 +0200 Subject: sway: Print usage and exit on unknown options --- sway/main.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'sway/main.c') diff --git a/sway/main.c b/sway/main.c index 60a41923..7b24d405 100644 --- a/sway/main.c +++ b/sway/main.c @@ -65,6 +65,18 @@ int main(int argc, char **argv) { }; char *config_path = NULL; + + const char* usage = + "Usage: sway [options] [command]\n" + "\n" + " -c, --config Specify a config file.\n" + " -C, --validate Check the validity of the config file, then exit.\n" + " -d, --debug Enables full logging, including debug information.\n" + " -v, --version Show the version number and quit.\n" + " -V, --verbose Enables more verbose logging.\n" + " --get-socketpath Gets the IPC socket path and prints it, then exits.\n" + "\n"; + int c; while (1) { int option_index = 0; @@ -104,6 +116,9 @@ int main(int argc, char **argv) { exit(EXIT_FAILURE); } break; + default: + fprintf(stderr, "%s", usage); + exit(EXIT_FAILURE); } } -- cgit v1.2.3 From 2f2e1f3fc710982fd8577091c344af19ac736d2f Mon Sep 17 00:00:00 2001 From: Christoph Gysin Date: Thu, 26 Nov 2015 21:03:21 +0200 Subject: sway: Add --help option that prints usage --- sway.1.txt | 3 +++ sway/main.c | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) (limited to 'sway/main.c') diff --git a/sway.1.txt b/sway.1.txt index c0715841..c80bd917 100644 --- a/sway.1.txt +++ b/sway.1.txt @@ -17,6 +17,9 @@ Synopsis Options ------- +*-h, --help*:: + Show help message and quit. + *-c, \--config* :: Specifies a config file. diff --git a/sway/main.c b/sway/main.c index 7b24d405..473a0990 100644 --- a/sway/main.c +++ b/sway/main.c @@ -55,6 +55,7 @@ int main(int argc, char **argv) { static int verbose = 0, debug = 0, validate = 0; static struct option long_options[] = { + {"help", no_argument, NULL, 'h'}, {"config", required_argument, NULL, 'c'}, {"validate", no_argument, &validate, 1}, {"debug", no_argument, &debug, 1}, @@ -69,6 +70,7 @@ int main(int argc, char **argv) { const char* usage = "Usage: sway [options] [command]\n" "\n" + " -h, --help Show help message and quit.\n" " -c, --config Specify a config file.\n" " -C, --validate Check the validity of the config file, then exit.\n" " -d, --debug Enables full logging, including debug information.\n" @@ -80,13 +82,17 @@ int main(int argc, char **argv) { int c; while (1) { int option_index = 0; - c = getopt_long(argc, argv, "CdvVpc:", long_options, &option_index); + c = getopt_long(argc, argv, "hCdvVpc:", long_options, &option_index); if (c == -1) { break; } switch (c) { case 0: // Flag break; + case 'h': // help + fprintf(stdout, "%s", usage); + exit(EXIT_SUCCESS); + break; case 'c': // config config_path = strdup(optarg); break; -- cgit v1.2.3 From 923c3245ace71ea0e26a0b12746a699fa499f759 Mon Sep 17 00:00:00 2001 From: Christoph Gysin Date: Sat, 28 Nov 2015 16:35:44 +0200 Subject: Fix option parsing Using 'flag' results in duplicate code paths for short and long options. This broke the -q short option in swaymsg, because there was: {"quiet", no_argument, &quiet, 'q'} Which will set quiet to 'q' and return 0, not 'q'. --- sway/main.c | 8 +++----- swaygrab/main.c | 6 ++---- swaymsg/main.c | 5 +++-- 3 files changed, 8 insertions(+), 11 deletions(-) (limited to 'sway/main.c') diff --git a/sway/main.c b/sway/main.c index 473a0990..1261a7ce 100644 --- a/sway/main.c +++ b/sway/main.c @@ -57,10 +57,10 @@ int main(int argc, char **argv) { static struct option long_options[] = { {"help", no_argument, NULL, 'h'}, {"config", required_argument, NULL, 'c'}, - {"validate", no_argument, &validate, 1}, - {"debug", no_argument, &debug, 1}, + {"validate", no_argument, NULL, 'C'}, + {"debug", no_argument, NULL, 'd'}, {"version", no_argument, NULL, 'v'}, - {"verbose", no_argument, &verbose, 1}, + {"verbose", no_argument, NULL, 'V'}, {"get-socketpath", no_argument, NULL, 'p'}, {0, 0, 0, 0} }; @@ -87,8 +87,6 @@ int main(int argc, char **argv) { break; } switch (c) { - case 0: // Flag - break; case 'h': // help fprintf(stdout, "%s", usage); exit(EXIT_SUCCESS); diff --git a/swaygrab/main.c b/swaygrab/main.c index ae17155f..681a6da4 100644 --- a/swaygrab/main.c +++ b/swaygrab/main.c @@ -128,10 +128,10 @@ int main(int argc, char **argv) { static struct option long_options[] = { {"help", no_argument, NULL, 'h'}, - {"capture", no_argument, &capture, 'c'}, + {"capture", no_argument, NULL, 'c'}, {"version", no_argument, NULL, 'v'}, {"socket", required_argument, NULL, 's'}, - {"raw", no_argument, &raw, 'r'}, + {"raw", no_argument, NULL, 'r'}, {"rate", required_argument, NULL, 'R'}, {0, 0, 0, 0} }; @@ -154,8 +154,6 @@ int main(int argc, char **argv) { break; } switch (c) { - case 0: // Flag - break; case 's': // Socket socket_path = strdup(optarg); break; diff --git a/swaymsg/main.c b/swaymsg/main.c index 8f91dc55..f8c9e14c 100644 --- a/swaymsg/main.c +++ b/swaymsg/main.c @@ -24,7 +24,7 @@ int main(int argc, char **argv) { static struct option long_options[] = { {"help", no_argument, NULL, 'h'}, - {"quiet", no_argument, &quiet, 'q'}, + {"quiet", no_argument, NULL, 'q'}, {"version", no_argument, NULL, 'v'}, {"socket", required_argument, NULL, 's'}, {"type", required_argument, NULL, 't'}, @@ -48,7 +48,8 @@ int main(int argc, char **argv) { break; } switch (c) { - case 0: // Flag + case 'q': // Quiet + quiet = 1; break; case 's': // Socket socket_path = strdup(optarg); -- cgit v1.2.3