* [PATCH 1/2] menuconfig: fix to center checklist correctly in a corner case @ 2010-06-03 7:24 Li Zefan 2010-06-03 7:24 ` [PATCH 2/2] menuconfig: truncate list items Li Zefan 2010-06-03 16:32 ` [PATCH 1/2] menuconfig: fix to center checklist correctly in a corner case Randy Dunlap 0 siblings, 2 replies; 5+ messages in thread From: Li Zefan @ 2010-06-03 7:24 UTC (permalink / raw) To: linux-arm-kernel Run: make ARCH=arm menuconfig And then select "System Type" -> "ARM system type". The kconfig "choice" menu at this point looks empty. It's because config ARCH_S3C2410 has a long prompt: config ARCH_S3C2410 bool "Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443, S3C2450" ... menuconfig centers the checklist according to this prompt without considering the width of the list, and then things get wrong. Reported-by: Nobin Mathew <nobin.mathew@gmail.com> Signed-off-by: Li Zefan <lizf@cn.fujitsu.com> --- Please queue these 2 patches for 2.6.35. --- scripts/kconfig/lxdialog/checklist.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/scripts/kconfig/lxdialog/checklist.c b/scripts/kconfig/lxdialog/checklist.c index bcc6f19..c92a05a 100644 --- a/scripts/kconfig/lxdialog/checklist.c +++ b/scripts/kconfig/lxdialog/checklist.c @@ -175,6 +175,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; -- 1.6.3 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] menuconfig: truncate list items 2010-06-03 7:24 [PATCH 1/2] menuconfig: fix to center checklist correctly in a corner case Li Zefan @ 2010-06-03 7:24 ` Li Zefan 2010-06-03 16:32 ` Randy Dunlap 2010-06-03 16:32 ` [PATCH 1/2] menuconfig: fix to center checklist correctly in a corner case Randy Dunlap 1 sibling, 1 reply; 5+ messages in thread From: Li Zefan @ 2010-06-03 7:24 UTC (permalink / raw) To: linux-arm-kernel 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> --- 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 c92a05a..a2eb80f 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; 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); @@ -45,13 +49,14 @@ static void print_item(WINDOW * win, int choice, int selected) 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); } /* -- 1.6.3 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] menuconfig: truncate list items 2010-06-03 7:24 ` [PATCH 2/2] menuconfig: truncate list items Li Zefan @ 2010-06-03 16:32 ` Randy Dunlap 2010-06-04 0:57 ` Li Zefan 0 siblings, 1 reply; 5+ messages in thread From: Randy Dunlap @ 2010-06-03 16:32 UTC (permalink / raw) To: linux-arm-kernel On 06/03/10 00:24, Li Zefan wrote: > 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> Thanks :) Tested-by: Randy Dunlap <randy.dunlap@oracle.com> Ben, the Samsung S3C24* prompt still gets truncated with this patch (when using an 80-column wide xterm). If you care about seeing all of the models, you might want to shorten the prompt. > --- > 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 c92a05a..a2eb80f 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; > 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); > @@ -45,13 +49,14 @@ static void print_item(WINDOW * win, int choice, int selected) > 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); > } > > /* -- ~Randy *** Remember to use Documentation/SubmitChecklist when testing your code *** ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2/2] menuconfig: truncate list items 2010-06-03 16:32 ` Randy Dunlap @ 2010-06-04 0:57 ` Li Zefan 0 siblings, 0 replies; 5+ messages in thread From: Li Zefan @ 2010-06-04 0:57 UTC (permalink / raw) To: linux-arm-kernel Randy Dunlap wrote: > On 06/03/10 00:24, Li Zefan wrote: >> 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> > > Thanks :) > > Tested-by: Randy Dunlap <randy.dunlap@oracle.com> > > Ben, the Samsung S3C24* prompt still gets truncated with this patch (when using > an 80-column wide xterm). If you care about seeing all of the models, > you might want to shorten the prompt. > An alterative is to print the truncated string and end it with "...": ( ) Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440... ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] menuconfig: fix to center checklist correctly in a corner case 2010-06-03 7:24 [PATCH 1/2] menuconfig: fix to center checklist correctly in a corner case Li Zefan 2010-06-03 7:24 ` [PATCH 2/2] menuconfig: truncate list items Li Zefan @ 2010-06-03 16:32 ` Randy Dunlap 1 sibling, 0 replies; 5+ messages in thread From: Randy Dunlap @ 2010-06-03 16:32 UTC (permalink / raw) To: linux-arm-kernel On 06/03/10 00:24, Li Zefan wrote: > Run: > make ARCH=arm menuconfig > > And then select "System Type" -> "ARM system type". The kconfig > "choice" menu at this point looks empty. > > It's because config ARCH_S3C2410 has a long prompt: > > config ARCH_S3C2410 > bool "Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443, S3C2450" > ... > > menuconfig centers the checklist according to this prompt without > considering the width of the list, and then things get wrong. > > Reported-by: Nobin Mathew <nobin.mathew@gmail.com> > Signed-off-by: Li Zefan <lizf@cn.fujitsu.com> > --- > > Please queue these 2 patches for 2.6.35. Tested-by: Randy Dunlap <randy.dunlap@oracle.com> Thanks. > --- > scripts/kconfig/lxdialog/checklist.c | 1 + > 1 files changed, 1 insertions(+), 0 deletions(-) > > diff --git a/scripts/kconfig/lxdialog/checklist.c b/scripts/kconfig/lxdialog/checklist.c > index bcc6f19..c92a05a 100644 > --- a/scripts/kconfig/lxdialog/checklist.c > +++ b/scripts/kconfig/lxdialog/checklist.c > @@ -175,6 +175,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; -- ~Randy *** Remember to use Documentation/SubmitChecklist when testing your code *** ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2010-06-04 0:57 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-06-03 7:24 [PATCH 1/2] menuconfig: fix to center checklist correctly in a corner case Li Zefan 2010-06-03 7:24 ` [PATCH 2/2] menuconfig: truncate list items Li Zefan 2010-06-03 16:32 ` Randy Dunlap 2010-06-04 0:57 ` Li Zefan 2010-06-03 16:32 ` [PATCH 1/2] menuconfig: fix to center checklist correctly in a corner case Randy Dunlap
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).