Li Zefan 3fb9acb329 kconfig: fix to tag NEW symbols correctly
Those configs are not new:

  $ cat .config
  ...
  CONFIG_NAMESPACES=y
  ...
  CONFIG_BLOCK=y
  ...

But are tagged as NEW:

  $ yes "" | make config > myconf
  $ cat myconf | grep '(NEW)'
  Namespaces support (NAMESPACES) [Y/?] (NEW) y
  ...
  Enable the block layer (BLOCK) [Y/?] (NEW) y
  ...

You can also notice this bug when using gconfig/xconfig.

It's because the SYMBOL_DEF_USER bit of an invisible symbol is cleared
when the config file is read:

int conf_read(const char *name)
{
	...
	for_all_symbols(i, sym) {
		if (sym_has_value(sym) && !sym_is_choice_value(sym)) {
			/* Reset values of generates values, so they'll appear
			 * as new, if they should become visible, but that
			 * doesn't quite work if the Kconfig and the saved
			 * configuration disagree.
			 */
			if (sym->visible == no && !conf_unsaved)
				sym->flags &= ~SYMBOL_DEF_USER;
	...
}

But a menu item which represents an invisible symbol is still
visible, if it's sub-menu is visible, so its SYMBOL_DEF_USER
bit should be set to indicate it's not NEW.

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by: Michal Marek <mmarek@suse.cz>
2010-06-02 15:10:32 +02:00
..
2010-03-07 13:33:00 +01:00
2009-06-27 00:17:48 +02:00
2007-12-17 19:28:17 -08:00
2010-03-07 21:19:09 +01:00
2010-03-07 21:22:56 +01:00
2008-07-25 22:12:41 +02:00
2009-06-09 22:37:54 +02:00
2010-03-23 12:26:38 +01:00
2009-09-15 17:04:38 -07:00
2008-04-25 20:18:48 +02:00
2008-04-25 20:18:48 +02:00
2009-09-18 21:22:08 +02:00
2010-02-05 22:33:43 +01:00
2010-03-07 21:38:32 +01:00
2009-06-09 22:37:54 +02:00