diff options
author | Li Zefan <lizf@cn.fujitsu.com> | 2010-06-03 03:24:57 -0400 |
---|---|---|
committer | Michal Marek <mmarek@suse.cz> | 2010-06-03 07:41:02 -0400 |
commit | e7401d8321f89a3785a395ba307c720e2b390f96 (patch) | |
tree | 8ed62dbaf1415de5da9e0382fc1ac632850423b0 /scripts | |
parent | 42ef223c4a0f6e34e13ccb503b423ebdc04878e1 (diff) |
menuconfig: truncate list items
Truncate list items to fit in a single line, otherwise those items
which have long prompts will cover some other items.
This follows the behavior of menubox.
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/kconfig/lxdialog/checklist.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/scripts/kconfig/lxdialog/checklist.c b/scripts/kconfig/lxdialog/checklist.c index c92a05a2de17..a2eb80fbc896 100644 --- a/scripts/kconfig/lxdialog/checklist.c +++ b/scripts/kconfig/lxdialog/checklist.c | |||
@@ -31,6 +31,10 @@ static int list_width, check_x, item_x; | |||
31 | static void print_item(WINDOW * win, int choice, int selected) | 31 | static void print_item(WINDOW * win, int choice, int selected) |
32 | { | 32 | { |
33 | int i; | 33 | int i; |
34 | char *list_item = malloc(list_width + 1); | ||
35 | |||
36 | strncpy(list_item, item_str(), list_width - item_x); | ||
37 | list_item[list_width - item_x] = '\0'; | ||
34 | 38 | ||
35 | /* Clear 'residue' of last item */ | 39 | /* Clear 'residue' of last item */ |
36 | wattrset(win, dlg.menubox.atr); | 40 | wattrset(win, dlg.menubox.atr); |
@@ -45,13 +49,14 @@ static void print_item(WINDOW * win, int choice, int selected) | |||
45 | wprintw(win, "(%c)", item_is_tag('X') ? 'X' : ' '); | 49 | wprintw(win, "(%c)", item_is_tag('X') ? 'X' : ' '); |
46 | 50 | ||
47 | wattrset(win, selected ? dlg.tag_selected.atr : dlg.tag.atr); | 51 | wattrset(win, selected ? dlg.tag_selected.atr : dlg.tag.atr); |
48 | mvwaddch(win, choice, item_x, item_str()[0]); | 52 | mvwaddch(win, choice, item_x, list_item[0]); |
49 | wattrset(win, selected ? dlg.item_selected.atr : dlg.item.atr); | 53 | wattrset(win, selected ? dlg.item_selected.atr : dlg.item.atr); |
50 | waddstr(win, (char *)item_str() + 1); | 54 | waddstr(win, list_item + 1); |
51 | if (selected) { | 55 | if (selected) { |
52 | wmove(win, choice, check_x + 1); | 56 | wmove(win, choice, check_x + 1); |
53 | wrefresh(win); | 57 | wrefresh(win); |
54 | } | 58 | } |
59 | free(list_item); | ||
55 | } | 60 | } |
56 | 61 | ||
57 | /* | 62 | /* |