Implement long options (--version, --no-autostart, --help, --config)

This commit is contained in:
Michael Stapelberg 2009-09-02 22:14:09 +02:00
parent 67dcd9df28
commit ae2371ee58

View File

@ -19,6 +19,7 @@
#include <limits.h> #include <limits.h>
#include <locale.h> #include <locale.h>
#include <fcntl.h> #include <fcntl.h>
#include <getopt.h>
#include <X11/XKBlib.h> #include <X11/XKBlib.h>
#include <X11/extensions/XKB.h> #include <X11/extensions/XKB.h>
@ -147,6 +148,14 @@ int main(int argc, char *argv[], char *env[]) {
xcb_connection_t *conn; xcb_connection_t *conn;
xcb_property_handlers_t prophs; xcb_property_handlers_t prophs;
xcb_intern_atom_cookie_t atom_cookies[NUM_ATOMS]; xcb_intern_atom_cookie_t atom_cookies[NUM_ATOMS];
static struct option long_options[] = {
{"no-autostart", no_argument, 0, 'a'},
{"config", required_argument, 0, 'c'},
{"version", no_argument, 0, 'v'},
{"help", no_argument, 0, 'h'},
{0, 0, 0, 0}
};
int option_index = 0;
setlocale(LC_ALL, ""); setlocale(LC_ALL, "");
@ -156,7 +165,7 @@ int main(int argc, char *argv[], char *env[]) {
start_argv = argv; start_argv = argv;
while ((opt = getopt(argc, argv, "c:va")) != -1) { while ((opt = getopt_long(argc, argv, "c:vah", long_options, &option_index)) != -1) {
switch (opt) { switch (opt) {
case 'a': case 'a':
LOG("Autostart disabled using -a\n"); LOG("Autostart disabled using -a\n");
@ -169,7 +178,11 @@ int main(int argc, char *argv[], char *env[]) {
printf("i3 version " I3_VERSION " © 2009 Michael Stapelberg and contributors\n"); printf("i3 version " I3_VERSION " © 2009 Michael Stapelberg and contributors\n");
exit(EXIT_SUCCESS); exit(EXIT_SUCCESS);
default: default:
fprintf(stderr, "Usage: %s [-c configfile]\n", argv[0]); fprintf(stderr, "Usage: %s [-c configfile] [-a] [-v]\n", argv[0]);
fprintf(stderr, "\n");
fprintf(stderr, "-a: disable autostart\n");
fprintf(stderr, "-v: display version and exit\n");
fprintf(stderr, "-c <configfile>: use the provided configfile instead\n");
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
} }