comparison src/testdir/test_fnamemodify.vim @ 19299:8b710057093c v8.2.0208

patch 8.2.0208: fnamemodify() does not apply ":~" when followed by ":." Commit: https://github.com/vim/vim/commit/d816cd94d87afb73c505bf1e5cd5e07522482113 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Feb 4 22:23:09 2020 +0100 patch 8.2.0208: fnamemodify() does not apply ":~" when followed by ":." Problem: Fnamemodify() does not apply ":~" when followed by ":.". Solution: Don't let a failing ":." cause the ":~" to be skipped. (Yasuhiro Matsumoto, closes #5577)
author Bram Moolenaar <Bram@vim.org>
date Tue, 04 Feb 2020 22:30:03 +0100
parents 8d09b7f53c71
children 782f410c5df3
comparison
equal deleted inserted replaced
19298:3b5c07c8e82b 19299:8b710057093c
1 " Test filename modifiers. 1 " Test filename modifiers.
2 2
3 func Test_fnamemodify() 3 func Test_fnamemodify()
4 let save_home = $HOME 4 let save_home = $HOME
5 let save_shell = &shell 5 let save_shell = &shell
6 let save_shellslash = &shellslash
6 let $HOME = fnamemodify('.', ':p:h:h') 7 let $HOME = fnamemodify('.', ':p:h:h')
7 set shell=sh 8 set shell=sh
9 set shellslash
8 10
9 call assert_equal('/', fnamemodify('.', ':p')[-1:]) 11 call assert_equal('/', fnamemodify('.', ':p')[-1:])
10 call assert_equal('r', fnamemodify('.', ':p:h')[-1:]) 12 call assert_equal('r', fnamemodify('.', ':p:h')[-1:])
11 call assert_equal('t', fnamemodify('test.out', ':p')[-1:]) 13 call assert_equal('t', fnamemodify('test.out', ':p')[-1:])
12 call assert_equal('test.out', fnamemodify('test.out', ':.')) 14 call assert_equal('test.out', fnamemodify('test.out', ':.'))
26 call assert_equal('tar.gz', fnamemodify('abc.fb2.tar.gz', ':e:e')) 28 call assert_equal('tar.gz', fnamemodify('abc.fb2.tar.gz', ':e:e'))
27 call assert_equal('fb2.tar.gz', fnamemodify('abc.fb2.tar.gz', ':e:e:e')) 29 call assert_equal('fb2.tar.gz', fnamemodify('abc.fb2.tar.gz', ':e:e:e'))
28 call assert_equal('fb2.tar.gz', fnamemodify('abc.fb2.tar.gz', ':e:e:e:e')) 30 call assert_equal('fb2.tar.gz', fnamemodify('abc.fb2.tar.gz', ':e:e:e:e'))
29 call assert_equal('tar', fnamemodify('abc.fb2.tar.gz', ':e:e:r')) 31 call assert_equal('tar', fnamemodify('abc.fb2.tar.gz', ':e:e:r'))
30 32
33 let cwd = getcwd()
34 call mkdir($HOME . '/XXXXXXXX/a', 'p')
35 call mkdir($HOME . '/XXXXXXXX/b', 'p')
36 call chdir($HOME . '/XXXXXXXX/a/')
37 call assert_equal('foo', fnamemodify($HOME . '/XXXXXXXX/a/foo', ':p:~:.'))
38 call assert_equal('~/XXXXXXXX/b/foo', fnamemodify($HOME . '/XXXXXXXX/b/foo', ':p:~:.'))
39 call chdir(cwd)
40 call delete($HOME . '/XXXXXXXX', 'rf')
41
31 call assert_equal('''abc def''', fnamemodify('abc def', ':S')) 42 call assert_equal('''abc def''', fnamemodify('abc def', ':S'))
32 call assert_equal('''abc" "def''', fnamemodify('abc" "def', ':S')) 43 call assert_equal('''abc" "def''', fnamemodify('abc" "def', ':S'))
33 call assert_equal('''abc"%"def''', fnamemodify('abc"%"def', ':S')) 44 call assert_equal('''abc"%"def''', fnamemodify('abc"%"def', ':S'))
34 call assert_equal('''abc''\'''' ''\''''def''', fnamemodify('abc'' ''def', ':S')) 45 call assert_equal('''abc''\'''' ''\''''def''', fnamemodify('abc'' ''def', ':S'))
35 call assert_equal('''abc''\''''%''\''''def''', fnamemodify('abc''%''def', ':S')) 46 call assert_equal('''abc''\''''%''\''''def''', fnamemodify('abc''%''def', ':S'))
42 set shell=tcsh 53 set shell=tcsh
43 call assert_equal("'abc\\\ndef'", fnamemodify("abc\ndef", ':S')) 54 call assert_equal("'abc\\\ndef'", fnamemodify("abc\ndef", ':S'))
44 55
45 let $HOME = save_home 56 let $HOME = save_home
46 let &shell = save_shell 57 let &shell = save_shell
58 let &shellslash = save_shellslash
47 endfunc 59 endfunc
48 60
49 func Test_fnamemodify_er() 61 func Test_fnamemodify_er()
50 call assert_equal("with", fnamemodify("path/to/file.with.extensions", ':e:e:r:r')) 62 call assert_equal("with", fnamemodify("path/to/file.with.extensions", ':e:e:r:r'))
51 63