To: vim_dev@googlegroups.com Subject: Patch 7.3.338 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 7.3.338 Problem: Using getchar() in an expression mapping doesn't work well. Solution: Don't save and restore the typeahead. (James Vega) Files: src/getchar.c, src/testdir/test34.ok *** ../vim-7.3.337/src/getchar.c 2011-08-17 20:33:18.000000000 +0200 --- src/getchar.c 2011-10-12 21:53:27.000000000 +0200 *************** *** 2460,2486 **** /* * Handle ":map ": evaluate the {rhs} as an ! * expression. Save and restore the typeahead so that ! * getchar() can be used. Also save and restore the ! * command line for "normal :". */ if (mp->m_expr) { - tasave_T tabuf; int save_vgetc_busy = vgetc_busy; ! save_typeahead(&tabuf); ! if (tabuf.typebuf_valid) ! { ! vgetc_busy = 0; ! save_m_keys = vim_strsave(mp->m_keys); ! save_m_str = vim_strsave(mp->m_str); ! s = eval_map_expr(save_m_str, NUL); ! vgetc_busy = save_vgetc_busy; ! } ! else ! s = NULL; ! restore_typeahead(&tabuf); } else #endif --- 2460,2477 ---- /* * Handle ":map ": evaluate the {rhs} as an ! * expression. Also save and restore the command line ! * for "normal :". */ if (mp->m_expr) { int save_vgetc_busy = vgetc_busy; ! vgetc_busy = 0; ! save_m_keys = vim_strsave(mp->m_keys); ! save_m_str = vim_strsave(mp->m_str); ! s = eval_map_expr(save_m_str, NUL); ! vgetc_busy = save_vgetc_busy; } else #endif *** ../vim-7.3.337/src/testdir/test34.ok 2010-08-15 21:57:29.000000000 +0200 --- src/testdir/test34.ok 2011-10-12 21:59:39.000000000 +0200 *************** *** 1,5 **** xxx4asdf fail nop ok 9 333 ! XX111XX ---222--- 1. one 2. two --- 1,5 ---- xxx4asdf fail nop ok 9 333 ! XX111-XX ---222--- 1. one 2. two *** ../vim-7.3.337/src/version.c 2011-10-12 21:04:15.000000000 +0200 --- src/version.c 2011-10-12 21:20:31.000000000 +0200 *************** *** 711,712 **** --- 711,714 ---- { /* Add new patch number below this line */ + /**/ + 338, /**/ -- hundred-and-one symptoms of being an internet addict: 65. The last time you looked at the clock it was 11:30pm, and in what seems like only a few seconds later, your sister runs past you to catch her 7am school bus. /// 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 ///