To: vim-dev@vim.org Subject: Patch 6.3a.028 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit ------------ Patch 6.3a.028 Problem: ":normal ." doesn't work inside a function, because redo is saved and restored. (Benji Fisher) Solution: Make a copy of the redo buffer when executing a function. Files: src/getchar.c *** ../vim-6.3a.027/src/getchar.c Fri May 7 10:59:37 2004 --- src/getchar.c Sun May 16 13:25:18 2004 *************** *** 477,488 **** --- 477,498 ---- void saveRedobuff() { + char_u *s; + if (save_level++ == 0) { save_redobuff = redobuff; redobuff.bh_first.b_next = NULL; save_old_redobuff = old_redobuff; old_redobuff.bh_first.b_next = NULL; + + /* Make a copy, so that ":normal ." in a function works. */ + s = get_buffcont(&save_redobuff, FALSE); + if (s != NULL) + { + add_buff(&redobuff, s, -1L); + vim_free(s); + } } } *** ../vim-6.3a.027/src/version.c Sat May 15 22:08:19 2004 --- src/version.c Sun May 16 13:27:16 2004 *************** *** 643,644 **** --- 643,646 ---- { /* Add new patch number below this line */ + /**/ + 28, /**/ -- We do not stumble over mountains, but over molehills. Confucius /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ Project leader for A-A-P -- http://www.A-A-P.org /// \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///