diff options
Diffstat (limited to 'src/undo.c')
-rw-r--r-- | src/undo.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/undo.c b/src/undo.c index 376913d53..8fb46e4b7 100644 --- a/src/undo.c +++ b/src/undo.c @@ -1861,6 +1861,7 @@ u_read_undo(name, hash, orig_name) curbuf->b_u_seq_cur = seq_cur; curbuf->b_u_time_cur = seq_time; curbuf->b_u_save_nr_last = last_save_nr; + curbuf->b_u_save_nr_cur = last_save_nr; curbuf->b_u_synced = TRUE; vim_free(uhp_table); @@ -2794,7 +2795,7 @@ ex_undolist(eap) uhp->uh_time); if (uhp->uh_save_nr > 0) { - while (STRLEN(IObuff) < 32) + while (STRLEN(IObuff) < 33) STRCAT(IObuff, " "); vim_snprintf_add((char *)IObuff, IOSIZE, " %3ld", uhp->uh_save_nr); @@ -2849,7 +2850,7 @@ ex_undolist(eap) sort_strings((char_u **)ga.ga_data, ga.ga_len); msg_start(); - msg_puts_attr((char_u *)_("number changes time saved"), + msg_puts_attr((char_u *)_("number changes when saved"), hl_attr(HLF_T)); for (i = 0; i < ga.ga_len && !got_int; ++i) { @@ -2879,7 +2880,15 @@ u_add_time(buf, buflen, tt) if (time(NULL) - tt >= 100) { curtime = localtime(&tt); - (void)strftime((char *)buf, buflen, "%H:%M:%S", curtime); + if (time(NULL) - tt < (60L * 60L * 12L)) + /* within 12 hours */ + (void)strftime((char *)buf, buflen, "%H:%M:%S", curtime); + else if (time(NULL) - tt < (60L * 60L * 24L * 180L)) + /* within 6 months */ + (void)strftime((char *)buf, buflen, "%m/%d %H:%M:%S", curtime); + else + /* long ago */ + (void)strftime((char *)buf, buflen, "%y/%m/%d %H:%M:%S", curtime); } else #endif |