3ef2ca
To: vim_dev@googlegroups.com
3ef2ca
Subject: Patch 7.4.543
3ef2ca
Fcc: outbox
3ef2ca
From: Bram Moolenaar <Bram@moolenaar.net>
3ef2ca
Mime-Version: 1.0
3ef2ca
Content-Type: text/plain; charset=UTF-8
3ef2ca
Content-Transfer-Encoding: 8bit
3ef2ca
------------
3ef2ca
3ef2ca
Patch 7.4.543
3ef2ca
Problem:    Since patch 7.4.232 "1,3s/\n//" joins two lines instead of three.
3ef2ca
	    (Eliseo Martínez)  Issue 287
3ef2ca
Solution:   Correct the line count. (Christian Brabandt)
3ef2ca
	    Also set the last used search pattern.
3ef2ca
Files:	    src/ex_cmds.c, src/search.c, src/proto/search.pro
3ef2ca
3ef2ca
3ef2ca
*** ../vim-7.4.542/src/ex_cmds.c	2014-11-30 13:34:16.889626728 +0100
3ef2ca
--- src/ex_cmds.c	2014-12-13 03:11:09.032894963 +0100
3ef2ca
***************
3ef2ca
*** 4408,4413 ****
3ef2ca
--- 4408,4415 ----
3ef2ca
  	    && (*cmd == NUL || (cmd[1] == NUL && (*cmd == 'g' || *cmd == 'l'
3ef2ca
  					     || *cmd == 'p' || *cmd == '#'))))
3ef2ca
      {
3ef2ca
+ 	linenr_T    joined_lines_count;
3ef2ca
+ 
3ef2ca
  	curwin->w_cursor.lnum = eap->line1;
3ef2ca
  	if (*cmd == 'l')
3ef2ca
  	    eap->flags = EXFLAG_LIST;
3ef2ca
***************
3ef2ca
*** 4416,4425 ****
3ef2ca
  	else if (*cmd == 'p')
3ef2ca
  	    eap->flags = EXFLAG_PRINT;
3ef2ca
  
3ef2ca
! 	(void)do_join(eap->line2 - eap->line1 + 1, FALSE, TRUE, FALSE, TRUE);
3ef2ca
! 	sub_nlines = sub_nsubs = eap->line2 - eap->line1 + 1;
3ef2ca
! 	(void)do_sub_msg(FALSE);
3ef2ca
! 	ex_may_print(eap);
3ef2ca
  	return;
3ef2ca
      }
3ef2ca
  
3ef2ca
--- 4418,4444 ----
3ef2ca
  	else if (*cmd == 'p')
3ef2ca
  	    eap->flags = EXFLAG_PRINT;
3ef2ca
  
3ef2ca
! 	/* The number of lines joined is the number of lines in the range plus
3ef2ca
! 	 * one.  One less when the last line is included. */
3ef2ca
! 	joined_lines_count = eap->line2 - eap->line1 + 1;
3ef2ca
! 	if (eap->line2 < curbuf->b_ml.ml_line_count)
3ef2ca
! 	    ++joined_lines_count;
3ef2ca
! 	if (joined_lines_count > 1)
3ef2ca
! 	{
3ef2ca
! 	    (void)do_join(joined_lines_count, FALSE, TRUE, FALSE, TRUE);
3ef2ca
! 	    sub_nsubs = joined_lines_count - 1;
3ef2ca
! 	    sub_nlines = 1;
3ef2ca
! 	    (void)do_sub_msg(FALSE);
3ef2ca
! 	    ex_may_print(eap);
3ef2ca
! 	}
3ef2ca
! 
3ef2ca
! 	if (!cmdmod.keeppatterns)
3ef2ca
! 	    save_re_pat(RE_SUBST, pat, p_magic);
3ef2ca
! #ifdef FEAT_CMDHIST
3ef2ca
! 	/* put pattern in history */
3ef2ca
! 	add_to_history(HIST_SEARCH, pat, TRUE, NUL);
3ef2ca
! #endif
3ef2ca
! 
3ef2ca
  	return;
3ef2ca
      }
3ef2ca
  
3ef2ca
*** ../vim-7.4.542/src/search.c	2014-11-27 17:29:52.770188864 +0100
3ef2ca
--- src/search.c	2014-12-13 03:12:18.032159491 +0100
3ef2ca
***************
3ef2ca
*** 12,18 ****
3ef2ca
  
3ef2ca
  #include "vim.h"
3ef2ca
  
3ef2ca
- static void save_re_pat __ARGS((int idx, char_u *pat, int magic));
3ef2ca
  #ifdef FEAT_EVAL
3ef2ca
  static void set_vv_searchforward __ARGS((void));
3ef2ca
  static int first_submatch __ARGS((regmmatch_T *rp));
3ef2ca
--- 12,17 ----
3ef2ca
***************
3ef2ca
*** 272,278 ****
3ef2ca
  }
3ef2ca
  #endif
3ef2ca
  
3ef2ca
!     static void
3ef2ca
  save_re_pat(idx, pat, magic)
3ef2ca
      int		idx;
3ef2ca
      char_u	*pat;
3ef2ca
--- 271,277 ----
3ef2ca
  }
3ef2ca
  #endif
3ef2ca
  
3ef2ca
!     void
3ef2ca
  save_re_pat(idx, pat, magic)
3ef2ca
      int		idx;
3ef2ca
      char_u	*pat;
3ef2ca
*** ../vim-7.4.542/src/proto/search.pro	2013-08-10 13:37:25.000000000 +0200
3ef2ca
--- src/proto/search.pro	2014-12-13 03:12:21.440123253 +0100
3ef2ca
***************
3ef2ca
*** 2,7 ****
3ef2ca
--- 2,8 ----
3ef2ca
  int search_regcomp __ARGS((char_u *pat, int pat_save, int pat_use, int options, regmmatch_T *regmatch));
3ef2ca
  char_u *get_search_pat __ARGS((void));
3ef2ca
  char_u *reverse_text __ARGS((char_u *s));
3ef2ca
+ void save_re_pat __ARGS((int idx, char_u *pat, int magic));
3ef2ca
  void save_search_patterns __ARGS((void));
3ef2ca
  void restore_search_patterns __ARGS((void));
3ef2ca
  void free_search_patterns __ARGS((void));
3ef2ca
*** ../vim-7.4.542/src/version.c	2014-12-08 04:16:26.273702793 +0100
3ef2ca
--- src/version.c	2014-12-13 02:54:27.295570327 +0100
3ef2ca
***************
3ef2ca
*** 743,744 ****
3ef2ca
--- 743,746 ----
3ef2ca
  {   /* Add new patch number below this line */
3ef2ca
+ /**/
3ef2ca
+     543,
3ef2ca
  /**/
3ef2ca
3ef2ca
-- 
3ef2ca
For large projects, Team Leaders use sophisticated project management software
3ef2ca
to keep track of who's doing what.  The software collects the lies and guesses
3ef2ca
of the project team and organizes them in to instantly outdated charts that
3ef2ca
are too boring to look at closely.  This is called "planning".
3ef2ca
				(Scott Adams - The Dilbert principle)
3ef2ca
3ef2ca
 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
3ef2ca
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
3ef2ca
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
3ef2ca
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///