To: vim-dev@vim.org Subject: Patch 7.2.225 Fcc: outbox From: Bram Moolenaar 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 *** ../vim-7.2.224/src/getchar.c 2009-02-22 23:42:08.000000000 +0100 --- src/getchar.c 2009-07-09 18:09:13.000000000 +0200 *************** *** 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 ---- *** ../vim-7.2.224/src/structs.h 2009-06-16 16:01:34.000000000 +0200 --- src/structs.h 2009-07-09 18:09:20.000000000 +0200 *************** *** 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; *** ../vim-7.2.224/src/version.c 2009-07-09 18:15:19.000000000 +0200 --- src/version.c 2009-07-09 18:21:56.000000000 +0200 *************** *** 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 ///