kconfig: make parent directories for the saved .config as needed
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Fri, 10 May 2019 16:56:01 +0000 (01:56 +0900)
committerChristian Lamparter <chunkeey@gmail.com>
Fri, 27 Sep 2019 20:31:09 +0000 (22:31 +0200)
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>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
config/confdata.c

index da208c47fcb844e3101382fdf38dcc9f773d24b8..52f9282e63df28c20db394e9cbc6a1ebcdd11deb 100644 (file)
@@ -927,6 +927,9 @@ int conf_write(const char *name)
                return -1;
        }
 
                return -1;
        }
 
+       if (make_parent_dir(name))
+               return -1;
+
        env = getenv("KCONFIG_OVERWRITECONFIG");
        if (env && *env) {
                *tmpname = 0;
        env = getenv("KCONFIG_OVERWRITECONFIG");
        if (env && *env) {
                *tmpname = 0;