diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2016-10-18 14:36:49 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2016-10-18 22:45:32 +0200 |
commit | eca7871bced78837154ad52c42864ba3c87a9904 (patch) | |
tree | d6ad489173bde58cef1c41c8f01f2698fa661343 /common/globalvar.c | |
parent | 57aac5f1ff63b4997d3dc665c4c05f5470a1e681 (diff) | |
download | barebox-eca7871bced78837154ad52c42864ba3c87a9904.tar.gz barebox-eca7871bced78837154ad52c42864ba3c87a9904.tar.xz |
complete: Add completion for nv and globalvar commands
The 'nv' command is often used to create a nv variable
for an existing global variable, so add a command completion
function for this.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'common/globalvar.c')
-rw-r--r-- | common/globalvar.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/common/globalvar.c b/common/globalvar.c index fb69db973a..e75cac96d7 100644 --- a/common/globalvar.c +++ b/common/globalvar.c @@ -626,3 +626,31 @@ static void nv_exit(void) nvvar_save(); } predevshutdown_exitcall(nv_exit); + +static int nv_global_param_complete(struct device_d *dev, struct string_list *sl, + char *instr, int eval) +{ + struct param_d *param; + int len; + + len = strlen(instr); + + list_for_each_entry(param, &dev->parameters, list) { + if (strncmp(instr, param->name, len)) + continue; + + string_list_add_asprintf(sl, "%s%c", + param->name, + eval ? ' ' : '='); + } + + return 0; +} + +int nv_global_complete(struct string_list *sl, char *instr) +{ + nv_global_param_complete(&global_device, sl, instr, 0); + nv_global_param_complete(&nv_device, sl, instr, 0); + + return 0; +} |