|
@@ -645,25 +645,6 @@ static const char *set_config_filename(const char *config_filename)
|
|
|
return menu_backtitle;
|
|
|
}
|
|
|
|
|
|
-/* command = 0 is supress, 1 is restore */
|
|
|
-static void supress_stdout(int command)
|
|
|
-{
|
|
|
- static FILE *org_stdout;
|
|
|
- static FILE *org_stderr;
|
|
|
-
|
|
|
- if (command == 0) {
|
|
|
- org_stdout = stdout;
|
|
|
- org_stderr = stderr;
|
|
|
- stdout = fopen("/dev/null", "a");
|
|
|
- stderr = fopen("/dev/null", "a");
|
|
|
- } else {
|
|
|
- fclose(stdout);
|
|
|
- fclose(stderr);
|
|
|
- stdout = org_stdout;
|
|
|
- stderr = org_stderr;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
/* return = 0 means we are successful.
|
|
|
* -1 means go on doing what you were doing
|
|
|
*/
|
|
@@ -688,9 +669,7 @@ static int do_exit(void)
|
|
|
/* if we got here, the user really wants to exit */
|
|
|
switch (res) {
|
|
|
case 0:
|
|
|
- supress_stdout(0);
|
|
|
res = conf_write(filename);
|
|
|
- supress_stdout(1);
|
|
|
if (res)
|
|
|
btn_dialog(
|
|
|
main_window,
|
|
@@ -698,19 +677,6 @@ static int do_exit(void)
|
|
|
"Your configuration changes were NOT saved."),
|
|
|
1,
|
|
|
"<OK>");
|
|
|
- else {
|
|
|
- char buf[1024];
|
|
|
- snprintf(buf, 1024,
|
|
|
- _("Configuration written to %s\n"
|
|
|
- "End of the configuration.\n"
|
|
|
- "Execute 'make' to start the build or try"
|
|
|
- " 'make help'."), filename);
|
|
|
- btn_dialog(
|
|
|
- main_window,
|
|
|
- buf,
|
|
|
- 1,
|
|
|
- "<OK>");
|
|
|
- }
|
|
|
break;
|
|
|
default:
|
|
|
btn_dialog(
|
|
@@ -1246,6 +1212,14 @@ static void conf(struct menu *menu)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+static void conf_message_callback(const char *fmt, va_list ap)
|
|
|
+{
|
|
|
+ char buf[1024];
|
|
|
+
|
|
|
+ vsnprintf(buf, sizeof(buf), fmt, ap);
|
|
|
+ btn_dialog(main_window, buf, 1, "<OK>");
|
|
|
+}
|
|
|
+
|
|
|
static void show_help(struct menu *menu)
|
|
|
{
|
|
|
struct gstr help = str_new();
|
|
@@ -1470,16 +1444,8 @@ static void conf_save(void)
|
|
|
case 0:
|
|
|
if (!dialog_input_result[0])
|
|
|
return;
|
|
|
- supress_stdout(0);
|
|
|
res = conf_write(dialog_input_result);
|
|
|
- supress_stdout(1);
|
|
|
if (!res) {
|
|
|
- char buf[1024];
|
|
|
- sprintf(buf, "%s %s",
|
|
|
- _("configuration file saved to: "),
|
|
|
- dialog_input_result);
|
|
|
- btn_dialog(main_window,
|
|
|
- buf, 1, "<OK>");
|
|
|
set_config_filename(dialog_input_result);
|
|
|
return;
|
|
|
}
|
|
@@ -1572,6 +1538,7 @@ int main(int ac, char **av)
|
|
|
_(menu_no_f_instructions));
|
|
|
}
|
|
|
|
|
|
+ conf_set_message_callback(conf_message_callback);
|
|
|
/* do the work */
|
|
|
while (!global_exit) {
|
|
|
conf(&rootmenu);
|