From d9318acc0223bafd3ed5e7f8cdde26328bf200e7 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sat, 27 Sep 2025 12:18:38 +0000 Subject: [PATCH] patch 9.1.1798: Wrong display with 'sms' and long wrapped virt text at EOL Problem: Wrong display with 'smoothscroll' and long wrapped virtual text at EOL. Solution: Handle w_skipcol inside long wrapped virtual text at EOL (zeertzjq). closes: #18408 Signed-off-by: zeertzjq Signed-off-by: Christian Brabandt --- src/drawline.c | 4 +- .../dumps/Test_text_eol_long_wrap_sms_01.dump | 8 +++ .../dumps/Test_text_eol_long_wrap_sms_02.dump | 8 +++ .../dumps/Test_text_eol_long_wrap_sms_03.dump | 8 +++ .../dumps/Test_text_eol_long_wrap_sms_04.dump | 8 +++ .../dumps/Test_text_eol_long_wrap_sms_05.dump | 8 +++ .../dumps/Test_text_eol_long_wrap_sms_06.dump | 8 +++ .../dumps/Test_text_eol_long_wrap_sms_07.dump | 8 +++ .../dumps/Test_text_eol_long_wrap_sms_08.dump | 8 +++ .../dumps/Test_text_eol_long_wrap_sms_09.dump | 8 +++ .../dumps/Test_text_eol_long_wrap_sms_10.dump | 8 +++ .../dumps/Test_text_eol_long_wrap_sms_11.dump | 8 +++ .../dumps/Test_text_eol_long_wrap_sms_12.dump | 8 +++ .../dumps/Test_text_eol_long_wrap_sms_13.dump | 8 +++ .../dumps/Test_text_eol_long_wrap_sms_14.dump | 8 +++ .../dumps/Test_text_eol_long_wrap_sms_15.dump | 8 +++ .../dumps/Test_text_eol_long_wrap_sms_16.dump | 8 +++ .../dumps/Test_text_eol_long_wrap_sms_17.dump | 8 +++ .../dumps/Test_text_eol_long_wrap_sms_18.dump | 8 +++ .../dumps/Test_text_eol_long_wrap_sms_19.dump | 8 +++ .../dumps/Test_text_eol_long_wrap_sms_20.dump | 8 +++ .../dumps/Test_text_eol_long_wrap_sms_21.dump | 8 +++ .../dumps/Test_text_eol_long_wrap_sms_22.dump | 8 +++ src/testdir/test_textprop.vim | 64 +++++++++++++++++++ src/version.c | 2 + 25 files changed, 245 insertions(+), 1 deletion(-) create mode 100644 src/testdir/dumps/Test_text_eol_long_wrap_sms_01.dump create mode 100644 src/testdir/dumps/Test_text_eol_long_wrap_sms_02.dump create mode 100644 src/testdir/dumps/Test_text_eol_long_wrap_sms_03.dump create mode 100644 src/testdir/dumps/Test_text_eol_long_wrap_sms_04.dump create mode 100644 src/testdir/dumps/Test_text_eol_long_wrap_sms_05.dump create mode 100644 src/testdir/dumps/Test_text_eol_long_wrap_sms_06.dump create mode 100644 src/testdir/dumps/Test_text_eol_long_wrap_sms_07.dump create mode 100644 src/testdir/dumps/Test_text_eol_long_wrap_sms_08.dump create mode 100644 src/testdir/dumps/Test_text_eol_long_wrap_sms_09.dump create mode 100644 src/testdir/dumps/Test_text_eol_long_wrap_sms_10.dump create mode 100644 src/testdir/dumps/Test_text_eol_long_wrap_sms_11.dump create mode 100644 src/testdir/dumps/Test_text_eol_long_wrap_sms_12.dump create mode 100644 src/testdir/dumps/Test_text_eol_long_wrap_sms_13.dump create mode 100644 src/testdir/dumps/Test_text_eol_long_wrap_sms_14.dump create mode 100644 src/testdir/dumps/Test_text_eol_long_wrap_sms_15.dump create mode 100644 src/testdir/dumps/Test_text_eol_long_wrap_sms_16.dump create mode 100644 src/testdir/dumps/Test_text_eol_long_wrap_sms_17.dump create mode 100644 src/testdir/dumps/Test_text_eol_long_wrap_sms_18.dump create mode 100644 src/testdir/dumps/Test_text_eol_long_wrap_sms_19.dump create mode 100644 src/testdir/dumps/Test_text_eol_long_wrap_sms_20.dump create mode 100644 src/testdir/dumps/Test_text_eol_long_wrap_sms_21.dump create mode 100644 src/testdir/dumps/Test_text_eol_long_wrap_sms_22.dump diff --git a/src/drawline.c b/src/drawline.c index 978ffee0b0..dc68c45c03 100644 --- a/src/drawline.c +++ b/src/drawline.c @@ -1769,12 +1769,14 @@ win_line( init_chartabsize_arg(&cts, wp, lnum, wlv.vcol, line, ptr); cts.cts_max_head_vcol = v; - while (cts.cts_vcol < v && *cts.cts_ptr != NUL) + while (cts.cts_vcol < v) { head = 0; charsize = win_lbr_chartabsize(&cts, &head); cts.cts_vcol += charsize; prev_ptr = cts.cts_ptr; + if (*prev_ptr == NUL) + break; MB_PTR_ADV(cts.cts_ptr); if (wp->w_p_list) { diff --git a/src/testdir/dumps/Test_text_eol_long_wrap_sms_01.dump b/src/testdir/dumps/Test_text_eol_long_wrap_sms_01.dump new file mode 100644 index 0000000000..3963e30756 --- /dev/null +++ b/src/testdir/dumps/Test_text_eol_long_wrap_sms_01.dump @@ -0,0 +1,8 @@ +|0+0&#ffffff0|1|2|3|4|5|6|7|8|9|0|1|2|3|4|5|6|7|8|9|0|1|2|3|4|5|6|7|8|9|0|1|2|3|4|5|6|7|8|9|0|1|2|3|4|5|6|7|8|9 +|>+0#4040ff13&| |x+0#ffffff16#e000002@47 +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002| +0#0000000#ffffff0@46 +|f|o@1| @46 +|b+8&&|a>r| @46 +| +0&&@31|3|,|3| @10|A|l@1| diff --git a/src/testdir/dumps/Test_text_eol_long_wrap_sms_02.dump b/src/testdir/dumps/Test_text_eol_long_wrap_sms_02.dump new file mode 100644 index 0000000000..01f530c459 --- /dev/null +++ b/src/testdir/dumps/Test_text_eol_long_wrap_sms_02.dump @@ -0,0 +1,8 @@ +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002| +0#0000000#ffffff0@46 +|f|o@1| @46 +|b+8&&|a>r| @46 +|~+0#4040ff13&| @48 +| +0#0000000&@31|3|,|3| @10|A|l@1| diff --git a/src/testdir/dumps/Test_text_eol_long_wrap_sms_03.dump b/src/testdir/dumps/Test_text_eol_long_wrap_sms_03.dump new file mode 100644 index 0000000000..0d2fddb732 --- /dev/null +++ b/src/testdir/dumps/Test_text_eol_long_wrap_sms_03.dump @@ -0,0 +1,8 @@ +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002| +0#0000000#ffffff0@46 +|f|o@1| @46 +|b+8&&|a>r| @46 +|~+0#4040ff13&| @48 +|~| @48 +| +0#0000000&@31|3|,|3| @10|A|l@1| diff --git a/src/testdir/dumps/Test_text_eol_long_wrap_sms_04.dump b/src/testdir/dumps/Test_text_eol_long_wrap_sms_04.dump new file mode 100644 index 0000000000..01980b88c2 --- /dev/null +++ b/src/testdir/dumps/Test_text_eol_long_wrap_sms_04.dump @@ -0,0 +1,8 @@ +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002| +0#0000000#ffffff0@46 +|f|o@1| @46 +|b+8&&|a>r| @46 +|~+0#4040ff13&| @48 +|~| @48 +|~| @48 +| +0#0000000&@31|3|,|3| @10|A|l@1| diff --git a/src/testdir/dumps/Test_text_eol_long_wrap_sms_05.dump b/src/testdir/dumps/Test_text_eol_long_wrap_sms_05.dump new file mode 100644 index 0000000000..768213e0ee --- /dev/null +++ b/src/testdir/dumps/Test_text_eol_long_wrap_sms_05.dump @@ -0,0 +1,8 @@ +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002| +0#0000000#ffffff0@46 +|f|o@1| @46 +|b+8&&|a>r| @46 +|~+0#4040ff13&| @48 +|~| @48 +|~| @48 +|~| @48 +| +0#0000000&@31|3|,|3| @10|A|l@1| diff --git a/src/testdir/dumps/Test_text_eol_long_wrap_sms_06.dump b/src/testdir/dumps/Test_text_eol_long_wrap_sms_06.dump new file mode 100644 index 0000000000..4ecefcfced --- /dev/null +++ b/src/testdir/dumps/Test_text_eol_long_wrap_sms_06.dump @@ -0,0 +1,8 @@ +|f+0&#ffffff0|o@1| @46 +|b+8&&|a>r| @46 +|~+0#4040ff13&| @48 +|~| @48 +|~| @48 +|~| @48 +|~| @48 +| +0#0000000&@31|3|,|3| @10|B|o|t| diff --git a/src/testdir/dumps/Test_text_eol_long_wrap_sms_07.dump b/src/testdir/dumps/Test_text_eol_long_wrap_sms_07.dump new file mode 100644 index 0000000000..215d52e578 --- /dev/null +++ b/src/testdir/dumps/Test_text_eol_long_wrap_sms_07.dump @@ -0,0 +1,8 @@ +|0+0&#ffffff0|1|2|3|4|5|6|7|8|9|0|1|2|3|4|5|6|7|8|9|0|1|2|3|4|5|6|7|8|9|0|1|2|3|4|5|6|7|8|9|0|1|2|3|4|5|6|7|8|x+0#ffffff16#e000002 +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|f+0#0000000#ffffff0|o@1| @46 +|b+8&&|a>r| @46 +|~+0#4040ff13&| @48 +| +0#0000000&@31|3|,|3| @10|A|l@1| diff --git a/src/testdir/dumps/Test_text_eol_long_wrap_sms_08.dump b/src/testdir/dumps/Test_text_eol_long_wrap_sms_08.dump new file mode 100644 index 0000000000..c180c89b83 --- /dev/null +++ b/src/testdir/dumps/Test_text_eol_long_wrap_sms_08.dump @@ -0,0 +1,8 @@ +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|f+0#0000000#ffffff0|o@1| @46 +|b+8&&|a>r| @46 +|~+0#4040ff13&| @48 +|~| @48 +| +0#0000000&@31|3|,|3| @10|A|l@1| diff --git a/src/testdir/dumps/Test_text_eol_long_wrap_sms_09.dump b/src/testdir/dumps/Test_text_eol_long_wrap_sms_09.dump new file mode 100644 index 0000000000..0602877bd7 --- /dev/null +++ b/src/testdir/dumps/Test_text_eol_long_wrap_sms_09.dump @@ -0,0 +1,8 @@ +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|f+0#0000000#ffffff0|o@1| @46 +|b+8&&|a>r| @46 +|~+0#4040ff13&| @48 +|~| @48 +|~| @48 +| +0#0000000&@31|3|,|3| @10|A|l@1| diff --git a/src/testdir/dumps/Test_text_eol_long_wrap_sms_10.dump b/src/testdir/dumps/Test_text_eol_long_wrap_sms_10.dump new file mode 100644 index 0000000000..9e8f217064 --- /dev/null +++ b/src/testdir/dumps/Test_text_eol_long_wrap_sms_10.dump @@ -0,0 +1,8 @@ +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|f+0#0000000#ffffff0|o@1| @46 +|b+8&&|a>r| @46 +|~+0#4040ff13&| @48 +|~| @48 +|~| @48 +|~| @48 +| +0#0000000&@31|3|,|3| @10|A|l@1| diff --git a/src/testdir/dumps/Test_text_eol_long_wrap_sms_11.dump b/src/testdir/dumps/Test_text_eol_long_wrap_sms_11.dump new file mode 100644 index 0000000000..4ecefcfced --- /dev/null +++ b/src/testdir/dumps/Test_text_eol_long_wrap_sms_11.dump @@ -0,0 +1,8 @@ +|f+0&#ffffff0|o@1| @46 +|b+8&&|a>r| @46 +|~+0#4040ff13&| @48 +|~| @48 +|~| @48 +|~| @48 +|~| @48 +| +0#0000000&@31|3|,|3| @10|B|o|t| diff --git a/src/testdir/dumps/Test_text_eol_long_wrap_sms_12.dump b/src/testdir/dumps/Test_text_eol_long_wrap_sms_12.dump new file mode 100644 index 0000000000..39fc433291 --- /dev/null +++ b/src/testdir/dumps/Test_text_eol_long_wrap_sms_12.dump @@ -0,0 +1,8 @@ +|0+0&#ffffff0|1|2|3|4|5|6|7|8|9|0|1|2|3|4|5|6|7|8|9|0|1|2|3|4|5|6|7|8|9|0|1|2|3|4|5|6|7|8|9|0|1|2|3|4|5|6|7|8|x+0#ffffff16#e000002 +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|>+0#4040ff13#ffffff0| |$| +0#0000000&@46 +|f|o@1|$+0#4040ff13&| +0#0000000&@45 +|b+8&&|a>r|$+8#4040ff13&| +8#0000000&@45 +| +0&&@31|3|,|3| @10|A|l@1| diff --git a/src/testdir/dumps/Test_text_eol_long_wrap_sms_13.dump b/src/testdir/dumps/Test_text_eol_long_wrap_sms_13.dump new file mode 100644 index 0000000000..a30f7b5f86 --- /dev/null +++ b/src/testdir/dumps/Test_text_eol_long_wrap_sms_13.dump @@ -0,0 +1,8 @@ +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|>+0#4040ff13#ffffff0| |$| +0#0000000&@46 +|f|o@1|$+0#4040ff13&| +0#0000000&@45 +|b+8&&|a>r|$+8#4040ff13&| +8#0000000&@45 +|~+0#4040ff13&| @48 +| +0#0000000&@31|3|,|3| @10|A|l@1| diff --git a/src/testdir/dumps/Test_text_eol_long_wrap_sms_14.dump b/src/testdir/dumps/Test_text_eol_long_wrap_sms_14.dump new file mode 100644 index 0000000000..d2ccd3d153 --- /dev/null +++ b/src/testdir/dumps/Test_text_eol_long_wrap_sms_14.dump @@ -0,0 +1,8 @@ +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|>+0#4040ff13#ffffff0| |$| +0#0000000&@46 +|f|o@1|$+0#4040ff13&| +0#0000000&@45 +|b+8&&|a>r|$+8#4040ff13&| +8#0000000&@45 +|~+0#4040ff13&| @48 +|~| @48 +| +0#0000000&@31|3|,|3| @10|A|l@1| diff --git a/src/testdir/dumps/Test_text_eol_long_wrap_sms_15.dump b/src/testdir/dumps/Test_text_eol_long_wrap_sms_15.dump new file mode 100644 index 0000000000..2ee7d4b24a --- /dev/null +++ b/src/testdir/dumps/Test_text_eol_long_wrap_sms_15.dump @@ -0,0 +1,8 @@ +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|>+0#4040ff13#ffffff0| |$| +0#0000000&@46 +|f|o@1|$+0#4040ff13&| +0#0000000&@45 +|b+8&&|a>r|$+8#4040ff13&| +8#0000000&@45 +|~+0#4040ff13&| @48 +|~| @48 +|~| @48 +| +0#0000000&@31|3|,|3| @10|A|l@1| diff --git a/src/testdir/dumps/Test_text_eol_long_wrap_sms_16.dump b/src/testdir/dumps/Test_text_eol_long_wrap_sms_16.dump new file mode 100644 index 0000000000..1e6c1d5b0f --- /dev/null +++ b/src/testdir/dumps/Test_text_eol_long_wrap_sms_16.dump @@ -0,0 +1,8 @@ +|>+0#4040ff13#ffffff0| |$| +0#0000000&@46 +|f|o@1|$+0#4040ff13&| +0#0000000&@45 +|b+8&&|a>r|$+8#4040ff13&| +8#0000000&@45 +|~+0#4040ff13&| @48 +|~| @48 +|~| @48 +|~| @48 +| +0#0000000&@31|3|,|3| @10|A|l@1| diff --git a/src/testdir/dumps/Test_text_eol_long_wrap_sms_17.dump b/src/testdir/dumps/Test_text_eol_long_wrap_sms_17.dump new file mode 100644 index 0000000000..a813ea2bb5 --- /dev/null +++ b/src/testdir/dumps/Test_text_eol_long_wrap_sms_17.dump @@ -0,0 +1,8 @@ +|f+0&#ffffff0|o@1|$+0#4040ff13&| +0#0000000&@45 +|b+8&&|a>r|$+8#4040ff13&| +8#0000000&@45 +|~+0#4040ff13&| @48 +|~| @48 +|~| @48 +|~| @48 +|~| @48 +| +0#0000000&@31|3|,|3| @10|B|o|t| diff --git a/src/testdir/dumps/Test_text_eol_long_wrap_sms_18.dump b/src/testdir/dumps/Test_text_eol_long_wrap_sms_18.dump new file mode 100644 index 0000000000..8d484bd23a --- /dev/null +++ b/src/testdir/dumps/Test_text_eol_long_wrap_sms_18.dump @@ -0,0 +1,8 @@ +|0+0&#ffffff0|1|2|3|4|5|6|7|8|9|0|1|2|3|4|5|6|7|8|9|0|1|2|3|4|5|6|7|8|9|0|1|2|3|4|5|6|7|8|9|0|1|2|3|4|5|6|7|x+0#ffffff16#e000002@1 +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@46|$+0#4040ff13#ffffff0 +|f+0#0000000&|o@1|$+0#4040ff13&| +0#0000000&@45 +|b+8&&|a>r|$+8#4040ff13&| +8#0000000&@45 +|~+0#4040ff13&| @48 +| +0#0000000&@31|3|,|3| @10|A|l@1| diff --git a/src/testdir/dumps/Test_text_eol_long_wrap_sms_19.dump b/src/testdir/dumps/Test_text_eol_long_wrap_sms_19.dump new file mode 100644 index 0000000000..87d3dfd940 --- /dev/null +++ b/src/testdir/dumps/Test_text_eol_long_wrap_sms_19.dump @@ -0,0 +1,8 @@ +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@46|$+0#4040ff13#ffffff0 +|f+0#0000000&|o@1|$+0#4040ff13&| +0#0000000&@45 +|b+8&&|a>r|$+8#4040ff13&| +8#0000000&@45 +|~+0#4040ff13&| @48 +|~| @48 +| +0#0000000&@31|3|,|3| @10|A|l@1| diff --git a/src/testdir/dumps/Test_text_eol_long_wrap_sms_20.dump b/src/testdir/dumps/Test_text_eol_long_wrap_sms_20.dump new file mode 100644 index 0000000000..bf14da4b0f --- /dev/null +++ b/src/testdir/dumps/Test_text_eol_long_wrap_sms_20.dump @@ -0,0 +1,8 @@ +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@47 +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@46|$+0#4040ff13#ffffff0 +|f+0#0000000&|o@1|$+0#4040ff13&| +0#0000000&@45 +|b+8&&|a>r|$+8#4040ff13&| +8#0000000&@45 +|~+0#4040ff13&| @48 +|~| @48 +|~| @48 +| +0#0000000&@31|3|,|3| @10|A|l@1| diff --git a/src/testdir/dumps/Test_text_eol_long_wrap_sms_21.dump b/src/testdir/dumps/Test_text_eol_long_wrap_sms_21.dump new file mode 100644 index 0000000000..b2e90ee25c --- /dev/null +++ b/src/testdir/dumps/Test_text_eol_long_wrap_sms_21.dump @@ -0,0 +1,8 @@ +|>+0#4040ff13#ffffff0| |x+0#ffffff16#e000002@46|$+0#4040ff13#ffffff0 +|f+0#0000000&|o@1|$+0#4040ff13&| +0#0000000&@45 +|b+8&&|a>r|$+8#4040ff13&| +8#0000000&@45 +|~+0#4040ff13&| @48 +|~| @48 +|~| @48 +|~| @48 +| +0#0000000&@31|3|,|3| @10|A|l@1| diff --git a/src/testdir/dumps/Test_text_eol_long_wrap_sms_22.dump b/src/testdir/dumps/Test_text_eol_long_wrap_sms_22.dump new file mode 100644 index 0000000000..a813ea2bb5 --- /dev/null +++ b/src/testdir/dumps/Test_text_eol_long_wrap_sms_22.dump @@ -0,0 +1,8 @@ +|f+0&#ffffff0|o@1|$+0#4040ff13&| +0#0000000&@45 +|b+8&&|a>r|$+8#4040ff13&| +8#0000000&@45 +|~+0#4040ff13&| @48 +|~| @48 +|~| @48 +|~| @48 +|~| @48 +| +0#0000000&@31|3|,|3| @10|B|o|t| diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim index 5340aeef1f..d335752419 100644 --- a/src/testdir/test_textprop.vim +++ b/src/testdir/test_textprop.vim @@ -4339,6 +4339,70 @@ func Test_text_after_wrap_showbreak() call StopVimInTerminal(buf) endfunc +func Test_text_eol_long_wrap_smoothscroll() + CheckScreendump + CheckRunVimInTerminal + + let lines =<< trim END + call setline(1, [repeat('0123456789', 5), 'foo', 'bar']) + normal! G$ + call prop_type_add('Test', #{highlight: 'ErrorMsg'}) + call prop_add(1, 51, #{type: 'Test', text: repeat('x', 145), text_wrap: 'wrap'}) + + set cursorline scrolloff=0 showbreak=>\ smoothscroll + END + call writefile(lines, 'XTestEolLongWrapSms', 'D') + let buf = RunVimInTerminal('-S XTestEolLongWrapSms', #{rows: 8, cols: 50}) + call VerifyScreenDump(buf, 'Test_text_eol_long_wrap_sms_01', {}) + call term_sendkeys(buf, "\") + call VerifyScreenDump(buf, 'Test_text_eol_long_wrap_sms_02', {}) + call term_sendkeys(buf, "\") + call VerifyScreenDump(buf, 'Test_text_eol_long_wrap_sms_03', {}) + call term_sendkeys(buf, "\") + call VerifyScreenDump(buf, 'Test_text_eol_long_wrap_sms_04', {}) + call term_sendkeys(buf, "\") + call VerifyScreenDump(buf, 'Test_text_eol_long_wrap_sms_05', {}) + call term_sendkeys(buf, "\") + call VerifyScreenDump(buf, 'Test_text_eol_long_wrap_sms_06', {}) + + call term_sendkeys(buf, 'gg$xG$') + call VerifyScreenDump(buf, 'Test_text_eol_long_wrap_sms_07', {}) + call term_sendkeys(buf, "\") + call VerifyScreenDump(buf, 'Test_text_eol_long_wrap_sms_08', {}) + call term_sendkeys(buf, "\") + call VerifyScreenDump(buf, 'Test_text_eol_long_wrap_sms_09', {}) + call term_sendkeys(buf, "\") + call VerifyScreenDump(buf, 'Test_text_eol_long_wrap_sms_10', {}) + call term_sendkeys(buf, "\") + call VerifyScreenDump(buf, 'Test_text_eol_long_wrap_sms_11', {}) + + call term_sendkeys(buf, "zb:set list listchars=eol:$ | echo\") + call VerifyScreenDump(buf, 'Test_text_eol_long_wrap_sms_12', {}) + call term_sendkeys(buf, "\") + call VerifyScreenDump(buf, 'Test_text_eol_long_wrap_sms_13', {}) + call term_sendkeys(buf, "\") + call VerifyScreenDump(buf, 'Test_text_eol_long_wrap_sms_14', {}) + call term_sendkeys(buf, "\") + call VerifyScreenDump(buf, 'Test_text_eol_long_wrap_sms_15', {}) + call term_sendkeys(buf, "\") + call VerifyScreenDump(buf, 'Test_text_eol_long_wrap_sms_16', {}) + call term_sendkeys(buf, "\") + call VerifyScreenDump(buf, 'Test_text_eol_long_wrap_sms_17', {}) + + call term_sendkeys(buf, 'gg$xG$') + call VerifyScreenDump(buf, 'Test_text_eol_long_wrap_sms_18', {}) + call term_sendkeys(buf, "\") + call VerifyScreenDump(buf, 'Test_text_eol_long_wrap_sms_19', {}) + call term_sendkeys(buf, "\") + call VerifyScreenDump(buf, 'Test_text_eol_long_wrap_sms_20', {}) + call term_sendkeys(buf, "\") + call VerifyScreenDump(buf, 'Test_text_eol_long_wrap_sms_21', {}) + call term_sendkeys(buf, "\") + call VerifyScreenDump(buf, 'Test_text_eol_long_wrap_sms_22', {}) + + call StopVimInTerminal(buf) +endfunc + func Test_text_below_nowrap() CheckScreendump CheckRunVimInTerminal diff --git a/src/version.c b/src/version.c index f5d1e62b9d..490b882f9e 100644 --- a/src/version.c +++ b/src/version.c @@ -729,6 +729,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1798, /**/ 1797, /**/