]> granicus.if.org Git - vim/commitdiff
patch 8.1.1340: attributes from 'cursorline' overwrite textprop v8.1.1340
authorBram Moolenaar <Bram@vim.org>
Fri, 17 May 2019 11:05:07 +0000 (13:05 +0200)
committerBram Moolenaar <Bram@vim.org>
Fri, 17 May 2019 11:05:07 +0000 (13:05 +0200)
Problem:    Attributes from 'cursorline' overwrite textprop.
Solution:   Combine the attributes. (closes #3912)

src/screen.c
src/testdir/dumps/Test_textprop_01.dump
src/testdir/test_textprop.vim
src/textprop.c
src/version.c

index cab697fd2aeb8f41ec40e244c232384b449c082c..e6c0b2b3d2f6e26330021504035aecefb80e206e 100644 (file)
@@ -4306,11 +4306,15 @@ win_line(
                char_attr = hl_combine_attr(line_attr, area_attr);
            else if (search_attr != 0)
                char_attr = hl_combine_attr(line_attr, search_attr);
-               /* Use line_attr when not in the Visual or 'incsearch' area
-                * (area_attr may be 0 when "noinvcur" is set). */
+# ifdef FEAT_TEXT_PROP
+           else if (text_prop_type != NULL)
+               char_attr = hl_combine_attr(line_attr, text_prop_attr);
+# endif
            else if (line_attr != 0 && ((fromcol == -10 && tocol == MAXCOL)
                                || vcol < fromcol || vcol_prev < fromcol_prev
                                || vcol >= tocol))
+               // Use line_attr when not in the Visual or 'incsearch' area
+               // (area_attr may be 0 when "noinvcur" is set).
                char_attr = line_attr;
 #else
            if (area_attr != 0)
index 002062e2c8ee7f9fca7901ab1c21336d3dfe239e..bda2a56f004623699c84c9268ac313e235fce31c 100644 (file)
@@ -1,6 +1,6 @@
 | +0#af5f00255#ffffff0@1|1| |O+0#0000000&|n|e| +0&#ffff4012|t|w|o| +0&#ffffff0@63
 | +0#af5f00255&@1|2| |N+0#0000000#ffff4012|u|m|b|é|r| |1+0#4040ff13&|2|3| +0#0000000&|ä|n|d| |t|h|œ|n| |4+0#4040ff13&|¾|7|.+0#0000000&| +0&#ffffff0@46
-| +0#af5f00255&@1|3| >-+0#0000000#ffff4012|x+0&#ffffff0|a+0#4040ff13&@1|x+0#0000000&|-@1|x+0#4040ff13&|b@1|x+0#0000000&|-@1|x|c+0#4040ff13&@1|x|-+0#0000000&@1|x+0#4040ff13&|d@1|x|-+0#0000000&@1| @45
+| +0#af5f00255&@1|3| >-+8#0000000#ffff4012|x+8&#ffffff0|a+8#4040ff13&@1|x+8#0000000&|-@1|x+8#4040ff13&|b@1|x+8#0000000&|-@1|x|c+8#4040ff13&@1|x|-+8#0000000&@1|x+8#4040ff13&|d@1|x|-+8#0000000&@1| @45
 | +0#af5f00255&@1|4| |/+0#40ff4011&@1| |c|o|m@1|e|n|t| |w+0&#e0e0e08|i|t|h| |e+8&&|r@1|o|r| +0&#ffffff0|i|n| |i|t| +0#0000000&@43
 |~+0#4040ff13&| @73
 |~| @73
index 237eda95fbffdc86cd6f3119bbd0f9da2a4ef966..dc229c0197ef546d41cb7fd863ac4fc2b38a4293 100644 (file)
@@ -645,7 +645,7 @@ funct Test_textprop_screenshots()
        \ "call prop_add(3, 15, {'length': 2, 'type': 'both'})",
        \ "call prop_add(4, 12, {'length': 10, 'type': 'background'})",
        \ "call prop_add(4, 17, {'length': 5, 'type': 'error'})",
-       \ "set number",
+       \ "set number cursorline",
        \ "hi clear SpellBad",
        \ "set spell",
        \ "syn match Comment '//.*'",
index 361ecb12693ec7bce051442c2c320a17061b4457..4c78ff11c6307af869759d0b471fb39fdfd84921 100644 (file)
  * Text properties implementation.  See ":help text-properties".
  *
  * TODO:
- * - When using 'cursorline' attributes should be merged. (#3912)
  * - Adjust text property column and length when text is inserted/deleted.
- *   -> splitting a line can create a zero-length property.  Don't highlight it
- *      and extend it when inserting text.
  *   -> a :substitute with a multi-line match
  *   -> join two lines, also with BS in Insert mode
  *   -> search for changed_bytes() from misc1.c
index 849676720bce31bd58759fa3c9460cb2f0a6d1ce..309ed3c09d787dd44951a49ed89161944ac65961 100644 (file)
@@ -767,6 +767,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1340,
 /**/
     1339,
 /**/