diff options
Diffstat (limited to 'src/misc1.c')
-rw-r--r-- | src/misc1.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/misc1.c b/src/misc1.c index e76e4a4a3..550a7273e 100644 --- a/src/misc1.c +++ b/src/misc1.c @@ -2691,13 +2691,15 @@ home_replace_save( * FPC_DIFF if they both exist and are different files. * FPC_NOTX if they both don't exist. * FPC_DIFFX if one of them doesn't exist. - * For the first name environment variables are expanded + * For the first name environment variables are expanded if "expandenv" is + * TRUE. */ int fullpathcmp( char_u *s1, char_u *s2, - int checkname) /* when both don't exist, check file names */ + int checkname, // when both don't exist, check file names + int expandenv) { #ifdef UNIX char_u exp1[MAXPATHL]; @@ -2706,7 +2708,10 @@ fullpathcmp( stat_T st1, st2; int r1, r2; - expand_env(s1, exp1, MAXPATHL); + if (expandenv) + expand_env(s1, exp1, MAXPATHL); + else + vim_strncpy(exp1, s1, MAXPATHL - 1); r1 = mch_stat((char *)exp1, &st1); r2 = mch_stat((char *)s2, &st2); if (r1 != 0 && r2 != 0) @@ -2741,7 +2746,10 @@ fullpathcmp( full1 = exp1 + MAXPATHL; full2 = full1 + MAXPATHL; - expand_env(s1, exp1, MAXPATHL); + if (expandenv) + expand_env(s1, exp1, MAXPATHL); + else + vim_strncpy(exp1, s1, MAXPATHL - 1); r1 = vim_FullName(exp1, full1, MAXPATHL, FALSE); r2 = vim_FullName(s2, full2, MAXPATHL, FALSE); @@ -4027,7 +4035,7 @@ gen_expand_wildcards( /* * First expand environment variables, "~/" and "~user/". */ - if (has_env_var(p) || *p == '~') + if ((has_env_var(p) && !(flags & EW_NOTENV)) || *p == '~') { p = expand_env_save_opt(p, TRUE); if (p == NULL) |