diff options
| -rw-r--r-- | common/cmd_nvedit.c | 20 | ||||
| -rw-r--r-- | common/command.c | 24 | ||||
| -rw-r--r-- | common/main.c | 4 | ||||
| -rw-r--r-- | include/command.h | 30 | 
4 files changed, 30 insertions, 48 deletions
| diff --git a/common/cmd_nvedit.c b/common/cmd_nvedit.c index dcc93c19b..c3b57f2ff 100644 --- a/common/cmd_nvedit.c +++ b/common/cmd_nvedit.c @@ -883,29 +883,32 @@ U_BOOT_CMD(   */  #if defined(CONFIG_CMD_EDITENV) -U_BOOT_CMD( +U_BOOT_CMD_COMPLETE(  	editenv, 2, 0,	do_env_edit,  	"edit environment variable",  	"name\n" -	"    - edit environment variable 'name'" +	"    - edit environment variable 'name'", +	var_complete  );  #endif -U_BOOT_CMD( +U_BOOT_CMD_COMPLETE(  	printenv, CONFIG_SYS_MAXARGS, 1,	do_env_print,  	"print environment variables",  	"\n    - print values of all environment variables\n"  	"printenv name ...\n" -	"    - print value of environment variable 'name'" +	"    - print value of environment variable 'name'", +	var_complete  ); -U_BOOT_CMD( +U_BOOT_CMD_COMPLETE(  	setenv, CONFIG_SYS_MAXARGS, 0,	do_env_set,  	"set environment variables",  	"name value ...\n"  	"    - set environment variable 'name' to 'value ...'\n"  	"setenv name\n" -	"    - delete environment variable 'name'" +	"    - delete environment variable 'name'", +	var_complete  );  #if defined(CONFIG_CMD_ASKENV) @@ -926,10 +929,11 @@ U_BOOT_CMD(  #endif  #if defined(CONFIG_CMD_RUN) -U_BOOT_CMD( +U_BOOT_CMD_COMPLETE(  	run,	CONFIG_SYS_MAXARGS,	1,	do_run,  	"run commands in an environment variable",  	"var [...]\n" -	"    - run the commands in the environment variable(s) 'var'" +	"    - run the commands in the environment variable(s) 'var'", +	var_complete  );  #endif diff --git a/common/command.c b/common/command.c index 0b1a3fbf9..ef4a08110 100644 --- a/common/command.c +++ b/common/command.c @@ -177,30 +177,6 @@ int var_complete(int argc, char * const argv[], char last_char, int maxv, char *  	return 0;  } -static void install_auto_complete_handler(const char *cmd, -		int (*complete)(int argc, char * const argv[], char last_char, int maxv, char *cmdv[])) -{ -	cmd_tbl_t *cmdtp; - -	cmdtp = find_cmd(cmd); -	if (cmdtp == NULL) -		return; - -	cmdtp->complete = complete; -} - -void install_auto_complete(void) -{ -#if defined(CONFIG_CMD_EDITENV) -	install_auto_complete_handler("editenv", var_complete); -#endif -	install_auto_complete_handler("printenv", var_complete); -	install_auto_complete_handler("setenv", var_complete); -#if defined(CONFIG_CMD_RUN) -	install_auto_complete_handler("run", var_complete); -#endif -} -  /*************************************************************************************/  static int complete_cmdv(int argc, char * const argv[], char last_char, int maxv, char *cmdv[]) diff --git a/common/main.c b/common/main.c index 878cffd81..42f4d025d 100644 --- a/common/main.c +++ b/common/main.c @@ -336,10 +336,6 @@ void main_loop (void)  	hush_init_var ();  #endif -#ifdef CONFIG_AUTO_COMPLETE -	install_auto_complete(); -#endif -  #ifdef CONFIG_PREBOOT  	if ((p = getenv ("preboot")) != NULL) {  # ifdef CONFIG_AUTOBOOT_KEYED diff --git a/include/command.h b/include/command.h index f5091d0b3..8310fe57a 100644 --- a/include/command.h +++ b/include/command.h @@ -74,7 +74,7 @@ cmd_tbl_t *find_cmd_tbl (const char *cmd, cmd_tbl_t *table, int table_len);  extern int cmd_usage(cmd_tbl_t *cmdtp);  #ifdef CONFIG_AUTO_COMPLETE -extern void install_auto_complete(void); +extern int var_complete(int argc, char * const argv[], char last_char, int maxv, char *cmdv[]);  extern int cmd_auto_complete(const char *const prompt, char *buf, int *np, int *colp);  #endif @@ -111,23 +111,29 @@ extern int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]);  #define Struct_Section  __attribute__ ((unused,section (".u_boot_cmd"))) -#ifdef  CONFIG_SYS_LONGHELP +#ifdef CONFIG_AUTO_COMPLETE +# define _CMD_COMPLETE(x) x, +#else +# define _CMD_COMPLETE(x) +#endif +#ifdef CONFIG_SYS_LONGHELP +# define _CMD_HELP(x) x, +#else +# define _CMD_HELP(x) +#endif -#define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \ -cmd_tbl_t __u_boot_cmd_##name Struct_Section = {#name, maxargs, rep, cmd, usage, help} +#define U_BOOT_CMD_MKENT_COMPLETE(name,maxargs,rep,cmd,usage,help,comp) \ +	{#name, maxargs, rep, cmd, usage, _CMD_HELP(help) _CMD_COMPLETE(comp)}  #define U_BOOT_CMD_MKENT(name,maxargs,rep,cmd,usage,help) \ -{#name, maxargs, rep, cmd, usage, help} +	U_BOOT_CMD_MKENT_COMPLETE(name,maxargs,rep,cmd,usage,help,NULL) -#else	/* no long help info */ +#define U_BOOT_CMD_COMPLETE(name,maxargs,rep,cmd,usage,help,comp) \ +	cmd_tbl_t __u_boot_cmd_##name Struct_Section = \ +		U_BOOT_CMD_MKENT_COMPLETE(name,maxargs,rep,cmd,usage,help,comp)  #define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \ -cmd_tbl_t __u_boot_cmd_##name Struct_Section = {#name, maxargs, rep, cmd, usage} - -#define U_BOOT_CMD_MKENT(name,maxargs,rep,cmd,usage,help) \ -{#name, maxargs, rep, cmd, usage} - -#endif	/* CONFIG_SYS_LONGHELP */ +	U_BOOT_CMD_COMPLETE(name,maxargs,rep,cmd,usage,help,NULL)  #if defined(CONFIG_NEEDS_MANUAL_RELOC)  void fixup_cmdtable(cmd_tbl_t *cmdtp, int size); |