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,51 +132,49 @@ static struct property *menu_add_prop(enum prop_type type, char *prompt, struct | ||||
| 	prop->expr = expr; | ||||
| 	prop->visible.expr = dep; | ||||
| 
 | ||||
| 	if (prompt) { | ||||
| 		if (isspace(*prompt)) { | ||||
| 			prop_warn(prop, "leading whitespace ignored"); | ||||
| 			while (isspace(*prompt)) | ||||
| 				prompt++; | ||||
| 		} | ||||
| 		if (current_entry->prompt) | ||||
| 			prop_warn(prop, "prompt redefined"); | ||||
| 
 | ||||
| 		/* Apply all upper menus' visibilities to actual prompts. */ | ||||
| 		if(type == P_PROMPT) { | ||||
| 			struct menu *menu = current_entry; | ||||
| 
 | ||||
| 			while ((menu = menu->parent) != NULL) { | ||||
| 				struct expr *dup_expr; | ||||
| 
 | ||||
| 				if (!menu->visibility) | ||||
| 					continue; | ||||
| 				/*
 | ||||
| 				 * Do not add a reference to the | ||||
| 				 * menu's visibility expression but | ||||
| 				 * use a copy of it.  Otherwise the | ||||
| 				 * expression reduction functions | ||||
| 				 * will modify expressions that have | ||||
| 				 * multiple references which can | ||||
| 				 * cause unwanted side effects. | ||||
| 				 */ | ||||
| 				dup_expr = expr_copy(menu->visibility); | ||||
| 
 | ||||
| 				prop->visible.expr | ||||
| 					= expr_alloc_and(prop->visible.expr, | ||||
| 							 dup_expr); | ||||
| 			} | ||||
| 		} | ||||
| 
 | ||||
| 		current_entry->prompt = prop; | ||||
| 	} | ||||
| 	prop->text = prompt; | ||||
| 
 | ||||
| 	return prop; | ||||
| } | ||||
| 
 | ||||
| struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep) | ||||
| struct property *menu_add_prompt(enum prop_type type, char *prompt, | ||||
| 				 struct expr *dep) | ||||
| { | ||||
| 	return menu_add_prop(type, prompt, NULL, dep); | ||||
| 	struct property *prop = menu_add_prop(type, prompt, NULL, dep); | ||||
| 
 | ||||
| 	if (isspace(*prompt)) { | ||||
| 		prop_warn(prop, "leading whitespace ignored"); | ||||
| 		while (isspace(*prompt)) | ||||
| 			prompt++; | ||||
| 	} | ||||
| 	if (current_entry->prompt) | ||||
| 		prop_warn(prop, "prompt redefined"); | ||||
| 
 | ||||
| 	/* Apply all upper menus' visibilities to actual prompts. */ | ||||
| 	if (type == P_PROMPT) { | ||||
| 		struct menu *menu = current_entry; | ||||
| 
 | ||||
| 		while ((menu = menu->parent) != NULL) { | ||||
| 			struct expr *dup_expr; | ||||
| 
 | ||||
| 			if (!menu->visibility) | ||||
| 				continue; | ||||
| 			/*
 | ||||
| 			 * Do not add a reference to the menu's visibility | ||||
| 			 * expression but use a copy of it. Otherwise the | ||||
| 			 * expression reduction functions will modify | ||||
| 			 * expressions that have multiple references which | ||||
| 			 * can cause unwanted side effects. | ||||
| 			 */ | ||||
| 			dup_expr = expr_copy(menu->visibility); | ||||
| 
 | ||||
| 			prop->visible.expr = expr_alloc_and(prop->visible.expr, | ||||
| 							    dup_expr); | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	current_entry->prompt = prop; | ||||
| 	prop->text = prompt; | ||||
| 
 | ||||
| 	return prop; | ||||
| } | ||||
| 
 | ||||
| void menu_add_visibility(struct expr *expr) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user