From 6c2efd66d94ce13ac5b70aefd71cf2e66f4acbdf Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Thu, 15 Jul 2004 05:54:13 +0000 Subject: Peter Kjellerstedt at axis.com writes: Hello, the attached patch should bring extra/config in line with the Linux 2.6.7 sources. The following are the commit messages for the respective files from the Linux bk-repository: checklist.c: * fix menuconfig choice item help display confdata.c: * config: choice fix * kconfig: don't rename target dir when saving config expr.c, expr.h: * config: disable debug prints mconf.c: * fix menuconfig choice item help display menu.c: * Kconfig: use select statements symbol.c: * config: choice fix * Avoid bogus warning about recursive dependencies * c99 struct initialiser conversions textbox.c: * janitor: don't init statics to 0 util.c: * fix lxdialog behaviour //Peter --- extra/config/confdata.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'extra/config/confdata.c') diff --git a/extra/config/confdata.c b/extra/config/confdata.c index 4b4d150c7..56aff3c03 100644 --- a/extra/config/confdata.c +++ b/extra/config/confdata.c @@ -225,6 +225,8 @@ int conf_read(const char *name) } fclose(in); + if (modules_sym) + sym_calc_value(modules_sym); for_all_symbols(i, sym) { sym_calc_value(sym); if (sym_has_value(sym) && !sym_is_choice_value(sym)) { @@ -265,8 +267,14 @@ int conf_write(const char *name) dirname[0] = 0; if (name && name[0]) { - char *slash = strrchr(name, '/'); - if (slash) { + struct stat st; + char *slash; + + if (!stat(name, &st) && S_ISDIR(st.st_mode)) { + strcpy(dirname, name); + strcat(dirname, "/"); + basename = conf_def_filename; + } else if ((slash = strrchr(name, '/'))) { int size = slash - name + 1; memcpy(dirname, name, size); dirname[size] = 0; -- cgit v1.2.3