| To: vim_dev@googlegroups.com |
| Subject: Patch 7.4.655 |
| Fcc: outbox |
| From: Bram Moolenaar <Bram@moolenaar.net> |
| Mime-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| |
| Patch 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) |
| Files: src/normal.c, src/search.c, src/testdir/test53.in, |
| src/testdir/test53.ok |
| |
| |
| |
| |
| |
| *** 9198,9203 **** |
| --- 9198,9211 ---- |
| 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 */ |
| |
| |
| |
| *** 1063,1069 **** |
| * 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 |
| */ |
| int |
| do_search(oap, dirc, pat, count, options, tm) |
| --- 1063,1069 ---- |
| * 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. |
| */ |
| int |
| do_search(oap, dirc, pat, count, options, tm) |
| |
| *** 3781,3786 **** |
| --- 3781,3787 ---- |
| int do_include = include; |
| int save_p_ws = p_ws; |
| int retval = FAIL; |
| + int is_inclusive = TRUE; |
| |
| p_ws = FALSE; |
| |
| |
| *** 3895,3902 **** |
| } |
| else |
| { |
| ! /* Exclude the '<' of the end tag. */ |
| ! if (*ml_get_cursor() == '<') |
| dec_cursor(); |
| } |
| end_pos = curwin->w_cursor; |
| --- 3896,3910 ---- |
| } |
| else |
| { |
| ! 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,3956 **** |
| oap->inclusive = FALSE; |
| } |
| else |
| ! oap->inclusive = TRUE; |
| } |
| retval = OK; |
| |
| --- 3958,3964 ---- |
| oap->inclusive = FALSE; |
| } |
| else |
| ! oap->inclusive = is_inclusive; |
| } |
| retval = OK; |
| |
| |
| |
| |
| *** 23,28 **** |
| --- 23,29 ---- |
| 0fXdit |
| fXdat |
| 0fXdat |
| + dit |
| :" |
| :put =matchstr(\"abcd\", \".\", 0, 2) " b |
| :put =matchstr(\"abcd\", \"..\", 0, 2) " bc |
| |
| *** 97,102 **** |
| --- 98,106 ---- |
| -<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,16 **** |
| --- 11,17 ---- |
| -<b></b>- |
| -<b>asdfasdf</b>- |
| -- |
| + -<b></b> |
| </begin> |
| b |
| bc |
| |
| |
| |
| *** 743,744 **** |
| --- 743,746 ---- |
| { /* Add new patch number below this line */ |
| + /**/ |
| + 655, |
| /**/ |
| |
| -- |
| CONCORDE: Message for you, sir. |
| He falls forward revealing the arrow with the note. |
| "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD |
| |
| /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ |
| /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ |
| \\\ an exciting new programming language -- http://www.Zimbu.org /// |
| \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |