simon-git: putty (main): Simon Tatham

Commits to Tartarus hosted VCS tartarus-commits at lists.tartarus.org
Mon Oct 18 20:19:29 BST 2021


TL;DR:
  22911ccd New config option for shifted arrow key handling.

Repository:     https://git.tartarus.org/simon/putty.git
On the web:     https://git.tartarus.org/?p=simon/putty.git
Branch updated: main
Committer:      Simon Tatham <anakin at pobox.com>
Date:           2021-10-18 20:19:29

commit 22911ccdcc37c7955bfc1c45a88d3762d1206da7
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=22911ccdcc37c7955bfc1c45a88d3762d1206da7;hp=c35d8b832801d926a16ad29c416b969654051ef0
Author: Simon Tatham <anakin at pobox.com>
Date:   Mon Oct 18 20:00:25 2021 +0100

    New config option for shifted arrow key handling.
    
    This commit introduces a new config option for how to handle shifted
    arrow keys.
    
    In the default mode (SHARROW_APPLICATION), we do what we've always
    done: Ctrl flips the arrow keys between sending their most usual
    escape sequences (ESC [ A ... ESC [ D) and sending the 'application
    cursor keys' sequences (ESC O A ... ESC O D). Whichever of those modes
    is currently configured, Ctrl+arrow sends the other one.
    
    In the new mode (SHARROW_BITMAP), application cursor key mode is
    unaffected by any shift keys, but the default sequences acquire two
    numeric arguments. The first argument is 1 (reflecting the fact that a
    shifted arrow key still notionally moves just 1 character cell); the
    second is the bitmap (1 for Shift) + (2 for Alt) + (4 for Ctrl),
    offset by 1. (Except that if _none_ of those modifiers is pressed,
    both numeric arguments are simply omitted.)
    
    The new bitmap mode is what current xterm generates, and also what
    Windows ConPTY seems to expect. If you start an ordinary Command
    Prompt and launch into WSL, those are the sequences it will generate
    for shifted arrow keys; conversely, if you run a Command Prompt within
    a ConPTY, then these sequences for Ctrl+arrow will have the effect you
    expect in cmd.exe command-line editing (going backward or forward a
    word). For that reason, I enable this mode unconditionally when
    launching Windows pterm.

 config.c            |  6 ++++++
 doc/config.but      | 18 ++++++++++++++++++
 doc/index.but       |  3 +++
 putty.h             | 10 +++++++++-
 settings.c          |  3 +++
 terminal/terminal.c | 30 ++++++++++++++++++++++++++----
 terminal/terminal.h |  2 +-
 unix/window.c       |  4 +++-
 windows/help.h      |  1 +
 windows/pterm.c     |  2 ++
 windows/window.c    |  3 ++-
 11 files changed, 74 insertions(+), 8 deletions(-)



More information about the tartarus-commits mailing list