X-Git-Url: http://git.tuebingen.mpg.de/?p=adu.git;a=blobdiff_plain;f=select.c;h=4795de453adc095bdd0bf80134c5d4478dc40343;hp=226c16422061eee09667be8177ed0f869a2586b6;hb=e2fe978a3fa04160d60a4d39659f05798d356fab;hpb=f1d5eaac818cdf932498c402671bef135bff3812 diff --git a/select.c b/select.c index 226c164..4795de4 100644 --- a/select.c +++ b/select.c @@ -77,9 +77,6 @@ static const uint64_t count_unit_divisors[] = { static const char size_unit_abbrevs[] = " BKMGT"; static const char count_unit_abbrevs[] = " kmgt"; -struct select_args_info select_conf; -static struct uid_range *admissible_uids; - static enum enum_size_unit format_size_value(enum enum_size_unit unit, uint64_t value, int print_unit, char *result) { @@ -552,7 +549,7 @@ static int print_statistics(void) return 1; } -static int read_uid_file(void) +static int read_uid_file(struct uid_range *admissible_uids) { size_t size; uint32_t n; @@ -587,25 +584,9 @@ out: return ret; } -int com_select(void) +int run_select_query(struct uid_range *admissible_uids) { int ret; - struct select_cmdline_parser_params params = { - .override = 1, - .initialize = 1, - .check_required = 1, - .check_ambiguity = 1, - .print_errors = 1 - }; - - if (conf.select_options_given) { - if (select_cmdline_parser_string_ext(conf.select_options_arg, - &select_conf, "select", ¶ms)) - return -E_SYNTAX; - ret = parse_uid_arg(select_conf.uid_arg, &admissible_uids); - if (ret < 0) - return ret; - } if (select_conf.count_unit_arg != count_unit_arg_h) count_unit_buf[1] = count_unit_abbrevs[select_conf.count_unit_arg]; @@ -620,7 +601,7 @@ int com_select(void) if (ret < 0) return ret; check_signals(); - ret = read_uid_file(); + ret = read_uid_file(admissible_uids); if (ret < 0) return ret; check_signals(); @@ -628,3 +609,27 @@ int com_select(void) close_all_tables(); return ret; } + +int com_select(void) +{ + int ret; + struct uid_range *admissible_uids = NULL; + + if (conf.select_options_given) { + struct select_cmdline_parser_params params = { + .override = 1, + .initialize = 1, + .check_required = 1, + .check_ambiguity = 1, + .print_errors = 1 + }; + + if (select_cmdline_parser_string_ext(conf.select_options_arg, + &select_conf, "select", ¶ms)) + return -E_SYNTAX; + ret = parse_uid_arg(select_conf.uid_arg, &admissible_uids); + if (ret < 0) + return ret; + } + return run_select_query(admissible_uids); +}