diff mbox

menuconfig: Search from everywhere

Message ID 1423487532-27968-1-git-send-email-kuleshovmail@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Alexander Kuleshov Feb. 9, 2015, 1:12 p.m. UTC
If we want to see search window again, for example after typo
or for another search, we need to press on '< Exit >' and than
execute new search. Let's make '/' active everywhere.

Signed-off-by: Alexander Kuleshov <kuleshovmail@gmail.com>
---
 scripts/kconfig/lxdialog/textbox.c | 4 ++++
 scripts/kconfig/mconf.c            | 8 ++++++++
 2 files changed, 12 insertions(+)

2.3.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Paul Bolle Feb. 11, 2015, 5:29 p.m. UTC | #1
[Removed Yann. Web searches should explain why.]

On Mon, 2015-02-09 at 19:12 +0600, Alexander Kuleshov wrote:
> If we want to see search window again, for example after typo
> or for another search, we need to press on '< Exit >' and than
                                                            then

> execute new search. Let's make '/' active everywhere.

Everywhere or just in the "Search Results" screen itself?

A drawback of menuconfig is its stacked interface. Each search and jump
pushes two screens to its stack of screens. I'm often surprised at the
number of screens I generated by searching around a bit. Does searching
from withing search results again push another screen onto the stack?

Anyhow, if hitting enter and "/" bothers you a redesign of the search
functionality would be a better idea. Eg, make it have a input area on
top (to type in the query) and an text area below it (to display
results). Which is probably not worth the, presumably rather big,
effort.

> Signed-off-by: Alexander Kuleshov <kuleshovmail@gmail.com>
> ---
>  scripts/kconfig/lxdialog/textbox.c | 4 ++++
>  scripts/kconfig/mconf.c            | 8 ++++++++
>  2 files changed, 12 insertions(+)
> 
> diff --git a/scripts/kconfig/lxdialog/textbox.c b/scripts/kconfig/lxdialog/textbox.c
> index 1773319..958770d 100644
> --- a/scripts/kconfig/lxdialog/textbox.c
> +++ b/scripts/kconfig/lxdialog/textbox.c
> @@ -141,6 +141,10 @@ do_resize:
>  	while (!done) {
>  		key = wgetch(dialog);
>  		switch (key) {
> +		case '/':
> +			key = 9;
> +			done = true;
> +			break;
>  		case 'E':	/* Exit */
>  		case 'e':
>  		case 'X':
> diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c
> index 4dd3755..d49fa45 100644
> --- a/scripts/kconfig/mconf.c
> +++ b/scripts/kconfig/mconf.c
> @@ -446,7 +446,15 @@ again:
>  					str_get(&res), 0, 0, keys, &vscroll,
>  					&hscroll, &update_text, (void *)
>  					&data);
> +		if (dres == 9) {
> +			free(sym_arr);
> +			str_free(&title);
> +			list_del(trail.prev);
> +			str_free(&sttext);
> +			search_conf();
> +			return;
> +		}
> +
>  		again = false;
>  		for (i = 0; i < JUMP_NB && keys[i]; i++)
>  			if (dres == keys[i]) {

Thanks,


Paul Bolle

--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/scripts/kconfig/lxdialog/textbox.c b/scripts/kconfig/lxdialog/textbox.c
index 1773319..958770d 100644
--- a/scripts/kconfig/lxdialog/textbox.c
+++ b/scripts/kconfig/lxdialog/textbox.c
@@ -141,6 +141,10 @@  do_resize:
 	while (!done) {
 		key = wgetch(dialog);
 		switch (key) {
+		case '/':
+			key = 9;
+			done = true;
+			break;
 		case 'E':	/* Exit */
 		case 'e':
 		case 'X':
diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c
index 4dd3755..d49fa45 100644
--- a/scripts/kconfig/mconf.c
+++ b/scripts/kconfig/mconf.c
@@ -446,7 +446,15 @@  again:
 					str_get(&res), 0, 0, keys, &vscroll,
 					&hscroll, &update_text, (void *)
 					&data);
+		if (dres == 9) {
+			free(sym_arr);
+			str_free(&title);
+			list_del(trail.prev);
+			str_free(&sttext);
+			search_conf();
+			return;
+		}
+
 		again = false;
 		for (i = 0; i < JUMP_NB && keys[i]; i++)
 			if (dres == keys[i]) {
--