diff options
| author | blymn <blymn@NetBSD.org> | 2002-11-27 11:53:11 +0000 |
|---|---|---|
| committer | blymn <blymn@NetBSD.org> | 2002-11-27 11:53:11 +0000 |
| commit | 6f2e4ed7052199bd970e0e8ceafd85e7b8a3a19c (patch) | |
| tree | 44141e97935d524cd0f7586b05b49a240e71088d /lib/libmenu | |
| parent | 2331faab98a5b59c93ece88fca26984e89e366d8 (diff) | |
Fix an off by one bug in the scale_menu() function.
Diffstat (limited to 'lib/libmenu')
| -rw-r--r-- | lib/libmenu/internals.c | 17 | ||||
| -rw-r--r-- | lib/libmenu/menu.c | 6 |
2 files changed, 12 insertions, 11 deletions
diff --git a/lib/libmenu/internals.c b/lib/libmenu/internals.c index 15a555e2af2..a414e584b12 100644 --- a/lib/libmenu/internals.c +++ b/lib/libmenu/internals.c @@ -1,4 +1,4 @@ -/* $NetBSD: internals.c,v 1.10 2002/07/29 13:03:51 blymn Exp $ */ +/* $NetBSD: internals.c,v 1.11 2002/11/27 11:53:11 blymn Exp $ */ /*- * Copyright (c) 1998-1999 Brett Lymn (blymn@baea.com.au, brett_lymn@yahoo.com.au) @@ -386,7 +386,7 @@ _menui_draw_item(MENU *menu, int item) wmove(menu->scrwin, menu->items[item]->row - menu->top_row, - menu->items[item]->col * menu->col_width); + menu->items[item]->col * (menu->col_width + 1)); if (menu->cur_item == item) wattrset(menu->scrwin, menu->fore); @@ -441,21 +441,22 @@ _menui_draw_item(MENU *menu, int item) } menu->items[item]->visible = 1; + /* kill any special attributes... */ + wattrset(menu->scrwin, menu->back); + /* * Fill in the spacing between items, annoying but it looks * odd if the menu items are inverse because the spacings do not * have the same attributes as the items. */ - if (menu->items[item]->col > 0) { + if ((menu->items[item]->col > 0) && + (menu->items[item]->col < (menu->item_cols - 1))) { wmove(menu->scrwin, menu->items[item]->row - menu->top_row, - menu->items[item]->col * menu->col_width - 1); + menu->items[item]->col * (menu->col_width + 1) - 1); waddch(menu->scrwin, ' '); } - /* kill any special attributes... */ - wattrset(menu->scrwin, menu->back); - /* and position the cursor nicely */ pos_menu_cursor(menu); } @@ -507,7 +508,7 @@ _menui_draw_menu(MENU *menu) } } wmove(menu->scrwin, row, - col * menu->col_width); + col * (menu->col_width + 1)); for (j = 0; j < menu->col_width; j++) waddch(menu->scrwin, ' '); } else { diff --git a/lib/libmenu/menu.c b/lib/libmenu/menu.c index 25e4e03aa79..a75390c3094 100644 --- a/lib/libmenu/menu.c +++ b/lib/libmenu/menu.c @@ -1,4 +1,4 @@ -/* $NetBSD: menu.c,v 1.14 2002/08/22 11:30:18 blymn Exp $ */ +/* $NetBSD: menu.c,v 1.15 2002/11/27 11:53:11 blymn Exp $ */ /*- * Copyright (c) 1998-1999 Brett Lymn (blymn@baea.com.au, brett_lymn@yahoo.com.au) @@ -549,7 +549,7 @@ scale_menu(MENU *param_menu, int *rows, int *cols) /* * allow for spacing between columns... */ - *cols += menu->cols; + *cols += (menu->cols - 1); return E_OK; } @@ -731,7 +731,7 @@ pos_menu_cursor(MENU *menu) maxmark = max(menu->mark.length, menu->unmark.length); movx = maxmark + (menu->items[menu->cur_item]->col - * menu->col_width); + * (menu->col_width + 1)); if (menu->match_len > 0) movx += menu->match_len - 1; |
