X-Git-Url: http://git.tuebingen.mpg.de/?p=adu.git;a=blobdiff_plain;f=select.c;h=4795de453adc095bdd0bf80134c5d4478dc40343;hp=9353c5f8edd18373eafd074f6db989b91b212368;hb=e2fe978a3fa04160d60a4d39659f05798d356fab;hpb=015abc3b736ce8cb784b9e60d8c4cf2427874d2d diff --git a/select.c b/select.c index 9353c5f..4795de4 100644 --- a/select.c +++ b/select.c @@ -77,8 +77,6 @@ static const uint64_t count_unit_divisors[] = { static const char size_unit_abbrevs[] = " BKMGT"; static const char count_unit_abbrevs[] = " kmgt"; -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) { @@ -551,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; @@ -586,25 +584,9 @@ out: return ret; } -int com_select(void) +int run_select_query(struct uid_range *admissible_uids) { int ret; - 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; - } if (select_conf.count_unit_arg != count_unit_arg_h) count_unit_buf[1] = count_unit_abbrevs[select_conf.count_unit_arg]; @@ -619,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(); @@ -627,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); +}