}
 }
 
-static void conf_askvalue(struct symbol *sym, const char *def)
+static int conf_askvalue(struct symbol *sym, const char *def)
 {
        enum symbol_type type = sym_get_type(sym);
        tristate val;
                printf("%s\n", def);
                line[0] = '\n';
                line[1] = 0;
-               return;
+               return 0;
        }
 
        switch (input_mode) {
        case set_random:
                if (sym_has_value(sym)) {
                        printf("%s\n", def);
-                       return;
+                       return 0;
                }
                break;
        case ask_new:
        case ask_silent:
                if (sym_has_value(sym)) {
                        printf("%s\n", def);
-                       return;
+                       return 0;
                }
                check_stdin();
        case ask_all:
                fflush(stdout);
                fgets(line, 128, stdin);
-               return;
+               return 1;
        case set_default:
                printf("%s\n", def);
-               return;
+               return 1;
        default:
                break;
        }
        case S_HEX:
        case S_STRING:
                printf("%s\n", def);
-               return;
+               return 1;
        default:
                ;
        }
                break;
        }
        printf("%s", line);
+       return 1;
 }
 
 int conf_string(struct menu *menu)
                def = sym_get_string_value(sym);
                if (sym_get_string_value(sym))
                        printf("[%s] ", def);
-               conf_askvalue(sym, def);
+               if (!conf_askvalue(sym, def))
+                       return 0;
                switch (line[0]) {
                case '\n':
                        break;
                if (menu_has_help(menu))
                        printf("/?");
                printf("] ");
-               conf_askvalue(sym, sym_get_string_value(sym));
+               if (!conf_askvalue(sym, sym_get_string_value(sym)))
+                       return 0;
                strip(line);
 
                switch (line[0]) {