Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 35e9a274 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull kconfig changes from Michal Marek:
 "kconfig in v3.7 is going to
   - initialize ncurses only once in menuconfig
   - be able to jump to a search result in menuconfig
   - change the misnomer oldnoconfig to a more meaningful name
     olddefconfig, keeping the old name as alias"

* 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
  kconfig: replace 'oldnoconfig' with 'olddefconfig', and keep the old name as an alias
  menuconfig: Assign jump keys per-page instead of globally
  menuconfig: Do not open code textbox scroll up/down
  menuconfig: Add jump keys to search results
  menuconfig: Extend dialog_textbox so that it can return to a scrolled position
  menuconfig: Extend dialog_textbox so that it can exit on arbitrary keypresses
  menuconfig: Remove superfluous conditionnal
  kconfig: document oldnoconfig to what it really does in conf.c
  kconfig/mconf.c: revision of curses initialization.
parents ae3e4628 fb16d891
Loading
Loading
Loading
Loading
+9 −3
Original line number Original line Diff line number Diff line
@@ -76,11 +76,17 @@ PHONY += allnoconfig allyesconfig allmodconfig alldefconfig randconfig
allnoconfig allyesconfig allmodconfig alldefconfig randconfig: $(obj)/conf
allnoconfig allyesconfig allmodconfig alldefconfig randconfig: $(obj)/conf
	$< --$@ $(Kconfig)
	$< --$@ $(Kconfig)


PHONY += listnewconfig oldnoconfig savedefconfig defconfig
PHONY += listnewconfig olddefconfig oldnoconfig savedefconfig defconfig


listnewconfig oldnoconfig: $(obj)/conf
listnewconfig olddefconfig: $(obj)/conf
	$< --$@ $(Kconfig)
	$< --$@ $(Kconfig)


# oldnoconfig is an alias of olddefconfig, because people already are dependent
# on its behavior(sets new symbols to their default value but not 'n') with the
# counter-intuitive name.
oldnoconfig: $(obj)/conf
	$< --olddefconfig $(Kconfig)

savedefconfig: $(obj)/conf
savedefconfig: $(obj)/conf
	$< --$@=defconfig $(Kconfig)
	$< --$@=defconfig $(Kconfig)


@@ -114,7 +120,7 @@ help:
	@echo  '  alldefconfig    - New config with all symbols set to default'
	@echo  '  alldefconfig    - New config with all symbols set to default'
	@echo  '  randconfig	  - New config with random answer to all options'
	@echo  '  randconfig	  - New config with random answer to all options'
	@echo  '  listnewconfig   - List new options'
	@echo  '  listnewconfig   - List new options'
	@echo  '  oldnoconfig     - Same as silentoldconfig but sets new symbols to their default value'
	@echo  '  olddefconfig	  - Same as silentoldconfig but sets new symbols to their default value'


# lxdialog stuff
# lxdialog stuff
check-lxdialog  := $(srctree)/$(src)/lxdialog/check-lxdialog.sh
check-lxdialog  := $(srctree)/$(src)/lxdialog/check-lxdialog.sh
+16 −9
Original line number Original line Diff line number Diff line
@@ -32,7 +32,7 @@ enum input_mode {
	defconfig,
	defconfig,
	savedefconfig,
	savedefconfig,
	listnewconfig,
	listnewconfig,
	oldnoconfig,
	olddefconfig,
} input_mode = oldaskconfig;
} input_mode = oldaskconfig;


static int indent = 1;
static int indent = 1;
@@ -365,7 +365,7 @@ static void conf(struct menu *menu)
		case P_MENU:
		case P_MENU:
			if ((input_mode == silentoldconfig ||
			if ((input_mode == silentoldconfig ||
			     input_mode == listnewconfig ||
			     input_mode == listnewconfig ||
			     input_mode == oldnoconfig) &&
			     input_mode == olddefconfig) &&
			    rootEntry != menu) {
			    rootEntry != menu) {
				check_conf(menu);
				check_conf(menu);
				return;
				return;
@@ -429,7 +429,7 @@ static void check_conf(struct menu *menu)
				if (sym->name && !sym_is_choice_value(sym)) {
				if (sym->name && !sym_is_choice_value(sym)) {
					printf("%s%s\n", CONFIG_, sym->name);
					printf("%s%s\n", CONFIG_, sym->name);
				}
				}
			} else if (input_mode != oldnoconfig) {
			} else if (input_mode != olddefconfig) {
				if (!conf_cnt++)
				if (!conf_cnt++)
					printf(_("*\n* Restart config...\n*\n"));
					printf(_("*\n* Restart config...\n*\n"));
				rootEntry = menu_get_parent_menu(menu);
				rootEntry = menu_get_parent_menu(menu);
@@ -454,7 +454,13 @@ static struct option long_opts[] = {
	{"alldefconfig",    no_argument,       NULL, alldefconfig},
	{"alldefconfig",    no_argument,       NULL, alldefconfig},
	{"randconfig",      no_argument,       NULL, randconfig},
	{"randconfig",      no_argument,       NULL, randconfig},
	{"listnewconfig",   no_argument,       NULL, listnewconfig},
	{"listnewconfig",   no_argument,       NULL, listnewconfig},
	{"oldnoconfig",     no_argument,       NULL, oldnoconfig},
	{"olddefconfig",    no_argument,       NULL, olddefconfig},
	/*
	 * oldnoconfig is an alias of olddefconfig, because people already
	 * are dependent on its behavior(sets new symbols to their default
	 * value but not 'n') with the counter-intuitive name.
	 */
	{"oldnoconfig",     no_argument,       NULL, olddefconfig},
	{NULL, 0, NULL, 0}
	{NULL, 0, NULL, 0}
};
};


@@ -467,7 +473,8 @@ static void conf_usage(const char *progname)
	printf("  --oldaskconfig          Start a new configuration using a line-oriented program\n");
	printf("  --oldaskconfig          Start a new configuration using a line-oriented program\n");
	printf("  --oldconfig             Update a configuration using a provided .config as base\n");
	printf("  --oldconfig             Update a configuration using a provided .config as base\n");
	printf("  --silentoldconfig       Same as oldconfig, but quietly, additionally update deps\n");
	printf("  --silentoldconfig       Same as oldconfig, but quietly, additionally update deps\n");
	printf("  --oldnoconfig           Same as silentoldconfig but set new symbols to no\n");
	printf("  --olddefconfig          Same as silentoldconfig but sets new symbols to their default value\n");
	printf("  --oldnoconfig           An alias of olddefconfig\n");
	printf("  --defconfig <file>      New config with default defined in <file>\n");
	printf("  --defconfig <file>      New config with default defined in <file>\n");
	printf("  --savedefconfig <file>  Save the minimal current configuration to <file>\n");
	printf("  --savedefconfig <file>  Save the minimal current configuration to <file>\n");
	printf("  --allnoconfig           New config where all options are answered with no\n");
	printf("  --allnoconfig           New config where all options are answered with no\n");
@@ -520,7 +527,7 @@ int main(int ac, char **av)
		case allmodconfig:
		case allmodconfig:
		case alldefconfig:
		case alldefconfig:
		case listnewconfig:
		case listnewconfig:
		case oldnoconfig:
		case olddefconfig:
			break;
			break;
		case '?':
		case '?':
			conf_usage(progname);
			conf_usage(progname);
@@ -565,7 +572,7 @@ int main(int ac, char **av)
	case oldaskconfig:
	case oldaskconfig:
	case oldconfig:
	case oldconfig:
	case listnewconfig:
	case listnewconfig:
	case oldnoconfig:
	case olddefconfig:
		conf_read(NULL);
		conf_read(NULL);
		break;
		break;
	case allnoconfig:
	case allnoconfig:
@@ -645,7 +652,7 @@ int main(int ac, char **av)
		/* fall through */
		/* fall through */
	case oldconfig:
	case oldconfig:
	case listnewconfig:
	case listnewconfig:
	case oldnoconfig:
	case olddefconfig:
	case silentoldconfig:
	case silentoldconfig:
		/* Update until a loop caused no more changes */
		/* Update until a loop caused no more changes */
		do {
		do {
@@ -653,7 +660,7 @@ int main(int ac, char **av)
			check_conf(&rootmenu);
			check_conf(&rootmenu);
		} while (conf_cnt &&
		} while (conf_cnt &&
			 (input_mode != listnewconfig &&
			 (input_mode != listnewconfig &&
			  input_mode != oldnoconfig));
			  input_mode != olddefconfig));
		break;
		break;
	}
	}


+11 −0
Original line number Original line Diff line number Diff line
@@ -12,6 +12,7 @@ extern "C" {


#include <assert.h>
#include <assert.h>
#include <stdio.h>
#include <stdio.h>
#include <sys/queue.h>
#ifndef __cplusplus
#ifndef __cplusplus
#include <stdbool.h>
#include <stdbool.h>
#endif
#endif
@@ -173,6 +174,16 @@ struct menu {
#define MENU_CHANGED		0x0001
#define MENU_CHANGED		0x0001
#define MENU_ROOT		0x0002
#define MENU_ROOT		0x0002


struct jump_key {
	CIRCLEQ_ENTRY(jump_key) entries;
	size_t offset;
	struct menu *target;
	int index;
};
CIRCLEQ_HEAD(jk_head, jump_key);

#define JUMP_NB			9

extern struct file *file_list;
extern struct file *file_list;
extern struct file *current_file;
extern struct file *current_file;
struct file *lookup_file(const char *name);
struct file *lookup_file(const char *name);
+4 −2
Original line number Original line Diff line number Diff line
@@ -21,8 +21,10 @@ P(menu_get_root_menu,struct menu *,(struct menu *menu));
P(menu_get_parent_menu,struct menu *,(struct menu *menu));
P(menu_get_parent_menu,struct menu *,(struct menu *menu));
P(menu_has_help,bool,(struct menu *menu));
P(menu_has_help,bool,(struct menu *menu));
P(menu_get_help,const char *,(struct menu *menu));
P(menu_get_help,const char *,(struct menu *menu));
P(get_symbol_str, void, (struct gstr *r, struct symbol *sym));
P(get_symbol_str, void, (struct gstr *r, struct symbol *sym, struct jk_head
P(get_relations_str, struct gstr, (struct symbol **sym_arr));
			 *head));
P(get_relations_str, struct gstr, (struct symbol **sym_arr, struct jk_head
				   *head));
P(menu_get_ext_help,void,(struct menu *menu, struct gstr *help));
P(menu_get_ext_help,void,(struct menu *menu, struct gstr *help));


/* symbol.c */
/* symbol.c */
+8 −1
Original line number Original line Diff line number Diff line
@@ -144,6 +144,7 @@ struct dialog_info {
 */
 */
extern struct dialog_info dlg;
extern struct dialog_info dlg;
extern char dialog_input_result[];
extern char dialog_input_result[];
extern int saved_x, saved_y;		/* Needed in signal handler in mconf.c */


/*
/*
 * Function prototypes
 * Function prototypes
@@ -209,7 +210,13 @@ int first_alpha(const char *string, const char *exempt);
int dialog_yesno(const char *title, const char *prompt, int height, int width);
int dialog_yesno(const char *title, const char *prompt, int height, int width);
int dialog_msgbox(const char *title, const char *prompt, int height,
int dialog_msgbox(const char *title, const char *prompt, int height,
		  int width, int pause);
		  int width, int pause);
int dialog_textbox(const char *title, const char *file, int height, int width);


typedef void (*update_text_fn)(char *buf, size_t start, size_t end, void
			       *_data);
int dialog_textbox(const char *title, char *tbuf, int initial_height,
		   int initial_width, int *keys, int *_vscroll, int *_hscroll,
		   update_text_fn update_text, void *data);
int dialog_menu(const char *title, const char *prompt,
int dialog_menu(const char *title, const char *prompt,
		const void *selected, int *s_scroll);
		const void *selected, int *s_scroll);
int dialog_checklist(const char *title, const char *prompt, int height,
int dialog_checklist(const char *title, const char *prompt, int height,
Loading