updated for version 7.4.191
Problem:    Escaping a file name for shell commands can't be done without a
            function.
Solution:   Add the :S file name modifier.
diff --git a/src/testdir/test105.ok b/src/testdir/test105.ok
new file mode 100644
index 0000000..0681597
--- /dev/null
+++ b/src/testdir/test105.ok
@@ -0,0 +1,29 @@
+fnamemodify('.',              ':p'      )[-1:]	'/'
+fnamemodify('.',              ':p:h'    )[-1:]	'r'
+fnamemodify('test.out',       ':p'      )[-1:]	't'
+fnamemodify('test.out',       ':.'      )	'test.out'
+fnamemodify('../testdir/a',   ':.'      )	'a'
+fnamemodify('test.out',       ':~'      )	'~/src/testdir/test.out'
+fnamemodify('../testdir/a',   ':~'      )	'~/src/testdir/a'
+fnamemodify('../testdir/a',   ':t'      )	'a'
+fnamemodify('.',              ':p:t'    )	''
+fnamemodify('test.out',       ':p:t'    )	'test.out'
+fnamemodify('test.out',       ':p:e'    )	'out'
+fnamemodify('test.out',       ':p:t:e'  )	'out'
+fnamemodify('abc.fb2.tar.gz', ':r'      )	'abc.fb2.tar'
+fnamemodify('abc.fb2.tar.gz', ':r:r'    )	'abc.fb2'
+fnamemodify('abc.fb2.tar.gz', ':r:r:r'  )	'abc'
+substitute(fnamemodify('abc.fb2.tar.gz', ':p:r:r'), '.*\(src/testdir/.*\)', '\1', '')	'src/testdir/abc.fb2'
+fnamemodify('abc.fb2.tar.gz', ':e'      )	'gz'
+fnamemodify('abc.fb2.tar.gz', ':e:e'    )	'tar.gz'
+fnamemodify('abc.fb2.tar.gz', ':e:e:e'  )	'fb2.tar.gz'
+fnamemodify('abc.fb2.tar.gz', ':e:e:e:e')	'fb2.tar.gz'
+fnamemodify('abc.fb2.tar.gz', ':e:e:r'  )	'tar'
+fnamemodify('abc def',        ':S'      )	'''abc def'''
+fnamemodify('abc" "def',      ':S'      )	'''abc" "def'''
+fnamemodify('abc"%"def',      ':S'      )	'''abc"%"def'''
+fnamemodify('abc'' ''def',    ':S'      )	'''abc''\'''' ''\''''def'''
+fnamemodify('abc''%''def',    ':S'      )	'''abc''\''''%''\''''def'''
+fnamemodify("abc\ndef",       ':S'      )	'''abc^@def'''
+fnamemodify("abc\ndef",       ':S'      )	'''abc\^@def'''
+vim: ts=8