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