patch 8.2.0215: wrong file name shortening

Problem:    Wrong file name shortening. (Ingo Karkat)
Solution:   Better check for path separator. (Yasuhiro Matsumoto,
            closes #5583, closes #5584)
diff --git a/src/filepath.c b/src/filepath.c
index 9a5d127..79eb7bf 100644
--- a/src/filepath.c
+++ b/src/filepath.c
@@ -448,14 +448,18 @@
 		if (fnamencmp(p, dirname, namelen) == 0)
 		{
 		    p += namelen;
-		    while (*p && vim_ispathsep(*p))
-			++p;
-		    *fnamep = p;
-		    if (pbuf != NULL)
+		    if (vim_ispathsep(*p))
 		    {
-			vim_free(*bufp);   // free any allocated file name
-			*bufp = pbuf;
-			pbuf = NULL;
+			while (*p && vim_ispathsep(*p))
+			    ++p;
+			*fnamep = p;
+			if (pbuf != NULL)
+			{
+			    // free any allocated file name
+			    vim_free(*bufp);
+			    *bufp = pbuf;
+			    pbuf = NULL;
+			}
 		    }
 		}
 	    }
diff --git a/src/testdir/test_fnamemodify.vim b/src/testdir/test_fnamemodify.vim
index 7a21efe..b35f153 100644
--- a/src/testdir/test_fnamemodify.vim
+++ b/src/testdir/test_fnamemodify.vim
@@ -36,6 +36,8 @@
   call chdir($HOME . '/XXXXXXXX/a/')
   call assert_equal('foo', fnamemodify($HOME . '/XXXXXXXX/a/foo', ':p:~:.'))
   call assert_equal('~/XXXXXXXX/b/foo', fnamemodify($HOME . '/XXXXXXXX/b/foo', ':p:~:.'))
+  call mkdir($HOME . '/XXXXXXXX/a.ext', 'p')
+  call assert_equal('~/XXXXXXXX/a.ext/foo', fnamemodify($HOME . '/XXXXXXXX/a.ext/foo', ':p:~:.'))
   call chdir(cwd)
   call delete($HOME . '/XXXXXXXX', 'rf')
 
diff --git a/src/version.c b/src/version.c
index 97584e3..20a6be4 100644
--- a/src/version.c
+++ b/src/version.c
@@ -743,6 +743,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    215,
+/**/
     214,
 /**/
     213,