On 07/02/2023 05.52, Dongli Zhang wrote:
Subject:
[PATCH 1/1] readline: fix hmp completion issue
From:
Dongli Zhang <dongli.zh...@oracle.com>
Date:
07/02/2023, 05.52
To:
qemu-devel@nongnu.org
CC:
dgilb...@redhat.com, joe....@oracle.com
The auto completion does not work in some cases.
Case 1.
1. (qemu) info reg
2. Press 'Tab'.
3. It does not auto complete.
Case 2.
1. (qemu) block_resize flo
2. Press 'Tab'.
3. It does not auto complete 'floppy0'.
Since the readline_add_completion_of() may add any completion when
strlen(pfx) is zero, we remove the check with (name[0] == '\0') because
strlen() always returns zero in that case.
Fixes: 52f50b1e9f8f ("readline: Extract readline_add_completion_of() from
monitor")
Cc: Joe Jin<joe....@oracle.com>
Signed-off-by: Dongli Zhang<dongli.zh...@oracle.com>
---
monitor/hmp.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/monitor/hmp.c b/monitor/hmp.c
index 2aa85d3982..fee410362f 100644
--- a/monitor/hmp.c
+++ b/monitor/hmp.c
@@ -1189,9 +1189,7 @@ static void cmd_completion(MonitorHMP *mon, const char
*name, const char *list)
}
memcpy(cmd, pstart, len);
cmd[len] = '\0';
- if (name[0] == '\0') {
- readline_add_completion_of(mon->rs, name, cmd);
- }
+ readline_add_completion_of(mon->rs, name, cmd);
if (*p == '\0') {
break;
}
@@ -1335,9 +1333,7 @@ static void monitor_find_completion_by_table(MonitorHMP
*mon,
/* block device name completion */
readline_set_completion_index(mon->rs, strlen(str));
while ((blk = blk_next(blk)) != NULL) {
- if (str[0] == '\0') {
- readline_add_completion_of(mon->rs, str, blk_name(blk));
- }
+ readline_add_completion_of(mon->rs, str, blk_name(blk));
}
break;
case 's':
-- 2.34.1
Thanks, this fixes the completion for me, too:
Tested-by: Thomas Huth <th...@redhat.com>