kconfig: make parent directories for the saved .config as needed

With menuconfig / nconfig, users can input any file path from the
"Save" menu, but it fails if the parent directory does not exist.

Why not create the parent directory automatically. I think this is
a user-friendly behavior.

I changed the error messages in menuconfig / nconfig.

"Nonexistent directory" is no longer the most likely reason of the
failure. Perhaps, the user specified the existing directory, or
attempted to write to the location without write permission.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
This commit is contained in:
Masahiro Yamada 2019-05-11 01:56:01 +09:00
parent 67424f61f8
commit 580c5b3e1b
3 changed files with 5 additions and 3 deletions

View file

@ -881,6 +881,9 @@ int conf_write(const char *name)
return -1;
}
if (make_parent_dir(name))
return -1;
env = getenv("KCONFIG_OVERWRITECONFIG");
if (env && *env) {
*tmpname = 0;

View file

@ -936,7 +936,7 @@ static void conf_save(void)
set_config_filename(dialog_input_result);
return;
}
show_textbox(NULL, "Can't create file! Probably a nonexistent directory.", 5, 60);
show_textbox(NULL, "Can't create file!", 5, 60);
break;
case 1:
show_helptext("Save Alternate Configuration", save_config_help);

View file

@ -1438,8 +1438,7 @@ static void conf_save(void)
set_config_filename(dialog_input_result);
return;
}
btn_dialog(main_window, "Can't create file! "
"Probably a nonexistent directory.",
btn_dialog(main_window, "Can't create file!",
1, "<OK>");
break;
case 1: