patch 9.1.1849: CTRL-F and CTRL-B don't work in more prompt

Commit: 
https://github.com/vim/vim/commit/fcf4c435af6fe00348506860c1433414d35223a7
Author: bfoersterling <[email protected]>
Date:   Sun Oct 12 14:26:34 2025 +0000

    patch 9.1.1849: CTRL-F and CTRL-B don't work in more prompt
    
    Problem:  CTRL-F and CTRL-B don't work in more prompt
    Solution: Make CTRL-F and CTRL-B scroll by a screen down/up
              (Bjoern Foersterling)
    
    closes: #18545
    
    Signed-off-by: bfoersterling <[email protected]>
    Signed-off-by: Christian Brabandt <[email protected]>

diff --git a/runtime/doc/message.txt b/runtime/doc/message.txt
index 048f428cb..1c9de0cbc 100644
--- a/runtime/doc/message.txt
+++ b/runtime/doc/message.txt
@@ -1,4 +1,4 @@
-*message.txt*   For Vim version 9.1.  Last change: 2025 Aug 06
+*message.txt*   For Vim version 9.1.  Last change: 2025 Oct 12
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -859,26 +859,27 @@ This message is given when the screen is filled with 
messages.  It is only
 given when the 'more' option is on.  It is highlighted with the |hl-MoreMsg|
 group.
 
-Type                                   effect ~
-     <CR> or <NL> or j or <Down>       one more line
-     d                                 down a page (half a screen)
-     <Space> or f or <PageDown>                down a screen
-     G                                 down all the way, until the hit-enter
-                                       prompt
-
-     <BS> or k or <Up>                 one line back
-     u                                 up a page (half a screen)
-     b or <PageUp>                     back a screen
-     g                                 back to the start
-
-     q, <Esc> or CTRL-C                        stop the listing
-     :                                 stop the listing and enter a
-                                            command-line
-    <C-Y>                              yank (copy) a modeless selection to
-                                       the clipboard ("* and "+ registers)
-    {menu-entry}                       what the menu is defined to in
-                                       Cmdline-mode.
-    <LeftMouse>                                next page (*)
+Type                                           effect ~
+     <CR> or <NL> or j or <Down>               one more line
+     d                                         down a page (half a screen)
+     <Space> or f or <PageDown> or CTRL-F      down a screen
+     G                                         down all the way, until the
+                                               hit-enter prompt
+
+     <BS> or k or <Up>                         one line back
+     u                                         up a page (half a screen)
+     b or <PageUp> or CTRL-B                   back a screen
+     g                                         back to the start
+
+     q, <Esc> or CTRL-C                                stop the listing
+     :                                         stop the listing and enter a
+                                               command-line
+    <C-Y>                                      yank (copy) a modeless
+                                               selection to the clipboard
+                                               ("* and "+ registers)
+    {menu-entry}                               what the menu is defined to
+                                               in Cmdline-mode.
+    <LeftMouse>                                        next page (*)
 
 Any other key causes the meaning of the keys to be displayed.
 
diff --git a/runtime/doc/version9.txt b/runtime/doc/version9.txt
index 0a662f7cc..90cd5c4c7 100644
--- a/runtime/doc/version9.txt
+++ b/runtime/doc/version9.txt
@@ -1,4 +1,4 @@
-*version9.txt*  For Vim version 9.1.  Last change: 2025 Oct 07
+*version9.txt*  For Vim version 9.1.  Last change: 2025 Oct 12
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -41780,6 +41780,7 @@ Others: ~
   Command-line.
 - |min()|/|max()| can handle all comparable data types.
 - Vim triggers the |TermResponseAll| autocommand for any terminal OSC value.
+- Support CTRL-B and CTRL-F in the |more-prompt|.
 
                                                        *added-9.2*
 Added ~
diff --git a/src/message.c b/src/message.c
index 5ec5c59a9..d4ebc8e68 100644
--- a/src/message.c
+++ b/src/message.c
@@ -1356,7 +1356,7 @@ wait_return(int redraw)
                */
                if (p_more && !p_cp)
                {
-                   if (c == 'b' || c == 'k' || c == 'u' || c == 'g'
+                   if (c == 'b' || c == Ctrl_B || c == 'k' || c == 'u' || c == 
'g'
                                                || c == K_UP || c == K_PAGEUP)
                    {
                        if (msg_scrolled > Rows)
@@ -1385,7 +1385,7 @@ wait_return(int redraw)
                        }
                    }
                    else if (msg_scrolled > Rows - 2
-                           && (c == 'j' || c == 'd' || c == 'f'
+                           && (c == 'j' || c == 'd' || c == 'f' || c == Ctrl_F
                                            || c == K_DOWN || c == K_PAGEDOWN))
                        c = K_IGNORE;
                }
@@ -3318,12 +3318,14 @@ do_more_prompt(int typed_char)
            break;
 
        case 'b':               // one page back
+       case Ctrl_B:
        case K_PAGEUP:
            toscroll = -(Rows - 1);
            break;
 
        case ' ':               // one extra page
        case 'f':
+       case Ctrl_F:
        case K_PAGEDOWN:
        case K_LEFTMOUSE:
            toscroll = Rows - 1;
diff --git a/src/testdir/test_messages.vim b/src/testdir/test_messages.vim
index 61193dfd3..b1dfa7075 100644
--- a/src/testdir/test_messages.vim
+++ b/src/testdir/test_messages.vim
@@ -232,18 +232,20 @@ func Test_message_more()
   call term_sendkeys(buf, "\<Down>")
   call WaitForAssert({-> assert_equal('  9 9', term_getline(buf, 5))})
 
-  " Down a screen with <Space>, f, or <PageDown>.
+  " Down a screen with <Space>, f, <C-F> or <PageDown>.
   call term_sendkeys(buf, 'f')
   call WaitForAssert({-> assert_equal(' 14 14', term_getline(buf, 5))})
   call WaitForAssert({-> assert_equal('-- More --', term_getline(buf, 6))})
-  call term_sendkeys(buf, ' ')
+  call term_sendkeys(buf, "\<C-F>")
   call WaitForAssert({-> assert_equal(' 19 19', term_getline(buf, 5))})
-  call term_sendkeys(buf, "\<PageDown>")
+  call term_sendkeys(buf, ' ')
   call WaitForAssert({-> assert_equal(' 24 24', term_getline(buf, 5))})
+  call term_sendkeys(buf, "\<PageDown>")
+  call WaitForAssert({-> assert_equal(' 29 29', term_getline(buf, 5))})
 
   " Down a page (half a screen) with d.
   call term_sendkeys(buf, 'd')
-  call WaitForAssert({-> assert_equal(' 27 27', term_getline(buf, 5))})
+  call WaitForAssert({-> assert_equal(' 32 32', term_getline(buf, 5))})
 
   " Down all the way with 'G'.
   call term_sendkeys(buf, 'G')
@@ -258,15 +260,17 @@ func Test_message_more()
   call term_sendkeys(buf, "\<Up>")
   call WaitForAssert({-> assert_equal(' 97 97', term_getline(buf, 5))})
 
-  " Up a screen with b or <PageUp>.
+  " Up a screen with b, <C-B> or <PageUp>.
   call term_sendkeys(buf, 'b')
   call WaitForAssert({-> assert_equal(' 92 92', term_getline(buf, 5))})
-  call term_sendkeys(buf, "\<PageUp>")
+  call term_sendkeys(buf, "\<C-B>")
   call WaitForAssert({-> assert_equal(' 87 87', term_getline(buf, 5))})
+  call term_sendkeys(buf, "\<PageUp>")
+  call WaitForAssert({-> assert_equal(' 82 82', term_getline(buf, 5))})
 
   " Up a page (half a screen) with u.
   call term_sendkeys(buf, 'u')
-  call WaitForAssert({-> assert_equal(' 84 84', term_getline(buf, 5))})
+  call WaitForAssert({-> assert_equal(' 79 79', term_getline(buf, 5))})
 
   " Up all the way with 'g'.
   call term_sendkeys(buf, 'g')
@@ -274,13 +278,16 @@ func Test_message_more()
   call WaitForAssert({-> assert_equal(':%p#', term_getline(buf, 1))})
   call WaitForAssert({-> assert_equal('-- More --', term_getline(buf, 6))})
 
-  " All the way down. Pressing f should do nothing but pressing
+  " All the way down. Pressing f or Ctrl-F should do nothing but pressing
   " space should end the more prompt.
   call term_sendkeys(buf, 'G')
   call WaitForAssert({-> assert_equal('100 100', term_getline(buf, 5))})
   call WaitForAssert({-> assert_equal('Press ENTER or type command to 
continue', term_getline(buf, 6))})
   call term_sendkeys(buf, 'f')
   call WaitForAssert({-> assert_equal('100 100', term_getline(buf, 5))})
+  call term_sendkeys(buf, "\<C-F>")
+  call WaitForAssert({-> assert_equal('100 100', term_getline(buf, 5))})
+  call WaitForAssert({-> assert_equal('Press ENTER or type command to 
continue', term_getline(buf, 6))})
   call term_sendkeys(buf, ' ')
   call WaitForAssert({-> assert_equal('100', term_getline(buf, 5))})
 
@@ -339,6 +346,11 @@ func Test_message_more_scrollback()
   call term_sendkeys(buf, 'b')
   call VerifyScreenDump(buf, 'Test_more_scrollback_2', {})
 
+  call term_sendkeys(buf, "\<C-F>")
+  call TermWait(buf)
+  call term_sendkeys(buf, "\<C-B>")
+  call VerifyScreenDump(buf, 'Test_more_scrollback_2', {})
+
   call term_sendkeys(buf, 'q')
   call TermWait(buf)
   call StopVimInTerminal(buf)
diff --git a/src/version.c b/src/version.c
index a2f10f911..c28ce040a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1849,
 /**/
     1848,
 /**/

-- 
-- 
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/E1v7x5N-00AHOJ-UB%40256bit.org.

Raspunde prin e-mail lui