===================================================================
RCS file: /home/gondolin/herbert/src/CVS/debian/kernel-source-2.5/scripts/kconfig/confdata.c,v
retrieving revision 1.1.1.3
@@ -149,7 +149,7 @@
sym = sym_find(line + 7);
if (!sym) {
fprintf(stderr, "%s:%d: trying to assign nonexistent symbol %s\n", name, lineno, line + 7);
- break;
+ continue;
}
switch (sym->type) {
case S_TRISTATE:
@@ -197,29 +197,28 @@
default:
;
}
- if (sym_is_choice_value(sym)) {
- struct symbol *cs = prop_get_symbol(sym_get_choice_prop(sym));
- switch (sym->user.tri) {
- case mod:
- if (cs->user.tri == yes)
- /* warn? */;
- break;
- case yes:
- if (cs->user.tri != no)
- /* warn? */;
- cs->user.val = sym;
- break;
- case no:
- break;
- }
- cs->user.tri = sym->user.tri;
- }
- break;
- case '\n':
break;
default:
continue;
}
+ if (sym_is_choice_value(sym)) {
+ struct symbol *cs = prop_get_symbol(sym_get_choice_prop(sym));
+ switch (sym->user.tri) {
+ case mod:
+ if (cs->user.tri == yes)
+ /* warn? */;
+ break;
+ case yes:
+ if (cs->user.tri != no)
+ /* warn? */;
+ cs->user.val = sym;
+ break;
+ case no:
+ break;
+ }
+ cs->user.tri = E_OR(cs->user.tri, sym->user.tri);
+ cs->flags &= ~SYMBOL_NEW;
+ }
}
fclose(in);
@@ -241,7 +240,6 @@
if (!sym_is_choice(sym))
continue;
prop = sym_get_choice_prop(sym);
- sym->flags &= ~SYMBOL_NEW;
for (e = prop->expr; e; e = e->left.expr)
if (e->right.sym->visible != no)
sym->flags |= e->right.sym->flags & SYMBOL_NEW;