| # KH: Modified as it collides with the runtime-update patch |
| |
| To: vim-dev@vim.org |
| Subject: patch 7.0.187 |
| Fcc: outbox |
| From: Bram Moolenaar <Bram@moolenaar.net> |
| Mime-Version: 1.0 |
| Content-Type: text/plain; charset=ISO-8859-1 |
| Content-Transfer-Encoding: 8bit |
| |
| |
| Patch 7.0.187 |
| Problem: Can't source a remote script properly. |
| Solution: Add the SourceCmd event. (Charles Campbell) |
| Files: runtime/doc/autocmd.txt, src/ex_cmds2.c, src/fileio.c, src/vim.h |
| |
| diff -urN runtime/doc/autocmd.txt runtime/doc/autocmd.txt.new |
| |
| |
| @@ -1,4 +1,4 @@ |
| -*autocmd.txt* For Vim version 7.0. Last change: 2006 Aug 29 |
| +*autocmd.txt* For Vim version 7.0. Last change: 2007 Jan 16 |
| |
| |
| VIM REFERENCE MANUAL by Bram Moolenaar |
| @@ -279,6 +279,7 @@ |
| |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 |
| @@ -695,10 +696,16 @@ |
| *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, |
| @@ -1224,8 +1231,8 @@ |
| |
| *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 |
| @@ -1238,9 +1245,10 @@ |
| 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. |
| |
| |
| |
| |
| *** 2811,2816 **** |
| --- 2811,2827 ---- |
| } |
| |
| #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 |
| |
| |
| |
| |
| *** 7019,7024 **** |
| --- 7020,7026 ---- |
| {"ShellCmdPost", EVENT_SHELLCMDPOST}, |
| {"ShellFilterPost", EVENT_SHELLFILTERPOST}, |
| {"SourcePre", EVENT_SOURCEPRE}, |
| + {"SourceCmd", EVENT_SOURCECMD}, |
| {"SpellFileMissing",EVENT_SPELLFILEMISSING}, |
| {"StdinReadPost", EVENT_STDINREADPOST}, |
| {"StdinReadPre", EVENT_STDINREADPRE}, |
| |
| |
| |
| *** 1102,1108 **** |
| 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_FILECHANGEDSHELL, /* after shell command that changed file */ |
| EVENT_FILECHANGEDSHELLPOST, /* after (not) reloading changed file */ |
| EVENT_FILECHANGEDRO, /* before first change to read-only file */ |
| --- 1102,1108 ---- |
| EVENT_COLORSCHEME, /* after loading a colorscheme */ |
| EVENT_FILEAPPENDPOST, /* after appending to a file */ |
| EVENT_FILEAPPENDPRE, /* before appending to a file */ |
| ! 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,1152 **** |
| --- 1147,1153 ---- |
| 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 */ |
| |
| |
| |
| *** 668,669 **** |
| --- 668,671 ---- |
| { /* Add new patch number below this line */ |
| + /**/ |
| + 187, |
| /**/ |
| |
| -- |
| hundred-and-one symptoms of being an internet addict: |
| 29. Your phone bill comes to your doorstep in a box. |
| |
| /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 /// |