diff options
author | Bram Moolenaar <Bram@vim.org> | 2007-06-19 13:36:52 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2007-06-19 13:36:52 +0000 |
commit | 512e6b838a1576ac3fc3fba5f6ff2ba25864d511 (patch) | |
tree | 985ca97b2dad1350ed0123e60f2f0dc15b997993 /src/buffer.c | |
parent | 1864a4e0fd303ac2cb199df6993747a3a1f5a7b1 (diff) | |
download | vim-512e6b838a1576ac3fc3fba5f6ff2ba25864d511.zip |
updated for version 7.1-006
Diffstat (limited to 'src/buffer.c')
-rw-r--r-- | src/buffer.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/buffer.c b/src/buffer.c index 14b64c8ee..8bd3a3553 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -171,6 +171,13 @@ open_buffer(read_stdin, eap) /* Put the cursor on the first line. */ curwin->w_cursor.lnum = 1; curwin->w_cursor.col = 0; + + /* Set or reset 'modified' before executing autocommands, so that + * it can be changed there. */ + if (!readonlymode && !bufempty()) + changed(); + else if (retval != FAIL) + unchanged(curbuf, FALSE); #ifdef FEAT_AUTOCMD # ifdef FEAT_EVAL apply_autocmds_retval(EVENT_STDINREADPOST, NULL, NULL, FALSE, @@ -194,16 +201,16 @@ open_buffer(read_stdin, eap) /* When reading stdin, the buffer contents always needs writing, so set * the changed flag. Unless in readonly mode: "ls | gview -". * When interrupted and 'cpoptions' contains 'i' set changed flag. */ - if ((read_stdin && !readonlymode && !bufempty()) + if ((got_int && vim_strchr(p_cpo, CPO_INTMOD) != NULL) #ifdef FEAT_AUTOCMD || modified_was_set /* ":set modified" used in autocmd */ # ifdef FEAT_EVAL || (aborting() && vim_strchr(p_cpo, CPO_INTMOD) != NULL) # endif #endif - || (got_int && vim_strchr(p_cpo, CPO_INTMOD) != NULL)) + ) changed(); - else if (retval != FAIL) + else if (retval != FAIL && !read_stdin) unchanged(curbuf, FALSE); save_file_ff(curbuf); /* keep this fileformat */ |