summaryrefslogtreecommitdiff
path: root/kconfig/lxdialog/checklist.c
diff options
context:
space:
mode:
authorYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2011-05-08 12:14:40 (GMT)
committerYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2011-05-08 12:14:40 (GMT)
commit084a8e18f5abd15c9da9c56ada4fad8d0d18102c (patch)
treefea23cce64bf8c7522358126a344b9c807e548f0 /kconfig/lxdialog/checklist.c
parentdb796067af710f04e73eecdd46a8403ac7ce89f9 (diff)
kconfig: update from linux-next
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Diffstat (limited to 'kconfig/lxdialog/checklist.c')
-rw-r--r--kconfig/lxdialog/checklist.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/kconfig/lxdialog/checklist.c b/kconfig/lxdialog/checklist.c
index b2a878c..a2eb80f 100644
--- a/kconfig/lxdialog/checklist.c
+++ b/kconfig/lxdialog/checklist.c
@@ -31,6 +31,10 @@ static int list_width, check_x, item_x;
static void print_item(WINDOW * win, int choice, int selected)
{
int i;
+ char *list_item = malloc(list_width + 1);
+
+ strncpy(list_item, item_str(), list_width - item_x);
+ list_item[list_width - item_x] = '\0';
/* Clear 'residue' of last item */
wattrset(win, dlg.menubox.atr);
@@ -41,16 +45,18 @@ static void print_item(WINDOW * win, int choice, int selected)
wmove(win, choice, check_x);
wattrset(win, selected ? dlg.check_selected.atr
: dlg.check.atr);
- wprintw(win, "(%c)", item_is_tag('X') ? 'X' : ' ');
+ if (!item_is_tag(':'))
+ wprintw(win, "(%c)", item_is_tag('X') ? 'X' : ' ');
wattrset(win, selected ? dlg.tag_selected.atr : dlg.tag.atr);
- mvwaddch(win, choice, item_x, item_str()[0]);
+ mvwaddch(win, choice, item_x, list_item[0]);
wattrset(win, selected ? dlg.item_selected.atr : dlg.item.atr);
- waddstr(win, (char *)item_str() + 1);
+ waddstr(win, list_item + 1);
if (selected) {
wmove(win, choice, check_x + 1);
wrefresh(win);
}
+ free(list_item);
}
/*
@@ -174,6 +180,7 @@ do_resize:
check_x = 0;
item_foreach()
check_x = MAX(check_x, strlen(item_str()) + 4);
+ check_x = MIN(check_x, list_width);
check_x = (list_width - check_x) / 2;
item_x = check_x + 4;