diff options
Diffstat (limited to 'scripts/kconfig/mconf.c')
| -rw-r--r-- | scripts/kconfig/mconf.c | 104 | 
1 files changed, 42 insertions, 62 deletions
diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c index c0969097447d..d6a61ca1a984 100644 --- a/scripts/kconfig/mconf.c +++ b/scripts/kconfig/mconf.c @@ -525,19 +525,12 @@ static void build_conf(struct menu *menu)  		val = sym_get_tristate_value(sym);  		if (sym_is_changeable(sym)) { -			switch (type) { -			case S_BOOLEAN: -				item_make("[%c]", val == no ? ' ' : '*'); -				break; -			case S_TRISTATE: -				switch (val) { -				case yes: ch = '*'; break; -				case mod: ch = 'M'; break; -				default:  ch = ' '; break; -				} -				item_make("<%c>", ch); -				break; +			switch (val) { +			case yes: ch = '*'; break; +			case mod: ch = 'M'; break; +			default:  ch = ' '; break;  			} +			item_make("<%c>", ch);  			item_set_tag('t');  			item_set_data(menu);  		} else { @@ -548,15 +541,8 @@ static void build_conf(struct menu *menu)  		item_add_str("%*c%s", indent + 1, ' ', menu_get_prompt(menu));  		if (val == yes) { -			if (def_menu) { -				item_add_str(" (%s)", menu_get_prompt(def_menu)); -				item_add_str("  --->"); -				if (def_menu->list) { -					indent += 2; -					build_conf(def_menu); -					indent -= 2; -				} -			} +			if (def_menu) +				item_add_str(" (%s)  --->", menu_get_prompt(def_menu));  			return;  		}  	} else { @@ -568,49 +554,43 @@ static void build_conf(struct menu *menu)  		}  		child_count++;  		val = sym_get_tristate_value(sym); -		if (sym_is_choice_value(sym) && val == yes) { -			item_make("   "); -			item_set_tag(':'); +		switch (type) { +		case S_BOOLEAN: +			if (sym_is_changeable(sym)) +				item_make("[%c]", val == no ? ' ' : '*'); +			else +				item_make("-%c-", val == no ? ' ' : '*'); +			item_set_tag('t');  			item_set_data(menu); -		} else { -			switch (type) { -			case S_BOOLEAN: -				if (sym_is_changeable(sym)) -					item_make("[%c]", val == no ? ' ' : '*'); -				else -					item_make("-%c-", val == no ? ' ' : '*'); -				item_set_tag('t'); -				item_set_data(menu); -				break; -			case S_TRISTATE: -				switch (val) { -				case yes: ch = '*'; break; -				case mod: ch = 'M'; break; -				default:  ch = ' '; break; -				} -				if (sym_is_changeable(sym)) { -					if (sym->rev_dep.tri == mod) -						item_make("{%c}", ch); -					else -						item_make("<%c>", ch); -				} else -					item_make("-%c-", ch); -				item_set_tag('t'); -				item_set_data(menu); -				break; -			default: -				tmp = 2 + strlen(sym_get_string_value(sym)); /* () = 2 */ -				item_make("(%s)", sym_get_string_value(sym)); -				tmp = indent - tmp + 4; -				if (tmp < 0) -					tmp = 0; -				item_add_str("%*c%s%s", tmp, ' ', menu_get_prompt(menu), -					     (sym_has_value(sym) || !sym_is_changeable(sym)) ? -					     "" : " (NEW)"); -				item_set_tag('s'); -				item_set_data(menu); -				goto conf_childs; +			break; +		case S_TRISTATE: +			switch (val) { +			case yes: ch = '*'; break; +			case mod: ch = 'M'; break; +			default:  ch = ' '; break;  			} +			if (sym_is_changeable(sym)) { +				if (sym->rev_dep.tri == mod) +					item_make("{%c}", ch); +				else +					item_make("<%c>", ch); +			} else +				item_make("-%c-", ch); +			item_set_tag('t'); +			item_set_data(menu); +			break; +		default: +			tmp = 2 + strlen(sym_get_string_value(sym)); /* () = 2 */ +			item_make("(%s)", sym_get_string_value(sym)); +			tmp = indent - tmp + 4; +			if (tmp < 0) +				tmp = 0; +			item_add_str("%*c%s%s", tmp, ' ', menu_get_prompt(menu), +				     (sym_has_value(sym) || !sym_is_changeable(sym)) ? +				     "" : " (NEW)"); +			item_set_tag('s'); +			item_set_data(menu); +			goto conf_childs;  		}  		item_add_str("%*c%s%s", indent + 1, ' ', menu_get_prompt(menu),  			  (sym_has_value(sym) || !sym_is_changeable(sym)) ?  |