[PATCH 1/2 v3] complete: add device name complete support for devinfo

Jean-Christophe PLAGNIOL-VILLARD plagnioj at jcrosoft.com
Mon Jun 6 07:55:05 EDT 2011


On 13:01 Mon 06 Jun     , Jean-Christophe PLAGNIOL-VILLARD wrote:
> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
> ---
ignore wrong version

>  common/complete.c |   40 ++++++++++++++++++++++++++++++++++------
>  1 files changed, 34 insertions(+), 6 deletions(-)
> 
> v3:
> 
> 	just complete the device name for devinfo
> 
> 	the evaluation and param device setting will be add later
> 
> Best Regards,
> J.
> 
> diff --git a/common/complete.c b/common/complete.c
> index 46ba871..c3a05f1 100644
> --- a/common/complete.c
> +++ b/common/complete.c
> @@ -84,6 +84,27 @@ static int command_complete(struct string_list *sl, char *instr)
>  	return 0;
>  }
>  
> +static int device_complete(struct string_list *sl, char *instr)
> +{
> +	struct device_d *dev;
> +	char cmd[128];
> +	int len, len2;
> +
> +	len = strlen(instr);
> +
> +	for_each_device(dev) {
> +		if (!strncmp(instr, dev_name(dev), len)) {
> +			len2 = strlen(dev_name(dev));
> +			strcpy(cmd, dev_name(dev));
> +			cmd[len2] = ' ';
> +			cmd[len2 + 1] = 0;
> +			string_list_add(sl, cmd);
> +		}
> +	}
> +
> +	return 0;
> +}
> +
>  static int tab_pressed = 0;
>  
>  void complete_reset(void)
> @@ -117,12 +138,19 @@ int complete(char *instr, char **outstr)
>  	instr = t;
>  
>  	/* get the completion possibilities */
> -	if ((t = strrchr(t, ' '))) {
> -		t++;
> -		file_complete(&sl, t);
> -		instr = t;
> -	} else
> -		command_complete(&sl, instr);
> +	if (!strcmp(instr, "devinfo ")) {
> +		device_complete(&sl, instr + 8);
here should be
	if (!strncmp(instr, "devinfo ", 8)) {
		instr += 8;
		device_complete(&sl, instr);
Best Regards,
J.



More information about the barebox mailing list