diff options
| author | hpa <hpa> | 2004-12-21 06:30:54 +0000 |
|---|---|---|
| committer | hpa <hpa> | 2004-12-21 06:30:54 +0000 |
| commit | 525bbe0393f388e065447044b421b84b2e187c8c (patch) | |
| tree | a97ebcf34575dcfedacce127b92e5a062bcd7ea5 /com32/modules/menu.c | |
| parent | abf1b805231a7cd01a249c67413e7c1e3152b72e (diff) | |
| download | syslinux-2.20-pre11.tar.gz | |
I think the menu system actually works now...syslinux-2.20-pre11
Diffstat (limited to 'com32/modules/menu.c')
| -rw-r--r-- | com32/modules/menu.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/com32/modules/menu.c b/com32/modules/menu.c index e3dace2f..c9794c24 100644 --- a/com32/modules/menu.c +++ b/com32/modules/menu.c @@ -131,6 +131,8 @@ void draw_menu(int sel, int top) if ( allowedit ) printf("%s\033[%d;1H%s", menu_attrib->tabmsg, TABMSG_ROW, pad_line("Press [Tab] to edit options", 1, WIDTH)); + + printf("%s\033[%d;1H", menu_attrib->screen, END_ROW); } char *edit_cmdline(char *input) @@ -176,7 +178,7 @@ char *edit_cmdline(char *input) case KEY_CTRL('U'): if ( len ) { len = 0; - cmdline[len] = 0; + cmdline[len] = '\0'; redraw = 1; } break; @@ -187,6 +189,7 @@ char *edit_cmdline(char *input) len--; wasbs = wasbs || (cmdline[len-1] <= ' '); } + cmdline[len] = '\0'; redraw = 1; } break; @@ -207,11 +210,9 @@ const char *run_menu(void) int done = 0; int entry = defentry; int top = 0; + int clear = 1; char *cmdline; - /* Start with a clear screen */ - printf("%s\033[2J", menu_attrib->screen); - while ( !done ) { if ( entry < 0 ) entry = 0; @@ -223,6 +224,11 @@ const char *run_menu(void) else if ( top > entry ) top = entry; + /* Start with a clear screen */ + if ( clear ) + printf("%s\033[2J", menu_attrib->screen); + clear = 0; + draw_menu(entry, top); key = get_key(stdin); @@ -266,6 +272,8 @@ const char *run_menu(void) cmdline = edit_cmdline(menu_entries[entry].cmdline); if ( cmdline ) return cmdline; + else + clear = 1; } break; case KEY_CTRL('C'): /* Ctrl-C */ @@ -278,7 +286,7 @@ const char *run_menu(void) } /* Return the label name so localboot and ipappend work */ - return menu_entries[entry].displayname; + return menu_entries[entry].label; } |
