Mercurial > vim
changeset 3776:e70485d3f81d v7.3.646
updated for version 7.3.646
Problem: When reloading a buffer the undo file becomes unusable unless ":w"
is executed. (Dmitri Frank)
Solution: After reloading the buffer write the undo file. (Christian
Brabandt)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Wed, 29 Aug 2012 18:50:54 +0200 |
parents | d443cb11ad8b |
children | c0ac5ba66243 |
files | src/fileio.c src/version.c |
diffstat | 2 files changed, 17 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/fileio.c +++ b/src/fileio.c @@ -7060,8 +7060,23 @@ buf_check_timestamp(buf, focus) } if (reload) + { /* Reload the buffer. */ buf_reload(buf, orig_mode); +#ifdef FEAT_PERSISTENT_UNDO + if (buf->b_p_udf && buf->b_ffname != NULL) + { + char_u hash[UNDO_HASH_SIZE]; + buf_T *save_curbuf = curbuf; + + /* Any existing undo file is unusable, write it now. */ + curbuf = buf; + u_compute_hash(hash); + u_write_undo(NULL, FALSE, buf, hash); + curbuf = save_curbuf; + } +#endif + } #ifdef FEAT_AUTOCMD /* Trigger FileChangedShell when the file was changed in any way. */