1
0
forked from aniani/vim

patch 9.1.0546: vim-tiny fails on CTRL-X/CTRL-A

Problem:  vim-tiny fails on CTRL-X/CTRL-A
          (Rob Foehl, after 9.1.0172)
Solution: Move #ifdefs, so that after changing the line in del_bytes,
          the cached textlen value is invalidated

closes: #15178

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Christian Brabandt
2024-07-08 21:12:55 +02:00
parent ab03dd2085
commit 03acd4761b
5 changed files with 24 additions and 4 deletions

View File

@@ -1355,17 +1355,17 @@ del_bytes(
mch_memmove(newp + col, oldp + col + count, (size_t)movelen); mch_memmove(newp + col, oldp + col + count, (size_t)movelen);
if (alloc_newp) if (alloc_newp)
ml_replace(lnum, newp, FALSE); ml_replace(lnum, newp, FALSE);
#ifdef FEAT_PROP_POPUP
else else
{ {
#ifdef FEAT_PROP_POPUP
// Also move any following text properties. // Also move any following text properties.
if (oldlen + 1 < curbuf->b_ml.ml_line_len) if (oldlen + 1 < curbuf->b_ml.ml_line_len)
mch_memmove(newp + newlen + 1, oldp + oldlen + 1, mch_memmove(newp + newlen + 1, oldp + oldlen + 1,
(size_t)curbuf->b_ml.ml_line_len - oldlen - 1); (size_t)curbuf->b_ml.ml_line_len - oldlen - 1);
#endif
curbuf->b_ml.ml_line_len -= count; curbuf->b_ml.ml_line_len -= count;
curbuf->b_ml.ml_line_textlen = 0; curbuf->b_ml.ml_line_textlen = 0;
} }
#endif
// mark the buffer as changed and prepare for displaying // mark the buffer as changed and prepare for displaying
inserted_bytes(lnum, col, -count); inserted_bytes(lnum, col, -count);

View File

@@ -20,7 +20,8 @@ SCRIPTS_TINY = \
test24 \ test24 \
test25 \ test25 \
test26 \ test26 \
test27 test27 \
test28
SCRIPTS_TINY_OUT = \ SCRIPTS_TINY_OUT = \
test10.out \ test10.out \
@@ -31,7 +32,8 @@ SCRIPTS_TINY_OUT = \
test24.out \ test24.out \
test25.out \ test25.out \
test26.out \ test26.out \
test27.out test27.out \
test28.out
# Tests for Vim9 script. # Tests for Vim9 script.
TEST_VIM9 = \ TEST_VIM9 = \

13
src/testdir/test28.in Normal file
View File

@@ -0,0 +1,13 @@
Test for using CTRL-A/CTRL-X in tiny mode
STARTTEST
/12352
/12354
:/^STARTHERE/+,$w! test.out
:qa!
ENDTEST
STARTHERE
12352
12354

3
src/testdir/test28.ok Normal file
View File

@@ -0,0 +1,3 @@
12353
12353

View File

@@ -704,6 +704,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
546,
/**/ /**/
545, 545,
/**/ /**/