Mercurial > vim
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 |