To: vim_dev@googlegroups.com Subject: Patch 7.4.601 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 7.4.601 Problem: It is not possible to have feedkeys() insert characters. Solution: Add the 'i' flag. Files: src/eval.c, runtime/doc/eval.txt *** ../vim-7.4.600/src/eval.c 2015-01-27 13:49:27.883049396 +0100 --- src/eval.c 2015-01-27 15:13:01.928187370 +0100 *************** *** 10500,10505 **** --- 10500,10506 ---- typval_T *rettv UNUSED; { int remap = TRUE; + int insert = FALSE; char_u *keys, *flags; char_u nbuf[NUMBUFLEN]; int typed = FALSE; *************** *** 10524,10529 **** --- 10525,10531 ---- case 'n': remap = FALSE; break; case 'm': remap = TRUE; break; case 't': typed = TRUE; break; + case 'i': insert = TRUE; break; } } } *************** *** 10534,10540 **** if (keys_esc != NULL) { ins_typebuf(keys_esc, (remap ? REMAP_YES : REMAP_NONE), ! typebuf.tb_len, !typed, FALSE); vim_free(keys_esc); if (vgetc_busy) typebuf_was_filled = TRUE; --- 10536,10542 ---- if (keys_esc != NULL) { ins_typebuf(keys_esc, (remap ? REMAP_YES : REMAP_NONE), ! insert ? 0 : typebuf.tb_len, !typed, FALSE); vim_free(keys_esc); if (vgetc_busy) typebuf_was_filled = TRUE; *** ../vim-7.4.600/runtime/doc/eval.txt 2014-11-27 19:14:45.080940970 +0100 --- runtime/doc/eval.txt 2015-01-27 15:12:52.908285780 +0100 *************** *** 2957,2965 **** feedkeys({string} [, {mode}]) *feedkeys()* Characters in {string} are queued for processing as if they ! come from a mapping or were typed by the user. They are added ! to the end of the typeahead buffer, thus if a mapping is still ! being executed these characters come after them. The function does not wait for processing of keys contained in {string}. To include special keys into {string}, use double-quotes --- 2965,2976 ---- feedkeys({string} [, {mode}]) *feedkeys()* Characters in {string} are queued for processing as if they ! come from a mapping or were typed by the user. ! By default the string is added to the end of the typeahead ! buffer, thus if a mapping is still being executed the ! characters come after them. Use the 'i' flag to insert before ! other characters, they will be executed next, before any ! characters from a mapping. The function does not wait for processing of keys contained in {string}. To include special keys into {string}, use double-quotes *************** *** 2973,2978 **** --- 2984,2990 ---- 't' Handle keys as if typed; otherwise they are handled as if coming from a mapping. This matters for undo, opening folds, etc. + 'i' Insert the string instead of appending (see above). Return value is always 0. filereadable({file}) *filereadable()* *** ../vim-7.4.600/src/version.c 2015-01-27 14:54:07.944583588 +0100 --- src/version.c 2015-01-27 15:15:35.290514092 +0100 *************** *** 743,744 **** --- 743,746 ---- { /* Add new patch number below this line */ + /**/ + 601, /**/ -- hundred-and-one symptoms of being an internet addict: 127. You bring your laptop and cellular phone to church. /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 ///