kconfig: improve config load/save output

During loading special case the first common case (.config), be silent about
it and otherwise mark it as a change that requires saving.  Instead output
that the file has been changed.  IOW if conf does nothing (special), it's
silent.

Signed-off-by: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
index 1b5df58..a9e3b6a 100644
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -98,20 +98,28 @@
 		in = zconf_fopen(name);
 	} else {
 		const char **names = conf_confnames;
+		name = *names++;
+		if (!name)
+			return 1;
+		in = zconf_fopen(name);
+		if (in)
+			goto load;
+		sym_change_count++;
 		while ((name = *names++)) {
 			name = conf_expand_value(name);
 			in = zconf_fopen(name);
 			if (in) {
 				printf(_("#\n"
-				         "# using defaults found in %s\n"
-				         "#\n"), name);
-				break;
+					 "# using defaults found in %s\n"
+					 "#\n"), name);
+				goto load;
 			}
 		}
 	}
 	if (!in)
 		return 1;
 
+load:
 	conf_filename = name;
 	conf_lineno = 0;
 	conf_warnings = 0;
@@ -275,6 +283,8 @@
 	struct expr *e;
 	int i;
 
+	sym_change_count = 0;
+
 	if (conf_read_simple(name))
 		return 1;
 
@@ -325,7 +335,7 @@
 				sym->flags |= e->right.sym->flags & SYMBOL_NEW;
 	}
 
-	sym_change_count = conf_warnings || conf_unsaved;
+	sym_change_count += conf_warnings || conf_unsaved;
 
 	return 0;
 }
@@ -524,6 +534,10 @@
 	if (rename(newname, tmpname))
 		return 1;
 
+	printf(_("#\n"
+		 "# configuration written to %s\n"
+		 "#\n"), tmpname);
+
 	sym_change_count = 0;
 
 	return 0;