patch 9.1.0619: tests: test_popup fails

Commit: 
https://github.com/vim/vim/commit/8754efe437fcb17ad2c64192f8722e08d68e032e
Author: glepnir <glephun...@gmail.com>
Date:   Fri Jul 26 18:15:27 2024 +0200

    patch 9.1.0619: tests: test_popup fails
    
    Problem:  tests: test_popup fails
              (after v9.1.0618)
    Solution: Correct test, move combining extra attributes to
              pum_compute_text_attrs() (glepnir)
    
    closes: #15353
    
    Signed-off-by: glepnir <glephun...@gmail.com>
    Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/src/popupmenu.c b/src/popupmenu.c
index 0f19c9e2a..b6bc1dc45 100644
--- a/src/popupmenu.c
+++ b/src/popupmenu.c
@@ -425,7 +425,7 @@ pum_under_menu(int row, int col, int only_redrawing)
  * Returns attributes for every cell, or NULL if all attributes are the same.
  */
     static int *
-pum_compute_text_attrs(char_u *text, hlf_T hlf)
+pum_compute_text_attrs(char_u *text, hlf_T hlf, int extra_hlattr)
 {
     int                i;
     size_t     leader_len;
@@ -483,6 +483,9 @@ pum_compute_text_attrs(char_u *text, hlf_T hlf)
        else if (matched_start && ptr < text + leader_len)
            new_attr = highlight_attr[hlf == HLF_PSI ? HLF_PMSI : HLF_PMNI];
 
+       if (extra_hlattr > 0)
+           new_attr = hl_combine_attr(new_attr, extra_hlattr);
+
        char_cells = mb_ptr2cells(ptr);
        for (i = 0; i < char_cells; i++)
            attrs[cell_idx + i] = new_attr;
@@ -510,8 +513,7 @@ pum_screen_puts_with_attrs(
     int                cells UNUSED,
     char_u     *text,
     int                textlen,
-    int                *attrs,
-    int                extra_attr)
+    int                *attrs)
 {
     int                col_start = col;
     char_u     *ptr = text;
@@ -528,8 +530,6 @@ pum_screen_puts_with_attrs(
        else
 #endif
            attr = attrs[col - col_start];
-       if (extra_attr > 0)
-           attr = hl_combine_attr(extra_attr, attr);
        screen_puts_len(ptr, char_len, row, col, attr);
        col += mb_ptr2cells(ptr);
        ptr += char_len;
@@ -661,7 +661,8 @@ pum_redraw(void)
                        if (saved != NUL)
                            *p = saved;
 
-                       attrs = pum_compute_text_attrs(st, hlf);
+                       int extra_hlattr = pum_array[idx].pum_extrahlattr;
+                       attrs = pum_compute_text_attrs(st, hlf, extra_hlattr);
 
 #ifdef FEAT_RIGHTLEFT
                        if (pum_rl)
@@ -703,8 +704,7 @@ pum_redraw(void)
                                    else
                                        pum_screen_puts_with_attrs(row,
                                                    col - cells + 1, cells, rt,
-                                                      (int)STRLEN(rt), attrs,
-                                                      
pum_array[idx].pum_extrahlattr);
+                                                      (int)STRLEN(rt), attrs);
 
                                    vim_free(rt_start);
                                }
@@ -738,8 +738,7 @@ pum_redraw(void)
                                    screen_puts_len(st, size, row, col, attr);
                                else
                                    pum_screen_puts_with_attrs(row, col, cells,
-                                                             st, size, attrs,
-                                                             
pum_array[idx].pum_extrahlattr);
+                                                             st, size, attrs);
 
                                vim_free(st);
                            }
diff --git a/src/testdir/test_popup.vim b/src/testdir/test_popup.vim
index 30cabf9e2..67e600c4c 100644
--- a/src/testdir/test_popup.vim
+++ b/src/testdir/test_popup.vim
@@ -1509,9 +1509,9 @@ func Test_pum_extrahl()
       endif
       return {
             \ 'words': [
-            \ { 'word': 'aword1', 'menu': 'extra text 1', 'kind': 'W', 
'extrahl': 'StrikeFake' },
+            \ { 'word': 'aword1', 'menu': 'extra text 1', 'kind': 'W', 
'hl_group': 'StrikeFake' },
             \ { 'word': 'aword2', 'menu': 'extra text 2', 'kind': 'W', },
-            \ { 'word': '你好', 'menu': 'extra text 3', 'kind': 'W', 'extrahl': 
'StrikeFake' },
+            \ { 'word': '你好', 'menu': 'extra text 3', 'kind': 'W', 'hl_group': 
'StrikeFake' },
             \]}
     endfunc
     set completeopt=menu
diff --git a/src/version.c b/src/version.c
index fd33dab99..298d57714 100644
--- a/src/version.c
+++ b/src/version.c
@@ -704,6 +704,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    619,
 /**/
     618,
 /**/

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/E1sXNpX-00CZjD-WD%40256bit.org.

Raspunde prin e-mail lui