mirror of https://gitee.com/openkylin/linux.git
kconfig: move prompt handling to menu_add_prompt() from menu_add_prop()
menu_add_prompt() is the only function that calls menu_add_prop() with non-NULL prompt. So, the code inside the if-conditional block of menu_add_prop() can be moved to menu_add_prompt(). Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
This commit is contained in:
parent
1be6e79138
commit
024352ff8d
|
@ -132,7 +132,14 @@ static struct property *menu_add_prop(enum prop_type type, char *prompt, struct
|
||||||
prop->expr = expr;
|
prop->expr = expr;
|
||||||
prop->visible.expr = dep;
|
prop->visible.expr = dep;
|
||||||
|
|
||||||
if (prompt) {
|
return prop;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct property *menu_add_prompt(enum prop_type type, char *prompt,
|
||||||
|
struct expr *dep)
|
||||||
|
{
|
||||||
|
struct property *prop = menu_add_prop(type, prompt, NULL, dep);
|
||||||
|
|
||||||
if (isspace(*prompt)) {
|
if (isspace(*prompt)) {
|
||||||
prop_warn(prop, "leading whitespace ignored");
|
prop_warn(prop, "leading whitespace ignored");
|
||||||
while (isspace(*prompt))
|
while (isspace(*prompt))
|
||||||
|
@ -142,7 +149,7 @@ static struct property *menu_add_prop(enum prop_type type, char *prompt, struct
|
||||||
prop_warn(prop, "prompt redefined");
|
prop_warn(prop, "prompt redefined");
|
||||||
|
|
||||||
/* Apply all upper menus' visibilities to actual prompts. */
|
/* Apply all upper menus' visibilities to actual prompts. */
|
||||||
if(type == P_PROMPT) {
|
if (type == P_PROMPT) {
|
||||||
struct menu *menu = current_entry;
|
struct menu *menu = current_entry;
|
||||||
|
|
||||||
while ((menu = menu->parent) != NULL) {
|
while ((menu = menu->parent) != NULL) {
|
||||||
|
@ -151,34 +158,25 @@ static struct property *menu_add_prop(enum prop_type type, char *prompt, struct
|
||||||
if (!menu->visibility)
|
if (!menu->visibility)
|
||||||
continue;
|
continue;
|
||||||
/*
|
/*
|
||||||
* Do not add a reference to the
|
* Do not add a reference to the menu's visibility
|
||||||
* menu's visibility expression but
|
* expression but use a copy of it. Otherwise the
|
||||||
* use a copy of it. Otherwise the
|
* expression reduction functions will modify
|
||||||
* expression reduction functions
|
* expressions that have multiple references which
|
||||||
* will modify expressions that have
|
* can cause unwanted side effects.
|
||||||
* multiple references which can
|
|
||||||
* cause unwanted side effects.
|
|
||||||
*/
|
*/
|
||||||
dup_expr = expr_copy(menu->visibility);
|
dup_expr = expr_copy(menu->visibility);
|
||||||
|
|
||||||
prop->visible.expr
|
prop->visible.expr = expr_alloc_and(prop->visible.expr,
|
||||||
= expr_alloc_and(prop->visible.expr,
|
|
||||||
dup_expr);
|
dup_expr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
current_entry->prompt = prop;
|
current_entry->prompt = prop;
|
||||||
}
|
|
||||||
prop->text = prompt;
|
prop->text = prompt;
|
||||||
|
|
||||||
return prop;
|
return prop;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep)
|
|
||||||
{
|
|
||||||
return menu_add_prop(type, prompt, NULL, dep);
|
|
||||||
}
|
|
||||||
|
|
||||||
void menu_add_visibility(struct expr *expr)
|
void menu_add_visibility(struct expr *expr)
|
||||||
{
|
{
|
||||||
current_entry->visibility = expr_alloc_and(current_entry->visibility,
|
current_entry->visibility = expr_alloc_and(current_entry->visibility,
|
||||||
|
|
Loading…
Reference in New Issue