From cbeec25662029a4362ca484805d60264f9dca8d6 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Wed, 20 Dec 2006 11:42:48 +0000 Subject: [PATCH] settings_ui() now returns a status code. --- src/hci/commands/config_cmd.c | 7 ++++++- src/hci/tui/settings_ui.c | 12 ++++++++---- src/include/gpxe/settings_ui.h | 2 +- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/hci/commands/config_cmd.c b/src/hci/commands/config_cmd.c index fc21c67f..a1559391 100644 --- a/src/hci/commands/config_cmd.c +++ b/src/hci/commands/config_cmd.c @@ -11,6 +11,7 @@ extern struct nvo_block *ugly_nvo_hack; static int config_exec ( int argc, char **argv ) { struct config_context dummy_context; + int rc; if ( argc != 1 ) { printf ( "Usage: %s\n" @@ -24,7 +25,11 @@ static int config_exec ( int argc, char **argv ) { } dummy_context.options = ugly_nvo_hack->options; - settings_ui ( &dummy_context ); + if ( ( rc = settings_ui ( &dummy_context ) ) != 0 ) { + printf ( "Could not save settings: %s\n", + strerror ( rc ) ); + return 1; + } return 0; } diff --git a/src/hci/tui/settings_ui.c b/src/hci/tui/settings_ui.c index 7112c0b8..706fc021 100644 --- a/src/hci/tui/settings_ui.c +++ b/src/hci/tui/settings_ui.c @@ -318,7 +318,7 @@ static void draw_instruction_row ( int editing ) { } } -static void main_loop ( struct config_context *context ) { +static int main_loop ( struct config_context *context ) { struct setting_widget widget; unsigned int current = 0; unsigned int next; @@ -379,7 +379,7 @@ static void main_loop ( struct config_context *context ) { alert ( " Could not save options: %s ", strerror ( rc ) ); } - return; + return rc; default: edit_setting ( &widget, key ); break; @@ -394,7 +394,9 @@ static void main_loop ( struct config_context *context ) { } -void settings_ui ( struct config_context *context ) { +int settings_ui ( struct config_context *context ) { + int rc; + initscr(); start_color(); init_pair ( CPAIR_NORMAL, COLOR_WHITE, COLOR_BLUE ); @@ -404,7 +406,9 @@ void settings_ui ( struct config_context *context ) { color_set ( CPAIR_NORMAL, NULL ); erase(); - main_loop ( context ); + rc = main_loop ( context ); endwin(); + + return rc; } diff --git a/src/include/gpxe/settings_ui.h b/src/include/gpxe/settings_ui.h index 59fc3cbd..01b8f172 100644 --- a/src/include/gpxe/settings_ui.h +++ b/src/include/gpxe/settings_ui.h @@ -9,6 +9,6 @@ struct config_context; -extern void settings_ui ( struct config_context *context ); +extern int settings_ui ( struct config_context *context ); #endif /* _GPXE_SETTINGS_UI_H */