]> granicus.if.org Git - vim/commitdiff
patch 9.0.0273: Konsole termresponse not recognized v9.0.0273
authorBram Moolenaar <Bram@vim.org>
Fri, 26 Aug 2022 11:26:07 +0000 (12:26 +0100)
committerBram Moolenaar <Bram@vim.org>
Fri, 26 Aug 2022 11:26:07 +0000 (12:26 +0100)
Problem:    Konsole termresponse not recognized.
Solution:   Handle Konsole like libvterm, set 'ttymouse' to "sgr".
            (closes #10990)

src/term.c
src/testdir/test_termcodes.vim
src/version.c

index f9cc4a5edaf253a0ad5ffac5a44888964fd4c245..a92293850f68ef84bfca4c06a294c75a73ee0795 100644 (file)
@@ -4715,7 +4715,8 @@ handle_version_response(int first, int *arg, int argc, char_u *tp)
        }
 
        // libvterm sends 0;100;0
-       if (version == 100 && arg[0] == 0 && arg[2] == 0)
+       // Konsole sends 0;115;0 and works the same way
+       if ((version == 100 || version == 115) && arg[0] == 0 && arg[2] == 0)
        {
            // If run from Vim $COLORS is set to the number of
            // colors the terminal supports.  Otherwise assume
index 6e4bbd19ca93abb19cdbb83e5850f42f21407b87..578c97018aab96655d21d81c472870f382da97c9 100644 (file)
@@ -1664,17 +1664,10 @@ func Test_xx02_iTerm2_response()
   call test_override('term_props', 0)
 endfunc
 
-" This checks the libvterm version response.
-" This must be after other tests, because it has side effects to xterm
-" properties.
-func Test_xx03_libvterm_response()
-  " Termresponse is only parsed when t_RV is not empty.
-  set t_RV=x
-  call test_override('term_props', 1)
-
+func Run_libvterm_konsole_response(code)
   set ttymouse=xterm
   call test_option_not_set('ttymouse')
-  let seq = "\<Esc>[>0;100;0c"
+  let seq = "\<Esc>[>0;" .. a:code .. ";0c"
   call feedkeys(seq, 'Lx!')
   call assert_equal(seq, v:termresponse)
   call assert_equal('sgr', &ttymouse)
@@ -1685,6 +1678,20 @@ func Test_xx03_libvterm_response()
         \ underline_rgb: 'u',
         \ mouse: 's'
         \ }, terminalprops())
+endfunc
+
+" This checks the libvterm version response.
+" This must be after other tests, because it has side effects to xterm
+" properties.
+func Test_xx03_libvterm_konsole_response()
+  " Termresponse is only parsed when t_RV is not empty.
+  set t_RV=x
+  call test_override('term_props', 1)
+
+  " libvterm
+  call Run_libvterm_konsole_response(100)
+  " Konsole
+  call Run_libvterm_konsole_response(115)
 
   set t_RV=
   call test_override('term_props', 0)
index ff452da1f6565cd4552a969bed492d259614fd35..291e40af64b7dc34ae43199dfc379b83ca492629 100644 (file)
@@ -723,6 +723,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    273,
 /**/
     272,
 /**/