diff options
Diffstat (limited to 'data/vim/patches/8.1.1471')
-rw-r--r-- | data/vim/patches/8.1.1471 | 176 |
1 files changed, 176 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.1471 b/data/vim/patches/8.1.1471 new file mode 100644 index 000000000..730851ac3 --- /dev/null +++ b/data/vim/patches/8.1.1471 @@ -0,0 +1,176 @@ +To: vim_dev@googlegroups.com +Subject: Patch 8.1.1471 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 8.1.1471 +Problem: 'background' not correctly set for 2-digit rgb termresponse. +Solution: Adjust what digit to use. (closes #4495) +Files: src/term.c, src/testdir/test_termcodes.vim + + +*** ../vim-8.1.1470/src/term.c 2019-06-05 22:07:47.780695739 +0200 +--- src/term.c 2019-06-05 22:50:12.231496426 +0200 +*************** +*** 4994,5010 **** + && (is_4digit + || (tp[j + 9] == '/' && tp[i + 12 == '/']))) + { + # ifdef FEAT_TERMINAL + int rval, gval, bval; + +! rval = hexhex2nr(tp + j + 7); +! gval = hexhex2nr(tp + j + (is_4digit ? 12 : 10)); +! bval = hexhex2nr(tp + j + (is_4digit ? 17 : 13)); + # endif + if (is_bg) + { +! char *newval = (3 * '6' < tp[j+7] + tp[j+12] +! + tp[j+17]) ? "light" : "dark"; + + LOG_TR(("Received RBG response: %s", tp)); + rbg_status.tr_progress = STATUS_GOT; +--- 4994,5013 ---- + && (is_4digit + || (tp[j + 9] == '/' && tp[i + 12 == '/']))) + { ++ char_u *tp_r = tp + j + 7; ++ char_u *tp_g = tp + j + (is_4digit ? 12 : 10); ++ char_u *tp_b = tp + j + (is_4digit ? 17 : 13); + # ifdef FEAT_TERMINAL + int rval, gval, bval; + +! rval = hexhex2nr(tp_r); +! gval = hexhex2nr(tp_b); +! bval = hexhex2nr(tp_g); + # endif + if (is_bg) + { +! char *new_bg_val = (3 * '6' < *tp_r + *tp_g + +! *tp_b) ? "light" : "dark"; + + LOG_TR(("Received RBG response: %s", tp)); + rbg_status.tr_progress = STATUS_GOT; +*************** +*** 5014,5024 **** + bg_b = bval; + # endif + if (!option_was_set((char_u *)"bg") +! && STRCMP(p_bg, newval) != 0) + { + /* value differs, apply it */ + set_option_value((char_u *)"bg", 0L, +! (char_u *)newval, 0); + reset_option_was_set((char_u *)"bg"); + redraw_asap(CLEAR); + } +--- 5017,5027 ---- + bg_b = bval; + # endif + if (!option_was_set((char_u *)"bg") +! && STRCMP(p_bg, new_bg_val) != 0) + { + /* value differs, apply it */ + set_option_value((char_u *)"bg", 0L, +! (char_u *)new_bg_val, 0); + reset_option_was_set((char_u *)"bg"); + redraw_asap(CLEAR); + } +*** ../vim-8.1.1470/src/testdir/test_termcodes.vim 2019-06-05 22:07:47.784695712 +0200 +--- src/testdir/test_termcodes.vim 2019-06-05 22:55:00.277623892 +0200 +*************** +*** 647,667 **** + call feedkeys(seq, 'Lx!') + call assert_equal(seq, v:termrfgresp) + +! " response to t_RB, 4 digits +! let red = 0x21 +! let green = 0x43 + let blue = 0x65 + let seq = printf("\<Esc>]11;rgb:%02x00/%02x00/%02x00\x07", red, green, blue) + call feedkeys(seq, 'Lx!') + call assert_equal(seq, v:termrbgresp) + +! " response to t_RB, 2 digits +! let red = 0x87 +! let green = 0xa9 +! let blue = 0xcb + let seq = printf("\<Esc>]11;rgb:%02x/%02x/%02x\x07", red, green, blue) + call feedkeys(seq, 'Lx!') + call assert_equal(seq, v:termrbgresp) + + set t_RF= t_RB= + endfunc +--- 647,695 ---- + call feedkeys(seq, 'Lx!') + call assert_equal(seq, v:termrfgresp) + +! " response to t_RB, 4 digits, dark +! set background=light +! call test_option_not_set('background') +! let red = 0x29 +! let green = 0x4a +! let blue = 0x6b +! let seq = printf("\<Esc>]11;rgb:%02x00/%02x00/%02x00\x07", red, green, blue) +! call feedkeys(seq, 'Lx!') +! call assert_equal(seq, v:termrbgresp) +! call assert_equal('dark', &background) +! +! " response to t_RB, 4 digits, light +! set background=dark +! call test_option_not_set('background') +! let red = 0x81 +! let green = 0x63 + let blue = 0x65 + let seq = printf("\<Esc>]11;rgb:%02x00/%02x00/%02x00\x07", red, green, blue) + call feedkeys(seq, 'Lx!') + call assert_equal(seq, v:termrbgresp) ++ call assert_equal('light', &background) + +! " response to t_RB, 2 digits, dark +! set background=light +! call test_option_not_set('background') +! let red = 0x47 +! let green = 0x59 +! let blue = 0x5b +! let seq = printf("\<Esc>]11;rgb:%02x/%02x/%02x\x07", red, green, blue) +! call feedkeys(seq, 'Lx!') +! call assert_equal(seq, v:termrbgresp) +! call assert_equal('dark', &background) +! +! " response to t_RB, 2 digits, light +! set background=dark +! call test_option_not_set('background') +! let red = 0x83 +! let green = 0xa4 +! let blue = 0xc2 + let seq = printf("\<Esc>]11;rgb:%02x/%02x/%02x\x07", red, green, blue) + call feedkeys(seq, 'Lx!') + call assert_equal(seq, v:termrbgresp) ++ call assert_equal('light', &background) + + set t_RF= t_RB= + endfunc +*** ../vim-8.1.1470/src/version.c 2019-06-05 22:46:09.837107776 +0200 +--- src/version.c 2019-06-05 22:56:16.273134924 +0200 +*************** +*** 769,770 **** +--- 769,772 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 1471, + /**/ + +-- +I AM THANKFUL... +...for all the complaining I hear about the government +because it means we have freedom of speech. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |