Blob Blame History Raw
To: vim_dev@googlegroups.com
Subject: Patch 7.4.668
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------

Patch 7.4.668
Problem:    Can't use a glob pattern as a regexp pattern.
Solution:   Add glob2regpat(). (Christian Brabandt)
Files:      src/eval.c, runtime/doc/eval.txt


*** ../vim-7.4.667/src/eval.c	2015-03-05 19:35:20.690114997 +0100
--- src/eval.c	2015-03-20 17:28:18.912588318 +0100
***************
*** 575,580 ****
--- 575,581 ----
  static void f_getwinvar __ARGS((typval_T *argvars, typval_T *rettv));
  static void f_glob __ARGS((typval_T *argvars, typval_T *rettv));
  static void f_globpath __ARGS((typval_T *argvars, typval_T *rettv));
+ static void f_glob2regpat  __ARGS((typval_T *argvars, typval_T *rettv));
  static void f_has __ARGS((typval_T *argvars, typval_T *rettv));
  static void f_has_key __ARGS((typval_T *argvars, typval_T *rettv));
  static void f_haslocaldir __ARGS((typval_T *argvars, typval_T *rettv));
***************
*** 8142,8147 ****
--- 8143,8149 ----
      {"getwinposy",	0, 0, f_getwinposy},
      {"getwinvar",	2, 3, f_getwinvar},
      {"glob",		1, 4, f_glob},
+     {"glob2regpat",	1, 1, f_glob2regpat},
      {"globpath",	2, 5, f_globpath},
      {"has",		1, 1, f_has},
      {"has_key",		2, 2, f_has_key},
***************
*** 12500,12505 ****
--- 12502,12521 ----
  }
  
  /*
+  * "glob2regpat()" function
+  */
+     static void
+ f_glob2regpat(argvars, rettv)
+     typval_T	*argvars;
+     typval_T	*rettv;
+ {
+     char_u	*pat = get_tv_string_chk(&argvars[0]);
+ 
+     rettv->v_type = VAR_STRING;
+     rettv->vval.v_string = file_pat_to_reg_pat(pat, NULL, NULL, FALSE);
+ }
+ 
+ /*
   * "has()" function
   */
      static void
*** ../vim-7.4.667/runtime/doc/eval.txt	2015-01-27 15:18:55.152333309 +0100
--- runtime/doc/eval.txt	2015-03-20 17:32:43.597601391 +0100
***************
*** 1833,1841 ****
  getwinposy()			Number	Y coord in pixels of GUI Vim window
  getwinvar( {nr}, {varname} [, {def}])
  				any	variable {varname} in window {nr}
! glob( {expr} [, {nosuf} [, {list}]])
  				any	expand file wildcards in {expr}
! globpath( {path}, {expr} [, {nosuf} [, {list}]])
  				String	do glob({expr}) for all dirs in {path}
  has( {feature})			Number	TRUE if feature {feature} supported
  has_key( {dict}, {key})		Number	TRUE if {dict} has entry {key}
--- 1834,1843 ----
  getwinposy()			Number	Y coord in pixels of GUI Vim window
  getwinvar( {nr}, {varname} [, {def}])
  				any	variable {varname} in window {nr}
! glob( {expr} [, {nosuf} [, {list} [, {alllinks}]]])
  				any	expand file wildcards in {expr}
! glob2regpat( {expr})		String  convert a glob pat into a search pat
! globpath( {path}, {expr} [, {nosuf} [, {list} [, {alllinks}]]])
  				String	do glob({expr}) for all dirs in {path}
  has( {feature})			Number	TRUE if feature {feature} supported
  has_key( {dict}, {key})		Number	TRUE if {dict} has entry {key}
***************
*** 3611,3617 ****
  		See |expand()| for expanding special Vim variables.  See
  		|system()| for getting the raw output of an external command.
  
! globpath({path}, {expr} [, {nosuf} [, {list}]])			*globpath()*
  		Perform glob() on all directories in {path} and concatenate
  		the results.  Example: >
  			:echo globpath(&rtp, "syntax/c.vim")
--- 3672,3687 ----
  		See |expand()| for expanding special Vim variables.  See
  		|system()| for getting the raw output of an external command.
  
! glob2regpat({expr})					 *glob2regpat()*
! 		Convert a file patter, as used by glob(), into a search
! 		pattern.  The result can be used to match with a string that
! 		is a file name.  E.g. >
! 			if filename =~ glob2regpat('Make*.mak')
! <		This is equivalent to: >
! 			if filename =~ '^Make.*\.mak$'
! <
! 								*globpath()*
! globpath({path}, {expr} [, {nosuf} [, {list} [, {allinks}]]])
  		Perform glob() on all directories in {path} and concatenate
  		the results.  Example: >
  			:echo globpath(&rtp, "syntax/c.vim")
*** ../vim-7.4.667/src/version.c	2015-03-20 17:16:23.656659419 +0100
--- src/version.c	2015-03-20 17:19:45.610380844 +0100
***************
*** 743,744 ****
--- 743,746 ----
  {   /* Add new patch number below this line */
+ /**/
+     668,
  /**/

-- 
Seen on the back of a biker's vest: If you can read this, my wife fell off.

 /// Bram Moolenaar -- Bram@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    ///