1.1 --- a/kconfig/expr.h Sat Feb 24 11:00:05 2007 +0000
1.2 +++ b/kconfig/expr.h Tue Oct 28 15:07:28 2008 +0000
1.3 @@ -25,14 +25,13 @@
1.4
1.5 #define FILE_BUSY 0x0001
1.6 #define FILE_SCANNED 0x0002
1.7 -#define FILE_PRINTED 0x0004
1.8
1.9 typedef enum tristate {
1.10 no, mod, yes
1.11 } tristate;
1.12
1.13 enum expr_type {
1.14 - E_NONE, E_OR, E_AND, E_NOT, E_EQUAL, E_UNEQUAL, E_CHOICE, E_SYMBOL, E_RANGE
1.15 + E_NONE, E_OR, E_AND, E_NOT, E_EQUAL, E_UNEQUAL, E_LIST, E_SYMBOL, E_RANGE
1.16 };
1.17
1.18 union expr_data {
1.19 @@ -45,9 +44,12 @@
1.20 union expr_data left, right;
1.21 };
1.22
1.23 -#define E_OR(dep1, dep2) (((dep1)>(dep2))?(dep1):(dep2))
1.24 -#define E_AND(dep1, dep2) (((dep1)<(dep2))?(dep1):(dep2))
1.25 -#define E_NOT(dep) (2-(dep))
1.26 +#define EXPR_OR(dep1, dep2) (((dep1)>(dep2))?(dep1):(dep2))
1.27 +#define EXPR_AND(dep1, dep2) (((dep1)<(dep2))?(dep1):(dep2))
1.28 +#define EXPR_NOT(dep) (2-(dep))
1.29 +
1.30 +#define expr_list_for_each_sym(l, e, s) \
1.31 + for (e = (l); e && (s = e->right.sym); e = e->left.expr)
1.32
1.33 struct expr_value {
1.34 struct expr *expr;
1.35 @@ -71,14 +73,12 @@
1.36 struct symbol {
1.37 struct symbol *next;
1.38 char *name;
1.39 - char *help;
1.40 enum symbol_type type;
1.41 struct symbol_value curr;
1.42 struct symbol_value def[4];
1.43 tristate visible;
1.44 int flags;
1.45 struct property *prop;
1.46 - struct expr *dep, *dep2;
1.47 struct expr_value rev_dep;
1.48 };
1.49
1.50 @@ -88,7 +88,6 @@
1.51 #define SYMBOL_CHECK 0x0008
1.52 #define SYMBOL_CHOICE 0x0010
1.53 #define SYMBOL_CHOICEVAL 0x0020
1.54 -#define SYMBOL_PRINTED 0x0040
1.55 #define SYMBOL_VALID 0x0080
1.56 #define SYMBOL_OPTIONAL 0x0100
1.57 #define SYMBOL_WRITE 0x0200
1.58 @@ -107,7 +106,8 @@
1.59 #define SYMBOL_HASHMASK 0xff
1.60
1.61 enum prop_type {
1.62 - P_UNKNOWN, P_PROMPT, P_COMMENT, P_MENU, P_DEFAULT, P_CHOICE, P_SELECT, P_RANGE
1.63 + P_UNKNOWN, P_PROMPT, P_COMMENT, P_MENU, P_DEFAULT, P_CHOICE,
1.64 + P_SELECT, P_RANGE, P_ENV
1.65 };
1.66
1.67 struct property {
1.68 @@ -139,7 +139,7 @@
1.69 struct property *prompt;
1.70 struct expr *dep;
1.71 unsigned int flags;
1.72 - //char *help;
1.73 + char *help;
1.74 struct file *file;
1.75 int lineno;
1.76 void *data;