[vim] - patchlevel 1119

Karsten Hopp karsten at fedoraproject.org
Thu Jun 13 22:30:31 UTC 2013


commit fbcfc8e71a69ee1911f77a38a3b8e9f097d17386
Author: Karsten Hopp <karsten at redhat.com>
Date:   Fri Jun 14 00:28:03 2013 +0200

    - patchlevel 1119

 7.3.1119 |  237 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 237 insertions(+), 0 deletions(-)
---
diff --git a/7.3.1119 b/7.3.1119
new file mode 100644
index 0000000..9bdf4fa
--- /dev/null
+++ b/7.3.1119
@@ -0,0 +1,237 @@
+To: vim_dev at googlegroups.com
+Subject: Patch 7.3.1119
+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.1119
+Problem:    Flags in 'cpo' are searched for several times.
+Solution:   Store the result and re-use the flags.
+Files:	    src/regexp.c, src/regexp_nfa.c
+
+
+*** ../vim-7.3.1118/src/regexp.c	2013-06-04 21:27:33.000000000 +0200
+--- src/regexp.c	2013-06-05 12:37:30.000000000 +0200
+***************
+*** 365,370 ****
+--- 365,371 ----
+  static char_u e_z_not_allowed[] = N_("E66: \\z( not allowed here");
+  static char_u e_z1_not_allowed[] = N_("E67: \\z1 et al. not allowed here");
+  #endif
++ static char_u e_missing_sb[] = N_("E69: Missing ] after %s%%[");
+  
+  #define NOT_MULTI	0
+  #define MULTI_ONE	1
+***************
+*** 1173,1178 ****
+--- 1174,1189 ----
+      return 0;
+  }
+  
++ static void get_cpo_flags __ARGS((void));
++ static int reg_cpo_lit; /* 'cpoptions' contains 'l' flag */
++ static int reg_cpo_bsl; /* 'cpoptions' contains '\' flag */
++ 
++     static void
++ get_cpo_flags()
++ {
++     reg_cpo_lit = vim_strchr(p_cpo, CPO_LITERAL) != NULL;
++     reg_cpo_bsl = vim_strchr(p_cpo, CPO_BACKSL) != NULL;
++ }
+  
+  /*
+   * Skip over a "[]" range.
+***************
+*** 1183,1197 ****
+  skip_anyof(p)
+      char_u	*p;
+  {
+-     int		cpo_lit;	/* 'cpoptions' contains 'l' flag */
+-     int		cpo_bsl;	/* 'cpoptions' contains '\' flag */
+  #ifdef FEAT_MBYTE
+      int		l;
+  #endif
+  
+-     cpo_lit = vim_strchr(p_cpo, CPO_LITERAL) != NULL;
+-     cpo_bsl = vim_strchr(p_cpo, CPO_BACKSL) != NULL;
+- 
+      if (*p == '^')	/* Complement of range. */
+  	++p;
+      if (*p == ']' || *p == '-')
+--- 1194,1203 ----
+***************
+*** 1210,1218 ****
+  		    mb_ptr_adv(p);
+  	    }
+  	else if (*p == '\\'
+! 		&& !cpo_bsl
+  		&& (vim_strchr(REGEXP_INRANGE, p[1]) != NULL
+! 		    || (!cpo_lit && vim_strchr(REGEXP_ABBR, p[1]) != NULL)))
+  	    p += 2;
+  	else if (*p == '[')
+  	{
+--- 1216,1224 ----
+  		    mb_ptr_adv(p);
+  	    }
+  	else if (*p == '\\'
+! 		&& !reg_cpo_bsl
+  		&& (vim_strchr(REGEXP_INRANGE, p[1]) != NULL
+! 		    || (!reg_cpo_lit && vim_strchr(REGEXP_ABBR, p[1]) != NULL)))
+  	    p += 2;
+  	else if (*p == '[')
+  	{
+***************
+*** 1251,1256 ****
+--- 1257,1263 ----
+  	mymagic = MAGIC_ON;
+      else
+  	mymagic = MAGIC_OFF;
++     get_cpo_flags();
+  
+      for (; p[0] != NUL; mb_ptr_adv(p))
+      {
+***************
+*** 1462,1467 ****
+--- 1469,1475 ----
+  	reg_magic = MAGIC_OFF;
+      reg_string = (re_flags & RE_STRING);
+      reg_strict = (re_flags & RE_STRICT);
++     get_cpo_flags();
+  
+      num_complex_braces = 0;
+      regnpar = 1;
+***************
+*** 1909,1923 ****
+  {
+      char_u	    *ret;
+      int		    flags;
+-     int		    cpo_lit;	    /* 'cpoptions' contains 'l' flag */
+-     int		    cpo_bsl;	    /* 'cpoptions' contains '\' flag */
+      int		    c;
+      char_u	    *p;
+      int		    extra = 0;
+  
+      *flagp = WORST;		/* Tentatively. */
+-     cpo_lit = vim_strchr(p_cpo, CPO_LITERAL) != NULL;
+-     cpo_bsl = vim_strchr(p_cpo, CPO_BACKSL) != NULL;
+  
+      c = getchr();
+      switch (c)
+--- 1917,1927 ----
+***************
+*** 2207,2213 ****
+  			      while ((c = getchr()) != ']')
+  			      {
+  				  if (c == NUL)
+! 				      EMSG2_RET_NULL(_("E69: Missing ] after %s%%["),
+  						      reg_magic == MAGIC_ALL);
+  				  br = regnode(BRANCH);
+  				  if (ret == NULL)
+--- 2211,2217 ----
+  			      while ((c = getchr()) != ']')
+  			      {
+  				  if (c == NUL)
+! 				      EMSG2_RET_NULL(_(e_missing_sb),
+  						      reg_magic == MAGIC_ALL);
+  				  br = regnode(BRANCH);
+  				  if (ret == NULL)
+***************
+*** 2410,2416 ****
+  			    }
+  
+  			    /* Handle \o40, \x20 and \u20AC style sequences */
+! 			    if (endc == '\\' && !cpo_lit && !cpo_bsl)
+  				endc = coll_get_char();
+  
+  			    if (startc > endc)
+--- 2414,2420 ----
+  			    }
+  
+  			    /* Handle \o40, \x20 and \u20AC style sequences */
+! 			    if (endc == '\\' && !reg_cpo_lit && !reg_cpo_bsl)
+  				endc = coll_get_char();
+  
+  			    if (startc > endc)
+***************
+*** 2452,2460 ****
+  		     * Posix doesn't recognize backslash at all.
+  		     */
+  		    else if (*regparse == '\\'
+! 			    && !cpo_bsl
+  			    && (vim_strchr(REGEXP_INRANGE, regparse[1]) != NULL
+! 				|| (!cpo_lit
+  				    && vim_strchr(REGEXP_ABBR,
+  						       regparse[1]) != NULL)))
+  		    {
+--- 2456,2464 ----
+  		     * Posix doesn't recognize backslash at all.
+  		     */
+  		    else if (*regparse == '\\'
+! 			    && !reg_cpo_bsl
+  			    && (vim_strchr(REGEXP_INRANGE, regparse[1]) != NULL
+! 				|| (!reg_cpo_lit
+  				    && vim_strchr(REGEXP_ABBR,
+  						       regparse[1]) != NULL)))
+  		    {
+*** ../vim-7.3.1118/src/regexp_nfa.c	2013-06-05 11:46:22.000000000 +0200
+--- src/regexp_nfa.c	2013-06-05 12:38:03.000000000 +0200
+***************
+*** 686,698 ****
+      int		startc = -1;
+      int		endc = -1;
+      int		oldstartc = -1;
+-     int		cpo_lit;	/* 'cpoptions' contains 'l' flag */
+-     int		cpo_bsl;	/* 'cpoptions' contains '\' flag */
+      int		glue;		/* ID that will "glue" nodes together */
+  
+-     cpo_lit = vim_strchr(p_cpo, CPO_LITERAL) != NULL;
+-     cpo_bsl = vim_strchr(p_cpo, CPO_BACKSL) != NULL;
+- 
+      c = getchr();
+      switch (c)
+      {
+--- 686,693 ----
+***************
+*** 1224,1233 ****
+  		     * Posix doesn't recognize backslash at all.
+  		     */
+  		    if (*regparse == '\\'
+! 			    && !cpo_bsl
+  			    && regparse + 1 <= endp
+  			    && (vim_strchr(REGEXP_INRANGE, regparse[1]) != NULL
+! 				|| (!cpo_lit
+  				    && vim_strchr(REGEXP_ABBR, regparse[1])
+  								      != NULL)
+  			    )
+--- 1219,1228 ----
+  		     * Posix doesn't recognize backslash at all.
+  		     */
+  		    if (*regparse == '\\'
+! 			    && !reg_cpo_bsl
+  			    && regparse + 1 <= endp
+  			    && (vim_strchr(REGEXP_INRANGE, regparse[1]) != NULL
+! 				|| (!reg_cpo_lit
+  				    && vim_strchr(REGEXP_ABBR, regparse[1])
+  								      != NULL)
+  			    )
+*** ../vim-7.3.1118/src/version.c	2013-06-05 11:46:22.000000000 +0200
+--- src/version.c	2013-06-05 12:40:57.000000000 +0200
+***************
+*** 730,731 ****
+--- 730,733 ----
+  {   /* Add new patch number below this line */
++ /**/
++     1119,
+  /**/
+
+-- 
+From "know your smileys":
+ :-O>-o   Smiley American tourist (note big mouth and camera)
+
+ /// 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