summaryrefslogtreecommitdiffstats
path: root/src/testdir
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-08-22 22:07:34 +0200
committerChristian Brabandt <cb@256bit.org>2023-08-22 22:07:34 +0200
commitb557f4898208105b674df605403cac1b1292707b (patch)
tree1f488959630dfabef4d8fe87928aeb462b455d32 /src/testdir
parent171c5b9b0332493faa6caadd8c0d5cf52392d913 (diff)
patch 9.0.1783: Display issues with virt text smoothscroll and showbreakv9.0.1783
Problem: Wrong display with wrapping virtual text or unprintable chars, 'showbreak' and 'smoothscroll'. Solution: Don't skip cells taken by 'showbreak' in screen lines before "w_skipcol". Combined "n_skip" and "skip_cells". closes: #12597 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Diffstat (limited to 'src/testdir')
-rw-r--r--src/testdir/dumps/Test_prop_before_tab_skipcol_1.dump6
-rw-r--r--src/testdir/dumps/Test_prop_before_tab_skipcol_10.dump6
-rw-r--r--src/testdir/dumps/Test_prop_before_tab_skipcol_11.dump6
-rw-r--r--src/testdir/dumps/Test_prop_before_tab_skipcol_2.dump6
-rw-r--r--src/testdir/dumps/Test_prop_before_tab_skipcol_3.dump6
-rw-r--r--src/testdir/dumps/Test_prop_before_tab_skipcol_4.dump6
-rw-r--r--src/testdir/dumps/Test_prop_before_tab_skipcol_5.dump6
-rw-r--r--src/testdir/dumps/Test_prop_before_tab_skipcol_6.dump6
-rw-r--r--src/testdir/dumps/Test_prop_before_tab_skipcol_7.dump6
-rw-r--r--src/testdir/dumps/Test_prop_before_tab_skipcol_8.dump6
-rw-r--r--src/testdir/dumps/Test_prop_before_tab_skipcol_9.dump6
-rw-r--r--src/testdir/dumps/Test_prop_inserts_text_showbreak_1.dump6
-rw-r--r--src/testdir/dumps/Test_prop_inserts_text_showbreak_10.dump6
-rw-r--r--src/testdir/dumps/Test_prop_inserts_text_showbreak_11.dump6
-rw-r--r--src/testdir/dumps/Test_prop_inserts_text_showbreak_12.dump6
-rw-r--r--src/testdir/dumps/Test_prop_inserts_text_showbreak_13.dump6
-rw-r--r--src/testdir/dumps/Test_prop_inserts_text_showbreak_14.dump6
-rw-r--r--src/testdir/dumps/Test_prop_inserts_text_showbreak_15.dump6
-rw-r--r--src/testdir/dumps/Test_prop_inserts_text_showbreak_16.dump6
-rw-r--r--src/testdir/dumps/Test_prop_inserts_text_showbreak_17.dump6
-rw-r--r--src/testdir/dumps/Test_prop_inserts_text_showbreak_18.dump6
-rw-r--r--src/testdir/dumps/Test_prop_inserts_text_showbreak_19.dump6
-rw-r--r--src/testdir/dumps/Test_prop_inserts_text_showbreak_2.dump6
-rw-r--r--src/testdir/dumps/Test_prop_inserts_text_showbreak_20.dump6
-rw-r--r--src/testdir/dumps/Test_prop_inserts_text_showbreak_21.dump6
-rw-r--r--src/testdir/dumps/Test_prop_inserts_text_showbreak_3.dump6
-rw-r--r--src/testdir/dumps/Test_prop_inserts_text_showbreak_4.dump6
-rw-r--r--src/testdir/dumps/Test_prop_inserts_text_showbreak_5.dump6
-rw-r--r--src/testdir/dumps/Test_prop_inserts_text_showbreak_6.dump6
-rw-r--r--src/testdir/dumps/Test_prop_inserts_text_showbreak_7.dump6
-rw-r--r--src/testdir/dumps/Test_prop_inserts_text_showbreak_8.dump6
-rw-r--r--src/testdir/dumps/Test_prop_inserts_text_showbreak_9.dump6
-rw-r--r--src/testdir/test_listlbr.vim43
-rw-r--r--src/testdir/test_listlbr_utf8.vim79
-rw-r--r--src/testdir/test_textprop.vim104
35 files changed, 416 insertions, 2 deletions
diff --git a/src/testdir/dumps/Test_prop_before_tab_skipcol_1.dump b/src/testdir/dumps/Test_prop_before_tab_skipcol_1.dump
new file mode 100644
index 0000000000..7f6f0f1cf3
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_before_tab_skipcol_1.dump
@@ -0,0 +1,6 @@
+|<+0#0000e05#ffffff0|-@5|>|<|-@5|>|<|-@5|>|1+0#e000e06&|2|1|2|1|2
+|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2
+|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|<+0#0000e05&|-
+@5|>>a+0#0000000&| @22
+|~+0#4040ff13&| @28
+| +0#0000000&@14|1|,|5|-|9|7| @4|A|l@1|
diff --git a/src/testdir/dumps/Test_prop_before_tab_skipcol_10.dump b/src/testdir/dumps/Test_prop_before_tab_skipcol_10.dump
new file mode 100644
index 0000000000..06bcf1e520
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_before_tab_skipcol_10.dump
@@ -0,0 +1,6 @@
+|<+0#4040ff13#ffffff0@2|2+0#e000e06&|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2| +0#0000000&@1
+@5> |a| @22
+|~+0#4040ff13&| @28
+|~| @28
+|~| @28
+| +0#0000000&@14|1|,|4|-|9|6| @4|A|l@1|
diff --git a/src/testdir/dumps/Test_prop_before_tab_skipcol_11.dump b/src/testdir/dumps/Test_prop_before_tab_skipcol_11.dump
new file mode 100644
index 0000000000..78dc0185db
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_before_tab_skipcol_11.dump
@@ -0,0 +1,6 @@
+|<+0#4040ff13#ffffff0@2| +0#e000e06&@1> |a+0#0000000&| @22
+|~+0#4040ff13&| @28
+|~| @28
+|~| @28
+|~| @28
+| +0#0000000&@14|1|,|4|-|9|6| @4|A|l@1|
diff --git a/src/testdir/dumps/Test_prop_before_tab_skipcol_2.dump b/src/testdir/dumps/Test_prop_before_tab_skipcol_2.dump
new file mode 100644
index 0000000000..455b6f3c9e
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_before_tab_skipcol_2.dump
@@ -0,0 +1,6 @@
+|<+0#4040ff13#ffffff0@2|2+0#e000e06&|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2
+|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|<+0#0000e05&|-
+@5|>>a+0#0000000&| @22
+|~+0#4040ff13&| @28
+|~| @28
+| +0#0000000&@14|1|,|5|-|9|7| @4|A|l@1|
diff --git a/src/testdir/dumps/Test_prop_before_tab_skipcol_3.dump b/src/testdir/dumps/Test_prop_before_tab_skipcol_3.dump
new file mode 100644
index 0000000000..be24c1a9c4
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_before_tab_skipcol_3.dump
@@ -0,0 +1,6 @@
+|<+0#4040ff13#ffffff0@2|2+0#e000e06&|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|<+0#0000e05&|-
+@5|>>a+0#0000000&| @22
+|~+0#4040ff13&| @28
+|~| @28
+|~| @28
+| +0#0000000&@14|1|,|5|-|9|7| @4|A|l@1|
diff --git a/src/testdir/dumps/Test_prop_before_tab_skipcol_4.dump b/src/testdir/dumps/Test_prop_before_tab_skipcol_4.dump
new file mode 100644
index 0000000000..81fa878015
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_before_tab_skipcol_4.dump
@@ -0,0 +1,6 @@
+|<+0#4040ff13#ffffff0@2|-+0#0000e05&@1|>>a+0#0000000&| @22
+|~+0#4040ff13&| @28
+|~| @28
+|~| @28
+|~| @28
+| +0#0000000&@14|1|,|5|-|9|7| @4|A|l@1|
diff --git a/src/testdir/dumps/Test_prop_before_tab_skipcol_5.dump b/src/testdir/dumps/Test_prop_before_tab_skipcol_5.dump
new file mode 100644
index 0000000000..517ba7857c
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_before_tab_skipcol_5.dump
@@ -0,0 +1,6 @@
+|<+0#0000e05#ffffff0|-@5|>|<|-@5|>|<|-@5|>|1+0#e000e06&|2|1|2|1|2
+|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2
+|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2><+0#0000e05&|-
+@5|>|a+0#0000000&| @22
+|~+0#4040ff13&| @28
+| +0#0000000&@14|1|,|4|-|8|9| @4|A|l@1|
diff --git a/src/testdir/dumps/Test_prop_before_tab_skipcol_6.dump b/src/testdir/dumps/Test_prop_before_tab_skipcol_6.dump
new file mode 100644
index 0000000000..78f0e04c65
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_before_tab_skipcol_6.dump
@@ -0,0 +1,6 @@
+|<+0#0000e05#ffffff0|-@5|>|<|-@5|>|<|-@5|>>1+0#e000e06&|2|1|2|1|2
+|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2
+|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|<+0#0000e05&|-
+@5|>|a+0#0000000&| @22
+|~+0#4040ff13&| @28
+|-+2#0000000&@1| |I|N|S|E|R|T| |-@1| +0&&@2|1|,|4|-|2|5| @4|A|l@1|
diff --git a/src/testdir/dumps/Test_prop_before_tab_skipcol_7.dump b/src/testdir/dumps/Test_prop_before_tab_skipcol_7.dump
new file mode 100644
index 0000000000..a115e66f00
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_before_tab_skipcol_7.dump
@@ -0,0 +1,6 @@
+| +0&#ffffff0@23>1+0#e000e06&|2|1|2|1|2
+|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2
+|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2| +0#0000000&@1
+@6|a| @22
+|~+0#4040ff13&| @28
+|-+2#0000000&@1| |I|N|S|E|R|T| |-@1| +0&&@2|1|,|4|-|2|5| @4|A|l@1|
diff --git a/src/testdir/dumps/Test_prop_before_tab_skipcol_8.dump b/src/testdir/dumps/Test_prop_before_tab_skipcol_8.dump
new file mode 100644
index 0000000000..819fddc984
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_before_tab_skipcol_8.dump
@@ -0,0 +1,6 @@
+| +0&#ffffff0@23|1+0#e000e06&|2|1|2|1|2
+|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2
+|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2| +0#0000000&@1
+@5> |a| @22
+|~+0#4040ff13&| @28
+| +0#0000000&@14|1|,|4|-|9|6| @4|A|l@1|
diff --git a/src/testdir/dumps/Test_prop_before_tab_skipcol_9.dump b/src/testdir/dumps/Test_prop_before_tab_skipcol_9.dump
new file mode 100644
index 0000000000..0bbe05ec5f
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_before_tab_skipcol_9.dump
@@ -0,0 +1,6 @@
+|<+0#4040ff13#ffffff0@2|2+0#e000e06&|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2
+|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2|1|2| +0#0000000&@1
+@5> |a| @22
+|~+0#4040ff13&| @28
+|~| @28
+| +0#0000000&@14|1|,|4|-|9|6| @4|A|l@1|
diff --git a/src/testdir/dumps/Test_prop_inserts_text_showbreak_1.dump b/src/testdir/dumps/Test_prop_inserts_text_showbreak_1.dump
new file mode 100644
index 0000000000..fbe4e4bd4d
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_inserts_text_showbreak_1.dump
@@ -0,0 +1,6 @@
+| +0&#ffffff0@1|1| |a@25
+| @5|++0#4040ff13&|a+0#0000000&|1+0#e000e06&|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1
+| +0#0000000&@5|++0#4040ff13&|2+0#e000e06&|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3
+| +0#0000000&@5|++0#4040ff13&|1+0#e000e06&|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2
+| +0#0000000&@5|++0#4040ff13&|3+0#e000e06&>a+0#0000000&| @20
+|:|s|e|t| |n|o|r|u|l|e|r| @17
diff --git a/src/testdir/dumps/Test_prop_inserts_text_showbreak_10.dump b/src/testdir/dumps/Test_prop_inserts_text_showbreak_10.dump
new file mode 100644
index 0000000000..6acf66419a
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_inserts_text_showbreak_10.dump
@@ -0,0 +1,6 @@
+| +0&#ffffff0@5|++0#4040ff13&|3+0#e000e06&|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1
+| +0#0000000&@5|++0#4040ff13&|2+0#e000e06&|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3
+| +0#0000000&@5|++0#4040ff13&>a+0#0000000&| @21
+|~+0#4040ff13&| @28
+|~| @28
+| +0#0000000&@29
diff --git a/src/testdir/dumps/Test_prop_inserts_text_showbreak_11.dump b/src/testdir/dumps/Test_prop_inserts_text_showbreak_11.dump
new file mode 100644
index 0000000000..39937c9179
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_inserts_text_showbreak_11.dump
@@ -0,0 +1,6 @@
+| +0&#ffffff0@5|++0#4040ff13&|2+0#e000e06&|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3
+| +0#0000000&@5|++0#4040ff13&>a+0#0000000&| @21
+|~+0#4040ff13&| @28
+|~| @28
+|~| @28
+| +0#0000000&@29
diff --git a/src/testdir/dumps/Test_prop_inserts_text_showbreak_12.dump b/src/testdir/dumps/Test_prop_inserts_text_showbreak_12.dump
new file mode 100644
index 0000000000..5624744bdd
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_inserts_text_showbreak_12.dump
@@ -0,0 +1,6 @@
+| +0&#ffffff0@5|++0#4040ff13&>a+0#e000e06&| +0#0000000&@21
+|~+0#4040ff13&| @28
+|~| @28
+|~| @28
+|~| @28
+| +0#0000000&@29
diff --git a/src/testdir/dumps/Test_prop_inserts_text_showbreak_13.dump b/src/testdir/dumps/Test_prop_inserts_text_showbreak_13.dump
new file mode 100644
index 0000000000..98ff0bf294
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_inserts_text_showbreak_13.dump
@@ -0,0 +1,6 @@
+| +0&#ffffff0@1|1| |a@2|1+0#e000e06&|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2
+| +0#0000000&@5|++0#4040ff13&|3+0#e000e06&|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1
+| +0#0000000&@5|++0#4040ff13&|2+0#e000e06&|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3
+| +0#0000000&@5|++0#4040ff13&>a+0#0000000&| @21
+|~+0#4040ff13&| @28
+| +0#0000000&@29
diff --git a/src/testdir/dumps/Test_prop_inserts_text_showbreak_14.dump b/src/testdir/dumps/Test_prop_inserts_text_showbreak_14.dump
new file mode 100644
index 0000000000..6acf66419a
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_inserts_text_showbreak_14.dump
@@ -0,0 +1,6 @@
+| +0&#ffffff0@5|++0#4040ff13&|3+0#e000e06&|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1
+| +0#0000000&@5|++0#4040ff13&|2+0#e000e06&|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3
+| +0#0000000&@5|++0#4040ff13&>a+0#0000000&| @21
+|~+0#4040ff13&| @28
+|~| @28
+| +0#0000000&@29
diff --git a/src/testdir/dumps/Test_prop_inserts_text_showbreak_15.dump b/src/testdir/dumps/Test_prop_inserts_text_showbreak_15.dump
new file mode 100644
index 0000000000..39937c9179
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_inserts_text_showbreak_15.dump
@@ -0,0 +1,6 @@
+| +0&#ffffff0@5|++0#4040ff13&|2+0#e000e06&|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3
+| +0#0000000&@5|++0#4040ff13&>a+0#0000000&| @21
+|~+0#4040ff13&| @28
+|~| @28
+|~| @28
+| +0#0000000&@29
diff --git a/src/testdir/dumps/Test_prop_inserts_text_showbreak_16.dump b/src/testdir/dumps/Test_prop_inserts_text_showbreak_16.dump
new file mode 100644
index 0000000000..5624744bdd
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_inserts_text_showbreak_16.dump
@@ -0,0 +1,6 @@
+| +0&#ffffff0@5|++0#4040ff13&>a+0#e000e06&| +0#0000000&@21
+|~+0#4040ff13&| @28
+|~| @28
+|~| @28
+|~| @28
+| +0#0000000&@29
diff --git a/src/testdir/dumps/Test_prop_inserts_text_showbreak_17.dump b/src/testdir/dumps/Test_prop_inserts_text_showbreak_17.dump
new file mode 100644
index 0000000000..2ae67a1970
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_inserts_text_showbreak_17.dump
@@ -0,0 +1,6 @@
+| +0&#ffffff0@1|1| |a@2>1+0#e000e06&|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2
+| +0#0000000&@5|++0#4040ff13&|3+0#e000e06&|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1
+| +0#0000000&@5|++0#4040ff13&|2+0#e000e06&|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3
+| +0#0000000&@5|++0#4040ff13&|a+0#0000000&| @21
+|~+0#4040ff13&| @28
+|-+2#0000000&@1| |I|N|S|E|R|T| |-@1| +0&&@17
diff --git a/src/testdir/dumps/Test_prop_inserts_text_showbreak_18.dump b/src/testdir/dumps/Test_prop_inserts_text_showbreak_18.dump
new file mode 100644
index 0000000000..c51a590245
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_inserts_text_showbreak_18.dump
@@ -0,0 +1,6 @@
+| +0&#ffffff0@1|1| >1+0#e000e06&|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2
+| +0#0000000&@5|++0#4040ff13&|3+0#e000e06&|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1
+| +0#0000000&@5|++0#4040ff13&|2+0#e000e06&|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|a+0#0000000&| @1
+|~+0#4040ff13&| @28
+|~| @28
+|-+2#0000000&@1| |I|N|S|E|R|T| |-@1| +0&&@17
diff --git a/src/testdir/dumps/Test_prop_inserts_text_showbreak_19.dump b/src/testdir/dumps/Test_prop_inserts_text_showbreak_19.dump
new file mode 100644
index 0000000000..e2d50a5c55
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_inserts_text_showbreak_19.dump
@@ -0,0 +1,6 @@
+| +0&#ffffff0@1|1| |1+0#e000e06&|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2
+| +0#0000000&@5|++0#4040ff13&|3+0#e000e06&|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1
+| +0#0000000&@5|++0#4040ff13&|2+0#e000e06&|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3>a+0#0000000&| @1
+|~+0#4040ff13&| @28
+|~| @28
+| +0#0000000&@29
diff --git a/src/testdir/dumps/Test_prop_inserts_text_showbreak_2.dump b/src/testdir/dumps/Test_prop_inserts_text_showbreak_2.dump
new file mode 100644
index 0000000000..d7167c0f4c
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_inserts_text_showbreak_2.dump
@@ -0,0 +1,6 @@
+| +0&#ffffff0@5|++0#4040ff13&|a+0#0000000&|1+0#e000e06&|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1
+| +0#0000000&@5|++0#4040ff13&|2+0#e000e06&|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3
+| +0#0000000&@5|++0#4040ff13&|1+0#e000e06&|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2
+| +0#0000000&@5|++0#4040ff13&|3+0#e000e06&>a+0#0000000&| @20
+|~+0#4040ff13&| @28
+|:+0#0000000&|s|e|t| |n|o|r|u|l|e|r| @17
diff --git a/src/testdir/dumps/Test_prop_inserts_text_showbreak_20.dump b/src/testdir/dumps/Test_prop_inserts_text_showbreak_20.dump
new file mode 100644
index 0000000000..1e34f17a9c
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_inserts_text_showbreak_20.dump
@@ -0,0 +1,6 @@
+| +0&#ffffff0@5|++0#4040ff13&|3+0#e000e06&|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1
+| +0#0000000&@5|++0#4040ff13&|2+0#e000e06&|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3>a+0#0000000&| @1
+|~+0#4040ff13&| @28
+|~| @28
+|~| @28
+| +0#0000000&@29
diff --git a/src/testdir/dumps/Test_prop_inserts_text_showbreak_21.dump b/src/testdir/dumps/Test_prop_inserts_text_showbreak_21.dump
new file mode 100644
index 0000000000..24c6018a20
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_inserts_text_showbreak_21.dump
@@ -0,0 +1,6 @@
+| +0&#ffffff0@5|++0#4040ff13&|2+0#e000e06&|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3>a+0#0000000&| @1
+|~+0#4040ff13&| @28
+|~| @28
+|~| @28
+|~| @28
+| +0#0000000&@29
diff --git a/src/testdir/dumps/Test_prop_inserts_text_showbreak_3.dump b/src/testdir/dumps/Test_prop_inserts_text_showbreak_3.dump
new file mode 100644
index 0000000000..8b4bee77f4
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_inserts_text_showbreak_3.dump
@@ -0,0 +1,6 @@
+| +0&#ffffff0@5|++0#4040ff13&|2+0#e000e06&|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3
+| +0#0000000&@5|++0#4040ff13&|1+0#e000e06&|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2
+| +0#0000000&@5|++0#4040ff13&|3+0#e000e06&>a+0#0000000&| @20
+|~+0#4040ff13&| @28
+|~| @28
+|:+0#0000000&|s|e|t| |n|o|r|u|l|e|r| @17
diff --git a/src/testdir/dumps/Test_prop_inserts_text_showbreak_4.dump b/src/testdir/dumps/Test_prop_inserts_text_showbreak_4.dump
new file mode 100644
index 0000000000..9d477f229a
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_inserts_text_showbreak_4.dump
@@ -0,0 +1,6 @@
+| +0&#ffffff0@5|++0#4040ff13&|1+0#e000e06&|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2
+| +0#0000000&@5|++0#4040ff13&|3+0#e000e06&>a+0#0000000&| @20
+|~+0#4040ff13&| @28
+|~| @28
+|~| @28
+|:+0#0000000&|s|e|t| |n|o|r|u|l|e|r| @17
diff --git a/src/testdir/dumps/Test_prop_inserts_text_showbreak_5.dump b/src/testdir/dumps/Test_prop_inserts_text_showbreak_5.dump
new file mode 100644
index 0000000000..6e4b1b0f4c
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_inserts_text_showbreak_5.dump
@@ -0,0 +1,6 @@
+| +0&#ffffff0@5|++0#4040ff13&|3+0#e000e06&>a+0#0000000&| @20
+|~+0#4040ff13&| @28
+|~| @28
+|~| @28
+|~| @28
+|:+0#0000000&|s|e|t| |n|o|r|u|l|e|r| @17
diff --git a/src/testdir/dumps/Test_prop_inserts_text_showbreak_6.dump b/src/testdir/dumps/Test_prop_inserts_text_showbreak_6.dump
new file mode 100644
index 0000000000..756245eaba
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_inserts_text_showbreak_6.dump
@@ -0,0 +1,6 @@
+| +0&#ffffff0@1|1| |a@25
+| @5|++0#4040ff13&|a+0#0000000&>1+0#e000e06&|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1
+| +0#0000000&@5|++0#4040ff13&|2+0#e000e06&|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3
+| +0#0000000&@5|++0#4040ff13&|1+0#e000e06&|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2
+| +0#0000000&@5|++0#4040ff13&|3+0#e000e06&|a+0#0000000&| @20
+|-+2&&@1| |I|N|S|E|R|T| |-@1| +0&&@17
diff --git a/src/testdir/dumps/Test_prop_inserts_text_showbreak_7.dump b/src/testdir/dumps/Test_prop_inserts_text_showbreak_7.dump
new file mode 100644
index 0000000000..70a6d7dde3
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_inserts_text_showbreak_7.dump
@@ -0,0 +1,6 @@
+| +0&#ffffff0@1|1| |a@25
+| @5|++0#4040ff13&>1+0#e000e06&|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2
+| +0#0000000&@5|++0#4040ff13&|3+0#e000e06&|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1
+| +0#0000000&@5|++0#4040ff13&|2+0#e000e06&|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3
+| +0#0000000&@5|++0#4040ff13&|a+0#0000000&| @21
+|-+2&&@1| |I|N|S|E|R|T| |-@1| +0&&@17
diff --git a/src/testdir/dumps/Test_prop_inserts_text_showbreak_8.dump b/src/testdir/dumps/Test_prop_inserts_text_showbreak_8.dump
new file mode 100644
index 0000000000..107a374c60
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_inserts_text_showbreak_8.dump
@@ -0,0 +1,6 @@
+| +0&#ffffff0@1|1| |a@25
+| @5|++0#4040ff13&|1+0#e000e06&|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2
+| +0#0000000&@5|++0#4040ff13&|3+0#e000e06&|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1
+| +0#0000000&@5|++0#4040ff13&|2+0#e000e06&|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3
+| +0#0000000&@5|++0#4040ff13&>a+0#0000000&| @21
+@30
diff --git a/src/testdir/dumps/Test_prop_inserts_text_showbreak_9.dump b/src/testdir/dumps/Test_prop_inserts_text_showbreak_9.dump
new file mode 100644
index 0000000000..65cab339af
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_inserts_text_showbreak_9.dump
@@ -0,0 +1,6 @@
+| +0&#ffffff0@5|++0#4040ff13&|1+0#e000e06&|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2
+| +0#0000000&@5|++0#4040ff13&|3+0#e000e06&|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1
+| +0#0000000&@5|++0#4040ff13&|2+0#e000e06&|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3|1|2|3
+| +0#0000000&@5|++0#4040ff13&>a+0#0000000&| @21
+|~+0#4040ff13&| @28
+| +0#0000000&@29
diff --git a/src/testdir/test_listlbr.vim b/src/testdir/test_listlbr.vim
index 198ad8c7f9..e583e4831a 100644
--- a/src/testdir/test_listlbr.vim
+++ b/src/testdir/test_listlbr.vim
@@ -15,7 +15,7 @@ function s:screen_lines(lnum, width) abort
endfunction
func s:compare_lines(expect, actual)
- call assert_equal(join(a:expect, "\n"), join(a:actual, "\n"))
+ call assert_equal(a:expect, a:actual)
endfunc
function s:test_windows(...)
@@ -331,4 +331,45 @@ func Test_list_with_tab_and_skipping_first_chars()
call s:close_windows()
endfunc
+func Test_ctrl_char_on_wrap_column()
+ call s:test_windows("setl nolbr wrap sbr=")
+ call setline(1, 'aaa' .. repeat("\<C-A>", 150) .. 'bbb')
+ call cursor(1,1)
+ norm! $
+ redraw!
+ let expect=[
+\ '<<<^A^A^A^A^A^A^A^A^',
+\ 'A^A^A^A^A^A^A^A^A^A^',
+\ 'A^A^A^A^A^A^A^A^A^A^',
+\ 'A^A^A^A^A^A^A^A^A^A^',
+\ 'A^A^A^A^A^A^A^A^A^A^',
+\ 'A^A^A^A^A^A^A^A^A^A^',
+\ 'A^A^A^A^A^A^A^A^A^A^',
+\ 'A^A^A^A^A^A^A^A^A^A^',
+\ 'A^A^A^A^A^A^A^A^A^A^',
+\ 'A^Abbb ']
+ let lines = s:screen_lines([1, 10], winwidth(0))
+ call s:compare_lines(expect, lines)
+ call assert_equal(len(expect), winline())
+ call assert_equal(strwidth(trim(expect[-1], ' ', 2)), wincol())
+ setl sbr=!!
+ redraw!
+ let expect=[
+\ '!!A^A^A^A^A^A^A^A^A^',
+\ '!!A^A^A^A^A^A^A^A^A^',
+\ '!!A^A^A^A^A^A^A^A^A^',
+\ '!!A^A^A^A^A^A^A^A^A^',
+\ '!!A^A^A^A^A^A^A^A^A^',
+\ '!!A^A^A^A^A^A^A^A^A^',
+\ '!!A^A^A^A^A^A^A^A^A^',
+\ '!!A^A^A^A^A^A^A^A^A^',
+\ '!!A^A^A^A^A^A^A^A^A^',
+\ '!!A^A^A^A^A^A^Abbb ']
+ let lines = s:screen_lines([1, 10], winwidth(0))
+ call s:compare_lines(expect, lines)
+ call assert_equal(len(expect), winline())
+ call assert_equal(strwidth(trim(expect[-1], ' ', 2)), wincol())
+ call s:close_windows()
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/testdir/test_listlbr_utf8.vim b/src/testdir/test_listlbr_utf8.vim
index ec54209180..1bbbd2d2ae 100644
--- a/src/testdir/test_listlbr_utf8.vim
+++ b/src/testdir/test_listlbr_utf8.vim
@@ -249,7 +249,6 @@ endfunc
func Test_chinese_char_on_wrap_column()
call s:test_windows("setl nolbr wrap sbr=")
- syntax off
call setline(1, [
\ 'aaaaaaaaaaaaaaaaaaa中'.
\ 'aaaaaaaaaaaaaaaaa中'.
@@ -278,6 +277,84 @@ func Test_chinese_char_on_wrap_column()
\ '中hello ']
let lines = s:screen_lines([1, 10], winwidth(0))
call s:compare_lines(expect, lines)
+ call assert_equal(len(expect), winline())
+ call assert_equal(strwidth(trim(expect[-1], ' ', 2)), wincol())
+ call s:close_windows()
+endfunc
+
+func Test_chinese_char_on_wrap_column_sbr()
+ call s:test_windows("setl nolbr wrap sbr=!!!")
+ call setline(1, [
+\ 'aaaaaaaaaaaaaaaaaaa中'.
+\ 'aaaaaaaaaaaaaa中'.
+\ 'aaaaaaaaaaaaaa中'.
+\ 'aaaaaaaaaaaaaa中'.
+\ 'aaaaaaaaaaaaaa中'.
+\ 'aaaaaaaaaaaaaa中'.
+\ 'aaaaaaaaaaaaaa中'.
+\ 'aaaaaaaaaaaaaa中'.
+\ 'aaaaaaaaaaaaaa中'.
+\ 'aaaaaaaaaaaaaa中'.
+\ 'hello'])
+ call cursor(1,1)
+ norm! $
+ redraw!
+ let expect=[
+\ '!!!中aaaaaaaaaaaaaa>',
+\ '!!!中aaaaaaaaaaaaaa>',
+\ '!!!中aaaaaaaaaaaaaa>',
+\ '!!!中aaaaaaaaaaaaaa>',
+\ '!!!中aaaaaaaaaaaaaa>',
+\ '!!!中aaaaaaaaaaaaaa>',
+\ '!!!中aaaaaaaaaaaaaa>',
+\ '!!!中aaaaaaaaaaaaaa>',
+\ '!!!中aaaaaaaaaaaaaa>',
+\ '!!!中hello ']
+ let lines = s:screen_lines([1, 10], winwidth(0))
+ call s:compare_lines(expect, lines)
+ call assert_equal(len(expect), winline())
+ call assert_equal(strwidth(trim(expect[-1], ' ', 2)), wincol())
+ call s:close_windows()
+endfunc
+
+func Test_unprintable_char_on_wrap_column()
+ call s:test_windows("setl nolbr wrap sbr=")
+ call setline(1, 'aaa' .. repeat("\uFEFF", 50) .. 'bbb')
+ call cursor(1,1)
+ norm! $
+ redraw!
+ let expect=[
+\ '<<<<feff><feff><feff',
+\ '><feff><feff><feff><',
+\ 'feff><feff><feff><fe',
+\ 'ff><feff><feff><feff',
+\ '><feff><feff><feff><',
+\ 'feff><feff><feff><fe',
+\ 'ff><feff><feff><feff',
+\ '><feff><feff><feff><',
+\ 'feff><feff><feff><fe',
+\ 'ff>bbb ']
+ let lines = s:screen_lines([1, 10], winwidth(0))
+ call s:compare_lines(expect, lines)
+ call assert_equal(len(expect), winline())
+ call assert_equal(strwidth(trim(expect[-1], ' ', 2)), wincol())
+ setl sbr=!!
+ redraw!
+ let expect=[
+\ '!!><feff><feff><feff',
+\ '!!><feff><feff><feff',
+\ '!!><feff><feff><feff',
+\ '!!><feff><feff><feff',
+\ '!!><feff><feff><feff',
+\ '!!><feff><feff><feff',
+\ '!!><feff><feff><feff',
+\ '!!><feff><feff><feff',
+\ '!!><feff><feff><feff',
+\ '!!><feff><feff>bbb ']
+ let lines = s:screen_lines([1, 10], winwidth(0))
+ call s:compare_lines(expect, lines)
+ call assert_equal(len(expect), winline())
+ call assert_equal(strwidth(trim(expect[-1], ' ', 2)), wincol())
call s:close_windows()
endfunc
diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim
index e7e9eecef7..c272f2e5d0 100644
--- a/src/testdir/test_textprop.vim
+++ b/src/testdir/test_textprop.vim
@@ -2630,6 +2630,110 @@ func Test_prop_inserts_text_visual_block()
call StopVimInTerminal(buf)
endfunc
+func Run_test_prop_inserts_text_showbreak(cmd)
+ CheckRunVimInTerminal
+
+ let lines =<< trim END
+ highlight! link LineNr Normal
+ call setline(1, repeat('a', 28))
+ call prop_type_add('theprop', #{highlight: 'Special'})
+ call prop_add(1, 28, #{type: 'theprop', text: repeat('123', 23), text_wrap: 'wrap'})
+ setlocal number showbreak=+ breakindent breakindentopt=shift:2
+ setlocal scrolloff=0 smoothscroll
+ normal! $
+ END
+ let lines = insert(lines, a:cmd)
+ call writefile(lines, 'XscriptPropsShowbreak', 'D')
+ let buf = RunVimInTerminal('-S XscriptPropsShowbreak', #{rows: 6, cols: 30})
+ call term_sendkeys(buf, ":set noruler\<CR>")
+ call VerifyScreenDump(buf, 'Test_prop_inserts_text_showbreak_1', {})
+ call term_sendkeys(buf, "\<C-E>")
+ call VerifyScreenDump(buf, 'Test_prop_inserts_text_showbreak_2', {})
+ call term_sendkeys(buf, "\<C-E>")
+ call VerifyScreenDump(buf, 'Test_prop_inserts_text_showbreak_3', {})
+ call term_sendkeys(buf, "\<C-E>")
+ call VerifyScreenDump(buf, 'Test_prop_inserts_text_showbreak_4', {})
+ call term_sendkeys(buf, "\<C-E>")
+ call VerifyScreenDump(buf, 'Test_prop_inserts_text_showbreak_5', {})
+ call term_sendkeys(buf, "zbi")
+ call VerifyScreenDump(buf, 'Test_prop_inserts_text_showbreak_6', {})
+ call term_sendkeys(buf, "\<BS>")
+ call VerifyScreenDump(buf, 'Test_prop_inserts_text_showbreak_7', {})
+ call term_sendkeys(buf, "\<Esc>l")
+ call VerifyScreenDump(buf, 'Test_prop_inserts_text_showbreak_8', {})
+ call term_sendkeys(buf, "\<C-E>")
+ call VerifyScreenDump(buf, 'Test_prop_inserts_text_showbreak_9', {})
+ call term_sendkeys(buf, "\<C-E>")
+ call VerifyScreenDump(buf, 'Test_prop_inserts_text_showbreak_10', {})
+ call term_sendkeys(buf, "\<C-E>")
+ call VerifyScreenDump(buf, 'Test_prop_inserts_text_showbreak_11', {})
+ call term_sendkeys(buf, "\<C-E>")
+ call VerifyScreenDump(buf, 'Test_prop_inserts_text_showbreak_12', {})
+ call term_sendkeys(buf, "023x$")
+ call VerifyScreenDump(buf, 'Test_prop_inserts_text_showbreak_13', {})
+ call term_sendkeys(buf, "\<C-E>")
+ call VerifyScreenDump(buf, 'Test_prop_inserts_text_showbreak_14', {})
+ call term_sendkeys(buf, "\<C-E>