X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;f=x5%2Fkhatus.c;h=d95390a9dc65e845ea26e14e0dca310238fb998b;hb=ce552549378d618f5915f06217626fcdc2b1fc8c;hp=37cbccca13a5d23fe703d2cb20083bd5e6fd6795;hpb=b6316e94783d975f109c9901e4061ba041f0cb3f;p=khatus.git diff --git a/x5/khatus.c b/x5/khatus.c index 37cbccc..d95390a 100644 --- a/x5/khatus.c +++ b/x5/khatus.c @@ -167,78 +167,67 @@ void opts_parse_any(Config *, int, char *[], int); /* For mutually-recursive ca void parse_opts_opt_i(Config *cfg, int argc, char *argv[], int i) { - if (i < argc) { - char *param = argv[i++]; + char *param; - if (is_pos_num(param)) { - cfg->interval = atoi(param); - opts_parse_any(cfg, argc, argv, i); - } else { - usage("Option -i parameter is invalid: \"%s\"\n", param); - } - } else { + if (i >= argc) usage("Option -i parameter is missing.\n"); - } + param = argv[i++]; + if (!is_pos_num(param)) + usage("Option -i parameter is invalid: \"%s\"\n", param); + cfg->interval = atoi(param); + opts_parse_any(cfg, argc, argv, i); } void parse_opts_opt_s(Config *cfg, int argc, char *argv[], int i) { - if (i < argc) { - cfg->separator = calloc((strlen(argv[i]) + 1), sizeof(char)); - strcpy(cfg->separator, argv[i]); - opts_parse_any(cfg, argc, argv, ++i); - } else { + if (i >= argc) usage("Option -s parameter is missing.\n"); - } + cfg->separator = calloc((strlen(argv[i]) + 1), sizeof(char)); + strcpy(cfg->separator, argv[i]); + opts_parse_any(cfg, argc, argv, ++i); } void parse_opts_opt_l(Config *cfg, int argc, char *argv[], int i) { + char *param; int log_level; - if (i < argc) { - char *param = argv[i++]; - - if (is_pos_num(param)) { - log_level = atoi(param); - if (log_level <= Debug) { - cfg->log_level = log_level; - opts_parse_any(cfg, argc, argv, i); - } else { - usage("Option -l value (%d) exceeds maximum (%d)\n", log_level, Debug); - } - } else { - usage("Option -l parameter is invalid: \"%s\"\n", param); - } - } else { + if (i >= argc) usage("Option -l parameter is missing.\n"); - } + param = argv[i++]; + if (!is_pos_num(param)) + usage("Option -l parameter is invalid: \"%s\"\n", param); + log_level = atoi(param); + if (log_level > Debug) + usage("Option -l value (%d) exceeds maximum (%d)\n", log_level, Debug); + cfg->log_level = log_level; + opts_parse_any(cfg, argc, argv, i); } void parse_opts_opt(Config *cfg, int argc, char *argv[], int i) { switch (argv[i][1]) { - case 'i': - /* TODO: Generic set_int */ - parse_opts_opt_i(cfg, argc, argv, ++i); - break; - case 's': - /* TODO: Generic set_str */ - parse_opts_opt_s(cfg, argc, argv, ++i); - break; - case 'x': - cfg->output_to_x_root_window = 1; - opts_parse_any(cfg, argc, argv, ++i); - break; - case 'l': - /* TODO: Generic set_int */ - parse_opts_opt_l(cfg, argc, argv, ++i); - break; - default : - usage("Option \"%s\" is invalid\n", argv[i]); + case 'i': + /* TODO: Generic set_int */ + parse_opts_opt_i(cfg, argc, argv, ++i); + break; + case 's': + /* TODO: Generic set_str */ + parse_opts_opt_s(cfg, argc, argv, ++i); + break; + case 'x': + cfg->output_to_x_root_window = 1; + opts_parse_any(cfg, argc, argv, ++i); + break; + case 'l': + /* TODO: Generic set_int */ + parse_opts_opt_l(cfg, argc, argv, ++i); + break; + default : + usage("Option \"%s\" is invalid\n", argv[i]); } } @@ -280,11 +269,11 @@ opts_parse_any(Config *cfg, int argc, char *argv[], int i) { if (i < argc) { switch (argv[i][0]) { - case '-': - parse_opts_opt(cfg, argc, argv, i); - break; - default : - parse_opts_spec(cfg, argc, argv, i); + case '-': + parse_opts_opt(cfg, argc, argv, i); + break; + default : + parse_opts_spec(cfg, argc, argv, i); } } }