Patch 7.4.1533
Problem: Using feedkeys() with an empty string disregards 'x' option.
Solution: Make 'x' work with an empty string. (Thinca)
Files: src/eval.c, src/testdir/test_alot.vim,
src/testdir/test_feedkeys.vim
*** ../vim-7.4.1532/src/eval.c 2016-03-09 23:14:02.295262008 +0100
--- src/eval.c 2016-03-10 22:12:50.157131273 +0100
***************
*** 11839,11862 ****
return;
keys = get_tv_string(&argvars[0]);
! if (*keys != NUL)
{
! if (argvars[1].v_type != VAR_UNKNOWN)
{
! flags = get_tv_string_buf(&argvars[1], nbuf);
! for ( ; *flags != NUL; ++flags)
{
! switch (*flags)
! {
! case 'n': remap = FALSE; break;
! case 'm': remap = TRUE; break;
! case 't': typed = TRUE; break;
! case 'i': insert = TRUE; break;
! case 'x': execute = TRUE; break;
! }
}
}
/* Need to escape K_SPECIAL and CSI before putting the string in the
* typeahead buffer. */
keys_esc = vim_strsave_escape_csi(keys);
--- 11839,11863 ----
return;
keys = get_tv_string(&argvars[0]);
!
! if (argvars[1].v_type != VAR_UNKNOWN)
{
! flags = get_tv_string_buf(&argvars[1], nbuf);
! for ( ; *flags != NUL; ++flags)
{
! switch (*flags)
{
! case 'n': remap = FALSE; break;
! case 'm': remap = TRUE; break;
! case 't': typed = TRUE; break;
! case 'i': insert = TRUE; break;
! case 'x': execute = TRUE; break;
}
}
+ }
+ if (*keys != NUL || execute)
+ {
/* Need to escape K_SPECIAL and CSI before putting the string in the
* typeahead buffer. */
keys_esc = vim_strsave_escape_csi(keys);
*** ../vim-7.4.1532/src/testdir/test_alot.vim 2016-03-08 17:08:38.562223096
+0100
--- src/testdir/test_alot.vim 2016-03-10 22:11:56.421701489 +0100
***************
*** 5,10 ****
--- 5,11 ----
source test_cursor_func.vim
source test_delete.vim
source test_expand.vim
+ source test_feedkeys.vim
source test_file_perm.vim
source test_glob2regpat.vim
source test_join.vim
*** ../vim-7.4.1532/src/testdir/test_feedkeys.vim 2016-03-10
22:19:13.757062936 +0100
--- src/testdir/test_feedkeys.vim 2016-03-10 22:16:08.903022957 +0100
***************
*** 0 ****
--- 1,10 ----
+ " Test feedkeys() function.
+
+ func Test_feedkeys_x_with_empty_string()
+ new
+ call feedkeys("ifoo\<Esc>")
+ call assert_equal('', getline('.'))
+ call feedkeys('', 'x')
+ call assert_equal('foo', getline('.'))
+ quit!
+ endfunc
*** ../vim-7.4.1532/src/version.c 2016-03-10 21:45:59.558192693 +0100
--- src/version.c 2016-03-10 22:19:20.788988393 +0100
***************
*** 745,746 ****
--- 745,748 ----
{ /* Add new patch number below this line */
+ /**/
+ 1533,
/**/
--
"Making it up? Why should I want to make anything up? Life's bad enough
as it is without wanting to invent any more of it."
-- Marvin, the Paranoid Android in Douglas Adams'
"The Hitchhiker's Guide to the Galaxy"
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.