This pulls in 4 actions (next/prev word and goto start/end of line) present in emacs mode and binds them to the modern GUI keys.
Binding to Ctrl-Left and Crtl-Right required parsing multibyte terminal control sequences. These aren't available everywhere (e.g. xterm works but a raw tty on Linux does not). I moved a little more event handling logic into the keyboard module, as the function that handles key presses now needs to be able to check if there are additional keyboard events waiting when it receives the start of an escape sequence.
This pulls in 4 actions (next/prev word and goto start/end of line) present in emacs mode and binds them to the modern GUI keys.
Binding to Ctrl-Left and Crtl-Right required parsing multibyte terminal control sequences. These aren't available everywhere (e.g. xterm works but a raw tty on Linux does not). I moved a little more event handling logic into the keyboard module, as the function that handles key presses now needs to be able to check if there are additional keyboard events waiting when it receives the start of an escape sequence.