summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2007-01-16 20:33:19 +0000
committerBram Moolenaar <Bram@vim.org>2007-01-16 20:33:19 +0000
commit8dd1aa58ad96299425a95a48e2442dd1a039cfbd (patch)
treec1016d8cd9741b7db6fffc17fe994c0e7bc4e9a7
parentfb7c90c0face9790bdfe04cdfec95681fbc7b3e0 (diff)
downloadvim-git-8dd1aa58ad96299425a95a48e2442dd1a039cfbd.tar.gz
updated for version 7.0-187v7.0.187
-rw-r--r--runtime/doc/autocmd.txt25
-rw-r--r--src/ex_cmds2.c11
-rw-r--r--src/fileio.c1
-rw-r--r--src/version.c2
-rw-r--r--src/vim.h3
5 files changed, 33 insertions, 9 deletions
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index 1144af847..53acf8ab8 100644
--- 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 shell command with
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 |:preserve| command to make sure the
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.
diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c
index 50258725c..6396ee115 100644
--- 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
diff --git a/src/fileio.c b/src/fileio.c
index 2108bb87d..b4a8e9aac 100644
--- 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},
diff --git a/src/version.c b/src/version.c
index 587e05dd3..92cd49b7a 100644
--- 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,
diff --git a/src/vim.h b/src/vim.h
index aa313d390..d69fe412f 100644
--- 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 */