Mercurial > vim
diff src/undo.c @ 10518:de77fa909414 v8.0.0149
commit https://github.com/vim/vim/commit/cbd4de44e8d08fba3c09eb40ad6e36e83faf020a
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Jan 7 16:14:57 2017 +0100
patch 8.0.0149: :earlier does not work after reading the undo file
Problem: ":earlier" and ":later" do not work after startup or reading the
undo file.
Solution: Use absolute time stamps instead of relative to the Vim start
time. (Christian Brabandt, Pavel Juhas, closes #1300, closes
#1254)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 07 Jan 2017 16:30:04 +0100 |
parents | 66f1b5bf3fa6 |
children | cbf17371627c |
line wrap: on
line diff
--- a/src/undo.c +++ b/src/undo.c @@ -2298,10 +2298,8 @@ undo_time( } else { - /* When doing computations with time_t subtract starttime, because - * time_t converted to a long may result in a wrong number. */ if (dosec) - target = (long)(curbuf->b_u_time_cur - starttime) + step; + target = (long)(curbuf->b_u_time_cur) + step; else if (dofile) { if (step < 0) @@ -2350,7 +2348,7 @@ undo_time( else { if (dosec) - closest = (long)(vim_time() - starttime + 1); + closest = (long)(vim_time() + 1); else if (dofile) closest = curbuf->b_u_save_nr_last + 2; else @@ -2388,7 +2386,7 @@ undo_time( { uhp->uh_walk = mark; if (dosec) - val = (long)(uhp->uh_time - starttime); + val = (long)(uhp->uh_time); else if (dofile) val = uhp->uh_save_nr; else