lkundrak / rpms / vim

Forked from rpms/vim 4 years ago
Clone
cbf1b74
To: vim_dev@googlegroups.com
cbf1b74
Subject: Patch 7.4.360
cbf1b74
Fcc: outbox
cbf1b74
From: Bram Moolenaar <Bram@moolenaar.net>
cbf1b74
Mime-Version: 1.0
cbf1b74
Content-Type: text/plain; charset=UTF-8
cbf1b74
Content-Transfer-Encoding: 8bit
cbf1b74
------------
cbf1b74
cbf1b74
Patch 7.4.360
cbf1b74
Problem:    In a regexp pattern a "$" followed by \v or \V is not seen as the
cbf1b74
	    end-of-line.
cbf1b74
Solution:   Handle the situation. (Ozaki Kiichi)
cbf1b74
Files:	    src/regexp.c
cbf1b74
cbf1b74
cbf1b74
*** ../vim-7.4.359/src/regexp.c	2014-05-13 19:37:19.489786520 +0200
cbf1b74
--- src/regexp.c	2014-07-09 19:28:51.871683287 +0200
cbf1b74
***************
cbf1b74
*** 3109,3123 ****
cbf1b74
  	    if (reg_magic >= MAGIC_OFF)
cbf1b74
  	    {
cbf1b74
  		char_u *p = regparse + 1;
cbf1b74
  
cbf1b74
! 		/* ignore \c \C \m and \M after '$' */
cbf1b74
  		while (p[0] == '\\' && (p[1] == 'c' || p[1] == 'C'
cbf1b74
! 				|| p[1] == 'm' || p[1] == 'M' || p[1] == 'Z'))
cbf1b74
  		    p += 2;
cbf1b74
  		if (p[0] == NUL
cbf1b74
  			|| (p[0] == '\\'
cbf1b74
  			    && (p[1] == '|' || p[1] == '&' || p[1] == ')'
cbf1b74
  				|| p[1] == 'n'))
cbf1b74
  			|| reg_magic == MAGIC_ALL)
cbf1b74
  		    curchr = Magic('$');
cbf1b74
  	    }
cbf1b74
--- 3109,3133 ----
cbf1b74
  	    if (reg_magic >= MAGIC_OFF)
cbf1b74
  	    {
cbf1b74
  		char_u *p = regparse + 1;
cbf1b74
+ 		int is_magic_all = (reg_magic == MAGIC_ALL);
cbf1b74
  
cbf1b74
! 		/* ignore \c \C \m \M \v \V and \Z after '$' */
cbf1b74
  		while (p[0] == '\\' && (p[1] == 'c' || p[1] == 'C'
cbf1b74
! 				|| p[1] == 'm' || p[1] == 'M'
cbf1b74
! 				|| p[1] == 'v' || p[1] == 'V' || p[1] == 'Z'))
cbf1b74
! 		{
cbf1b74
! 		    if (p[1] == 'v')
cbf1b74
! 			is_magic_all = TRUE;
cbf1b74
! 		    else if (p[1] == 'm' || p[1] == 'M' || p[1] == 'V')
cbf1b74
! 			is_magic_all = FALSE;
cbf1b74
  		    p += 2;
cbf1b74
+ 		}
cbf1b74
  		if (p[0] == NUL
cbf1b74
  			|| (p[0] == '\\'
cbf1b74
  			    && (p[1] == '|' || p[1] == '&' || p[1] == ')'
cbf1b74
  				|| p[1] == 'n'))
cbf1b74
+ 			|| (is_magic_all
cbf1b74
+ 			       && (p[0] == '|' || p[0] == '&' || p[0] == ')'))
cbf1b74
  			|| reg_magic == MAGIC_ALL)
cbf1b74
  		    curchr = Magic('$');
cbf1b74
  	    }
cbf1b74
*** ../vim-7.4.359/src/version.c	2014-07-09 19:13:45.007701718 +0200
cbf1b74
--- src/version.c	2014-07-09 19:18:36.599695792 +0200
cbf1b74
***************
cbf1b74
*** 736,737 ****
cbf1b74
--- 736,739 ----
cbf1b74
  {   /* Add new patch number below this line */
cbf1b74
+ /**/
cbf1b74
+     360,
cbf1b74
  /**/
cbf1b74
cbf1b74
-- 
cbf1b74
An indication you must be a manager:
cbf1b74
You believe you never have any problems in your life, just
cbf1b74
"issues" and "improvement opportunities".
cbf1b74
cbf1b74
 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
cbf1b74
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
cbf1b74
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
cbf1b74
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///