Mercurial > vim
diff src/undo.c @ 6616:290631797b76 v7.4.634
updated for version 7.4.634
Problem: Marks are not restored after redo + undo.
Solution: Fix the way marks are restored. (Olaf Dabrunz)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Tue, 17 Feb 2015 13:43:40 +0100 |
parents | f1ba154c3a12 |
children | 63b2bc619d5a |
line wrap: on
line diff
--- a/src/undo.c +++ b/src/undo.c @@ -2847,11 +2847,14 @@ u_undoredo(undo) * restore marks from before undo/redo */ for (i = 0; i < NMARKS; ++i) + { if (curhead->uh_namedm[i].lnum != 0) - { curbuf->b_namedm[i] = curhead->uh_namedm[i]; + if (namedm[i].lnum != 0) curhead->uh_namedm[i] = namedm[i]; - } + else + curhead->uh_namedm[i].lnum = 0; + } if (curhead->uh_visual.vi_start.lnum != 0) { curbuf->b_visual = curhead->uh_visual;