[vim] - patchlevel 072

Karsten Hopp karsten at fedoraproject.org
Thu Dec 2 17:10:18 UTC 2010


commit 716f5c8e839041d70c716ea376a70a9f7a6311d2
Author: Karsten Hopp <karsten at redhat.com>
Date:   Thu Dec 2 18:10:15 2010 +0100

    - patchlevel 072

 7.3.072 |  295 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 295 insertions(+), 0 deletions(-)
---
diff --git a/7.3.072 b/7.3.072
new file mode 100644
index 0000000..88e54f9
--- /dev/null
+++ b/7.3.072
@@ -0,0 +1,295 @@
+To: vim_dev at googlegroups.com
+Subject: Patch 7.3.072
+Fcc: outbox
+From: Bram Moolenaar <Bram at moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.072
+Problem:    Can't complete file names while ignoring case.
+Solution:   Add 'wildignorecase'.
+Files:	    src/ex_docmd.c, src/ex_getln.c, src/misc1.c, src/option.c,
+	    src/option.h, src/vim.h, runtime/doc/options.txt
+
+
+*** ../vim-7.3.071/src/ex_docmd.c	2010-11-24 15:50:54.000000000 +0100
+--- src/ex_docmd.c	2010-12-02 15:58:10.000000000 +0100
+***************
+*** 4524,4535 ****
+  		else /* n == 2 */
+  		{
+  		    expand_T	xpc;
+  
+  		    ExpandInit(&xpc);
+  		    xpc.xp_context = EXPAND_FILES;
+  		    p = ExpandOne(&xpc, eap->arg, NULL,
+! 					    WILD_LIST_NOTFOUND|WILD_ADD_SLASH,
+! 						   WILD_EXPAND_FREE);
+  		    if (p == NULL)
+  			return FAIL;
+  		}
+--- 4524,4537 ----
+  		else /* n == 2 */
+  		{
+  		    expand_T	xpc;
++ 		    int		options = WILD_LIST_NOTFOUND|WILD_ADD_SLASH;
+  
+  		    ExpandInit(&xpc);
+  		    xpc.xp_context = EXPAND_FILES;
++ 		    if (p_wic)
++ 			options += WILD_ICASE;
+  		    p = ExpandOne(&xpc, eap->arg, NULL,
+! 						   options, WILD_EXPAND_FREE);
+  		    if (p == NULL)
+  			return FAIL;
+  		}
+*** ../vim-7.3.071/src/ex_getln.c	2010-11-16 14:05:48.000000000 +0100
+--- src/ex_getln.c	2010-11-28 15:07:49.000000000 +0100
+***************
+*** 3339,3348 ****
+  	    p2 = NULL;
+  	else
+  	{
+  	    p2 = ExpandOne(xp, p1,
+  			 vim_strnsave(&ccline.cmdbuff[i], xp->xp_pattern_len),
+! 		    WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT|WILD_ESCAPE
+! 							      |options, type);
+  	    vim_free(p1);
+  	    /* longest match: make sure it is not shorter, happens with :help */
+  	    if (p2 != NULL && type == WILD_LONGEST)
+--- 3339,3352 ----
+  	    p2 = NULL;
+  	else
+  	{
++ 	    int use_options = options |
++ 		    WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT|WILD_ESCAPE;
++ 
++ 	    if (p_wic)
++ 		use_options += WILD_ICASE;
+  	    p2 = ExpandOne(xp, p1,
+  			 vim_strnsave(&ccline.cmdbuff[i], xp->xp_pattern_len),
+! 							   use_options, type);
+  	    vim_free(p1);
+  	    /* longest match: make sure it is not shorter, happens with :help */
+  	    if (p2 != NULL && type == WILD_LONGEST)
+***************
+*** 3428,3433 ****
+--- 3432,3438 ----
+   * options = WILD_KEEP_ALL:	    don't remove 'wildignore' entries
+   * options = WILD_SILENT:	    don't print warning messages
+   * options = WILD_ESCAPE:	    put backslash before special chars
++  * options = WILD_ICASE:	    ignore case for files
+   *
+   * The variables xp->xp_context and xp->xp_backslash must have been set!
+   */
+***************
+*** 4361,4366 ****
+--- 4366,4372 ----
+      char_u	***matches;	/* return: array of pointers to matches */
+  {
+      char_u	*file_str = NULL;
++     int		options = WILD_ADD_SLASH|WILD_SILENT;
+  
+      if (xp->xp_context == EXPAND_UNSUCCESSFUL)
+      {
+***************
+*** 4379,4387 ****
+      if (file_str == NULL)
+  	return EXPAND_UNSUCCESSFUL;
+  
+      /* find all files that match the description */
+!     if (ExpandFromContext(xp, file_str, matchcount, matches,
+! 					  WILD_ADD_SLASH|WILD_SILENT) == FAIL)
+      {
+  	*matchcount = 0;
+  	*matches = NULL;
+--- 4385,4395 ----
+      if (file_str == NULL)
+  	return EXPAND_UNSUCCESSFUL;
+  
++     if (p_wic)
++ 	options += WILD_ICASE;
++ 
+      /* find all files that match the description */
+!     if (ExpandFromContext(xp, file_str, matchcount, matches, options) == FAIL)
+      {
+  	*matchcount = 0;
+  	*matches = NULL;
+***************
+*** 4433,4439 ****
+      char_u	*pat;
+      int		*num_file;
+      char_u	***file;
+!     int		options;
+  {
+  #ifdef FEAT_CMDL_COMPL
+      regmatch_T	regmatch;
+--- 4441,4447 ----
+      char_u	*pat;
+      int		*num_file;
+      char_u	***file;
+!     int		options;  /* EW_ flags */
+  {
+  #ifdef FEAT_CMDL_COMPL
+      regmatch_T	regmatch;
+***************
+*** 4487,4492 ****
+--- 4495,4503 ----
+  	    flags |= (EW_FILE | EW_PATH);
+  	else
+  	    flags = (flags | EW_DIR) & ~EW_FILE;
++ 	if (options & WILD_ICASE)
++ 	    flags |= EW_ICASE;
++ 
+  	/* Expand wildcards, supporting %:h and the like. */
+  	ret = expand_wildcards_eval(&pat, num_file, file, flags);
+  	if (free_pat)
+*** ../vim-7.3.071/src/misc1.c	2010-08-16 21:46:12.000000000 +0200
+--- src/misc1.c	2010-11-28 15:02:57.000000000 +0100
+***************
+*** 9161,9167 ****
+  #ifdef CASE_INSENSITIVE_FILENAME
+      regmatch.rm_ic = TRUE;		/* Behave like Terminal.app */
+  #else
+!     regmatch.rm_ic = FALSE;		/* Don't ever ignore case */
+  #endif
+      regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
+      vim_free(pat);
+--- 9161,9170 ----
+  #ifdef CASE_INSENSITIVE_FILENAME
+      regmatch.rm_ic = TRUE;		/* Behave like Terminal.app */
+  #else
+!     if (flags & EW_ICASE)
+! 	regmatch.rm_ic = TRUE;		/* 'wildignorecase' set */
+!     else
+! 	regmatch.rm_ic = FALSE;		/* Don't ignore case */
+  #endif
+      regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
+      vim_free(pat);
+***************
+*** 9643,9649 ****
+      if (paths == NULL)
+  	return 0;
+  
+!     files = globpath(paths, pattern, 0);
+      vim_free(paths);
+      if (files == NULL)
+  	return 0;
+--- 9646,9652 ----
+      if (paths == NULL)
+  	return 0;
+  
+!     files = globpath(paths, pattern, (flags & EW_ICASE) ? WILD_ICASE : 0);
+      vim_free(paths);
+      if (files == NULL)
+  	return 0;
+*** ../vim-7.3.071/src/option.c	2010-12-02 15:33:10.000000000 +0100
+--- src/option.c	2010-12-02 15:12:02.000000000 +0100
+***************
+*** 2740,2746 ****
+  			    (char_u *)&p_wc, PV_NONE,
+  			    {(char_u *)(long)Ctrl_E, (char_u *)(long)TAB}
+  			    SCRIPTID_INIT},
+!     {"wildcharm",   "wcm",   P_NUM|P_VI_DEF,
+  			    (char_u *)&p_wcm, PV_NONE,
+  			    {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
+      {"wildignore",  "wig",  P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
+--- 2740,2746 ----
+  			    (char_u *)&p_wc, PV_NONE,
+  			    {(char_u *)(long)Ctrl_E, (char_u *)(long)TAB}
+  			    SCRIPTID_INIT},
+!     {"wildcharm",   "wcm",  P_NUM|P_VI_DEF,
+  			    (char_u *)&p_wcm, PV_NONE,
+  			    {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
+      {"wildignore",  "wig",  P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
+***************
+*** 2750,2755 ****
+--- 2750,2758 ----
+  			    (char_u *)NULL, PV_NONE,
+  #endif
+  			    {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
++     {"wildignorecase", "wic", P_BOOL|P_VI_DEF,
++ 			    (char_u *)&p_wic, PV_NONE,
++ 			    {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
+      {"wildmenu",    "wmnu", P_BOOL|P_VI_DEF,
+  #ifdef FEAT_WILDMENU
+  			    (char_u *)&p_wmnu, PV_NONE,
+*** ../vim-7.3.071/src/option.h	2010-08-15 21:57:28.000000000 +0200
+--- src/option.h	2010-11-28 14:29:18.000000000 +0100
+***************
+*** 872,877 ****
+--- 872,878 ----
+  EXTERN char_u	*p_ww;		/* 'whichwrap' */
+  EXTERN long	p_wc;		/* 'wildchar' */
+  EXTERN long	p_wcm;		/* 'wildcharm' */
++ EXTERN long	p_wic;		/* 'wildignorecase' */
+  EXTERN char_u	*p_wim;		/* 'wildmode' */
+  #ifdef FEAT_WILDMENU
+  EXTERN int	p_wmnu;		/* 'wildmenu' */
+*** ../vim-7.3.071/src/vim.h	2010-10-20 19:17:43.000000000 +0200
+--- src/vim.h	2010-11-28 14:49:02.000000000 +0100
+***************
+*** 798,803 ****
+--- 798,804 ----
+  #define WILD_KEEP_ALL		32
+  #define WILD_SILENT		64
+  #define WILD_ESCAPE		128
++ #define WILD_ICASE		256
+  
+  /* Flags for expand_wildcards() */
+  #define EW_DIR		0x01	/* include directory names */
+***************
+*** 808,813 ****
+--- 809,815 ----
+  #define EW_SILENT	0x20	/* don't print "1 returned" from shell */
+  #define EW_EXEC		0x40	/* executable files */
+  #define EW_PATH		0x80	/* search in 'path' too */
++ #define EW_ICASE	0x100	/* ignore case */
+  /* Note: mostly EW_NOTFOUND and EW_SILENT are mutually exclusive: EW_NOTFOUND
+   * is used when executing commands and EW_SILENT for interactive expanding. */
+  
+*** ../vim-7.3.071/runtime/doc/options.txt	2010-10-20 17:44:01.000000000 +0200
+--- runtime/doc/options.txt	2010-12-02 11:15:01.000000000 +0100
+***************
+*** 7748,7753 ****
+--- 7756,7772 ----
+  	a pattern from the list.  This avoids problems when a future version
+  	uses another default.
+  
++ 
++ 			*'wildignorecase* *'wic'* *'nowildignorecase* *'nowic'*
++ 'wildignorecase' 'wic'	boolean	(default off)
++ 			global
++ 			{not in Vi}
++ 	When set case is ignored when completing file names and directories.
++ 	Has no effect on systems where file name case is generally ignored.
++ 	Does not apply when the shell is used to expand wildcards, which
++ 	happens when there are special characters.
++ 
++ 
+  				*'wildmenu'* *'wmnu'* *'nowildmenu'* *'nowmnu'*
+  'wildmenu' 'wmnu'	boolean	(default off)
+  			global
+*** ../vim-7.3.071/src/version.c	2010-12-02 15:33:10.000000000 +0100
+--- src/version.c	2010-12-02 15:57:14.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     72,
+  /**/
+
+-- 
+I recommend ordering large cargo containers of paper towels to make up
+whatever budget underruns you have.  Paper products are always useful and they
+have the advantage of being completely flushable if you need to make room in
+the storage area later.
+				(Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///


More information about the scm-commits mailing list