On Tue, Apr 20, 2021 at 03:34:53PM +0200, Michal Privoznik wrote: > Our vsh bash completion string is merely just a wrapper over > virsh/virt-admin complete (cmdComplete) - a hidden command that > uses internal readline completion to generate list of candidates. > But this means that we have to pass some additional arguments to > the helper process: e.g. connection URI and R/O flag. > > Candidates are printed on a separate line each (and can contain > space), which means that when bash is reading the helper's output > into an array, it needs to split items on '\n' char - hence the > IFS=$'\n' prefix on the line executing the helper. This was > introduced in b889594a70. > > But this introduced a regression - those extra arguments we might > pass are stored in a string and previously were split on a space > character (because $IFS was kept untouched and by default > contains space). But now, after the fix that's no longer the case > and thus virsh/virt-admin sees ' -r -c URI' as one argument. > > The solution is to take $IFS out of the picture by storing the > extra arguments in an array instead of string. > > Fixes: b889594a7092440dc916e3f43eeeaca2684571ee > Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx> > --- > tools/bash-completion/vsh | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) Makes sense and works. Reviewed-by: Erik Skultety <eskultet@xxxxxxxxxx>