diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-06-08 18:07:21 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-06-08 18:07:21 +0200 |
commit | c024b4667875e5bc6fd0ed791530e33c3161bff7 (patch) | |
tree | 4b7c358c24cb5f5d6d36a40250afbd44eaf6dda7 /src/buffer.c | |
parent | aef5c62a6fff7654bb8df7b9359e811f7a6e428f (diff) | |
download | vim-git-c024b4667875e5bc6fd0ed791530e33c3161bff7.tar.gz |
patch 8.1.1498: ":write" increments b:changedtick even though nothing changedv8.1.1498
Problem: ":write" increments b:changedtick even though nothing changed.
(Daniel Hahler)
Solution: Only increment b:changedtick if the modified flag is reset.
Diffstat (limited to 'src/buffer.c')
-rw-r--r-- | src/buffer.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/buffer.c b/src/buffer.c index 66f6fc654..e6ae09d25 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -60,7 +60,9 @@ static char *e_auabort = N_("E855: Autocommands caused command to abort"); /* Number of times free_buffer() was called. */ static int buf_free_count = 0; -/* Read data from buffer for retrying. */ +/* + * Read data from buffer for retrying. + */ static int read_buffer( int read_stdin, /* read file from stdin, otherwise fifo */ @@ -104,7 +106,7 @@ read_buffer( if (!readonlymode && !BUFEMPTY()) changed(); else if (retval == OK) - unchanged(curbuf, FALSE); + unchanged(curbuf, FALSE, TRUE); if (retval == OK) { @@ -275,7 +277,7 @@ open_buffer( ) changed(); else if (retval == OK && !read_stdin && !read_fifo) - unchanged(curbuf, FALSE); + unchanged(curbuf, FALSE, TRUE); save_file_ff(curbuf); /* keep this fileformat */ /* Set last_changedtick to avoid triggering a TextChanged autocommand right @@ -700,7 +702,7 @@ aucmd_abort: buf_clear_file(buf_T *buf) { buf->b_ml.ml_line_count = 1; - unchanged(buf, TRUE); + unchanged(buf, TRUE, TRUE); buf->b_shortname = FALSE; buf->b_p_eol = TRUE; buf->b_start_eol = TRUE; |