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)
{
return 1;
}
-static int read_uid_file(void)
+static int read_uid_file(struct uid_range *admissible_uids)
{
size_t size;
uint32_t n;
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];
if (ret < 0)
return ret;
check_signals();
- ret = read_uid_file();
+ ret = read_uid_file(admissible_uids);
if (ret < 0)
return ret;
check_signals();
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);
+}