updated for version 7.3.476
Problem: When selecting a block, using "$" to include the end of each line
and using "A" and typing a backspace strange things happen.
(Yuangchen Xie)
Solution: Avoid using a negative length. (Christian Brabandt)
diff --git a/src/ops.c b/src/ops.c
index 1ddff28..146c990 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -2602,7 +2602,8 @@
firstline = ml_get(oap->start.lnum) + bd.textcol;
if (oap->op_type == OP_APPEND)
firstline += bd.textlen;
- if ((ins_len = (long)STRLEN(firstline) - pre_textlen) > 0)
+ if (pre_textlen >= 0
+ && (ins_len = (long)STRLEN(firstline) - pre_textlen) > 0)
{
ins_text = vim_strnsave(firstline, (int)ins_len);
if (ins_text != NULL)