[libvirt] [PATCH 11/19] vsh: Fix completion error in case of multiple mac addresses

Michal Privoznik mprivozn at redhat.com
Mon Nov 2 19:40:54 UTC 2020


On 11/2/20 9:26 AM, Lin Ma wrote:
> We know that the bash completer automatically handle colon by preceding
> it with an escape character backslash.
> While our bash autompletion file vsh completes multiple items, In case
> there're multiple items which have same prefix and the content of completion
> items contain colon(say mac address), The vsh needs to correctly hands
> the backslash which are added by bash completer, Otherwise the completion
> won't be successful. This patch fixes this problem.
> 
> e.g.:
> 
>   # virsh domiflist --domain VM
>   Interface   Type      Source    Model    MAC
> -------------------------------------------------------------
>   vnet0       network   default   virtio   52:54:00:fb:7b:f5
>   vnet1       bridge    br0       virtio   52:54:00:80:1b:21
> 
> Before:
>   # virsh detach-interface --domain VM --mac <TAB>
>   # virsh detach-interface --domain VM --mac 52\:54\:00\:<TAB><TAB>
> 
> After:
>   # virsh detach-interface --domain VM --mac <TAB>
>   # virsh detach-interface --domain VM --mac 52\:54\:00\:<TAB><TAB>
>   52:54:00:80:1b:21  52:54:00:fb:7b:f5
>   # virsh detach-interface --domain VM --mac 52\:54\:00\:
> 
> Signed-off-by: Lin Ma <lma at suse.com>
> ---
>   tools/bash-completion/vsh | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/tools/bash-completion/vsh b/tools/bash-completion/vsh
> index 8493cad28b..fb38e8616f 100644
> --- a/tools/bash-completion/vsh
> +++ b/tools/bash-completion/vsh
> @@ -39,6 +39,7 @@ _vsh_complete()
>       fi
>   
>       INPUT=( "${COMP_WORDS[@]:$i:$COMP_CWORD}" )
> +    INPUT[-1]=${INPUT[-1]//\\:/:}
>   
>       # Uncomment these lines for easy debug.
>   #    echo;
> 

Ooops, yes.

Reviewed-by: Michal Privoznik <mprivozn at redhat.com>

Michal




More information about the libvir-list mailing list