components/vim/vim72-patches/7.2.021
changeset 379 c6a17bba1da3
parent 378 f0b61ed1d10d
child 380 e92b3b4a1c66
--- a/components/vim/vim72-patches/7.2.021	Thu Jul 07 19:05:29 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-To: [email protected]
-Subject: Patch 7.2.021
-Fcc: outbox
-From: Bram Moolenaar <[email protected]>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.2.021
-Problem:    When executing autocommands getting the full file name may be
-	    slow. (David Kotchan)
-Solution:   Postpone calling FullName_save() until autocmd_fname is used.
-Files:	    src/ex_docmd.c, src/fileio.c, src/globals.h
-
-
-*** ../vim-7.2.020/src/ex_docmd.c	Thu Sep 18 12:43:21 2008
---- src/ex_docmd.c	Mon Sep 15 20:04:53 2008
-***************
-*** 9542,9547 ****
---- 9569,9583 ----
-  #ifdef FEAT_AUTOCMD
-  	case SPEC_AFILE:	/* file name for autocommand */
-  		result = autocmd_fname;
-+ 		if (result != NULL && !autocmd_fname_full)
-+ 		{
-+ 		    /* Still need to turn the fname into a full path.  It is
-+ 		     * postponed to avoid a delay when <afile> is not used. */
-+ 		    autocmd_fname_full = TRUE;
-+ 		    result = FullName_save(autocmd_fname, FALSE);
-+ 		    vim_free(autocmd_fname);
-+ 		    autocmd_fname = result;
-+ 		}
-  		if (result == NULL)
-  		{
-  		    *errormsg = (char_u *)_("E495: no autocommand file name to substitute for \"<afile>\"");
-*** ../vim-7.2.020/src/fileio.c	Wed Aug  6 18:43:07 2008
---- src/fileio.c	Tue Sep 16 21:24:26 2008
-***************
-*** 8523,8528 ****
---- 8523,8529 ----
-      char_u	*save_sourcing_name;
-      linenr_T	save_sourcing_lnum;
-      char_u	*save_autocmd_fname;
-+     int		save_autocmd_fname_full;
-      int		save_autocmd_bufnr;
-      char_u	*save_autocmd_match;
-      int		save_autocmd_busy;
-***************
-*** 8601,8606 ****
---- 8602,8608 ----
-       * Save the autocmd_* variables and info about the current buffer.
-       */
-      save_autocmd_fname = autocmd_fname;
-+     save_autocmd_fname_full = autocmd_fname_full;
-      save_autocmd_bufnr = autocmd_bufnr;
-      save_autocmd_match = autocmd_match;
-      save_autocmd_busy = autocmd_busy;
-***************
-*** 8618,8631 ****
-  	if (fname != NULL && *fname != NUL)
-  	    autocmd_fname = fname;
-  	else if (buf != NULL)
-! 	    autocmd_fname = buf->b_fname;
-  	else
-  	    autocmd_fname = NULL;
-      }
-      else
-  	autocmd_fname = fname_io;
-      if (autocmd_fname != NULL)
-! 	autocmd_fname = FullName_save(autocmd_fname, FALSE);
-  
-      /*
-       * Set the buffer number to be used for <abuf>.
---- 8620,8634 ----
-  	if (fname != NULL && *fname != NUL)
-  	    autocmd_fname = fname;
-  	else if (buf != NULL)
-! 	    autocmd_fname = buf->b_ffname;
-  	else
-  	    autocmd_fname = NULL;
-      }
-      else
-  	autocmd_fname = fname_io;
-      if (autocmd_fname != NULL)
-! 	autocmd_fname = vim_strsave(autocmd_fname);
-!     autocmd_fname_full = FALSE; /* call FullName_save() later */
-  
-      /*
-       * Set the buffer number to be used for <abuf>.
-***************
-*** 8810,8815 ****
---- 8813,8819 ----
-      sourcing_lnum = save_sourcing_lnum;
-      vim_free(autocmd_fname);
-      autocmd_fname = save_autocmd_fname;
-+     autocmd_fname_full = save_autocmd_fname_full;
-      autocmd_bufnr = save_autocmd_bufnr;
-      autocmd_match = save_autocmd_match;
-  #ifdef FEAT_EVAL
-***************
-*** 8918,8924 ****
-      {
-  	apc->curpat = NULL;
-  
-! 	/* only use a pattern when it has not been removed, has commands and
-  	 * the group matches. For buffer-local autocommands only check the
-  	 * buffer number. */
-  	if (ap->pat != NULL && ap->cmds != NULL
---- 8922,8928 ----
-      {
-  	apc->curpat = NULL;
-  
-! 	/* Only use a pattern when it has not been removed, has commands and
-  	 * the group matches. For buffer-local autocommands only check the
-  	 * buffer number. */
-  	if (ap->pat != NULL && ap->cmds != NULL
-*** ../vim-7.2.020/src/globals.h	Sat Jul 26 16:04:49 2008
---- src/globals.h	Mon Sep 15 19:59:28 2008
-***************
-*** 1022,1027 ****
---- 1022,1028 ----
-  #endif
-  #ifdef FEAT_AUTOCMD
-  EXTERN char_u	*autocmd_fname INIT(= NULL); /* fname for <afile> on cmdline */
-+ EXTERN int	autocmd_fname_full;	     /* autocmd_fname is full path */
-  EXTERN int	autocmd_bufnr INIT(= 0);     /* fnum for <abuf> on cmdline */
-  EXTERN char_u	*autocmd_match INIT(= NULL); /* name for <amatch> on cmdline */
-  EXTERN int	did_cursorhold INIT(= FALSE); /* set when CursorHold t'gerd */
-*** ../vim-7.2.020/src/version.c	Thu Sep 18 20:55:19 2008
---- src/version.c	Thu Sep 18 21:24:30 2008
-***************
-*** 678,679 ****
---- 678,681 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     21,
-  /**/
-
--- 
-From "know your smileys":
- :----}  You lie like Pinocchio
-
- /// 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    ///