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.
This commit is contained in:
Bram Moolenaar
2014-02-23 23:39:13 +01:00
parent 581966e832
commit 26df092843
20 changed files with 126 additions and 26 deletions
+7 -4
View File
@@ -5428,6 +5428,7 @@ shellescape({string} [, {special}]) *shellescape()*
< This results in a directory listing for the file under the
cursor. Example of use with |system()|: >
:call system("chmod +w -- " . shellescape(expand("%")))
< See also |::S|.
shiftwidth() *shiftwidth()*
@@ -5910,14 +5911,16 @@ system({expr} [, {input}]) *system()* *E677*
passed as stdin to the command. The string is written as-is,
you need to take care of using the correct line separators
yourself. Pipes are not used.
Note: Use |shellescape()| to escape special characters in a
command argument. Newlines in {expr} may cause the command to
fail. The characters in 'shellquote' and 'shellxquote' may
also cause trouble.
Note: Use |shellescape()| or |::S| with |expand()| or
|fnamemodify()| to escape special characters in a command
argument. Newlines in {expr} may cause the command to fail.
The characters in 'shellquote' and 'shellxquote' may also
cause trouble.
This is not to be used for interactive commands.
The result is a String. Example: >
:let files = system("ls " . shellescape(expand('%:h')))
:let files = system('ls ' . expand('%:h:S'))
< To make the result more system-independent, the shell output
is filtered to replace <CR> with <NL> for Macintosh, and