mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -04:00
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)
This commit is contained in:
@@ -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
|
||||
|
Reference in New Issue
Block a user