From d22e9465f6228207a4fe722ee84371c7817060d6 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Tue, 15 Mar 2016 17:43:55 +0100 Subject: [PATCH] patch 7.4.1574 Problem: ":undo 0" does not work. (Florent Fayolle) Solution: Make it undo all the way. (closes #688) --- src/testdir/test_alot.vim | 1 + src/testdir/test_undolevels.vim | 2 -- src/undo.c | 9 ++++++++- src/version.c | 2 ++ 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/testdir/test_alot.vim b/src/testdir/test_alot.vim index 94ff8b1da..bd74afc4a 100644 --- a/src/testdir/test_alot.vim +++ b/src/testdir/test_alot.vim @@ -4,6 +4,7 @@ source test_assign.vim source test_cursor_func.vim source test_delete.vim +source test_ex_undo.vim source test_expand.vim source test_feedkeys.vim source test_file_perm.vim diff --git a/src/testdir/test_undolevels.vim b/src/testdir/test_undolevels.vim index 427cece24..7bb25effb 100644 --- a/src/testdir/test_undolevels.vim +++ b/src/testdir/test_undolevels.vim @@ -1,7 +1,5 @@ " Tests for 'undolevels' -set nocompatible viminfo+=nviminfo - func FillBuffer() for i in range(1,13) put=i diff --git a/src/undo.c b/src/undo.c index 2bf815ba4..07b278130 100644 --- a/src/undo.c +++ b/src/undo.c @@ -2286,7 +2286,14 @@ undo_time( * Init "closest" to a value we can't reach. */ if (absolute) { - target = step; + if (step == 0) + { + /* target 0 does not exist, got to 1 and above it. */ + target = 1; + above = TRUE; + } + else + target = step; closest = -1; } else diff --git a/src/version.c b/src/version.c index c3c932381..4779f7d87 100644 --- a/src/version.c +++ b/src/version.c @@ -743,6 +743,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1574, /**/ 1573, /**/ -- 2.50.1