From c192b962e549c80a682ca25f41bfef2eb1992f43 Mon Sep 17 00:00:00 2001 From: Sascha Kruse Date: Sat, 20 Oct 2012 10:14:02 +0200 Subject: [PATCH] dunst.c: switch to options_get_* --- dunst.c | 243 ++++++++++++-------------------------------------------- 1 file changed, 50 insertions(+), 193 deletions(-) diff --git a/dunst.c b/dunst.c index f44f762..50c62f8 100644 --- a/dunst.c +++ b/dunst.c @@ -29,9 +29,7 @@ #include "list.h" #include "utils.h" -#ifndef STATIC_CONFIG #include "options.h" -#endif #define INRECT(x,y,rx,ry,rw,rh) ((x) >= (rx) && (x) < (rx)+(rw) && (y) >= (ry) && (y) < (ry)+(rh)) #define LENGTH(X) (sizeof X / sizeof X[0]) @@ -1347,145 +1345,6 @@ void parse_follow_mode(const char *mode) } -void parse_cmdline(int argc, char *argv[]) -{ - int c; - while (1) { - static struct option long_options[] = { - {"help", no_argument, NULL, 'h'}, - {"fn", required_argument, NULL, 'F'}, - {"nb", required_argument, NULL, 'n'}, - {"nf", required_argument, NULL, 'N'}, - {"lb", required_argument, NULL, 'l'}, - {"lf", required_argument, NULL, 'L'}, - {"cb", required_argument, NULL, 'c'}, - {"cf", required_argument, NULL, 'C'}, - {"to", required_argument, NULL, 't'}, - {"lto", required_argument, NULL, '0'}, - {"nto", required_argument, NULL, '1'}, - {"cto", required_argument, NULL, '2'}, - {"format", required_argument, NULL, 'f'}, - {"key", required_argument, NULL, 'k'}, - {"history_key", required_argument, NULL, 'K'}, - {"all_key", required_argument, NULL, 'A'}, - {"geometry", required_argument, NULL, 'g'}, - {"config", required_argument, NULL, 'r'}, - {"mod", required_argument, NULL, 'M'}, - {"mon", required_argument, NULL, 'm'}, - {"ns", no_argument, NULL, 'x'}, - {"follow", required_argument, NULL, 'o'}, - {"line_height", required_argument, NULL, 'H'}, - {"lh", required_argument, NULL, 'H'}, - {"print", no_argument, NULL, 'V'}, - {"version", no_argument, NULL, 'v'}, - {0, 0, 0, 0} - }; - - int option_index = 0; - - c = getopt_long_only(argc, argv, "bhsv", long_options, - &option_index); - - if (c == -1) { - break; - } - - KeySym mod = 0; - switch (c) { - case 0: - break; - case 'h': - usage(EXIT_SUCCESS); - break; - case 'F': - font = optarg; - break; - case 'n': - normbgcolor = optarg; - break; - case 'N': - normfgcolor = optarg; - break; - case 'l': - lowbgcolor = optarg; - break; - case 'L': - lowfgcolor = optarg; - break; - case 'c': - critbgcolor = optarg; - break; - case 'C': - critfgcolor = optarg; - break; - case 't': - timeouts[0] = atoi(optarg); - timeouts[1] = timeouts[0]; - break; - case '0': - timeouts[0] = atoi(optarg); - break; - case '1': - timeouts[1] = atoi(optarg); - break; - case '2': - timeouts[2] = atoi(optarg); - break; - case 'm': - scr.scr = atoi(optarg); - break; - case 'f': - format = optarg; - break; - case 'M': - deprecated_mod = True; - mod = string_to_mask(optarg); - close_ks.mask = mod; - close_all_ks.mask = mod; - history_ks.mask = mod; - break; - case 'k': - close_ks.str = optarg; - break; - case 'K': - history_ks.str = optarg; - break; - case 'A': - close_all_ks.str = optarg; - break; - case 'g': - geom = optarg; - break; - case 's': - sort = True; - break; - case 'r': - /* this option is parsed elsewhere. This is just to supress - * error message */ - break; - case 'x': - sort = False; - break; - case 'o': - parse_follow_mode(optarg); - break; - case 'H': - line_height = atoi(optarg); - break; - case 'v': - print_version(); - break; - case 'V': - print_notifications = True; - break; - default: - usage(EXIT_FAILURE); - break; - } - } -} - -#ifndef STATIC_CONFIG static rule_t *dunst_rules_find_or_create(const char *section) { l_node *iter; @@ -1507,7 +1366,7 @@ static rule_t *dunst_rules_find_or_create(const char *section) return rule; } -void parse_dunstrc(char *cmdline_config_path) +void load_options(char *cmdline_config_path) { xdgHandle xdg; @@ -1534,24 +1393,24 @@ void parse_dunstrc(char *cmdline_config_path) load_ini_file(config_file); - font = ini_get_string("global", "font", font); - format = ini_get_string("global", "format", format); - sort = ini_get_bool("global", "sort", sort); - indicate_hidden = ini_get_bool("global", "indicate_hidden", indicate_hidden); - word_wrap = ini_get_bool("global", "word_wrap", word_wrap); - idle_threshold = ini_get_int("global", "idle_threshold", idle_threshold); - monitor = ini_get_int("global", "monitor", monitor); + font = option_get_string("global", "font", "-fn", font); + format = option_get_string("global", "format", "-format", format); + sort = option_get_bool("global", "sort", "-sort", sort); + indicate_hidden = option_get_bool("global", "indicate_hidden", "-indicate_hidden", indicate_hidden); + word_wrap = option_get_bool("global", "word_wrap", "-word_wrap", word_wrap); + idle_threshold = option_get_int("global", "idle_threshold", "-idle_threshold", idle_threshold); + monitor = option_get_int("global", "monitor", "-mon", monitor); { - char *c = ini_get_string("global", "follow", ""); + char *c = option_get_string("global", "follow", "-follow", ""); if (strlen(c) > 0) { parse_follow_mode(c); free(c); } } - geom = ini_get_string("global", "geometry", geom); - line_height = ini_get_int("global", "line_height", line_height); + geom = option_get_string("global", "geometry", "-geom/-geometry", geom); + line_height = option_get_int("global", "line_height", "-lh/-line_height", line_height); { - char *c = ini_get_string("global", "modifier", ""); + char *c = option_get_string("global", "modifier", NULL, ""); if (strlen(c) > 0) { deprecated_dunstrc_shortcuts = True; KeySym mod = string_to_mask(c); @@ -1561,12 +1420,12 @@ void parse_dunstrc(char *cmdline_config_path) free(c); } } - close_ks.str = ini_get_string("global", "key", close_ks.str); - close_all_ks.str = ini_get_string("global", "key", close_all_ks.str); - history_ks.str = ini_get_string("global", "key", history_ks.str); - bounce_freq = ini_get_double("global", "bounce_freq", bounce_freq); + close_ks.str = option_get_string("global", "key", NULL, close_ks.str); + close_all_ks.str = option_get_string("global", "all_key", NULL, close_all_ks.str); + history_ks.str = option_get_string("global", "history_key", NULL, history_ks.str); + bounce_freq = option_get_double("global", "bounce_freq", "-bounce_freq", bounce_freq); { - char *c = ini_get_string("global", "alignment", ""); + char *c = option_get_string("global", "alignment", "-align/-alignment", ""); if (strlen(c) > 0) { if (strcmp(c, "left") == 0) align = left; @@ -1579,12 +1438,12 @@ void parse_dunstrc(char *cmdline_config_path) free(c); } } - show_age_threshold = ini_get_int("global", "show_age_threshold", show_age_threshold); - sticky_history = ini_get_bool("global", "sticky_history", sticky_history); - separator_height = ini_get_int("global", "separator_height", separator_height); - transparency = ini_get_int("global", "transparency", transparency); + show_age_threshold = option_get_int("global", "show_age_threshold", "-show_age_threshold", show_age_threshold); + sticky_history = option_get_bool("global", "sticky_history", "-sticky_history", sticky_history); + separator_height = option_get_int("global", "separator_height", "-sep_height/-separator_height", separator_height); + transparency = option_get_int("global", "transparency", "-transparency", transparency); { - char *c = ini_get_string("global", "separator_color", ""); + char *c = option_get_string("global", "separator_color", "-sep_color/-separator_color", ""); if (strlen(c) > 0) { if (strcmp(c, "auto") == 0) sep_color = AUTO; @@ -1596,20 +1455,21 @@ void parse_dunstrc(char *cmdline_config_path) } } - lowbgcolor = ini_get_string("urgency_low", "background", lowbgcolor); - lowfgcolor = ini_get_string("urgency_low", "foreground", lowfgcolor); - timeouts[LOW] = ini_get_int("urgency_low", "timeout", timeouts[LOW]); - normbgcolor = ini_get_string("urgency_normal", "background", normbgcolor); - normfgcolor = ini_get_string("urgency_normal", "foreground", normfgcolor); - timeouts[NORM] = ini_get_int("urgency_normal", "timeout", timeouts[NORM]); - critbgcolor = ini_get_string("urgency_critical", "background", critbgcolor); - critfgcolor = ini_get_string("urgency_critical", "foreground", critfgcolor); - timeouts[CRIT] = ini_get_int("urgency_critical", "timeout", timeouts[CRIT]); + lowbgcolor = option_get_string("urgency_low", "background", "-lb", lowbgcolor); + lowfgcolor = option_get_string("urgency_low", "foreground", "-lf", lowfgcolor); + timeouts[LOW] = option_get_int("urgency_low", "timeout", "-lto", timeouts[LOW]); + normbgcolor = option_get_string("urgency_normal", "background", "-nb", normbgcolor); + normfgcolor = option_get_string("urgency_normal", "foreground", "-nf", normfgcolor); + timeouts[NORM] = option_get_int("urgency_normal", "timeout", "-nto", timeouts[NORM]); + critbgcolor = option_get_string("urgency_critical", "background", "-cb", critbgcolor); + critfgcolor = option_get_string("urgency_critical", "foreground", "-cf", critfgcolor); + timeouts[CRIT] = option_get_int("urgency_critical", "timeout", "-cto", timeouts[CRIT]); - close_ks.str = ini_get_string("shortcuts", "close", close_ks.str); - close_all_ks.str = ini_get_string("shortcuts", "close_all", close_all_ks.str); - history_ks.str = ini_get_string("shortcuts", "history", history_ks.str); + close_ks.str = option_get_string("shortcuts", "close", "-key", close_ks.str); + close_all_ks.str = option_get_string("shortcuts", "close_all", "-all_key", close_all_ks.str); + history_ks.str = option_get_string("shortcuts", "history", "-history_key", history_ks.str); + print_notifications = cmdline_get_bool("print", False); char *cur_section = NULL; for (;;) { @@ -1663,21 +1523,6 @@ void parse_dunstrc(char *cmdline_config_path) } -char *parse_cmdline_for_config_file(int argc, char *argv[]) -{ - for (int i = 0; i < argc; i++) { - if (strstr(argv[i], "-config") != 0) { - if (i + 1 == argc) { - printf - ("Invalid commandline: -config needs argument\n"); - } - return argv[++i]; - } - } - return NULL; -} -#endif /* STATIC_CONFIG */ - int main(int argc, char *argv[]) { now = time(&now); @@ -1687,12 +1532,24 @@ int main(int argc, char *argv[]) l_push(rules, &default_rules[i]); } scr.scr = monitor; + + cmdline_load(argc, argv); + + if (cmdline_get_bool("-h/-help", False) || cmdline_get_bool("--help", False)) { + usage(EXIT_SUCCESS); + } + + if (cmdline_get_bool("-v/-version", False) || cmdline_get_bool("--version", False)) { + print_version(); + } + #ifndef STATIC_CONFIG char *cmdline_config_path; - cmdline_config_path = parse_cmdline_for_config_file(argc, argv); - parse_dunstrc(cmdline_config_path); + cmdline_config_path = cmdline_get_string("-conf/-config", NULL); +#else + cmdline_config_path = NULL; #endif - parse_cmdline(argc, argv); + load_options(cmdline_config_path); dc = initdc(); init_shortcut(&close_ks);