30914c9
To: vim_dev@googlegroups.com
30914c9
Subject: Patch 7.3.872
30914c9
Fcc: outbox
30914c9
From: Bram Moolenaar <Bram@moolenaar.net>
30914c9
Mime-Version: 1.0
30914c9
Content-Type: text/plain; charset=UTF-8
30914c9
Content-Transfer-Encoding: 8bit
30914c9
------------
30914c9
30914c9
Patch 7.3.872
30914c9
Problem:    On some systems case of file names is always ignored, on others
30914c9
	    never.
30914c9
Solution:   Add the 'fileignorecase' option to control this at runtime.
30914c9
	    Implies 'wildignorecase'.
30914c9
Files:	    src/buffer.c, src/edit.c, src/ex_cmds2.c, src/ex_getln.c,
30914c9
	    src/fileio.c, src/misc1.c, src/misc2.c, src/option.c,
30914c9
	    src/option.h, src/vim.h, runtime/doc/options.txt
30914c9
30914c9
30914c9
*** ../vim-7.3.871/src/buffer.c	2013-03-19 14:25:50.000000000 +0100
30914c9
--- src/buffer.c	2013-03-19 16:03:42.000000000 +0100
30914c9
***************
30914c9
*** 2401,2412 ****
30914c9
      if (name != NULL)
30914c9
      {
30914c9
  	regmatch.regprog = prog;
30914c9
! #ifdef CASE_INSENSITIVE_FILENAME
30914c9
! 	regmatch.rm_ic = TRUE;		/* Always ignore case */
30914c9
! #else
30914c9
! 	regmatch.rm_ic = FALSE;		/* Never ignore case */
30914c9
! #endif
30914c9
! 
30914c9
  	if (vim_regexec(&regmatch, name, (colnr_T)0))
30914c9
  	    match = name;
30914c9
  	else
30914c9
--- 2401,2407 ----
30914c9
      if (name != NULL)
30914c9
      {
30914c9
  	regmatch.regprog = prog;
30914c9
! 	regmatch.rm_ic = p_fic;	/* ignore case when 'fileignorecase' is set */
30914c9
  	if (vim_regexec(&regmatch, name, (colnr_T)0))
30914c9
  	    match = name;
30914c9
  	else
30914c9
*** ../vim-7.3.871/src/edit.c	2013-03-19 13:33:18.000000000 +0100
30914c9
--- src/edit.c	2013-03-19 15:43:19.000000000 +0100
30914c9
***************
30914c9
*** 4336,4348 ****
30914c9
  
30914c9
  		/* May change home directory back to "~". */
30914c9
  		tilde_replace(compl_pattern, num_matches, matches);
30914c9
! 		ins_compl_add_matches(num_matches, matches,
30914c9
! #ifdef CASE_INSENSITIVE_FILENAME
30914c9
! 			TRUE
30914c9
! #else
30914c9
! 			FALSE
30914c9
! #endif
30914c9
! 			);
30914c9
  	    }
30914c9
  	    break;
30914c9
  
30914c9
--- 4336,4342 ----
30914c9
  
30914c9
  		/* May change home directory back to "~". */
30914c9
  		tilde_replace(compl_pattern, num_matches, matches);
30914c9
! 		ins_compl_add_matches(num_matches, matches, p_fic || p_wic);
30914c9
  	    }
30914c9
  	    break;
30914c9
  
30914c9
*** ../vim-7.3.871/src/ex_cmds2.c	2012-10-03 18:24:55.000000000 +0200
30914c9
--- src/ex_cmds2.c	2013-03-19 16:03:50.000000000 +0100
30914c9
***************
30914c9
*** 1926,1936 ****
30914c9
  	 * Delete the items: use each item as a regexp and find a match in the
30914c9
  	 * argument list.
30914c9
  	 */
30914c9
! #ifdef CASE_INSENSITIVE_FILENAME
30914c9
! 	regmatch.rm_ic = TRUE;		/* Always ignore case */
30914c9
! #else
30914c9
! 	regmatch.rm_ic = FALSE;		/* Never ignore case */
30914c9
! #endif
30914c9
  	for (i = 0; i < new_ga.ga_len && !got_int; ++i)
30914c9
  	{
30914c9
  	    p = ((char_u **)new_ga.ga_data)[i];
30914c9
--- 1926,1932 ----
30914c9
  	 * Delete the items: use each item as a regexp and find a match in the
30914c9
  	 * argument list.
30914c9
  	 */
30914c9
! 	regmatch.rm_ic = p_fic;	/* ignore case when 'fileignorecase' is set */
30914c9
  	for (i = 0; i < new_ga.ga_len && !got_int; ++i)
30914c9
  	{
30914c9
  	    p = ((char_u **)new_ga.ga_data)[i];
30914c9
*** ../vim-7.3.871/src/ex_getln.c	2012-11-28 16:49:53.000000000 +0100
30914c9
--- src/ex_getln.c	2013-03-19 16:03:53.000000000 +0100
30914c9
***************
30914c9
*** 3653,3671 ****
30914c9
  	{
30914c9
  	    for (i = 0; i < xp->xp_numfiles; ++i)
30914c9
  	    {
30914c9
! #ifdef CASE_INSENSITIVE_FILENAME
30914c9
! 		if (xp->xp_context == EXPAND_DIRECTORIES
30914c9
  			|| xp->xp_context == EXPAND_FILES
30914c9
  			|| xp->xp_context == EXPAND_SHELLCMD
30914c9
! 			|| xp->xp_context == EXPAND_BUFFERS)
30914c9
  		{
30914c9
  		    if (TOLOWER_LOC(xp->xp_files[i][len]) !=
30914c9
  					    TOLOWER_LOC(xp->xp_files[0][len]))
30914c9
  			break;
30914c9
  		}
30914c9
! 		else
30914c9
! #endif
30914c9
! 		     if (xp->xp_files[i][len] != xp->xp_files[0][len])
30914c9
  		    break;
30914c9
  	    }
30914c9
  	    if (i < xp->xp_numfiles)
30914c9
--- 3653,3668 ----
30914c9
  	{
30914c9
  	    for (i = 0; i < xp->xp_numfiles; ++i)
30914c9
  	    {
30914c9
! 		if (p_fic && (xp->xp_context == EXPAND_DIRECTORIES
30914c9
  			|| xp->xp_context == EXPAND_FILES
30914c9
  			|| xp->xp_context == EXPAND_SHELLCMD
30914c9
! 			|| xp->xp_context == EXPAND_BUFFERS))
30914c9
  		{
30914c9
  		    if (TOLOWER_LOC(xp->xp_files[i][len]) !=
30914c9
  					    TOLOWER_LOC(xp->xp_files[0][len]))
30914c9
  			break;
30914c9
  		}
30914c9
! 		else if (xp->xp_files[i][len] != xp->xp_files[0][len])
30914c9
  		    break;
30914c9
  	    }
30914c9
  	    if (i < xp->xp_numfiles)
30914c9
*** ../vim-7.3.871/src/fileio.c	2013-03-19 13:33:18.000000000 +0100
30914c9
--- src/fileio.c	2013-03-19 15:49:28.000000000 +0100
30914c9
***************
30914c9
*** 6485,6493 ****
30914c9
  #ifdef HAVE_ACL
30914c9
      vim_acl_T	acl;		/* ACL from original file */
30914c9
  #endif
30914c9
- #if defined(UNIX) || defined(CASE_INSENSITIVE_FILENAME)
30914c9
      int		use_tmp_file = FALSE;
30914c9
- #endif
30914c9
  
30914c9
      /*
30914c9
       * When the names are identical, there is nothing to do.  When they refer
30914c9
--- 6485,6491 ----
30914c9
***************
30914c9
*** 6496,6506 ****
30914c9
       */
30914c9
      if (fnamecmp(from, to) == 0)
30914c9
      {
30914c9
! #ifdef CASE_INSENSITIVE_FILENAME
30914c9
! 	if (STRCMP(gettail(from), gettail(to)) != 0)
30914c9
  	    use_tmp_file = TRUE;
30914c9
  	else
30914c9
- #endif
30914c9
  	    return 0;
30914c9
      }
30914c9
  
30914c9
--- 6494,6502 ----
30914c9
       */
30914c9
      if (fnamecmp(from, to) == 0)
30914c9
      {
30914c9
! 	if (p_fic && STRCMP(gettail(from), gettail(to)) != 0)
30914c9
  	    use_tmp_file = TRUE;
30914c9
  	else
30914c9
  	    return 0;
30914c9
      }
30914c9
  
30914c9
***************
30914c9
*** 6539,6545 ****
30914c9
      }
30914c9
  #endif
30914c9
  
30914c9
- #if defined(UNIX) || defined(CASE_INSENSITIVE_FILENAME)
30914c9
      if (use_tmp_file)
30914c9
      {
30914c9
  	char	tempname[MAXPATHL + 1];
30914c9
--- 6535,6540 ----
30914c9
***************
30914c9
*** 6572,6578 ****
30914c9
  	}
30914c9
  	return -1;
30914c9
      }
30914c9
- #endif
30914c9
  
30914c9
      /*
30914c9
       * Delete the "to" file, this is required on some systems to make the
30914c9
--- 6567,6572 ----
30914c9
***************
30914c9
*** 10007,10017 ****
30914c9
      int		match = FALSE;
30914c9
  #endif
30914c9
  
30914c9
! #ifdef CASE_INSENSITIVE_FILENAME
30914c9
!     regmatch.rm_ic = TRUE;		/* Always ignore case */
30914c9
! #else
30914c9
!     regmatch.rm_ic = FALSE;		/* Don't ever ignore case */
30914c9
! #endif
30914c9
  #ifdef FEAT_OSFILETYPE
30914c9
      if (*pattern == '<')
30914c9
      {
30914c9
--- 10001,10007 ----
30914c9
      int		match = FALSE;
30914c9
  #endif
30914c9
  
30914c9
!     regmatch.rm_ic = p_fic; /* ignore case if 'fileignorecase' is set */
30914c9
  #ifdef FEAT_OSFILETYPE
30914c9
      if (*pattern == '<')
30914c9
      {
30914c9
*** ../vim-7.3.871/src/misc1.c	2013-03-16 21:35:28.000000000 +0100
30914c9
--- src/misc1.c	2013-03-19 16:16:24.000000000 +0100
30914c9
***************
30914c9
*** 5026,5041 ****
30914c9
      return retval;
30914c9
  }
30914c9
  
30914c9
- #if (defined(CASE_INSENSITIVE_FILENAME) && defined(BACKSLASH_IN_FILENAME)) \
30914c9
- 	|| defined(PROTO)
30914c9
  /*
30914c9
!  * Versions of fnamecmp() and fnamencmp() that handle '/' and '\' equally.
30914c9
   */
30914c9
      int
30914c9
  vim_fnamecmp(x, y)
30914c9
      char_u	*x, *y;
30914c9
  {
30914c9
      return vim_fnamencmp(x, y, MAXPATHL);
30914c9
  }
30914c9
  
30914c9
      int
30914c9
--- 5026,5046 ----
30914c9
      return retval;
30914c9
  }
30914c9
  
30914c9
  /*
30914c9
!  * Versions of fnamecmp() and fnamencmp() that handle '/' and '\' equally
30914c9
!  * and deal with 'fileignorecase'.
30914c9
   */
30914c9
      int
30914c9
  vim_fnamecmp(x, y)
30914c9
      char_u	*x, *y;
30914c9
  {
30914c9
+ #ifdef BACKSLASH_IN_FILENAME
30914c9
      return vim_fnamencmp(x, y, MAXPATHL);
30914c9
+ #else
30914c9
+     if (p_fic)
30914c9
+ 	return MB_STRICMP(x, y);
30914c9
+     return STRCMP(x, y);
30914c9
+ #endif
30914c9
  }
30914c9
  
30914c9
      int
30914c9
***************
30914c9
*** 5043,5051 ****
30914c9
      char_u	*x, *y;
30914c9
      size_t	len;
30914c9
  {
30914c9
      while (len > 0 && *x && *y)
30914c9
      {
30914c9
! 	if (TOLOWER_LOC(*x) != TOLOWER_LOC(*y)
30914c9
  		&& !(*x == '/' && *y == '\\')
30914c9
  		&& !(*x == '\\' && *y == '/'))
30914c9
  	    break;
30914c9
--- 5048,5058 ----
30914c9
      char_u	*x, *y;
30914c9
      size_t	len;
30914c9
  {
30914c9
+ #ifdef BACKSLASH_IN_FILENAME
30914c9
+     /* TODO: multi-byte characters. */
30914c9
      while (len > 0 && *x && *y)
30914c9
      {
30914c9
! 	if ((p_fic ? TOLOWER_LOC(*x) != TOLOWER_LOC(*y) : *x != *y)
30914c9
  		&& !(*x == '/' && *y == '\\')
30914c9
  		&& !(*x == '\\' && *y == '/'))
30914c9
  	    break;
30914c9
***************
30914c9
*** 5056,5063 ****
30914c9
      if (len == 0)
30914c9
  	return 0;
30914c9
      return (*x - *y);
30914c9
! }
30914c9
  #endif
30914c9
  
30914c9
  /*
30914c9
   * Concatenate file names fname1 and fname2 into allocated memory.
30914c9
--- 5063,5074 ----
30914c9
      if (len == 0)
30914c9
  	return 0;
30914c9
      return (*x - *y);
30914c9
! #else
30914c9
!     if (p_fic)
30914c9
! 	return MB_STRNICMP(x, y, len);
30914c9
!     return STRNCMP(x, y, len);
30914c9
  #endif
30914c9
+ }
30914c9
  
30914c9
  /*
30914c9
   * Concatenate file names fname1 and fname2 into allocated memory.
30914c9
***************
30914c9
*** 9835,9845 ****
30914c9
  	}
30914c9
  	else if (path_end >= path + wildoff
30914c9
  			 && (vim_strchr((char_u *)"*?[{~$", *path_end) != NULL
30914c9
! #ifndef CASE_INSENSITIVE_FILENAME
30914c9
! 			     || ((flags & EW_ICASE)
30914c9
! 					       && isalpha(PTR2CHAR(path_end)))
30914c9
! #endif
30914c9
! 			     ))
30914c9
  	    e = p;
30914c9
  #ifdef FEAT_MBYTE
30914c9
  	if (has_mbyte)
30914c9
--- 9846,9853 ----
30914c9
  	}
30914c9
  	else if (path_end >= path + wildoff
30914c9
  			 && (vim_strchr((char_u *)"*?[{~$", *path_end) != NULL
30914c9
! 			     || (!p_fic && (flags & EW_ICASE)
30914c9
! 					     && isalpha(PTR2CHAR(path_end)))))
30914c9
  	    e = p;
30914c9
  #ifdef FEAT_MBYTE
30914c9
  	if (has_mbyte)
30914c9
***************
30914c9
*** 9882,9895 ****
30914c9
      }
30914c9
  
30914c9
      /* compile the regexp into a program */
30914c9
- #ifdef CASE_INSENSITIVE_FILENAME
30914c9
-     regmatch.rm_ic = TRUE;		/* Behave like Terminal.app */
30914c9
- #else
30914c9
      if (flags & EW_ICASE)
30914c9
  	regmatch.rm_ic = TRUE;		/* 'wildignorecase' set */
30914c9
      else
30914c9
! 	regmatch.rm_ic = FALSE;		/* Don't ignore case */
30914c9
! #endif
30914c9
      if (flags & (EW_NOERROR | EW_NOTWILD))
30914c9
  	++emsg_silent;
30914c9
      regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
30914c9
--- 9890,9899 ----
30914c9
      }
30914c9
  
30914c9
      /* compile the regexp into a program */
30914c9
      if (flags & EW_ICASE)
30914c9
  	regmatch.rm_ic = TRUE;		/* 'wildignorecase' set */
30914c9
      else
30914c9
! 	regmatch.rm_ic = p_fic;	/* ignore case when 'fileignorecase' is set */
30914c9
      if (flags & (EW_NOERROR | EW_NOTWILD))
30914c9
  	++emsg_silent;
30914c9
      regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
30914c9
*** ../vim-7.3.871/src/misc2.c	2012-11-28 18:31:49.000000000 +0100
30914c9
--- src/misc2.c	2013-03-19 16:39:56.000000000 +0100
30914c9
***************
30914c9
*** 5362,5374 ****
30914c9
      if (STRLEN(s1) != STRLEN(s2))
30914c9
  	return FAIL;
30914c9
  
30914c9
      for (i = 0; s1[i] != NUL && s2[i] != NUL; i++)
30914c9
      {
30914c9
  	if (s1[i] != s2[i]
30914c9
! #ifdef CASE_INSENSITIVE_FILENAME
30914c9
! 		&& TOUPPER_LOC(s1[i]) != TOUPPER_LOC(s2[i])
30914c9
! #endif
30914c9
! 		)
30914c9
  	{
30914c9
  	    if (i >= 2)
30914c9
  		if (s1[i-1] == '*' && s1[i-2] == '*')
30914c9
--- 5362,5372 ----
30914c9
      if (STRLEN(s1) != STRLEN(s2))
30914c9
  	return FAIL;
30914c9
  
30914c9
+     /* TODO: handle multi-byte characters. */
30914c9
      for (i = 0; s1[i] != NUL && s2[i] != NUL; i++)
30914c9
      {
30914c9
  	if (s1[i] != s2[i]
30914c9
! 		      && (!p_fic || TOUPPER_LOC(s1[i]) != TOUPPER_LOC(s2[i])))
30914c9
  	{
30914c9
  	    if (i >= 2)
30914c9
  		if (s1[i-1] == '*' && s1[i-2] == '*')
30914c9
***************
30914c9
*** 6123,6134 ****
30914c9
  	    break;
30914c9
  	}
30914c9
  
30914c9
! 	if (
30914c9
! #ifdef CASE_INSENSITIVE_FILENAME
30914c9
! 		TOUPPER_LOC(p[i]) != TOUPPER_LOC(q[i])
30914c9
! #else
30914c9
! 		p[i] != q[i]
30914c9
! #endif
30914c9
  #ifdef BACKSLASH_IN_FILENAME
30914c9
  		/* consider '/' and '\\' to be equal */
30914c9
  		&& !((p[i] == '/' && q[i] == '\\')
30914c9
--- 6121,6127 ----
30914c9
  	    break;
30914c9
  	}
30914c9
  
30914c9
! 	if ((p_fic ? TOUPPER_LOC(p[i]) != TOUPPER_LOC(q[i]) : p[i] != q[i])
30914c9
  #ifdef BACKSLASH_IN_FILENAME
30914c9
  		/* consider '/' and '\\' to be equal */
30914c9
  		&& !((p[i] == '/' && q[i] == '\\')
30914c9
*** ../vim-7.3.871/src/option.c	2013-03-13 20:42:28.000000000 +0100
30914c9
--- src/option.c	2013-03-19 15:40:25.000000000 +0100
30914c9
***************
30914c9
*** 1108,1113 ****
30914c9
--- 1108,1122 ----
30914c9
  			    (char_u *)&p_ffs, PV_NONE,
30914c9
  			    {(char_u *)DFLT_FFS_VI, (char_u *)DFLT_FFS_VIM}
30914c9
  			    SCRIPTID_INIT},
30914c9
+     {"fileignorecase", "fic", P_BOOL|P_VI_DEF,
30914c9
+ 			    (char_u *)&p_fic, PV_NONE,
30914c9
+ 			    {
30914c9
+ #ifdef CASE_INSENSITIVE_FILENAME
30914c9
+ 				    (char_u *)TRUE,
30914c9
+ #else
30914c9
+ 				    (char_u *)FALSE,
30914c9
+ #endif
30914c9
+ 					(char_u *)0L} SCRIPTID_INIT},
30914c9
      {"filetype",    "ft",   P_STRING|P_ALLOCED|P_VI_DEF|P_NOGLOB|P_NFNAME,
30914c9
  #ifdef FEAT_AUTOCMD
30914c9
  			    (char_u *)&p_ft, PV_FT,
30914c9
*** ../vim-7.3.871/src/option.h	2012-08-15 16:20:59.000000000 +0200
30914c9
--- src/option.h	2013-03-19 15:42:24.000000000 +0100
30914c9
***************
30914c9
*** 453,458 ****
30914c9
--- 453,459 ----
30914c9
  EXTERN char_u	*p_fencs;	/* 'fileencodings' */
30914c9
  #endif
30914c9
  EXTERN char_u	*p_ffs;		/* 'fileformats' */
30914c9
+ EXTERN long	p_fic;		/* 'fileignorecase' */
30914c9
  #ifdef FEAT_FOLDING
30914c9
  EXTERN char_u	*p_fcl;		/* 'foldclose' */
30914c9
  EXTERN long	p_fdls;		/* 'foldlevelstart' */
30914c9
*** ../vim-7.3.871/src/vim.h	2013-03-19 13:33:18.000000000 +0100
30914c9
--- src/vim.h	2013-03-19 16:14:29.000000000 +0100
30914c9
***************
30914c9
*** 1627,1644 ****
30914c9
   * (this does not account for maximum name lengths and things like "../dir",
30914c9
   * thus it is not 100% accurate!)
30914c9
   */
30914c9
! #ifdef CASE_INSENSITIVE_FILENAME
30914c9
! # ifdef BACKSLASH_IN_FILENAME
30914c9
! #  define fnamecmp(x, y) vim_fnamecmp((x), (y))
30914c9
! #  define fnamencmp(x, y, n) vim_fnamencmp((x), (y), (size_t)(n))
30914c9
! # else
30914c9
! #  define fnamecmp(x, y) MB_STRICMP((x), (y))
30914c9
! #  define fnamencmp(x, y, n) MB_STRNICMP((x), (y), (n))
30914c9
! # endif
30914c9
! #else
30914c9
! # define fnamecmp(x, y) strcmp((char *)(x), (char *)(y))
30914c9
! # define fnamencmp(x, y, n) strncmp((char *)(x), (char *)(y), (size_t)(n))
30914c9
! #endif
30914c9
  
30914c9
  #ifdef HAVE_MEMSET
30914c9
  # define vim_memset(ptr, c, size)   memset((ptr), (c), (size))
30914c9
--- 1627,1634 ----
30914c9
   * (this does not account for maximum name lengths and things like "../dir",
30914c9
   * thus it is not 100% accurate!)
30914c9
   */
30914c9
! #define fnamecmp(x, y) vim_fnamecmp((char_u *)(x), (char_u *)(y))
30914c9
! #define fnamencmp(x, y, n) vim_fnamencmp((char_u *)(x), (char_u *)(y), (size_t)(n))
30914c9
  
30914c9
  #ifdef HAVE_MEMSET
30914c9
  # define vim_memset(ptr, c, size)   memset((ptr), (c), (size))
30914c9
*** ../vim-7.3.871/runtime/doc/options.txt	2013-01-23 18:37:31.000000000 +0100
30914c9
--- runtime/doc/options.txt	2013-03-19 16:25:49.000000000 +0100
30914c9
***************
30914c9
*** 2895,2900 ****
30914c9
--- 2941,2954 ----
30914c9
  	NOTE: This option is set to the Vi default value when 'compatible' is
30914c9
  	set and to the Vim default value when 'compatible' is reset.
30914c9
  
30914c9
+ 			*'fileignorecase'* *'wic'* *'nofileignorecase'* *'nowic'*
30914c9
+ 'fileignorecase' 'wic'	boolean	(default on for systems where case in file
30914c9
+ 				 names is normally ignored.
30914c9
+ 			global
30914c9
+ 			{not in Vi}
30914c9
+ 	When set case is ignored when using file names and directories.
30914c9
+ 	See 'wildignorecase' for only ignoring case when doing completion.
30914c9
+ 
30914c9
  					*'filetype'* *'ft'*
30914c9
  'filetype' 'ft'		string (default: "")
30914c9
  			local to buffer
30914c9
***************
30914c9
*** 7832,7843 ****
30914c9
  	uses another default.
30914c9
  
30914c9
  
30914c9
! 			*'wildignorecase* *'wic'* *'nowildignorecase* *'nowic'*
30914c9
  'wildignorecase' 'wic'	boolean	(default off)
30914c9
  			global
30914c9
  			{not in Vi}
30914c9
  	When set case is ignored when completing file names and directories.
30914c9
! 	Has no effect on systems where file name case is generally ignored.
30914c9
  	Does not apply when the shell is used to expand wildcards, which
30914c9
  	happens when there are special characters.
30914c9
  
30914c9
--- 7906,7917 ----
30914c9
  	uses another default.
30914c9
  
30914c9
  
30914c9
! 			*'wildignorecase'* *'wic'* *'nowildignorecase'* *'nowic'*
30914c9
  'wildignorecase' 'wic'	boolean	(default off)
30914c9
  			global
30914c9
  			{not in Vi}
30914c9
  	When set case is ignored when completing file names and directories.
30914c9
! 	Has no effect when 'fileignorecase' is set.
30914c9
  	Does not apply when the shell is used to expand wildcards, which
30914c9
  	happens when there are special characters.
30914c9
  
30914c9
*** ../vim-7.3.871/src/version.c	2013-03-19 15:27:43.000000000 +0100
30914c9
--- src/version.c	2013-03-19 16:22:46.000000000 +0100
30914c9
***************
30914c9
*** 730,731 ****
30914c9
--- 730,733 ----
30914c9
  {   /* Add new patch number below this line */
30914c9
+ /**/
30914c9
+     872,
30914c9
  /**/
30914c9
30914c9
-- 
30914c9
hundred-and-one symptoms of being an internet addict:
30914c9
76. Your ISP regards you as a business partner rather than as a customer.
30914c9
30914c9
 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
30914c9
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
30914c9
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
30914c9
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///