Mercurial > emacs
diff src/buffer.h @ 107845:688679bd79f5
Try to detect file modification within the same second.
* buffer.h (struct buffer): New field modtime_size.
* buffer.c (reset_buffer): Initialize it.
* fileio.c (Finsert_file_contents, Fwrite_region): Set it.
(Fverify_visited_file_modtime): Check it.
(Fclear_visited_file_modtime, Fset_visited_file_modtime): Clear it.
(Fset_visited_file_modtime): Set (or clear) it.
| author | Stefan Monnier <monnier@iro.umontreal.ca> |
|---|---|
| date | Mon, 12 Apr 2010 21:47:40 -0400 |
| parents | c5f9e4613394 |
| children | bef5d1738c0b |
line wrap: on
line diff
--- a/src/buffer.h Mon Apr 12 21:24:10 2010 -0400 +++ b/src/buffer.h Mon Apr 12 21:47:40 2010 -0400 @@ -513,6 +513,12 @@ 0 means visited file modtime unknown; in no case complain about any mismatch on next save attempt. */ int modtime; + /* Size of the file when modtime was set. This is used to detect the + case where the file grew while we were reading it, so the modtime + is still the same (since it's rounded up to seconds) but we're actually + not up-to-date. -1 means the size is unknown. Only meaningful if + modtime is actually set. */ + EMACS_INT modtime_size; /* The value of text->modiff at the last auto-save. */ int auto_save_modified; /* The value of text->modiff at the last display error.
