- ret = parse_format_string(select_conf.user_summary_format_arg,
- user_summary_atoms, &sfi->user_summary_fi);
- if (ret < 0)
- return ret;
- ret = parse_format_string(select_conf.global_summary_format_arg,
- global_summary_atoms, &sfi->global_summary_fi);
- if (ret < 0)
- goto global_summary_err;
- ret = parse_format_string(select_conf.global_list_format_arg,
- global_list_atoms, &sfi->global_list_fi);
- if (ret < 0)
- goto global_list_err;
- ret = parse_format_string(select_conf.user_list_format_arg,
- user_list_atoms, &sfi->user_list_fi);
- if (ret < 0)
- goto user_list_err;
- return 1;
-user_list_err:
- free_format_info(sfi->global_list_fi);
-global_list_err:
- free_format_info(sfi->global_summary_fi);
-global_summary_err:
- free_format_info(sfi->user_summary_fi);
- return ret;
+
+ if (!fmt)
+ INFO_LOG("using default format string\n");
+ switch (select_conf.select_mode_arg) {
+ case select_mode_arg_global_list:
+ if (!fmt)
+ fmt = GLOBAL_LIST_DFLT_FMT;
+ atoms = global_list_atoms;
+ break;
+ case select_mode_arg_global_summary:
+ if (!fmt)
+ fmt = GLOBAL_SUMMARY_DFLT_FMT;
+ atoms = global_summary_atoms;
+ break;
+ case select_mode_arg_user_list:
+ if (!fmt)
+ fmt = USER_LIST_DFLT_FMT;
+ atoms = user_list_atoms;
+ break;
+ case select_mode_arg_user_summary:
+ if (!fmt)
+ fmt = USER_SUMMARY_DFLT_FMT;
+ atoms = user_summary_atoms;
+ break;
+ default:
+ ERROR_LOG("bad select mode\n");
+ return -ERRNO_TO_ERROR(-EINVAL);
+ };
+ INFO_LOG("format string: %s\n", fmt);
+ return parse_format_string(fmt, atoms, fi);