mirror of
https://github.com/vim/vim.git
synced 2025-09-27 04:14:06 -04:00
updated for version 7.4.655
Problem: Text deleted by "dit" depends on indent of closing tag. (Jan Parthey) Solution: Do not adjust oap->end in do_pending_operator(). (Christian Brabandt)
This commit is contained in:
@@ -9198,6 +9198,14 @@ nv_object(cap)
|
||||
flag = current_block(cap->oap, cap->count1, include, '<', '>');
|
||||
break;
|
||||
case 't': /* "at" = a tag block (xml and html) */
|
||||
/* Do not adjust oap->end in do_pending_operator()
|
||||
* otherwise there are different results for 'dit'
|
||||
* (note leading whitespace in last line):
|
||||
* 1) <b> 2) <b>
|
||||
* foobar foobar
|
||||
* </b> </b>
|
||||
*/
|
||||
cap->retval |= CA_NO_ADJ_OP_END;
|
||||
flag = current_tagblock(cap->oap, cap->count1, include);
|
||||
break;
|
||||
case 'p': /* "ap" = a paragraph */
|
||||
|
16
src/search.c
16
src/search.c
@@ -1063,7 +1063,7 @@ first_submatch(rp)
|
||||
* Careful: If spats[0].off.line == TRUE and spats[0].off.off == 0 this
|
||||
* makes the movement linewise without moving the match position.
|
||||
*
|
||||
* return 0 for failure, 1 for found, 2 for found and line offset added
|
||||
* Return 0 for failure, 1 for found, 2 for found and line offset added.
|
||||
*/
|
||||
int
|
||||
do_search(oap, dirc, pat, count, options, tm)
|
||||
@@ -3781,6 +3781,7 @@ current_tagblock(oap, count_arg, include)
|
||||
int do_include = include;
|
||||
int save_p_ws = p_ws;
|
||||
int retval = FAIL;
|
||||
int is_inclusive = TRUE;
|
||||
|
||||
p_ws = FALSE;
|
||||
|
||||
@@ -3895,8 +3896,15 @@ again:
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Exclude the '<' of the end tag. */
|
||||
if (*ml_get_cursor() == '<')
|
||||
char_u *c = ml_get_cursor();
|
||||
|
||||
/* Exclude the '<' of the end tag.
|
||||
* If the closing tag is on new line, do not decrement cursor, but
|
||||
* make operation exclusive, so that the linefeed will be selected */
|
||||
if (*c == '<' && !VIsual_active && curwin->w_cursor.col == 0)
|
||||
/* do not decrement cursor */
|
||||
is_inclusive = FALSE;
|
||||
else if (*c == '<')
|
||||
dec_cursor();
|
||||
}
|
||||
end_pos = curwin->w_cursor;
|
||||
@@ -3950,7 +3958,7 @@ again:
|
||||
oap->inclusive = FALSE;
|
||||
}
|
||||
else
|
||||
oap->inclusive = TRUE;
|
||||
oap->inclusive = is_inclusive;
|
||||
}
|
||||
retval = OK;
|
||||
|
||||
|
@@ -23,6 +23,7 @@ jfXdit
|
||||
0fXdit
|
||||
fXdat
|
||||
0fXdat
|
||||
dit
|
||||
:"
|
||||
:put =matchstr(\"abcd\", \".\", 0, 2) " b
|
||||
:put =matchstr(\"abcd\", \"..\", 0, 2) " bc
|
||||
@@ -97,6 +98,9 @@ voo "nah" sdf " asdf" sdf " sdf" sd
|
||||
-<b>asdX<i>a<i />sdf</i>asdf</b>-
|
||||
-<b>asdf<i>Xasdf</i>asdf</b>-
|
||||
-<b>asdX<i>as<b />df</i>asdf</b>-
|
||||
-<b>
|
||||
innertext object
|
||||
</b>
|
||||
</begin>
|
||||
SEARCH:
|
||||
foobar
|
||||
|
@@ -11,6 +11,7 @@ voo "zzzzzzzzzzzzzzzzzzzzzzzzzzzzsd
|
||||
-<b></b>-
|
||||
-<b>asdfasdf</b>-
|
||||
--
|
||||
-<b></b>
|
||||
</begin>
|
||||
b
|
||||
bc
|
||||
|
@@ -741,6 +741,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
655,
|
||||
/**/
|
||||
654,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user