Skip to content

Commit 39d21e3

Browse files
committed
patch 8.0.0876: backslashes and wildcards in backticks don't work
Problem: MS-Windows: Backslashes and wildcards in backticks don't work. Solution: Do not handle backslashes inside backticks in the wrong place. (Yasuhiro Matsumoto, closes #1942)
1 parent 0af2d32 commit 39d21e3

File tree

3 files changed

+22
-1
lines changed

3 files changed

+22
-1
lines changed

src/os_mswin.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -450,6 +450,15 @@ slash_adjust(char_u *p)
450450
{
451451
if (path_with_url(p))
452452
return;
453+
454+
if (*p == '`')
455+
{
456+
/* don't replace backslash in backtick quoted strings */
457+
int len = STRLEN(p);
458+
if (len > 2 && *(p + len - 1) == '`')
459+
return;
460+
}
461+
453462
while (*p)
454463
{
455464
if (*p == psepcN)

src/os_win32.c

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7004,6 +7004,8 @@ fix_arg_enc(void)
70047004
str = utf16_to_enc(ArglistW[idx], NULL);
70057005
if (str != NULL)
70067006
{
7007+
int literal = used_file_literal;
7008+
70077009
#ifdef FEAT_DIFF
70087010
/* When using diff mode may need to concatenate file name to
70097011
* directory name. Just like it's done in main(). */
@@ -7025,7 +7027,15 @@ fix_arg_enc(void)
70257027
if (used_file_literal)
70267028
buf_set_name(fnum_list[i], str);
70277029

7028-
alist_add(&global_alist, str, used_file_literal ? 2 : 0);
7030+
/* Check backtick literal. backtick literal is already expanded in
7031+
* main.c, so this part add str as literal. */
7032+
if (literal == FALSE)
7033+
{
7034+
int len = STRLEN(str);
7035+
if (len > 2 && *str == '`' && *(str + len - 1) == '`')
7036+
literal = TRUE;
7037+
}
7038+
alist_add(&global_alist, str, literal ? 2 : 0);
70297039
}
70307040
}
70317041

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -769,6 +769,8 @@ static char *(features[]) =
769769

770770
static int included_patches[] =
771771
{ /* Add new patch number below this line */
772+
/**/
773+
876,
772774
/**/
773775
875,
774776
/**/

0 commit comments

Comments
 (0)