diff options
author | Bram Moolenaar <Bram@vim.org> | 2013-03-19 13:56:08 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2013-03-19 13:56:08 +0100 |
commit | b59494cab15310c8e2aaf59d48b270282c3e2017 (patch) | |
tree | 63afb6477be1bf4d9cf9e4c92a2a5b1f2afea068 /src/message.c | |
parent | 186628f67153726edf130015e2a8043a5d309c42 (diff) | |
download | vim-git-b59494cab15310c8e2aaf59d48b270282c3e2017.tar.gz |
updated for version 7.3.868v7.3.868
Problem: When at the hit-return prompt and using "k" while no text has
scrolled off screen, then using "j", an empty line is displayed.
Solution: Only act on "k" when text scrolled off screen. Also accept
page-up and page-down. (cptstubing)
Diffstat (limited to 'src/message.c')
-rw-r--r-- | src/message.c | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/message.c b/src/message.c index f5d17146a..8909f081f 100644 --- a/src/message.c +++ b/src/message.c @@ -976,10 +976,22 @@ wait_return(redraw) */ if (p_more && !p_cp) { - if (c == 'b' || c == 'k' || c == 'u' || c == 'g' || c == K_UP) + if (c == 'b' || c == 'k' || c == 'u' || c == 'g' + || c == K_UP || c == K_PAGEUP) { - /* scroll back to show older messages */ - do_more_prompt(c); + if (msg_scrolled > Rows) + /* scroll back to show older messages */ + do_more_prompt(c); + else + { + msg_didout = FALSE; + c = K_IGNORE; + msg_col = +#ifdef FEAT_RIGHTLEFT + cmdmsg_rl ? Columns - 1 : +#endif + 0; + } if (quit_more) { c = CAR; /* just pretend CR was hit */ @@ -993,7 +1005,8 @@ wait_return(redraw) } } else if (msg_scrolled > Rows - 2 - && (c == 'j' || c == K_DOWN || c == 'd' || c == 'f')) + && (c == 'j' || c == 'd' || c == 'f' + || c == K_DOWN || c == K_PAGEDOWN)) c = K_IGNORE; } } while ((had_got_int && c == Ctrl_C) |