linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [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 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

* [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

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).