From: Bram Moolenaar Date: Wed, 12 Oct 2011 20:02:14 +0000 (+0200) Subject: updated for version 7.3.338 X-Git-Tag: v7.3.338 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b3479bd2297d9a8d9614bb7c906e4a24b8d162bd;p=vim updated for version 7.3.338 Problem: Using getchar() in an expression mapping doesn't work well. Solution: Don't save and restore the typeahead. (James Vega) --- diff --git a/src/getchar.c b/src/getchar.c index 16bf65a0b..a895483a4 100644 --- a/src/getchar.c +++ b/src/getchar.c @@ -2460,27 +2460,18 @@ vgetorpeek(advance) /* * 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 :". + * expression. 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); + 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 diff --git a/src/testdir/test34.ok b/src/testdir/test34.ok index 951dd8bc6..d71183dce 100644 --- a/src/testdir/test34.ok +++ b/src/testdir/test34.ok @@ -1,5 +1,5 @@ xxx4asdf fail nop ok 9 333 -XX111XX +XX111-XX ---222--- 1. one 2. two diff --git a/src/version.c b/src/version.c index a77a78d88..01bc41b45 100644 --- a/src/version.c +++ b/src/version.c @@ -709,6 +709,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 338, /**/ 337, /**/