From 8a4343a4366580644bde3ba9b6a21bf740503416 Mon Sep 17 00:00:00 2001 From: Lin Ma Date: Tue, 10 Nov 2020 17:50:59 +0800 Subject: [PATCH] vsh: Fix completion error in case of multiple mac addresses 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 # virsh detach-interface --domain VM --mac 52\:54\:00\: After: # virsh detach-interface --domain VM --mac # virsh detach-interface --domain VM --mac 52\:54\:00\: 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 Reviewed-by: Michal Privoznik --- 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;