projects
/
carl9170fw.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
kconfig: make 'imply' obey the direct dependency
[carl9170fw.git]
/
config
/
symbol.c
diff --git
a/config/symbol.c
b/config/symbol.c
index b101ef3c377a6b98d76e8d93a3c5be1c45d8fb7f..3dc81397d0038495a4a9a11925990a42fedf46ce 100644
(file)
--- a/
config/symbol.c
+++ b/
config/symbol.c
@@
-221,7
+221,7
@@
static void sym_calc_visibility(struct symbol *sym)
sym_set_changed(sym);
}
tri = no;
sym_set_changed(sym);
}
tri = no;
- if (sym->implied.expr
&& sym->dir_dep.tri != no
)
+ if (sym->implied.expr)
tri = expr_calc_value(sym->implied.expr);
if (tri == mod && sym_get_type(sym) == S_BOOLEAN)
tri = yes;
tri = expr_calc_value(sym->implied.expr);
if (tri == mod && sym_get_type(sym) == S_BOOLEAN)
tri = yes;
@@
-394,6
+394,8
@@
void sym_calc_value(struct symbol *sym)
if (sym->implied.tri != no) {
sym->flags |= SYMBOL_WRITE;
newval.tri = EXPR_OR(newval.tri, sym->implied.tri);
if (sym->implied.tri != no) {
sym->flags |= SYMBOL_WRITE;
newval.tri = EXPR_OR(newval.tri, sym->implied.tri);
+ newval.tri = EXPR_AND(newval.tri,
+ sym->dir_dep.tri);
}
}
calc_newval:
}
}
calc_newval: