From: Yann E. MORIN Date: Tue, 2 Aug 2016 20:52:12 +0000 (+0200) Subject: Synchronise with v4.7 X-Git-Tag: v4.7.0.0~9 X-Git-Url: https://git.sur5r.net/?p=kconfig-frontends;a=commitdiff_plain;h=54f425073d78a8e5f2a6b0c4f2c8c3e8eab00d80 Synchronise with v4.7 Signed-off-by: "Yann E. MORIN" --- diff --git a/.version b/.version index e50d722..b97b95c 100644 --- a/.version +++ b/.version @@ -1,2 +1,2 @@ -4.6.0 2dcd0af568b0cf583645c8a317dd12e344b1c72a Charred Weasel +4.7.0 523d939ef98fd712632d93a5a2b588e477a7565e Psychotic Stoned Sheep 0 diff --git a/docs/kconfig-language.txt b/docs/kconfig-language.txt index c52856d..db10185 100644 --- a/docs/kconfig-language.txt +++ b/docs/kconfig-language.txt @@ -241,9 +241,8 @@ comment "module support disabled" depends on !MODULES MODVERSIONS directly depends on MODULES, this means it's only visible if -MODULES is different from 'n'. The comment on the other hand is always -visible when MODULES is visible (the (empty) dependency of MODULES is -also part of the comment dependencies). +MODULES is different from 'n'. The comment on the other hand is only +visible when MODULES is set to 'n'. Kconfig syntax @@ -285,12 +284,17 @@ choices: "endchoice" This defines a choice group and accepts any of the above attributes as -options. A choice can only be of type bool or tristate, while a boolean -choice only allows a single config entry to be selected, a tristate -choice also allows any number of config entries to be set to 'm'. This -can be used if multiple drivers for a single hardware exists and only a -single driver can be compiled/loaded into the kernel, but all drivers -can be compiled as modules. +options. A choice can only be of type bool or tristate. If no type is +specified for a choice, it's type will be determined by the type of +the first choice element in the group or remain unknown if none of the +choice elements have a type specified, as well. + +While a boolean choice only allows a single config entry to be +selected, a tristate choice also allows any number of config entries +to be set to 'm'. This can be used if multiple drivers for a single +hardware exists and only a single driver can be compiled/loaded into +the kernel, but all drivers can be compiled as modules. + A choice accepts another option "optional", which allows to set the choice to 'n' and no entry needs to be selected. If no [symbol] is associated with a choice, then you can not have multiple diff --git a/libs/parser/confdata.c b/libs/parser/confdata.c index dd243d2..297b079 100644 --- a/libs/parser/confdata.c +++ b/libs/parser/confdata.c @@ -375,7 +375,9 @@ load: continue; } else { if (line[0] != '\r' && line[0] != '\n') - conf_warning("unexpected data"); + conf_warning("unexpected data: %.*s", + (int)strcspn(line, "\r\n"), line); + continue; } setsym: diff --git a/libs/parser/symbol.c b/libs/parser/symbol.c index 25cf0c2..2432298 100644 --- a/libs/parser/symbol.c +++ b/libs/parser/symbol.c @@ -209,12 +209,26 @@ static void sym_set_all_changed(void) static void sym_calc_visibility(struct symbol *sym) { struct property *prop; + struct symbol *choice_sym = NULL; tristate tri; /* any prompt visible? */ tri = no; + + if (sym_is_choice_value(sym)) + choice_sym = prop_get_symbol(sym_get_choice_prop(sym)); + for_all_prompts(sym, prop) { prop->visible.tri = expr_calc_value(prop->visible.expr); + /* + * Tristate choice_values with visibility 'mod' are + * not visible if the corresponding choice's value is + * 'yes'. + */ + if (choice_sym && sym->type == S_TRISTATE && + prop->visible.tri == mod && choice_sym->curr.tri == yes) + prop->visible.tri = no; + tri = EXPR_OR(tri, prop->visible.tri); } if (tri == mod && (sym->type != S_TRISTATE || modules_val == no)) diff --git a/scripts/ksync.log b/scripts/ksync.log index 6505918..6e02beb 100644 --- a/scripts/ksync.log +++ b/scripts/ksync.log @@ -160,3 +160,7 @@ be596aa Add current selection check. aab24a8 kconfig: return 'false' instead of 'no' in bool function 5b61c7b kconfig: fix qconf segfault by deleting heap objects 6b87b70 unbreak allmodconfig KCONFIG_ALLCONFIG=... +a466391 kconfig: add unexpected data itself to warning +3e2ba95 kconfig-language: fix comment on dependency-generated menu structures. +032a318 kconfig-language: elaborate on the type of a choice +fa64e5f kconfig/symbol.c: handle choice_values that depend on 'm' symbols