disable the automatic config reset if 'Advanced configuration options' is selected

SVN-Revision: 6506
This commit is contained in:
Felix Fietkau 2007-03-04 16:02:41 +00:00
parent 07cb246bd7
commit d14f611eb1
5 changed files with 109 additions and 105 deletions

View File

@ -94,14 +94,13 @@ struct symbol {
#define SYMBOL_AUTO 0x1000
#define SYMBOL_CHECKED 0x2000
#define SYMBOL_WARNED 0x8000
#define SYMBOL_RESET 0x10000
#define SYMBOL_MAXLENGTH 256
#define SYMBOL_HASHSIZE 257
#define SYMBOL_HASHMASK 0xff
enum prop_type {
P_UNKNOWN, P_PROMPT, P_COMMENT, P_MENU, P_DEFAULT, P_CHOICE, P_SELECT, P_RANGE
P_UNKNOWN, P_PROMPT, P_COMMENT, P_MENU, P_DEFAULT, P_CHOICE, P_SELECT, P_RANGE, P_RESET
};
struct property {

View File

@ -888,6 +888,7 @@ static void conf_choice(struct menu *menu)
const char *prompt = menu_get_prompt(menu);
struct menu *child;
struct symbol *active;
struct property *prop;
int stat;
active = sym_get_choice_value(menu->sym);
@ -920,9 +921,13 @@ static void conf_choice(struct menu *menu)
case 0:
if (sscanf(input_buf, "%p", &child) != 1)
break;
if ((menu->sym->flags & SYMBOL_RESET) &&
sym_get_tristate_value(child->sym) != yes)
conf_reset();
if (sym_get_tristate_value(child->sym) != yes) {
for_all_properties(menu->sym, prop, P_RESET) {
if (expr_calc_value(prop->visible.expr) != no)
conf_reset();
}
}
sym_set_tristate_value(child->sym, yes);
return;
case 1:

View File

@ -319,7 +319,7 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 3
/* YYLAST -- Last index in YYTABLE. */
#define YYLAST 275
#define YYLAST 271
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 36
@ -328,7 +328,7 @@ union yyalloc
/* YYNRULES -- Number of rules. */
#define YYNRULES 106
/* YYNRULES -- Number of states. */
#define YYNSTATES 178
#define YYNSTATES 179
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
@ -382,12 +382,12 @@ static const unsigned short int yyprhs[] =
53, 55, 57, 59, 61, 63, 65, 69, 72, 76,
79, 83, 86, 87, 90, 93, 96, 99, 102, 106,
111, 116, 121, 127, 130, 133, 135, 139, 140, 143,
146, 149, 152, 155, 160, 164, 167, 170, 175, 176,
179, 183, 185, 189, 190, 193, 196, 199, 203, 206,
208, 212, 213, 216, 219, 222, 226, 230, 233, 236,
239, 240, 243, 246, 249, 254, 258, 262, 263, 266,
268, 270, 273, 276, 279, 281, 284, 285, 288, 290,
294, 298, 302, 305, 309, 313, 315
146, 149, 152, 155, 160, 164, 167, 171, 176, 177,
180, 184, 186, 190, 191, 194, 197, 200, 204, 207,
209, 213, 214, 217, 220, 223, 227, 231, 234, 237,
240, 241, 244, 247, 250, 255, 259, 263, 264, 267,
269, 271, 274, 277, 280, 282, 285, 286, 289, 291,
295, 299, 303, 306, 310, 314, 316
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
@ -409,22 +409,22 @@ static const yysigned_char yyrhs[] =
48, 52, -1, 73, -1, 49, 54, 50, -1, -1,
52, 53, -1, 52, 70, -1, 52, 68, -1, 52,
31, -1, 52, 41, -1, 19, 72, 75, 31, -1,
20, 71, 31, -1, 18, 31, -1, 25, 31, -1,
21, 26, 75, 31, -1, -1, 54, 40, -1, 14,
76, 74, -1, 73, -1, 55, 58, 56, -1, -1,
58, 40, -1, 58, 62, -1, 58, 51, -1, 4,
72, 31, -1, 59, 69, -1, 73, -1, 60, 63,
61, -1, -1, 63, 40, -1, 63, 62, -1, 63,
51, -1, 6, 72, 31, -1, 9, 72, 31, -1,
65, 69, -1, 12, 31, -1, 67, 13, -1, -1,
69, 70, -1, 69, 31, -1, 69, 41, -1, 16,
24, 76, 31, -1, 16, 76, 31, -1, 17, 76,
31, -1, -1, 72, 75, -1, 26, -1, 27, -1,
5, 31, -1, 8, 31, -1, 15, 31, -1, 31,
-1, 74, 31, -1, -1, 14, 76, -1, 77, -1,
77, 34, 77, -1, 77, 28, 77, -1, 30, 76,
29, -1, 35, 76, -1, 76, 32, 76, -1, 76,
33, 76, -1, 26, -1, 27, -1
20, 71, 31, -1, 18, 31, -1, 25, 75, 31,
-1, 21, 26, 75, 31, -1, -1, 54, 40, -1,
14, 76, 74, -1, 73, -1, 55, 58, 56, -1,
-1, 58, 40, -1, 58, 62, -1, 58, 51, -1,
4, 72, 31, -1, 59, 69, -1, 73, -1, 60,
63, 61, -1, -1, 63, 40, -1, 63, 62, -1,
63, 51, -1, 6, 72, 31, -1, 9, 72, 31,
-1, 65, 69, -1, 12, 31, -1, 67, 13, -1,
-1, 69, 70, -1, 69, 31, -1, 69, 41, -1,
16, 24, 76, 31, -1, 16, 76, 31, -1, 17,
76, 31, -1, -1, 72, 75, -1, 26, -1, 27,
-1, 5, 31, -1, 8, 31, -1, 15, 31, -1,
31, -1, 74, 31, -1, -1, 14, 76, -1, 77,
-1, 77, 34, 77, -1, 77, 28, 77, -1, 30,
76, 29, -1, 35, 76, -1, 76, 32, 76, -1,
76, 33, 76, -1, 26, -1, 27, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
@ -503,7 +503,7 @@ static const unsigned char yyr2[] =
1, 1, 1, 1, 1, 1, 3, 2, 3, 2,
3, 2, 0, 2, 2, 2, 2, 2, 3, 4,
4, 4, 5, 2, 2, 1, 3, 0, 2, 2,
2, 2, 2, 4, 3, 2, 2, 4, 0, 2,
2, 2, 2, 4, 3, 2, 3, 4, 0, 2,
3, 1, 3, 0, 2, 2, 2, 3, 2, 1,
3, 0, 2, 2, 2, 3, 3, 2, 2, 2,
0, 2, 2, 2, 4, 3, 3, 0, 2, 1,
@ -526,14 +526,14 @@ static const unsigned char yydefact[] =
0, 0, 0, 94, 7, 67, 75, 76, 28, 30,
0, 102, 0, 0, 60, 0, 0, 9, 10, 0,
0, 0, 0, 0, 87, 0, 0, 0, 0, 37,
36, 33, 0, 35, 34, 0, 0, 87, 0, 0,
36, 33, 0, 35, 34, 0, 0, 87, 0, 96,
51, 52, 48, 50, 49, 59, 46, 45, 64, 66,
62, 65, 61, 82, 83, 81, 72, 74, 70, 73,
69, 95, 101, 103, 104, 100, 99, 27, 78, 0,
0, 0, 96, 0, 96, 96, 96, 0, 0, 79,
55, 96, 0, 96, 56, 0, 85, 86, 0, 0,
38, 88, 0, 0, 96, 26, 0, 54, 0, 84,
97, 39, 40, 41, 0, 53, 57, 42
55, 96, 0, 96, 0, 0, 0, 85, 86, 0,
38, 88, 0, 0, 96, 26, 0, 54, 0, 97,
56, 84, 39, 40, 41, 0, 53, 57, 42
};
/* YYDEFGOTO[NTERM-NUM]. */
@ -542,7 +542,7 @@ static const short int yydefgoto[] =
-1, 1, 2, 26, 27, 100, 28, 29, 30, 31,
65, 101, 32, 33, 116, 34, 67, 112, 68, 35,
120, 36, 69, 37, 38, 128, 39, 71, 40, 41,
42, 102, 103, 70, 104, 143, 144, 43, 74, 159,
42, 102, 103, 70, 104, 143, 144, 43, 74, 155,
60, 61
};
@ -551,33 +551,33 @@ static const short int yydefgoto[] =
#define YYPACT_NINF -134
static const short int yypact[] =
{
-134, 2, 160, -134, -21, -10, -10, -8, -10, -1,
21, -10, 64, 68, 212, 84, -134, -134, -134, -134,
-134, -134, -134, -134, 125, -134, 128, -134, -134, -134,
-134, 2, 160, -134, -16, 53, 53, -14, 53, -8,
-1, 53, 26, 63, 60, 73, -134, -134, -134, -134,
-134, -134, -134, -134, 114, -134, 125, -134, -134, -134,
-134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
-134, -134, -134, -134, -134, -134, -134, 99, 112, -134,
113, -134, -134, 124, 127, 141, -134, -134, 212, 212,
3, -19, -134, 142, 153, 39, 102, 187, 226, 215,
67, 215, 131, -134, 159, -134, -134, -134, -134, -134,
34, -134, 212, 212, 159, 53, 53, -134, -134, 163,
169, 65, 212, -10, -10, 212, 133, 53, 176, -134,
-134, -134, 203, -134, -134, 196, -10, -10, 202, 213,
-134, -134, -134, -134, -134, -134, -134, 124, 127, -134,
128, -134, -134, 141, 142, 146, -134, -134, 60, 60,
3, -18, -134, 153, 159, 39, 102, 187, 226, 215,
67, 215, 131, -134, 163, -134, -134, -134, -134, -134,
34, -134, 60, 60, 163, 103, 103, -134, -134, 169,
186, 218, 60, 53, 53, 60, 201, 103, 227, -134,
-134, -134, 220, -134, -134, 207, 53, 53, 213, 229,
-134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
-134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
-134, -134, -134, 200, -134, -134, -134, -134, -134, 212,
178, 217, 240, 224, 240, 0, 240, 53, 225, -134,
-134, 240, 227, 240, -134, 220, -134, -134, 212, 228,
-134, -134, 229, 230, 240, -134, 231, -134, 232, -134,
54, -134, -134, -134, 233, -134, -134, -134
-134, -134, -134, 214, -134, -134, -134, -134, -134, 60,
178, 183, 229, 224, 229, 0, 229, 103, 228, -134,
-134, 229, 230, 229, 60, 231, 219, -134, -134, 232,
-134, -134, 233, 234, 229, -134, 235, -134, 236, 111,
-134, -134, -134, -134, -134, 237, -134, -134, -134
};
/* YYPGOTO[NTERM-NUM]. */
static const short int yypgoto[] =
{
-134, -134, -134, -134, 28, -46, -134, -134, -134, -134,
235, -134, -134, -134, -134, 118, -134, -134, -134, -134,
-134, -134, -134, -134, -134, -134, 174, -134, -134, -134,
-134, -134, 199, 234, -45, 161, -5, 146, 207, -133,
-134, -134, -134, -134, 23, -46, -134, -134, -134, -134,
239, -134, -134, -134, -134, 118, -134, -134, -134, -134,
-134, -134, -134, -134, -134, -134, 185, -134, -134, -134,
-134, -134, 182, 217, -45, 164, -5, 28, 200, -133,
-54, -78
};
@ -588,66 +588,66 @@ static const short int yypgoto[] =
#define YYTABLE_NINF -78
static const short int yytable[] =
{
47, 48, 3, 50, 80, 81, 53, 135, 136, 85,
44, 161, 162, 163, 158, 86, 45, 46, 166, 147,
168, 111, 114, 49, 124, 125, 124, 125, 133, 134,
51, 174, 82, 83, 73, 82, 83, 140, 141, -29,
47, 48, 3, 50, 80, 81, 53, 135, 136, 159,
85, 161, 162, 163, 154, 44, 86, 49, 166, 147,
168, 111, 114, 51, 124, 125, 124, 125, 133, 134,
52, 175, 82, 83, 73, 82, 83, 140, 141, -29,
89, 145, -29, -29, -29, -29, -29, -29, -29, -29,
-29, 90, 52, -29, -29, 91, 92, -29, 93, 94,
-29, 90, 54, -29, -29, 91, 92, -29, 93, 94,
95, 96, 97, 132, -29, 98, 82, 83, 89, 164,
99, -68, -68, -68, -68, -68, -68, -68, -68, 56,
57, -68, -68, 91, 92, 155, 82, 83, 142, 139,
54, 56, 57, 98, 55, 58, 115, 118, 123, 126,
59, 151, -31, 89, 170, -31, -31, -31, -31, -31,
-31, -31, -31, -31, 90, 62, -31, -31, 91, 92,
-31, 93, 94, 95, 96, 97, 63, -31, 98, 64,
73, -77, 89, 99, -77, -77, -77, -77, -77, -77,
-77, -77, -77, 75, 76, -77, -77, 91, 92, -77,
-77, -77, -77, -77, -77, 77, -77, 98, 78, 146,
99, -68, -68, -68, -68, -68, -68, -68, -68, 45,
46, -68, -68, 91, 92, 156, 56, 57, 142, 55,
58, 115, 118, 98, 126, 59, 117, 122, 123, 130,
169, 151, -31, 89, 62, -31, -31, -31, -31, -31,
-31, -31, -31, -31, 90, 63, -31, -31, 91, 92,
-31, 93, 94, 95, 96, 97, 64, -31, 98, 56,
57, -77, 89, 99, -77, -77, -77, -77, -77, -77,
-77, -77, -77, 82, 83, -77, -77, 91, 92, -77,
-77, -77, -77, -77, -77, 73, -77, 98, 75, 76,
-2, 4, 123, 5, 6, 7, 8, 9, 10, 11,
12, 13, 79, 87, 14, 15, 16, 148, 17, 18,
19, 20, 21, 22, 88, 23, 24, 119, 89, 127,
131, 25, -44, -44, 137, -44, -44, -44, -44, 90,
138, -44, -44, 91, 92, 105, 106, 107, 108, 156,
82, 83, 109, 98, 117, 122, 149, 130, 110, 6,
7, 8, 9, 10, 11, 12, 13, 150, 153, 14,
15, 7, 8, 83, 10, 11, 12, 13, 56, 57,
14, 15, 58, 121, 154, 129, 25, 59, 157, 82,
83, 169, 82, 83, 158, 160, 165, 25, 167, 171,
172, 173, 175, 176, 177, 66, 113, 84, 152, 0,
0, 0, 0, 0, 0, 72
12, 13, 77, 78, 14, 15, 16, 79, 17, 18,
19, 20, 21, 22, 87, 23, 24, 119, 89, 127,
88, 25, -44, -44, 131, -44, -44, -44, -44, 90,
137, -44, -44, 91, 92, 105, 106, 107, 108, 157,
82, 83, 109, 98, 158, 82, 83, 138, 110, 6,
7, 8, 9, 10, 11, 12, 13, 146, 148, 14,
15, 7, 8, 149, 10, 11, 12, 13, 150, 153,
14, 15, 139, 154, 56, 57, 25, 83, 58, 113,
171, 82, 83, 59, 121, 160, 129, 25, 72, 165,
84, 167, 170, 172, 173, 174, 176, 177, 178, 66,
0, 152
};
static const short int yycheck[] =
{
5, 6, 0, 8, 58, 59, 11, 85, 86, 28,
31, 144, 145, 146, 14, 34, 26, 27, 151, 97,
5, 6, 0, 8, 58, 59, 11, 85, 86, 142,
28, 144, 145, 146, 14, 31, 34, 31, 151, 97,
153, 67, 67, 31, 70, 70, 72, 72, 82, 83,
31, 164, 32, 33, 31, 32, 33, 91, 92, 0,
1, 95, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 31, 14, 15, 16, 17, 18, 19, 20,
11, 12, 26, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 29, 25, 26, 32, 33, 1, 147,
31, 4, 5, 6, 7, 8, 9, 10, 11, 26,
27, 14, 15, 16, 17, 139, 32, 33, 93, 24,
26, 26, 27, 26, 26, 30, 68, 69, 31, 71,
35, 106, 0, 1, 158, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, 31, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 1, 25, 26, 1,
31, 0, 1, 31, 3, 4, 5, 6, 7, 8,
9, 10, 11, 31, 31, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 31, 25, 26, 31, 26,
27, 14, 15, 16, 17, 139, 26, 27, 93, 26,
30, 68, 69, 26, 71, 35, 68, 69, 31, 71,
154, 106, 0, 1, 31, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, 1, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 1, 25, 26, 26,
27, 0, 1, 31, 3, 4, 5, 6, 7, 8,
9, 10, 11, 32, 33, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 31, 25, 26, 31, 31,
0, 1, 31, 3, 4, 5, 6, 7, 8, 9,
10, 11, 31, 31, 14, 15, 16, 1, 18, 19,
10, 11, 31, 31, 14, 15, 16, 31, 18, 19,
20, 21, 22, 23, 31, 25, 26, 69, 1, 71,
31, 31, 5, 6, 31, 8, 9, 10, 11, 12,
31, 14, 15, 16, 17, 18, 19, 20, 21, 31,
32, 33, 25, 26, 68, 69, 13, 71, 31, 4,
5, 6, 7, 8, 9, 10, 11, 31, 26, 14,
15, 5, 6, 33, 8, 9, 10, 11, 26, 27,
14, 15, 30, 69, 31, 71, 31, 35, 31, 32,
33, 31, 32, 33, 14, 31, 31, 31, 31, 31,
31, 31, 31, 31, 31, 30, 67, 60, 107, -1,
-1, -1, -1, -1, -1, 41
32, 33, 25, 26, 31, 32, 33, 31, 31, 4,
5, 6, 7, 8, 9, 10, 11, 26, 1, 14,
15, 5, 6, 13, 8, 9, 10, 11, 31, 26,
14, 15, 24, 14, 26, 27, 31, 33, 30, 67,
31, 32, 33, 35, 69, 31, 71, 31, 41, 31,
60, 31, 31, 31, 31, 31, 31, 31, 31, 30,
-1, 107
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@ -669,9 +669,9 @@ static const unsigned char yystos[] =
56, 62, 73, 31, 41, 70, 40, 51, 61, 62,
73, 31, 29, 76, 76, 77, 77, 31, 31, 24,
76, 76, 72, 71, 72, 76, 26, 77, 1, 13,
31, 72, 71, 26, 31, 76, 31, 31, 14, 75,
31, 75, 75, 75, 77, 31, 75, 31, 75, 31,
76, 31, 31, 31, 75, 31, 31, 31
31, 72, 71, 26, 14, 75, 76, 31, 31, 75,
31, 75, 75, 75, 77, 31, 75, 31, 75, 76,
31, 31, 31, 31, 31, 75, 31, 31, 31
};
#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
@ -1490,7 +1490,7 @@ yyreduce:
case 56:
{
current_entry->sym->flags |= SYMBOL_RESET;
menu_add_prop(P_RESET, NULL, NULL, yyvsp[-1].expr);
;}
break;

View File

@ -275,9 +275,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

View File

@ -203,7 +203,7 @@ sub gen_target_config() {
choice
prompt "Target System"
default LINUX_2_4_BRCM
reset
reset if !DEVEL
EOF