components/vim/vim72-patches/7.2.294
changeset 379 c6a17bba1da3
parent 378 f0b61ed1d10d
child 380 e92b3b4a1c66
--- a/components/vim/vim72-patches/7.2.294	Thu Jul 07 19:05:29 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,285 +0,0 @@
-To: [email protected]
-Subject: Patch 7.2.294
-Fcc: outbox
-From: Bram Moolenaar <[email protected]>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.2.294
-Problem:    When using TEMPDIRS dir name could get too long.
-Solution:   Overwrite tail instead of appending each time.  Use mkdtemp() when
-	    available. (James Vega)
-Files:	    src/auto/configure, src/config.h.in, src/configure.in, src/fileio.c
-
-
-*** ../vim-7.2.293/src/auto/configure	2009-09-11 13:44:33.000000000 +0200
---- src/auto/configure	2009-11-17 12:03:15.000000000 +0100
-***************
-*** 14019,14027 ****
-  
-  
-  
-  for ac_func in bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \
-  	getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
-! 	memset nanosleep opendir putenv qsort readlink select setenv \
-  	setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
-  	sigvec strcasecmp strerror strftime stricmp strncasecmp \
-  	strnicmp strpbrk strtol tgetent towlower towupper iswupper \
---- 14019,14028 ----
-  
-  
-  
-+ 
-  for ac_func in bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \
-  	getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
-! 	memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
-  	setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
-  	sigvec strcasecmp strerror strftime stricmp strncasecmp \
-  	strnicmp strpbrk strtol tgetent towlower towupper iswupper \
-*** ../vim-7.2.293/src/config.h.in	2009-05-21 23:25:38.000000000 +0200
---- src/config.h.in	2009-11-11 17:40:21.000000000 +0100
-***************
-*** 157,162 ****
---- 157,163 ----
-  #undef HAVE_LSTAT
-  #undef HAVE_MEMCMP
-  #undef HAVE_MEMSET
-+ #undef HAVE_MKDTEMP
-  #undef HAVE_NANOSLEEP
-  #undef HAVE_OPENDIR
-  #undef HAVE_FLOAT_FUNCS
-*** ../vim-7.2.293/src/configure.in	2009-09-11 13:44:33.000000000 +0200
---- src/configure.in	2009-11-11 17:40:21.000000000 +0100
-***************
-*** 2635,2641 ****
-  dnl Check for functions in one big call, to reduce the size of configure
-  AC_CHECK_FUNCS(bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \
-  	getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
-! 	memset nanosleep opendir putenv qsort readlink select setenv \
-  	setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
-  	sigvec strcasecmp strerror strftime stricmp strncasecmp \
-  	strnicmp strpbrk strtol tgetent towlower towupper iswupper \
---- 2635,2641 ----
-  dnl Check for functions in one big call, to reduce the size of configure
-  AC_CHECK_FUNCS(bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \
-  	getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
-! 	memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
-  	setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
-  	sigvec strcasecmp strerror strftime stricmp strncasecmp \
-  	strnicmp strpbrk strtol tgetent towlower towupper iswupper \
-*** ../vim-7.2.293/src/fileio.c	2009-09-11 17:24:01.000000000 +0200
---- src/fileio.c	2009-11-11 18:01:22.000000000 +0100
-***************
-*** 146,151 ****
---- 146,152 ----
-  # endif
-  #endif
-  static int move_lines __ARGS((buf_T *frombuf, buf_T *tobuf));
-+ static void vim_settempdir __ARGS((char_u *tempdir));
-  #ifdef FEAT_AUTOCMD
-  static char *e_auchangedbuf = N_("E812: Autocommands changed buffer or buffer name");
-  #endif
-***************
-*** 6987,6992 ****
---- 6988,7020 ----
-  #endif
-  
-  /*
-+  * Directory "tempdir" was created.  Expand this name to a full path and put
-+  * it in "vim_tempdir".  This avoids that using ":cd" would confuse us.
-+  * "tempdir" must be no longer than MAXPATHL.
-+  */
-+     static void
-+ vim_settempdir(tempdir)
-+     char_u	*tempdir;
-+ {
-+     char_u	*buf;
-+ 
-+     buf = alloc((unsigned)MAXPATHL + 2);
-+     if (buf != NULL)
-+     {
-+ 	if (vim_FullName(tempdir, buf, MAXPATHL, FALSE) == FAIL)
-+ 	    STRCPY(buf, tempdir);
-+ # ifdef __EMX__
-+ 	if (vim_strchr(buf, '/') != NULL)
-+ 	    STRCAT(buf, "/");
-+ 	else
-+ # endif
-+ 	    add_pathsep(buf);
-+ 	vim_tempdir = vim_strsave(buf);
-+ 	vim_free(buf);
-+     }
-+ }
-+ 
-+ /*
-   * vim_tempname(): Return a unique name that can be used for a temp file.
-   *
-   * The temp file is NOT created.
-***************
-*** 7007,7014 ****
-  #ifdef TEMPDIRNAMES
-      static char	*(tempdirs[]) = {TEMPDIRNAMES};
-      int		i;
--     long	nr;
--     long	off;
-  # ifndef EEXIST
-      struct stat	st;
-  # endif
---- 7035,7040 ----
-***************
-*** 7027,7032 ****
---- 7053,7064 ----
-  	 */
-  	for (i = 0; i < (int)(sizeof(tempdirs) / sizeof(char *)); ++i)
-  	{
-+ 	    size_t	itmplen;
-+ # ifndef HAVE_MKDTEMP
-+ 	    long	nr;
-+ 	    long	off;
-+ # endif
-+ 
-  	    /* expand $TMP, leave room for "/v1100000/999999999" */
-  	    expand_env((char_u *)tempdirs[i], itmp, TEMPNAMELEN - 20);
-  	    if (mch_isdir(itmp))		/* directory exists */
-***************
-*** 7040,7046 ****
---- 7072,7085 ----
-  		else
-  # endif
-  		    add_pathsep(itmp);
-+ 		itmplen = STRLEN(itmp);
-  
-+ # ifdef HAVE_MKDTEMP
-+ 		/* Leave room for filename */
-+ 		STRCAT(itmp, "vXXXXXX");
-+ 		if (mkdtemp((char *)itmp) != NULL)
-+ 		    vim_settempdir(itmp);
-+ # else
-  		/* Get an arbitrary number of up to 6 digits.  When it's
-  		 * unlikely that it already exists it will be faster,
-  		 * otherwise it doesn't matter.  The use of mkdir() avoids any
-***************
-*** 7052,7110 ****
-  		for (off = 0; off < 10000L; ++off)
-  		{
-  		    int		r;
-! #if defined(UNIX) || defined(VMS)
-  		    mode_t	umask_save;
-! #endif
-  
-! 		    sprintf((char *)itmp + STRLEN(itmp), "v%ld", nr + off);
-! # ifndef EEXIST
-  		    /* If mkdir() does not set errno to EEXIST, check for
-  		     * existing file here.  There is a race condition then,
-  		     * although it's fail-safe. */
-  		    if (mch_stat((char *)itmp, &st) >= 0)
-  			continue;
-! # endif
-! #if defined(UNIX) || defined(VMS)
-  		    /* Make sure the umask doesn't remove the executable bit.
-  		     * "repl" has been reported to use "177". */
-  		    umask_save = umask(077);
-! #endif
-  		    r = vim_mkdir(itmp, 0700);
-! #if defined(UNIX) || defined(VMS)
-  		    (void)umask(umask_save);
-! #endif
-  		    if (r == 0)
-  		    {
-! 			char_u	*buf;
-! 
-! 			/* Directory was created, use this name.
-! 			 * Expand to full path; When using the current
-! 			 * directory a ":cd" would confuse us. */
-! 			buf = alloc((unsigned)MAXPATHL + 1);
-! 			if (buf != NULL)
-! 			{
-! 			    if (vim_FullName(itmp, buf, MAXPATHL, FALSE)
-! 								      == FAIL)
-! 				STRCPY(buf, itmp);
-! # ifdef __EMX__
-! 			    if (vim_strchr(buf, '/') != NULL)
-! 				STRCAT(buf, "/");
-! 			    else
-! # endif
-! 				add_pathsep(buf);
-! 			    vim_tempdir = vim_strsave(buf);
-! 			    vim_free(buf);
-! 			}
-  			break;
-  		    }
-! # ifdef EEXIST
-  		    /* If the mkdir() didn't fail because the file/dir exists,
-  		     * we probably can't create any dir here, try another
-  		     * place. */
-  		    if (errno != EEXIST)
-! # endif
-  			break;
-  		}
-  		if (vim_tempdir != NULL)
-  		    break;
-  	    }
---- 7091,7131 ----
-  		for (off = 0; off < 10000L; ++off)
-  		{
-  		    int		r;
-! #  if defined(UNIX) || defined(VMS)
-  		    mode_t	umask_save;
-! #  endif
-  
-! 		    sprintf((char *)itmp + itmplen, "v%ld", nr + off);
-! #  ifndef EEXIST
-  		    /* If mkdir() does not set errno to EEXIST, check for
-  		     * existing file here.  There is a race condition then,
-  		     * although it's fail-safe. */
-  		    if (mch_stat((char *)itmp, &st) >= 0)
-  			continue;
-! #  endif
-! #  if defined(UNIX) || defined(VMS)
-  		    /* Make sure the umask doesn't remove the executable bit.
-  		     * "repl" has been reported to use "177". */
-  		    umask_save = umask(077);
-! #  endif
-  		    r = vim_mkdir(itmp, 0700);
-! #  if defined(UNIX) || defined(VMS)
-  		    (void)umask(umask_save);
-! #  endif
-  		    if (r == 0)
-  		    {
-! 			vim_settempdir(itmp);
-  			break;
-  		    }
-! #  ifdef EEXIST
-  		    /* If the mkdir() didn't fail because the file/dir exists,
-  		     * we probably can't create any dir here, try another
-  		     * place. */
-  		    if (errno != EEXIST)
-! #  endif
-  			break;
-  		}
-+ # endif /* HAVE_MKDTEMP */
-  		if (vim_tempdir != NULL)
-  		    break;
-  	    }
-*** ../vim-7.2.293/src/version.c	2009-11-11 17:30:05.000000000 +0100
---- src/version.c	2009-11-17 11:54:49.000000000 +0100
-***************
-*** 683,684 ****
---- 683,686 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     294,
-  /**/
-
--- 
-ARTHUR:       Now stand aside worthy adversary.
-BLACK KNIGHT: (Glancing at his shoulder) 'Tis but a scratch.
-ARTHUR:       A scratch?  Your arm's off.
-                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// 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    ///