Commit 42a0940d authored by Michal Marek's avatar Michal Marek

Merge branch 'yem-kconfig-rc-fixes' of...

Merge branch 'yem-kconfig-rc-fixes' of git://gitorious.org/linux-kconfig/linux-kconfig into kbuild/rc-fixes
parents ad061568 e983b7b1
...@@ -105,7 +105,7 @@ while [ "$1" != "" ] ; do ...@@ -105,7 +105,7 @@ while [ "$1" != "" ] ; do
;; ;;
--refresh) --refresh)
;; ;;
--*-after) --*-after|-E|-D|-M)
checkarg "$1" checkarg "$1"
A=$ARG A=$ARG
checkarg "$2" checkarg "$2"
......
...@@ -303,10 +303,11 @@ int dialog_menu(const char *title, const char *prompt, ...@@ -303,10 +303,11 @@ int dialog_menu(const char *title, const char *prompt,
} }
} }
if (i < max_choice || if (item_count() != 0 &&
key == KEY_UP || key == KEY_DOWN || (i < max_choice ||
key == '-' || key == '+' || key == KEY_UP || key == KEY_DOWN ||
key == KEY_PPAGE || key == KEY_NPAGE) { key == '-' || key == '+' ||
key == KEY_PPAGE || key == KEY_NPAGE)) {
/* Remove highligt of current item */ /* Remove highligt of current item */
print_item(scroll + choice, choice, FALSE); print_item(scroll + choice, choice, FALSE);
......
...@@ -670,11 +670,12 @@ static void conf(struct menu *menu, struct menu *active_menu) ...@@ -670,11 +670,12 @@ static void conf(struct menu *menu, struct menu *active_menu)
active_menu, &s_scroll); active_menu, &s_scroll);
if (res == 1 || res == KEY_ESC || res == -ERRDISPLAYTOOSMALL) if (res == 1 || res == KEY_ESC || res == -ERRDISPLAYTOOSMALL)
break; break;
if (!item_activate_selected()) if (item_count() != 0) {
continue; if (!item_activate_selected())
if (!item_tag()) continue;
continue; if (!item_tag())
continue;
}
submenu = item_data(); submenu = item_data();
active_menu = item_data(); active_menu = item_data();
if (submenu) if (submenu)
......
...@@ -146,11 +146,24 @@ struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *e ...@@ -146,11 +146,24 @@ struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *e
struct menu *menu = current_entry; struct menu *menu = current_entry;
while ((menu = menu->parent) != NULL) { while ((menu = menu->parent) != NULL) {
struct expr *dup_expr;
if (!menu->visibility) if (!menu->visibility)
continue; continue;
/*
* Do not add a reference to the
* menu's visibility expression but
* use a copy of it. Otherwise the
* expression reduction functions
* will modify expressions that have
* multiple references which can
* cause unwanted side effects.
*/
dup_expr = expr_copy(menu->visibility);
prop->visible.expr prop->visible.expr
= expr_alloc_and(prop->visible.expr, = expr_alloc_and(prop->visible.expr,
menu->visibility); dup_expr);
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment