mirror of
https://github.com/vim/vim.git
synced 2025-07-04 23:07:33 -04:00
updated for version 7.4.543
Problem: Since patch 7.4.232 "1,3s/\n//" joins two lines instead of three. (Eliseo Martínez) Issue 287 Solution: Correct the line count. (Christian Brabandt) Also set the last used search pattern.
This commit is contained in:
parent
f1d6ccf2f9
commit
cc2b9d5dc0
@ -4408,6 +4408,8 @@ do_sub(eap)
|
||||
&& (*cmd == NUL || (cmd[1] == NUL && (*cmd == 'g' || *cmd == 'l'
|
||||
|| *cmd == 'p' || *cmd == '#'))))
|
||||
{
|
||||
linenr_T joined_lines_count;
|
||||
|
||||
curwin->w_cursor.lnum = eap->line1;
|
||||
if (*cmd == 'l')
|
||||
eap->flags = EXFLAG_LIST;
|
||||
@ -4416,10 +4418,27 @@ do_sub(eap)
|
||||
else if (*cmd == 'p')
|
||||
eap->flags = EXFLAG_PRINT;
|
||||
|
||||
(void)do_join(eap->line2 - eap->line1 + 1, FALSE, TRUE, FALSE, TRUE);
|
||||
sub_nlines = sub_nsubs = eap->line2 - eap->line1 + 1;
|
||||
(void)do_sub_msg(FALSE);
|
||||
ex_may_print(eap);
|
||||
/* The number of lines joined is the number of lines in the range plus
|
||||
* one. One less when the last line is included. */
|
||||
joined_lines_count = eap->line2 - eap->line1 + 1;
|
||||
if (eap->line2 < curbuf->b_ml.ml_line_count)
|
||||
++joined_lines_count;
|
||||
if (joined_lines_count > 1)
|
||||
{
|
||||
(void)do_join(joined_lines_count, FALSE, TRUE, FALSE, TRUE);
|
||||
sub_nsubs = joined_lines_count - 1;
|
||||
sub_nlines = 1;
|
||||
(void)do_sub_msg(FALSE);
|
||||
ex_may_print(eap);
|
||||
}
|
||||
|
||||
if (!cmdmod.keeppatterns)
|
||||
save_re_pat(RE_SUBST, pat, p_magic);
|
||||
#ifdef FEAT_CMDHIST
|
||||
/* put pattern in history */
|
||||
add_to_history(HIST_SEARCH, pat, TRUE, NUL);
|
||||
#endif
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,7 @@
|
||||
int search_regcomp __ARGS((char_u *pat, int pat_save, int pat_use, int options, regmmatch_T *regmatch));
|
||||
char_u *get_search_pat __ARGS((void));
|
||||
char_u *reverse_text __ARGS((char_u *s));
|
||||
void save_re_pat __ARGS((int idx, char_u *pat, int magic));
|
||||
void save_search_patterns __ARGS((void));
|
||||
void restore_search_patterns __ARGS((void));
|
||||
void free_search_patterns __ARGS((void));
|
||||
|
@ -12,7 +12,6 @@
|
||||
|
||||
#include "vim.h"
|
||||
|
||||
static void save_re_pat __ARGS((int idx, char_u *pat, int magic));
|
||||
#ifdef FEAT_EVAL
|
||||
static void set_vv_searchforward __ARGS((void));
|
||||
static int first_submatch __ARGS((regmmatch_T *rp));
|
||||
@ -272,7 +271,7 @@ reverse_text(s)
|
||||
}
|
||||
#endif
|
||||
|
||||
static void
|
||||
void
|
||||
save_re_pat(idx, pat, magic)
|
||||
int idx;
|
||||
char_u *pat;
|
||||
|
@ -741,6 +741,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
543,
|
||||
/**/
|
||||
542,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user