commit 5ca6c9e04629fee4e9f1f9786e9d36a2f892160c
parent 65de1a22c4d94cd8591f90255bcde72e6b385e60
Author: Luki446 <luki446@gmail.com>
Date: Sat, 11 Nov 2023 22:32:08 +0100
fix(terminal): make backslashes in 'shell' work on Windows
If backslashes are used in 'shell' option, escape them to make Terminal
mode work.
Diffstat:
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c
@@ -7424,7 +7424,9 @@ static void ex_terminal(exarg_T *eap)
char shell_argv[512] = { 0 };
while (*p != NULL) {
- snprintf(tempstring, sizeof(tempstring), ",\"%s\"", *p);
+ char *escaped = vim_strsave_escaped(*p, "\"\\");
+ snprintf(tempstring, sizeof(tempstring), ",\"%s\"", escaped);
+ xfree(escaped);
xstrlcat(shell_argv, tempstring, sizeof(shell_argv));
p++;
}