| To: vim_dev@googlegroups.com |
| Subject: Patch 7.3.452 |
| 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.3.452 |
| Problem: Undo broken when pasting close to the last line. (Andrey Radev) |
| Solution: Use a flag to remember if the deleted included the last line. |
| (Christian Brabandt) |
| Files: src/ops.c |
| |
| |
| |
| |
| |
| *** 1943,1954 **** |
| --- 1943,1956 ---- |
| else /* delete characters between lines */ |
| { |
| pos_T curpos; |
| + int delete_last_line; |
| |
| /* save deleted and changed lines for undo */ |
| if (u_save((linenr_T)(curwin->w_cursor.lnum - 1), |
| (linenr_T)(curwin->w_cursor.lnum + oap->line_count)) == FAIL) |
| return FAIL; |
| |
| + delete_last_line = (oap->end.lnum == curbuf->b_ml.ml_line_count); |
| truncate_line(TRUE); /* delete from cursor to end of line */ |
| |
| curpos = curwin->w_cursor; /* remember curwin->w_cursor */ |
| |
| *** 1956,1962 **** |
| del_lines((long)(oap->line_count - 2), FALSE); |
| |
| n = (oap->end.col + 1 - !oap->inclusive); |
| ! if (oap->inclusive && oap->end.lnum == curbuf->b_ml.ml_line_count |
| && n > (int)STRLEN(ml_get(oap->end.lnum))) |
| { |
| /* Special case: gH<Del> deletes the last line. */ |
| --- 1958,1964 ---- |
| del_lines((long)(oap->line_count - 2), FALSE); |
| |
| n = (oap->end.col + 1 - !oap->inclusive); |
| ! if (oap->inclusive && delete_last_line |
| && n > (int)STRLEN(ml_get(oap->end.lnum))) |
| { |
| /* Special case: gH<Del> deletes the last line. */ |
| |
| |
| |
| *** 716,717 **** |
| --- 716,719 ---- |
| { /* Add new patch number below this line */ |
| + /**/ |
| + 452, |
| /**/ |
| |
| -- |
| From "know your smileys": |
| =):-) Uncle Sam |
| |
| /// 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 /// |