diff --git a/options.c b/options.c index de2508e..bb45c31 100644 --- a/options.c +++ b/options.c @@ -12,6 +12,7 @@ #include #include #include "main.h" +#include static int split(char *in, char delim, char ***out) { @@ -142,8 +143,35 @@ void parse_args(int argc, char *argv[], Config *config) { signed int c; optind = 1; + static struct option long_options[] = { + {"help", no_argument, 0, 'h'}, + {"version", no_argument, 0, 'v'}, + {"daemonize", no_argument, 0, 'b'}, + {"run_once", no_argument, 0, 'o'}, + {"battery_required", no_argument, 0, 'i'}, + {"warning", required_argument, 0, 'w'}, + {"critical", required_argument, 0, 'c'}, + {"danger", required_argument, 0, 'd'}, + {"full", required_argument, 0, 'f'}, + {"show_charging_msg", no_argument, 0, 'p'}, + {"warningmsg", required_argument, 0, 'W'}, + {"criticalmsg", required_argument, 0, 'C'}, + {"dangercmd", required_argument, 0, 'D'}, + {"fullmsg", required_argument, 0, 'F'}, + {"chargingmsg", required_argument, 0, 'P'}, + {"dischargingmsg", required_argument, 0, 'U'}, + {"msgcmd", required_argument, 0, 'M'}, + {"show_notifications", no_argument, 0, 'N'}, + {"battery_count", required_argument, 0, 'n'}, + {"multiplier", required_argument, 0, 'm'}, + {"appname", required_argument, 0, 'a'}, + {"icon", required_argument, 0, 'I'}, + {"notification_expires", no_argument, 0, 'e'}, + {0, 0, 0, 0}, + }; - while ((c = getopt(argc, argv, ":hvboiew:c:d:f:pW:C:D:F:P:U:M:Nn:m:a:I:")) != -1) { + + while ((c = getopt_long(argc, argv, ":hvboiew:c:d:f:pW:C:D:F:P:U:M:Nn:m:a:I:", long_options, NULL)) != -1) { switch (c) { case 'h': config->help = true;