forked from aniani/vim
patch 7.4.1643
Problem: Terminating file name has side effects. Solution: Restore the character. (mostly by James McCoy, closes #713)
This commit is contained in:
@@ -26440,8 +26440,10 @@ repeat:
|
|||||||
if (src[*usedlen] == ':' && src[*usedlen + 1] == 'S')
|
if (src[*usedlen] == ':' && src[*usedlen + 1] == 'S')
|
||||||
{
|
{
|
||||||
/* vim_strsave_shellescape() needs a NUL terminated string. */
|
/* vim_strsave_shellescape() needs a NUL terminated string. */
|
||||||
|
c = (*fnamep)[*fnamelen];
|
||||||
(*fnamep)[*fnamelen] = NUL;
|
(*fnamep)[*fnamelen] = NUL;
|
||||||
p = vim_strsave_shellescape(*fnamep, FALSE, FALSE);
|
p = vim_strsave_shellescape(*fnamep, FALSE, FALSE);
|
||||||
|
(*fnamep)[*fnamelen] = c;
|
||||||
if (p == NULL)
|
if (p == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
vim_free(*bufp);
|
vim_free(*bufp);
|
||||||
|
@@ -36,6 +36,7 @@ STARTTEST
|
|||||||
:Put fnamemodify('abc''%''def', ':S' )
|
:Put fnamemodify('abc''%''def', ':S' )
|
||||||
:Put fnamemodify("abc\ndef", ':S' )
|
:Put fnamemodify("abc\ndef", ':S' )
|
||||||
:Put expand('%:r:S') == shellescape(expand('%:r'))
|
:Put expand('%:r:S') == shellescape(expand('%:r'))
|
||||||
|
:Put join([expand('%:r'), expand('%:r:S'), expand('%')], ',')
|
||||||
:set shell=tcsh
|
:set shell=tcsh
|
||||||
:Put fnamemodify("abc\ndef", ':S' )
|
:Put fnamemodify("abc\ndef", ':S' )
|
||||||
:$put ='vim: ts=8'
|
:$put ='vim: ts=8'
|
||||||
|
@@ -26,5 +26,6 @@ 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'''
|
||||||
expand('%:r:S') == shellescape(expand('%:r')) 1
|
expand('%:r:S') == shellescape(expand('%:r')) 1
|
||||||
|
join([expand('%:r'), expand('%:r:S'), expand('%')], ',') 'test105,''test105'',test105.in'
|
||||||
fnamemodify("abc\ndef", ':S' ) '''abc\^@def'''
|
fnamemodify("abc\ndef", ':S' ) '''abc\^@def'''
|
||||||
vim: ts=8
|
vim: ts=8
|
||||||
|
@@ -748,6 +748,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1643,
|
||||||
/**/
|
/**/
|
||||||
1642,
|
1642,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user