| To: vim-dev@vim.org |
| Subject: Patch 7.2.225 |
| Fcc: outbox |
| From: Bram Moolenaar <Bram@moolenaar.net> |
| Mime-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| |
| Patch 7.2.225 |
| Problem: When using ":normal" a saved character may be executed. |
| Solution: Also store old_char when saving typeahead. |
| Files: src/getchar.c, src/structs.h |
| |
| |
| |
| |
| |
| *** 1309,1314 **** |
| --- 1309,1317 ---- |
| return OK; |
| } |
| |
| + static int old_char = -1; /* character put back by vungetc() */ |
| + static int old_mod_mask; /* mod_mask for ungotten character */ |
| + |
| #if defined(FEAT_EVAL) || defined(FEAT_EX_EXTRA) || defined(PROTO) |
| |
| /* |
| |
| *** 1323,1328 **** |
| --- 1326,1335 ---- |
| if (!tp->typebuf_valid) |
| typebuf = tp->save_typebuf; |
| |
| + tp->old_char = old_char; |
| + tp->old_mod_mask = old_mod_mask; |
| + old_char = -1; |
| + |
| tp->save_stuffbuff = stuffbuff; |
| stuffbuff.bh_first.b_next = NULL; |
| # ifdef USE_INPUT_BUF |
| |
| *** 1344,1349 **** |
| --- 1351,1359 ---- |
| typebuf = tp->save_typebuf; |
| } |
| |
| + old_char = tp->old_char; |
| + old_mod_mask = tp->old_mod_mask; |
| + |
| free_buff(&stuffbuff); |
| stuffbuff = tp->save_stuffbuff; |
| # ifdef USE_INPUT_BUF |
| |
| *** 1499,1507 **** |
| #define KL_PART_KEY -1 /* keylen value for incomplete key-code */ |
| #define KL_PART_MAP -2 /* keylen value for incomplete mapping */ |
| |
| - static int old_char = -1; /* character put back by vungetc() */ |
| - static int old_mod_mask; /* mod_mask for ungotten character */ |
| - |
| /* |
| * Get the next input character. |
| * Can return a special key or a multi-byte character. |
| --- 1509,1514 ---- |
| |
| |
| |
| *** 882,887 **** |
| --- 882,889 ---- |
| { |
| typebuf_T save_typebuf; |
| int typebuf_valid; /* TRUE when save_typebuf valid */ |
| + int old_char; |
| + int old_mod_mask; |
| struct buffheader save_stuffbuff; |
| #ifdef USE_INPUT_BUF |
| char_u *save_inputbuf; |
| |
| |
| |
| *** 678,679 **** |
| --- 678,681 ---- |
| { /* Add new patch number below this line */ |
| + /**/ |
| + 225, |
| /**/ |
| |
| -- |
| hundred-and-one symptoms of being an internet addict: |
| 78. You find yourself dialing IP numbers on the phone. |
| |
| /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ |
| /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ |
| \\\ download, build and distribute -- http://www.A-A-P.org /// |
| \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |