On Sun, 24 Mar 2013 01:53:08 +0100 Anatolij Gustschin <ag...@denx.de> wrote:
> From: Pali Rohár <pali.ro...@gmail.com> > > The "bootmenu" command uses U-Boot menu interfaces and provides > a simple mechanism for creating menus with several boot items. > When running this command the menu will be assembled as defined > by a set of environment variables which contain a title and > command key-value pairs. The "Up" and "Down" keys are used for > navigation through the items. Current active menu item is > highlighted and can be selected using the "Enter" key. > > The command interprets and generates various ANSI escape > sequencies, so for proper menu rendering and item selection > the used terminal should support them. > > Signed-off-by: Pali Rohár <pali.ro...@gmail.com> > [agust: various fixes and documentation updates] > Signed-off-by: Anatolij Gustschin <ag...@denx.de> > --- > Changes in v4: > - coding style fixes > - highlight only the menu entry title, not the whole line > - don't return empty strings in bootmenu_choice_entry() > to avoid useless searching for menu keys in the menu > item list. Empty key strings won't be found anyway, so > for down and up keys just return NULL in this function > to indicate that no item selection happened yet > - print error message if invalid bootmenu environment > variable without title/command separator found > - if number of menu items is equal to MAX_COUNT, the > U-Boot console selection entry won't be generated. > Fix it so that documented and real behaviour match > - include entry key initialisation fix for proper > menu behaviour when running in sandbox (without it > the item selection by up/down keys didn't work > in sandbox) > - use puts() instead of printf() where appropriate > - always use 1 for prompt argument for menu_create() > so that the bootmenu command works as documented when > using a negative delay value > - call bootmenu_destroy() in the case if menu_create() > fails (avoid memory leaks) > - don't display the title of selected item before > running the commands (but do it only if debugging > is enabled) > - don't change the argument of menu_display_statusline(), > use exported menu_default_choice() instead and obtain > the needed bootmenu data pointer in the custom > menu_display_statusline() function > - use lower case in menu header > - update documentation in readme file for the command > > Changes in v3: > - Do not use hardcoded numbers, added MAX_COUNT and MAX_ENV_SIZE > - Use unsigned short int for menu number > - Use enum bootmenu_key for key selection > - Separate loop code from function bootmenu_choice_entry to bootmenu_loop > and bootmenu_autoboot_loop > - Updated README, added example > - Use switches, added braces, fix style problems > > Changes in v2: > - Added commit message > - Removed bootmenu from include/config_cmd_all.h > - Moved ANSI escape codes from include/common.h to include/ansi.h > - Fixed style and indentation problems > - Use mdelay instead udelay > - Removed autoboot delay message when some key is pressed > > common/Makefile | 1 + > common/cmd_bootmenu.c | 517 > +++++++++++++++++++++++++++++++++++++++++++++++++ > doc/README.bootmenu | 115 +++++++++++ > include/ansi.h | 42 ++++ > 4 files changed, 675 insertions(+), 0 deletions(-) > create mode 100644 common/cmd_bootmenu.c > create mode 100644 doc/README.bootmenu > create mode 100644 include/ansi.h applied to staging/ag...@denx.de. Thanks. Anatolij _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot