Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[settings] Eliminate call to storef_named_setting() in choose_exec()
Signed-off-by: Michael Brown <mcb30@ipxe.org>
  • Loading branch information
mcb30 committed Jul 22, 2013
1 parent 1625a8c commit 7010b10
Showing 1 changed file with 12 additions and 5 deletions.
17 changes: 12 additions & 5 deletions src/hci/commands/menu_cmd.c
Expand Up @@ -228,17 +228,19 @@ static struct command_descriptor choose_cmd =
*/
static int choose_exec ( int argc, char **argv ) {
struct choose_options opts;
struct named_setting setting;
struct menu *menu;
struct menu_item *item;
const char *setting;
int rc;

/* Parse options */
if ( ( rc = parse_options ( argc, argv, &choose_cmd, &opts ) ) != 0 )
goto err_parse_options;

/* Parse setting name */
setting = argv[optind];
if ( ( rc = parse_autovivified_setting ( argv[optind],
&setting ) ) != 0 )
goto err_parse_setting;

/* Identify menu */
if ( ( rc = parse_menu ( opts.menu, &menu ) ) != 0 )
Expand All @@ -248,11 +250,15 @@ static int choose_exec ( int argc, char **argv ) {
if ( ( rc = show_menu ( menu, opts.timeout, opts.select, &item ) ) != 0)
goto err_show_menu;

/* Apply default type if necessary */
if ( ! setting.setting.type )
setting.setting.type = &setting_type_string;

/* Store setting */
if ( ( rc = storef_named_setting ( setting, &setting_type_string,
item->label ) ) != 0 ) {
if ( ( rc = storef_setting ( setting.settings, &setting.setting,
item->label ) ) != 0 ) {
printf ( "Could not store \"%s\": %s\n",
setting, strerror ( rc ) );
setting.setting.name, strerror ( rc ) );
goto err_store;
}

Expand All @@ -265,6 +271,7 @@ static int choose_exec ( int argc, char **argv ) {
if ( ! opts.keep )
destroy_menu ( menu );
err_parse_menu:
err_parse_setting:
err_parse_options:
return rc;
}
Expand Down

0 comments on commit 7010b10

Please sign in to comment.