mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-24 06:03:52 +03:00
vsh: Don't break word on backslash
A backslash is the way we escape characters in virsh. For instance: virsh # start domain\ with\ long\ name For readline completion, we do not want to get four separate words ("domain", "with", "long", "name"). This means, that we can't use virBufferEscapeShell() because it doesn't escape spaces the way we want. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
9b9542586c
commit
df9f1efc53
@ -2773,7 +2773,7 @@ vshReadlineParse(const char *text, int state)
|
||||
if (ret &&
|
||||
!rl_completion_quote_character) {
|
||||
g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
|
||||
virBufferEscapeShell(&buf, ret);
|
||||
virBufferEscape(&buf, '\\', " ", "%s", ret);
|
||||
VIR_FREE(ret);
|
||||
ret = virBufferContentAndReset(&buf);
|
||||
}
|
||||
@ -2819,7 +2819,7 @@ vshReadlineInit(vshControl *ctl)
|
||||
int ret = -1;
|
||||
char *histsize_env = NULL;
|
||||
const char *histsize_str = NULL;
|
||||
const char *break_characters = " \t\n\\`@$><=;|&{(";
|
||||
const char *break_characters = " \t\n`@$><=;|&{(";
|
||||
const char *quote_characters = "\"'";
|
||||
|
||||
/* Opaque data for autocomplete callbacks. */
|
||||
|
Loading…
x
Reference in New Issue
Block a user