Mercurial > vim
diff src/memline.c @ 25953:d7e1cf30728c v8.2.3510
patch 8.2.3510: changes are only detected with one second accuracy
Commit: https://github.com/vim/vim/commit/0a7984af5601323fae7b3398f05a48087db7b767
Author: Leah Neukirchen <leah@vuxu.org>
Date: Thu Oct 14 21:27:55 2021 +0100
patch 8.2.3510: changes are only detected with one second accuracy
Problem: Changes are only detected with one second accuracy.
Solution: Use the nanosecond time if possible. (Leah Neukirchen,
closes #8873, closes #8875)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 14 Oct 2021 22:30:04 +0200 |
parents | a63676a1da2b |
children | c2d4e40a32a6 |
line wrap: on
line diff
--- a/src/memline.c +++ b/src/memline.c @@ -1032,6 +1032,7 @@ set_b0_fname(ZERO_BL *b0p, buf_T *buf) #endif buf_store_time(buf, &st, buf->b_ffname); buf->b_mtime_read = buf->b_mtime; + buf->b_mtime_read_ns = buf->b_mtime_ns; } else { @@ -1040,7 +1041,9 @@ set_b0_fname(ZERO_BL *b0p, buf_T *buf) long_to_char(0L, b0p->b0_ino); #endif buf->b_mtime = 0; + buf->b_mtime_ns = 0; buf->b_mtime_read = 0; + buf->b_mtime_read_ns = 0; buf->b_orig_size = 0; buf->b_orig_mode = 0; } @@ -2436,6 +2439,9 @@ ml_sync_all(int check_file, int check_ch */ if (mch_stat((char *)buf->b_ffname, &st) == -1 || st.st_mtime != buf->b_mtime_read +#ifdef ST_MTIM_NSEC + || st.ST_MTIM_NSEC != buf->b_mtime_read_ns +#endif || st.st_size != buf->b_orig_size) { ml_preserve(buf, FALSE);