[libvirt] [PATCH] virsh: Don't skip the first entry when the typed command share same prefix

Signed-off-by: Lin Ma <lma@suse.com> --- tools/vsh.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/vsh.c b/tools/vsh.c index f76076b164..1516e578d9 100644 --- a/tools/vsh.c +++ b/tools/vsh.c @@ -3495,11 +3495,11 @@ cmdComplete(vshControl *ctl, const vshCmd *cmd) if (!(matches = vshReadlineCompletion(arg, 0, 0))) goto cleanup; - /* According to rl_completion_matches documentation, the - * first entry in @matches array is some dummy substitution - * string for @arg. Skip it. */ - for (iter = &matches[1]; *iter; iter++) + for (iter = matches; *iter; iter++) { + if (iter == matches && matches[1]) + continue; printf("%s\n", *iter); + } ret = true; cleanup: -- 2.16.2

On 05/11/2018 11:13 AM, Lin Ma wrote:
Signed-off-by: Lin Ma <lma@suse.com> --- tools/vsh.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/tools/vsh.c b/tools/vsh.c index f76076b164..1516e578d9 100644 --- a/tools/vsh.c +++ b/tools/vsh.c @@ -3495,11 +3495,11 @@ cmdComplete(vshControl *ctl, const vshCmd *cmd) if (!(matches = vshReadlineCompletion(arg, 0, 0))) goto cleanup;
- /* According to rl_completion_matches documentation, the - * first entry in @matches array is some dummy substitution - * string for @arg. Skip it. */ - for (iter = &matches[1]; *iter; iter++) + for (iter = matches; *iter; iter++) { + if (iter == matches && matches[1]) + continue; printf("%s\n", *iter); + }
ret = true; cleanup:
Oops. The documentation failed me. Again. ACKed and pushed. Thanks for catching this. Michal
participants (2)
-
Lin Ma
-
Michal Privoznik