Edward L. Fox wrote:
On 6/6/07, Mohsin [EMAIL PROTECTED] wrote:
I usually do search like this:
$ grep Word *.* | vim -u myvimrc -
$ cat myvimrc
:autocmd StdinReadPost * :sav! /tmp/x
but when I quit :q, vim always asks me to save the file again,
why is the file marked as modified?
I tried all combinations of flags, but can't get vim to
mark the file as saved,
It's a bug. Here is the patch. Please test it carefully, thanks very
much for reporting this to me. I'll ask Bram to add it to the official
release soon.
Index: buffer.c
===
--- buffer.c(revision 296)
+++ buffer.c(working copy)
@@ -171,14 +171,6 @@
/* Put the cursor on the first line. */
curwin-w_cursor.lnum = 1;
curwin-w_cursor.col = 0;
-#ifdef FEAT_AUTOCMD
-# ifdef FEAT_EVAL
- apply_autocmds_retval(EVENT_STDINREADPOST, NULL, NULL, FALSE,
- curbuf, retval);
-# else
- apply_autocmds(EVENT_STDINREADPOST, NULL, NULL, FALSE, curbuf);
-# endif
-#endif
}
}
@@ -207,6 +199,18 @@
unchanged(curbuf, FALSE);
save_file_ff(curbuf); /* keep this fileformat */
+#ifdef FEAT_AUTOCMD
+if (read_stdin)
+{
+# ifdef FEAT_EVAL
+apply_autocmds_retval(EVENT_STDINREADPOST, NULL, NULL, FALSE,
+ curbuf, retval);
+# else
+apply_autocmds(EVENT_STDINREADPOST, NULL, NULL, FALSE, curbuf);
+# endif
+}
+#endif
+
/* require ! to overwrite the file, because it wasn't read completely
*/
#ifdef FEAT_EVAL
if (aborting())
Instead of moving the autocommands, it might be better to move the call
to changed() to before the autocommands (with the if that checks for
read_stdin). The readfile() call also invokes the ReadPost
autocommands, this keeps it consistent.
--
hundred-and-one symptoms of being an internet addict:
162. You go outside and look for a brightness knob to turn down the sun.
/// Bram Moolenaar -- [EMAIL PROTECTED] -- http://www.Moolenaar.net \\\
///sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\download, build and distribute -- http://www.A-A-P.org///
\\\help me help AIDS victims -- http://ICCF-Holland.org///