patch 7.4.1108
Problem: Expanding "~" halfway a file name.
Solution: Handle the file name as one name. (Marco Hinz) Add a test.
Closes #564.
diff --git a/src/testdir/test_expand.vim b/src/testdir/test_expand.vim
new file mode 100644
index 0000000..fd999db
--- /dev/null
+++ b/src/testdir/test_expand.vim
@@ -0,0 +1,36 @@
+" Test for expanding file names
+
+func Test_with_directories()
+ call mkdir('Xdir1')
+ call mkdir('Xdir2')
+ call mkdir('Xdir3')
+ cd Xdir3
+ call mkdir('Xdir4')
+ cd ..
+
+ split Xdir1/file
+ call setline(1, ['a', 'b'])
+ w
+ w Xdir3/Xdir4/file
+ close
+
+ next Xdir?/*/file
+ call assert_equal('Xdir3/Xdir4/file', expand('%'))
+ next! Xdir?/*/nofile
+ call assert_equal('Xdir?/*/nofile', expand('%'))
+
+ call delete('Xdir1', 'rf')
+ call delete('Xdir2', 'rf')
+ call delete('Xdir3', 'rf')
+endfunc
+
+func Test_with_tilde()
+ let dir = getcwd()
+ call mkdir('Xdir ~ dir')
+ call assert_true(isdirectory('Xdir ~ dir'))
+ cd Xdir\ ~\ dir
+ call assert_true(getcwd() =~ 'Xdir \~ dir')
+ exe 'cd ' . fnameescape(dir)
+ call delete('Xdir ~ dir', 'd')
+ call assert_false(isdirectory('Xdir ~ dir'))
+endfunc