0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 8.0.1666: % argument in ch_log() causes trouble

Problem:    % argument in ch_log() causes trouble.
Solution:   Use string as third argument in internal ch_log(). (Dominique
            Pelle, closes #2784)
This commit is contained in:
Bram Moolenaar
2018-04-05 22:44:39 +02:00
parent 9a993e3c09
commit d5359b24ce
3 changed files with 16 additions and 2 deletions

View File

@@ -1993,7 +1993,7 @@ f_ch_log(typval_T *argvars, typval_T *rettv UNUSED)
if (argvars[1].v_type != VAR_UNKNOWN) if (argvars[1].v_type != VAR_UNKNOWN)
channel = get_channel_arg(&argvars[1], FALSE, FALSE, 0); channel = get_channel_arg(&argvars[1], FALSE, FALSE, 0);
ch_log(channel, (char *)msg); ch_log(channel, "%s", msg);
} }
/* /*
@@ -12927,7 +12927,7 @@ get_callback(typval_T *arg, partial_T **pp)
} }
/* /*
* Unref/free "callback" and "partial" retured by get_callback(). * Unref/free "callback" and "partial" returned by get_callback().
*/ */
void void
free_callback(char_u *callback, partial_T *partial) free_callback(char_u *callback, partial_T *partial)

View File

@@ -1823,3 +1823,15 @@ func Test_list_args()
call s:test_list_args('print("hello\"world\"")', 'hello"world"', 1) call s:test_list_args('print("hello\"world\"")', 'hello"world"', 1)
call s:test_list_args('print("hello\tworld")', "hello\tworld", 1) call s:test_list_args('print("hello\tworld")', "hello\tworld", 1)
endfunc endfunc
" Do this last, it stops any channel log.
func Test_zz_ch_log()
call ch_logfile('Xlog', 'w')
call ch_log('hello there')
call ch_log('%s%s')
call ch_logfile('')
let text = readfile('Xlog')
call assert_match("hello there", text[1])
call assert_match("%s%s", text[2])
call delete('Xlog')
endfunc

View File

@@ -762,6 +762,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 */
/**/
1666,
/**/ /**/
1665, 1665,
/**/ /**/