Re: PROBLEM: "Make nenuconfig" does not save parameters.

From: Cyrill Gorcunov
Date: Sun Mar 11 2007 - 06:11:07 EST


[Sam Ravnborg - Sat, Mar 10, 2007 at 11:45:34PM +0100]
| On Sat, Mar 10, 2007 at 10:34:41PM +0100, Jan Engelhardt wrote:
| >
| > On Mar 10 2007 22:27, Sam Ravnborg wrote:
| > >On Sat, Mar 10, 2007 at 07:23:41PM +0100, Jan Engelhardt wrote:
| > >>
| > >> Whether the 'working config file path' should change when you do
| > >> 'Save as Alternate' or not, is a menuconfig axiom. Ask Sam Ravnborg
| > >> if you want it changed :-)
| > >
| > >Current behaviour is not logical but on the other hand I do not
| > >see a big need to make it so.
| > >It seems that people very seldom uses "save alternate" anyway.
| > >
| > >But patches are welcome.
| >
| > ^_^ The patch has already been posted, has not it?
| No.
| Either we keep current behaviour or we change to the "normal"
| behaviour with a "Save as..." as know from all other programs.
|
| Sam
|

Hi Sam,

here is a patch for menuconfig that shows current configuration
file. So I think menuconfig does its work well but the only
thing we need is to show location of an _active_ configuration.

Any comments are welcome (and you may swear at me too :)

Cyrill

diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c
index 3f9a132..cde6792 100644
--- a/scripts/kconfig/mconf.c
+++ b/scripts/kconfig/mconf.c
@@ -602,6 +602,12 @@ static void conf(struct menu *menu)
item_set_tag('L');
item_make(_(" Save an Alternate Configuration File"));
item_set_tag('S');
+ item_make("--- ");
+ item_set_tag(':');
+ item_make(_(" Current Configuration File: "));
+ item_set_tag(':');
+ item_add_str("%s", filename);
+
}
dialog_clear();
res = dialog_menu(prompt ? prompt : _("Main Menu"),
@@ -816,8 +822,11 @@ static void conf_load(void)
case 0:
if (!dialog_input_result[0])
return;
- if (!conf_read(dialog_input_result))
+ if (!conf_read(dialog_input_result)) {
+ memset(filename, 0x0, PATH_MAX+1);
+ strncpy(filename, dialog_input_result, PATH_MAX);
return;
+ }
show_textbox(NULL, _("File does not exist!"), 5, 38);
break;
case 1:
@@ -840,8 +849,11 @@ static void conf_save(void)
case 0:
if (!dialog_input_result[0])
return;
- if (!conf_write(dialog_input_result))
+ if (!conf_write(dialog_input_result)) {
+ memset(filename, 0x0, PATH_MAX+1);
+ strncpy(filename, dialog_input_result, PATH_MAX);
return;
+ }
show_textbox(NULL, _("Can't create file! Probably a nonexistent directory."), 5, 60);
break;
case 1:
@@ -903,7 +915,7 @@ int main(int ac, char **av)

switch (res) {
case 0:
- if (conf_write(NULL)) {
+ if (conf_write(filename)) {
fprintf(stderr, _("\n\n"
"Error during writing of the kernel configuration.\n"
"Your kernel configuration changes were NOT saved."