patch 9.2.0313: Callback channel not registered in GUI

Commit: 
https://github.com/vim/vim/commit/aef812446bfe6a84c3d74883d43c1afa8c19df85
Author: Foxe Chen <[email protected]>
Date:   Mon Apr 6 13:35:27 2026 +0000

    patch 9.2.0313: Callback channel not registered in GUI
    
    Problem:  Callback channel not registered in GUI
    Solution: Call channel_gui_register_one() in GUI mode
              (Foxe Chen).
    
    closes: #19858
    
    Signed-off-by: Foxe Chen <[email protected]>
    Signed-off-by: Christian Brabandt <[email protected]>

diff --git a/src/channel.c b/src/channel.c
index 4607b1e60..442c33a50 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -4299,6 +4299,10 @@ channel_read(channel_T *channel, ch_part_T part, char 
*func)
            newchannel->CH_SOCK_FD = (sock_T)newfd;
            newchannel->ch_to_be_closed |= (1U << PART_SOCK);
 
+#ifdef FEAT_GUI
+           channel_gui_register_one(newchannel, PART_SOCK);
+#endif
+
            if (client.ss_family == AF_INET)
            {
 #ifdef HAVE_INET_NTOP
diff --git a/src/testdir/test_channel.vim b/src/testdir/test_channel.vim
index 203ae0428..6cd55ca9f 100644
--- a/src/testdir/test_channel.vim
+++ b/src/testdir/test_channel.vim
@@ -2763,10 +2763,17 @@ endfunc
 
 let g:server_received_addr = ''
 let g:server_received_msg = ''
+let g:server_received_input = ''
+
+func s:test_listen_input(ch, msg)
+    let g:server_received_input = a:msg
+endfunc
 
 func s:test_listen_accept(ch, addr)
     let g:server_received_addr = a:addr
     let g:server_received_msg = ch_readraw(a:ch)
+
+    call ch_setoptions(a:ch, #{mode: "raw", callback: 
function('s:test_listen_input')})
 endfunction
 
 func Test_listen()
@@ -2782,7 +2789,10 @@ func Test_listen()
         return
     endif
     call ch_sendraw(handle, 'hello')
-    call WaitFor('"" != g:server_received_msg')
+    call WaitFor('"hello" == g:server_received_msg')
+    call ch_sendraw(handle, 'notify')
+    call WaitFor('"notify" == g:server_received_input')
+
     call ch_close(handle)
     call ch_close(server)
     call assert_equal('hello', g:server_received_msg)
diff --git a/src/version.c b/src/version.c
index 6dc2b537b..438790124 100644
--- a/src/version.c
+++ b/src/version.c
@@ -734,6 +734,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    313,
 /**/
     312,
 /**/

-- 
-- 
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 [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/vim_dev/E1w9kGJ-006txp-8S%40256bit.org.

Raspunde prin e-mail lui