summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <bram@vim.org>2011-10-12 22:02:14 +0200
committerBram Moolenaar <bram@vim.org>2011-10-12 22:02:14 +0200
commitf85ab4e6b47187a0321a7b8f5bdbec3d86f4fd8c (patch)
treeeaedc9cafe936f2ddb654b7b3976f048dfc78ed3
parent28660702778f04eb3fb167bf4a13d7ac29ef4f8f (diff)
downloadvim-f85ab4e6b47187a0321a7b8f5bdbec3d86f4fd8c.tar.gz
updated for version 7.3.338v7.3.338v7-3-338
Problem: Using getchar() in an expression mapping doesn't work well. Solution: Don't save and restore the typeahead. (James Vega)
-rw-r--r--src/getchar.c23
-rw-r--r--src/testdir/test34.ok2
-rw-r--r--src/version.c2
3 files changed, 10 insertions, 17 deletions
diff --git a/src/getchar.c b/src/getchar.c
index 16bf65a0..a895483a 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -2460,27 +2460,18 @@ vgetorpeek(advance)
/*
* Handle ":map <expr>": 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 951dd8bc..d71183dc 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 a77a78d8..01bc41b4 100644
--- a/src/version.c
+++ b/src/version.c
@@ -710,6 +710,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 338,
+/**/
337,
/**/
336,