changeset 1061:b4d11ddb7303 v7.0.187

updated for version 7.0-187
author vimboss
date Tue, 16 Jan 2007 20:33:19 +0000
parents 39d115408c71
children 9e084588b706
files runtime/doc/autocmd.txt src/ex_cmds2.c src/fileio.c src/version.c src/vim.h
diffstat 5 files changed, 33 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 7.0.  Last change: 2006 May 06
+*autocmd.txt*   For Vim version 7.0.  Last change: 2007 Jan 16
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -279,6 +279,7 @@ Name			triggered by ~
 |FuncUndefined|		a user function is used but it isn't defined
 |SpellFileMissing|	a spell file is used but it can't be found
 |SourcePre|		before sourcing a Vim script
+|SourceCmd|		before sourcing a Vim script |Cmd-event|
 
 |VimResized|		after the Vim window size changed
 |FocusGained|		Vim got input focus
@@ -690,10 +691,17 @@ ShellFilterPost			After executing a shel
 				Can be used to check for any changed files.
 							*SourcePre*
 SourcePre			Before sourcing a Vim script. |:source|
+				<afile> is the name of the file being sourced.
+							*SourceCmd*
+SourceCmd			When sourcing a Vim script. |:source|
+				<afile> is the name of the file being sourced.
+				The autocommand must source this file.
+				|Cmd-event|
 							*SpellFileMissing*
 SpellFileMissing		When trying to load a spell checking file and
-				it can't be found.  <amatch> is the language,
-				'encoding' also matters.  See
+				it can't be found.  The pattern is matched
+				against the language.  <amatch> is the
+				language, 'encoding' also matters.  See
 				|spell-SpellFileMissing|.
 							*StdinReadPost*
 StdinReadPost			After reading from the stdin into the buffer,
@@ -1219,8 +1227,8 @@ highlighting when starting Vim.
 
 							*Cmd-event*
 When using one of the "*Cmd" events, the matching autocommands are expected to
-do the file reading or writing.  This can be used when working with a special
-kind of file, for example on a remote system.
+do the file reading, writing or sourcing.  This can be used when working with
+a special kind of file, for example on a remote system.
 CAREFUL: If you use these events in a wrong way, it may have the effect of
 making it impossible to read or write the matching files!  Make sure you test
 your autocommands properly.  Best is to use a pattern that will never match a
@@ -1233,9 +1241,10 @@ possible with a BufReadCmd, use the |:pr
 original file isn't needed for recovery.  You might want to do this only when
 you expect the file to be modified.
 
-The |v:cmdarg| variable holds the "++enc=" and "++ff=" argument that are
-effective.  These should be used for the command that reads/writes the file.
-The |v:cmdbang| variable is one when "!" was used, zero otherwise.
+For file read and write commands the |v:cmdarg| variable holds the "++enc="
+and "++ff=" argument that are effective.  These should be used for the command
+that reads/writes the file.  The |v:cmdbang| variable is one when "!" was
+used, zero otherwise.
 
 See the $VIMRUNTIME/plugin/netrw.vim for examples.
 
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -2811,6 +2811,17 @@ do_source(fname, check_other, is_vimrc)
     }
 
 #ifdef FEAT_AUTOCMD
+    /* Apply SourceCmd autocommands, they should get the file and source it. */
+    if (has_autocmd(EVENT_SOURCECMD, fname_exp, NULL)
+	    && apply_autocmds(EVENT_SOURCECMD, fname_exp, fname_exp,
+							       FALSE, curbuf))
+# ifdef FEAT_EVAL
+	return aborting() ? FAIL : OK;
+# else
+	return OK;
+# endif
+
+    /* Apply SourcePre autocommands, they may get the file. */
     apply_autocmds(EVENT_SOURCEPRE, fname_exp, fname_exp, FALSE, curbuf);
 #endif
 
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -7019,6 +7019,7 @@ static struct event_name
     {"ShellCmdPost",	EVENT_SHELLCMDPOST},
     {"ShellFilterPost",	EVENT_SHELLFILTERPOST},
     {"SourcePre",	EVENT_SOURCEPRE},
+    {"SourceCmd",	EVENT_SOURCECMD},
     {"SpellFileMissing",EVENT_SPELLFILEMISSING},
     {"StdinReadPost",	EVENT_STDINREADPOST},
     {"StdinReadPre",	EVENT_STDINREADPRE},
--- a/src/version.c
+++ b/src/version.c
@@ -667,6 +667,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    187,
+/**/
     186,
 /**/
     185,
--- a/src/vim.h
+++ b/src/vim.h
@@ -1102,7 +1102,7 @@ enum auto_event
     EVENT_COLORSCHEME,		/* after loading a colorscheme */
     EVENT_FILEAPPENDPOST,	/* after appending to a file */
     EVENT_FILEAPPENDPRE,	/* before appending to a file */
-    EVENT_FILEAPPENDCMD,	/* appende to a file using command */
+    EVENT_FILEAPPENDCMD,	/* append to a file using command */
     EVENT_FILECHANGEDSHELL,	/* after shell command that changed file */
     EVENT_FILECHANGEDSHELLPOST,	/* after (not) reloading changed file */
     EVENT_FILECHANGEDRO,	/* before first change to read-only file */
@@ -1147,6 +1147,7 @@ enum auto_event
     EVENT_REMOTEREPLY,		/* upon string reception from a remote vim */
     EVENT_SWAPEXISTS,		/* found existing swap file */
     EVENT_SOURCEPRE,		/* before sourcing a Vim script */
+    EVENT_SOURCECMD,		/* sourcing a Vim script using command */
     EVENT_SPELLFILEMISSING,	/* spell file missing */
     EVENT_CURSORMOVED,		/* cursor was moved */
     EVENT_CURSORMOVEDI,		/* cursor was moved in Insert mode */