Blob Blame History Raw
To: vim-dev@vim.org
Subject: patch 7.1.083
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.1.083 (after 7.1.081)
Problem:    Command line completion doesn't work with wildcards.
Solution:   Add vim_isfilec_or_wc() and use it. (Martin Toft)
Files:	    src/charset.c, src/proto/charset.pro, src/ex_docmd.c


*** ../vim-7.1.082/src/charset.c	Wed Aug 15 20:40:45 2007
--- src/charset.c	Sun Aug 19 22:30:25 2007
***************
*** 932,937 ****
--- 932,954 ----
  }
  
  /*
+  * return TRUE if 'c' is a valid file-name character or a wildcard character
+  * Assume characters above 0x100 are valid (multi-byte).
+  * Explicitly interpret ']' as a wildcard character as mch_has_wildcard("]")
+  * returns false.
+  */
+     int
+ vim_isfilec_or_wc(c)
+     int c;
+ {
+     char_u buf[2];
+ 
+     buf[0] = (char_u)c;
+     buf[1] = NUL;
+     return vim_isfilec(c) || c == ']' || mch_has_wildcard(buf);
+ }
+ 
+ /*
   * return TRUE if 'c' is a printable character
   * Assume characters above 0x100 are printable (multi-byte), except for
   * Unicode.
*** ../vim-7.1.082/src/proto/charset.pro	Sat May  5 19:21:32 2007
--- src/proto/charset.pro	Sun Aug 19 22:30:28 2007
***************
*** 21,26 ****
--- 21,27 ----
  int vim_iswordp __ARGS((char_u *p));
  int vim_iswordc_buf __ARGS((char_u *p, buf_T *buf));
  int vim_isfilec __ARGS((int c));
+ int vim_isfilec_or_wc __ARGS((int c));
  int vim_isprintc __ARGS((int c));
  int vim_isprintc_strict __ARGS((int c));
  int lbr_chartabsize __ARGS((unsigned char *s, colnr_T col));
*** ../vim-7.1.082/src/ex_docmd.c	Sat Aug 18 17:46:50 2007
--- src/ex_docmd.c	Sun Aug 19 22:29:17 2007
***************
*** 3311,3319 ****
  		in_quote = !in_quote;
  	    }
  #ifdef SPACE_IN_FILENAME
! 	    else if (!vim_isfilec(c) && (!(ea.argt & NOSPC) || usefilter))
  #else
! 	    else if (!vim_isfilec(c))
  #endif
  	    {
  		while (*p != NUL)
--- 3311,3320 ----
  		in_quote = !in_quote;
  	    }
  #ifdef SPACE_IN_FILENAME
! 	    else if (!vim_isfilec_or_wc(c)
! 					 && (!(ea.argt & NOSPC) || usefilter))
  #else
! 	    else if (!vim_isfilec_or_wc(c))
  #endif
  	    {
  		while (*p != NUL)
***************
*** 3324,3330 ****
  		    else
  #endif
  			c = *p;
! 		    if (c == '`' || vim_isfilec(c))
  			break;
  #ifdef FEAT_MBYTE
  		    if (has_mbyte)
--- 3325,3331 ----
  		    else
  #endif
  			c = *p;
! 		    if (c == '`' || vim_isfilec_or_wc(c))
  			break;
  #ifdef FEAT_MBYTE
  		    if (has_mbyte)
*** ../vim-7.1.082/src/version.c	Sat Aug 18 18:20:57 2007
--- src/version.c	Sun Aug 19 22:31:43 2007
***************
*** 668,669 ****
--- 668,671 ----
  {   /* Add new patch number below this line */
+ /**/
+     83,
  /**/

-- 
    "You mean there really is an answer?"
    "Yes! But you're not going to like it!"
    "Oh do please tell us!"
    "You're really not going to like it!"
    "but we MUST know - tell us"
    "Alright, the answer is...."
    "yes..."
    "... is ..."
    "yes... come on!"
    "is 42!"
		(Douglas Adams - The Hitchhiker's Guide to the Galaxy)

 /// 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    ///