patch 8.2.3939: MS-Windows: fnamemodify('', ':p') does not work
Problem: MS-Windows: fnamemodify('', ':p') does not work.
Solution: Do not consider an empty string a full path. (Yegappan Lakshmanan,
closes #9428, closes #9427)
diff --git a/src/os_mswin.c b/src/os_mswin.c
index 26042b4..e27f389 100644
--- a/src/os_mswin.c
+++ b/src/os_mswin.c
@@ -390,7 +390,7 @@
// the same as the name or mch_FullName() fails. However, this has quite a
// bit of overhead, so let's not do that.
if (*fname == NUL)
- return TRUE;
+ return FALSE;
return ((ASCII_ISALPHA(fname[0]) && fname[1] == ':'
&& (fname[2] == '/' || fname[2] == '\\'))
|| (fname[0] == fname[1] && (fname[0] == '/' || fname[0] == '\\')));
diff --git a/src/testdir/test_fnamemodify.vim b/src/testdir/test_fnamemodify.vim
index dfe322a..c19f464 100644
--- a/src/testdir/test_fnamemodify.vim
+++ b/src/testdir/test_fnamemodify.vim
@@ -32,6 +32,7 @@
call assert_equal('fb2.tar.gz', fnamemodify('abc.fb2.tar.gz', ':e:e:e'))
call assert_equal('fb2.tar.gz', fnamemodify('abc.fb2.tar.gz', ':e:e:e:e'))
call assert_equal('tar', fnamemodify('abc.fb2.tar.gz', ':e:e:r'))
+ call assert_equal(getcwd(), fnamemodify('', ':p:h'))
let cwd = getcwd()
call chdir($HOME)
diff --git a/src/version.c b/src/version.c
index 15df860..0f0414e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -750,6 +750,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 3939,
+/**/
3938,
/**/
3937,