diff options
| -rw-r--r-- | scripts/Makefile.lib | 2 | ||||
| -rwxr-xr-x | scripts/config | 2 | ||||
| -rw-r--r-- | scripts/kconfig/lxdialog/menubox.c | 9 | ||||
| -rw-r--r-- | scripts/kconfig/mconf.c | 11 | ||||
| -rw-r--r-- | scripts/kconfig/menu.c | 15 |
5 files changed, 27 insertions, 12 deletions
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 51bb3de680b6..8337663aa298 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib | |||
| @@ -264,7 +264,7 @@ $(obj)/%.dtb.S: $(obj)/%.dtb | |||
| 264 | quiet_cmd_dtc = DTC $@ | 264 | quiet_cmd_dtc = DTC $@ |
| 265 | cmd_dtc = $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \ | 265 | cmd_dtc = $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \ |
| 266 | $(objtree)/scripts/dtc/dtc -O dtb -o $@ -b 0 \ | 266 | $(objtree)/scripts/dtc/dtc -O dtb -o $@ -b 0 \ |
| 267 | -i $(srctree)/arch/$(SRCARCH)/boot/dts $(DTC_FLAGS) \ | 267 | -i $(dir $<) $(DTC_FLAGS) \ |
| 268 | -d $(depfile).dtc $(dtc-tmp) ; \ | 268 | -d $(depfile).dtc $(dtc-tmp) ; \ |
| 269 | cat $(depfile).pre $(depfile).dtc > $(depfile) | 269 | cat $(depfile).pre $(depfile).dtc > $(depfile) |
| 270 | 270 | ||
diff --git a/scripts/config b/scripts/config index bb4d3deb6d1c..a65ecbbdd32a 100755 --- a/scripts/config +++ b/scripts/config | |||
| @@ -105,7 +105,7 @@ while [ "$1" != "" ] ; do | |||
| 105 | ;; | 105 | ;; |
| 106 | --refresh) | 106 | --refresh) |
| 107 | ;; | 107 | ;; |
| 108 | --*-after) | 108 | --*-after|-E|-D|-M) |
| 109 | checkarg "$1" | 109 | checkarg "$1" |
| 110 | A=$ARG | 110 | A=$ARG |
| 111 | checkarg "$2" | 111 | checkarg "$2" |
diff --git a/scripts/kconfig/lxdialog/menubox.c b/scripts/kconfig/lxdialog/menubox.c index 48d382e7e374..38cd69c5660e 100644 --- a/scripts/kconfig/lxdialog/menubox.c +++ b/scripts/kconfig/lxdialog/menubox.c | |||
| @@ -303,10 +303,11 @@ do_resize: | |||
| 303 | } | 303 | } |
| 304 | } | 304 | } |
| 305 | 305 | ||
| 306 | if (i < max_choice || | 306 | if (item_count() != 0 && |
| 307 | key == KEY_UP || key == KEY_DOWN || | 307 | (i < max_choice || |
| 308 | key == '-' || key == '+' || | 308 | key == KEY_UP || key == KEY_DOWN || |
| 309 | key == KEY_PPAGE || key == KEY_NPAGE) { | 309 | key == '-' || key == '+' || |
| 310 | key == KEY_PPAGE || key == KEY_NPAGE)) { | ||
| 310 | /* Remove highligt of current item */ | 311 | /* Remove highligt of current item */ |
| 311 | print_item(scroll + choice, choice, FALSE); | 312 | print_item(scroll + choice, choice, FALSE); |
| 312 | 313 | ||
diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c index 387dc8daf7b2..a69cbd78fb38 100644 --- a/scripts/kconfig/mconf.c +++ b/scripts/kconfig/mconf.c | |||
| @@ -670,11 +670,12 @@ static void conf(struct menu *menu, struct menu *active_menu) | |||
| 670 | active_menu, &s_scroll); | 670 | active_menu, &s_scroll); |
| 671 | if (res == 1 || res == KEY_ESC || res == -ERRDISPLAYTOOSMALL) | 671 | if (res == 1 || res == KEY_ESC || res == -ERRDISPLAYTOOSMALL) |
| 672 | break; | 672 | break; |
| 673 | if (!item_activate_selected()) | 673 | if (item_count() != 0) { |
| 674 | continue; | 674 | if (!item_activate_selected()) |
| 675 | if (!item_tag()) | 675 | continue; |
| 676 | continue; | 676 | if (!item_tag()) |
| 677 | 677 | continue; | |
| 678 | } | ||
| 678 | submenu = item_data(); | 679 | submenu = item_data(); |
| 679 | active_menu = item_data(); | 680 | active_menu = item_data(); |
| 680 | if (submenu) | 681 | if (submenu) |
diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c index b5c7d90df9df..fd3f0180e08f 100644 --- a/scripts/kconfig/menu.c +++ b/scripts/kconfig/menu.c | |||
| @@ -146,11 +146,24 @@ struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *e | |||
| 146 | struct menu *menu = current_entry; | 146 | struct menu *menu = current_entry; |
| 147 | 147 | ||
| 148 | while ((menu = menu->parent) != NULL) { | 148 | while ((menu = menu->parent) != NULL) { |
| 149 | struct expr *dup_expr; | ||
| 150 | |||
| 149 | if (!menu->visibility) | 151 | if (!menu->visibility) |
| 150 | continue; | 152 | continue; |
| 153 | /* | ||
| 154 | * Do not add a reference to the | ||
| 155 | * menu's visibility expression but | ||
| 156 | * use a copy of it. Otherwise the | ||
| 157 | * expression reduction functions | ||
| 158 | * will modify expressions that have | ||
| 159 | * multiple references which can | ||
| 160 | * cause unwanted side effects. | ||
| 161 | */ | ||
| 162 | dup_expr = expr_copy(menu->visibility); | ||
| 163 | |||
| 151 | prop->visible.expr | 164 | prop->visible.expr |
| 152 | = expr_alloc_and(prop->visible.expr, | 165 | = expr_alloc_and(prop->visible.expr, |
| 153 | menu->visibility); | 166 | dup_expr); |
| 154 | } | 167 | } |
| 155 | } | 168 | } |
| 156 | 169 | ||
