X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/cbc765de67bc4e947a61323fbcf9b0e01f66c606..2dd1e22df1f1d7ddde3ee4e6efd847fc403c9da3:/scripts/config/zconf.y?ds=sidebyside

diff --git a/scripts/config/zconf.y b/scripts/config/zconf.y
index ce13f0269..9689a3ed8 100644
--- a/scripts/config/zconf.y
+++ b/scripts/config/zconf.y
@@ -69,6 +69,7 @@ static struct menu *current_menu, *current_entry;
 %token <id>T_PROMPT
 %token <id>T_TYPE
 %token <id>T_DEFAULT
+%token <id>T_DESELECT
 %token <id>T_SELECT
 %token <id>T_RANGE
 %token <id>T_ON
@@ -119,7 +120,7 @@ stmt_list:
 ;
 
 option_name:
-	T_DEPENDS | T_PROMPT | T_TYPE | T_SELECT | T_OPTIONAL | T_RANGE | T_DEFAULT | T_RESET
+	T_DEPENDS | T_PROMPT | T_TYPE | T_DESELECT | T_SELECT | T_OPTIONAL | T_RANGE | T_DEFAULT | T_RESET
 ;
 
 common_stmt:
@@ -204,6 +205,12 @@ config_option: T_DEFAULT expr if_expr T_EOL
 		$1->stype);
 };
 
+config_option: T_DESELECT T_WORD if_expr T_EOL
+{
+	menu_add_symbol(P_DESELECT, sym_lookup($2, 0), $3);
+	printd(DEBUG_PARSE, "%s:%d:deselect\n", zconf_curname(), zconf_lineno());
+};
+
 config_option: T_SELECT T_WORD if_expr T_EOL
 {
 	menu_add_symbol(P_SELECT, sym_lookup($2, 0), $3);
@@ -275,9 +282,9 @@ choice_option: T_OPTIONAL T_EOL
 	printd(DEBUG_PARSE, "%s:%d:optional\n", zconf_curname(), zconf_lineno());
 };
 
-choice_option: T_RESET T_EOL
+choice_option: T_RESET if_expr T_EOL
 {
-	current_entry->sym->flags |= SYMBOL_RESET;
+	menu_add_prop(P_RESET, NULL, NULL, $2);
 };
 
 choice_option: T_DEFAULT T_WORD if_expr T_EOL