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    ///

Reply via email to