|
@@ -111,21 +111,41 @@ struct symbol {
|
|
|
#define SYMBOL_HASHSIZE 257
|
|
|
#define SYMBOL_HASHMASK 0xff
|
|
|
|
|
|
+/* A property represent the config options that can be associated
|
|
|
+ * with a config "symbol".
|
|
|
+ * Sample:
|
|
|
+ * config FOO
|
|
|
+ * default y
|
|
|
+ * prompt "foo prompt"
|
|
|
+ * select BAR
|
|
|
+ * config BAZ
|
|
|
+ * int "BAZ Value"
|
|
|
+ * range 1..255
|
|
|
+ */
|
|
|
enum prop_type {
|
|
|
- P_UNKNOWN, P_PROMPT, P_COMMENT, P_MENU, P_DEFAULT, P_CHOICE,
|
|
|
- P_SELECT, P_RANGE, P_ENV
|
|
|
+ P_UNKNOWN,
|
|
|
+ P_PROMPT, /* prompt "foo prompt" or "BAZ Value" */
|
|
|
+ P_COMMENT, /* text associated with a comment */
|
|
|
+ P_MENU, /* prompt associated with a menuconfig option */
|
|
|
+ P_DEFAULT, /* default y */
|
|
|
+ P_CHOICE, /* choice value */
|
|
|
+ P_SELECT, /* select BAR */
|
|
|
+ P_RANGE, /* range 7..100 (for a symbol) */
|
|
|
+ P_ENV, /* value from environment variable */
|
|
|
};
|
|
|
|
|
|
struct property {
|
|
|
- struct property *next;
|
|
|
- struct symbol *sym;
|
|
|
- enum prop_type type;
|
|
|
- const char *text;
|
|
|
+ struct property *next; /* next property - null if last */
|
|
|
+ struct symbol *sym; /* the symbol for which the property is associated */
|
|
|
+ enum prop_type type; /* type of property */
|
|
|
+ const char *text; /* the prompt value - P_PROMPT, P_MENU, P_COMMENT */
|
|
|
struct expr_value visible;
|
|
|
- struct expr *expr;
|
|
|
- struct menu *menu;
|
|
|
- struct file *file;
|
|
|
- int lineno;
|
|
|
+ struct expr *expr; /* the optional conditional part of the property */
|
|
|
+ struct menu *menu; /* the menu the property are associated with
|
|
|
+ * valid for: P_SELECT, P_RANGE, P_CHOICE,
|
|
|
+ * P_PROMPT, P_DEFAULT, P_MENU, P_COMMENT */
|
|
|
+ struct file *file; /* what file was this property defined */
|
|
|
+ int lineno; /* what lineno was this property defined */
|
|
|
};
|
|
|
|
|
|
#define for_all_properties(sym, st, tok) \
|