settings_ui() now returns a status code.
authorMichael Brown <mcb30@etherboot.org>
Wed, 20 Dec 2006 11:42:48 +0000 (11:42 +0000)
committerMichael Brown <mcb30@etherboot.org>
Wed, 20 Dec 2006 11:42:48 +0000 (11:42 +0000)
src/hci/commands/config_cmd.c
src/hci/tui/settings_ui.c
src/include/gpxe/settings_ui.h

index fc21c67..a155939 100644 (file)
@@ -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;
 }
index 7112c0b..706fc02 100644 (file)
@@ -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;
 }
index 59fc3cb..01b8f17 100644 (file)
@@ -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 */