home/src
Tim Allen a7ed1f03fb Distinguish <c-h> and Backspace on terminals where that is possible.
Different terminals send different codes to indicate backspace, usually one of
\x08 or \x7f, so Kakoune blindly treated both as backspace. However, a given
terminal is only likely to use one of those, and mnemonic control codes like
<c-h> are a precious resource so we should endeavour to keep backspace and
<c-h> separate when we can. Luckily, termios tells us what code our terminal is
currently using, and Kakoune already reads the information at startup, so we can
just use that information.

Thanks to @krobelus for figuring out the C++ syntax required.

Fixes #3863.
2021-01-15 18:49:53 +11:00
..
.gdbinit Embed gdb pretty-printing script directly into Kakoune binary 2019-01-23 20:27:16 +11:00
alias_registry.cc Rename containers.hh to ranges.hh (and Container to Range) 2017-08-29 15:23:03 +07:00
alias_registry.hh Make FaceRegistry scoped 2018-04-07 16:27:50 +10:00
array_view.hh Refactor how InsetCompletionHide hook parameter is computed 2020-06-27 13:33:50 +10:00
assert.cc Fix undefined behavior in notify_fatal_error 2018-10-05 10:10:14 +01:00
assert.hh Add support for the shift modifier. 2018-04-11 15:15:45 +10:00
backtrace.cc
backtrace.hh
buffer_manager.cc Add a new 'arrange-buffers' to let users change the order of the buflist 2020-02-24 09:41:46 +01:00
buffer_manager.hh Add a new 'arrange-buffers' to let users change the order of the buflist 2020-02-24 09:41:46 +01:00
buffer_utils.cc Refactor how InsetCompletionHide hook parameter is computed 2020-06-27 13:33:50 +10:00
buffer_utils.hh Refactor how InsetCompletionHide hook parameter is computed 2020-06-27 13:33:50 +10:00
buffer.cc Do not include non-primitive option value in *SetOption hook filter 2020-06-09 21:38:47 +10:00
buffer.hh Add 'history' and 'uncommitted_modifications' expansions 2020-01-01 19:47:29 -05:00
buffer.inl.hh Use BufferCoord sentinel type for regex matching on BufferIterators 2018-11-01 21:51:10 +11:00
changes.cc
changes.hh Support empty ranges in replace-ranges highlighter 2020-04-06 11:23:47 +10:00
client_manager.cc Add a range based remove_if overload 2020-05-29 11:59:03 +10:00
client_manager.hh Prevent conversion to client on suspend from disconnecting other clients 2019-04-12 13:23:38 +10:00
client.cc Redraw relevant clients after adding/removing highlighters 2019-12-28 11:27:04 +11:00
client.hh Add support for markup in info boxes 2019-11-22 21:50:51 +11:00
clock.hh Remove DurationMs and slight code refactor 2018-12-28 06:27:35 +11:00
color.cc Add support for alpha channel in colors 2020-05-02 12:57:36 +10:00
color.hh Add support for alpha channel in colors 2020-05-02 12:57:36 +10:00
command_manager.cc command_manager: only remove last eol in %sh{} expansions 2021-01-02 19:53:40 -08:00
command_manager.hh Code style tweaks 2020-07-19 12:54:41 +10:00
commands.cc Fix message typo 2021-01-01 15:15:27 +09:00
commands.hh Re-introduce kill_session::exit_status, @lenormf was right 2018-07-19 19:27:56 +10:00
completion.cc Do not expose C++ typeid().name to user facing errors on wrong option type 2018-05-26 10:01:26 +10:00
completion.hh Restore auto-select on return, add a flag to disable that for commands 2020-11-18 19:56:05 +11:00
constexpr_utils.hh Refactor Hook management to have a well defined list of hooks 2018-10-23 08:15:53 +11:00
context.cc Redraw relevant clients after adding/removing highlighters 2019-12-28 11:27:04 +11:00
context.hh Ensure current context switches away from buffer on delete-buffer 2019-07-22 20:26:39 +10:00
coord.hh Constexprify various hash functions 2017-10-20 12:21:22 +08:00
diff.hh Remove posB from information given by the diff algorithm 2020-03-20 20:27:50 +11:00
display_buffer.cc Support multi-line replace-ranges 2020-04-27 17:39:21 +10:00
display_buffer.hh Support multi-line replace-ranges 2020-04-27 17:39:21 +10:00
enum.hh
env_vars.cc Do not copy environment strings, just refer to them 2019-03-21 20:43:24 +11:00
env_vars.hh
event_manager.cc Add illumos/Solaris support 2020-09-18 05:22:25 -05:00
event_manager.hh Add Timer::disable() to be more explicit than set_next_date(TimePoint::max()) 2020-12-20 11:32:15 +11:00
exception.cc
exception.hh Rework fail command not to display command call stack 2018-05-26 21:31:17 +10:00
face_registry.cc Fix face attributes to string conversion with F shorthand 2020-08-30 10:12:21 +10:00
face_registry.hh Change faces alias to be a base that can be modified 2019-04-23 23:15:23 +01:00
face.hh Fix alpha of merged faces 2020-07-31 15:45:52 +10:00
file.cc Add missing limits includes 2021-01-03 10:58:09 +11:00
file.hh src: Reload buffers when their contents' hash changes 2019-12-03 17:05:24 +01:00
flags.hh Add more constexpr to flags wrapping functions 2017-10-06 13:48:01 +08:00
hash_map.cc Fix use of removed std::random_shuffle 2019-01-20 22:59:28 +11:00
hash_map.hh Code style tweaks 2020-07-19 12:54:41 +10:00
hash.cc Fix various undefined behaviours detected by UBSan 2017-06-26 11:27:18 +01:00
hash.hh Header and dependency cleanup 2019-01-24 21:22:20 +11:00
highlighter_group.cc Add -override support to add-highlighter 2020-03-30 21:04:01 +11:00
highlighter_group.hh Rename DefinedHighlighters to SharedHighlighters 2020-08-08 11:19:02 +10:00
highlighter.cc Add -override support to add-highlighter 2020-03-30 21:04:01 +11:00
highlighter.hh Add -override support to add-highlighter 2020-03-30 21:04:01 +11:00
highlighters.cc Add missing limits includes 2021-01-03 10:58:09 +11:00
highlighters.hh Refactor option_from_string to return directly the option value 2018-05-27 13:00:50 +10:00
hook_manager.cc Add a range based remove_if overload 2020-05-29 11:59:03 +10:00
hook_manager.hh Add a RegisterModified hook 2020-07-19 12:56:55 +10:00
input_handler.cc Add missing limits includes 2021-01-03 10:58:09 +11:00
input_handler.hh Merge remote-tracking branch 'Anfid/scroll-test' 2020-03-15 12:32:54 +11:00
insert_completer.cc remove unused variable changes_tracker 2020-12-22 21:31:11 +11:00
insert_completer.hh Refactor how InsetCompletionHide hook parameter is computed 2020-06-27 13:33:50 +10:00
json_ui.cc Refactor mouse press/release handling to support 3 buttons 2020-06-28 19:48:55 +10:00
json_ui.hh Add support for markup in info boxes 2019-11-22 21:50:51 +11:00
json.cc Fix invalid memory access in unit-tests 2020-03-04 12:08:16 +11:00
json.hh src: Move JSON parsing code to its own file 2019-11-17 09:27:46 +01:00
keymap_manager.cc Add a way to unmap all keys of a given mode at once 2018-09-23 19:40:38 +02:00
keymap_manager.hh Add a way to unmap all keys of a given mode at once 2018-09-23 19:40:38 +02:00
keys.cc src/ncurses_ui.cc: Teach Kakoune about ctrl-symbol keys. 2020-10-31 01:20:49 +11:00
keys.hh Refactor mouse press/release handling to support 3 buttons 2020-06-28 19:48:55 +10:00
line_modification.cc Add a range based remove_if overload 2020-05-29 11:59:03 +10:00
line_modification.hh Introduce FunctionRef to replace std::function when not storing 2019-09-01 13:04:47 +10:00
main.cc Replace write -atomic with write -method <method> 2020-10-27 20:20:18 +11:00
Makefile Avoid non-POSIX ln -r switch 2020-12-25 12:07:13 +11:00
memory.cc Track more memory statistics 2019-03-21 20:35:22 +11:00
memory.hh Track more memory statistics 2019-03-21 20:35:22 +11:00
meta.hh Use BufferCoord sentinel type for regex matching on BufferIterators 2018-11-01 21:51:10 +11:00
ncurses_ui.cc Distinguish <c-h> and Backspace on terminals where that is possible. 2021-01-15 18:49:53 +11:00
ncurses_ui.hh Untie focus reporting and mouse handling 2020-03-27 07:54:21 +11:00
normal.cc Throw no_selections_remaining when using <a-space> 2020-12-03 21:42:14 +01:00
normal.hh Add static or const where useful 2019-11-09 12:53:45 -05:00
option_manager.cc Defer deletion of unsetted option to return to main loop 2019-01-20 22:46:40 +11:00
option_manager.hh Add support for removing from options 2020-09-09 21:00:30 +10:00
option_types.cc Change option lists to be specified as separate arguments on commands line 2018-07-05 07:54:28 +10:00
option_types.hh Add support for removing from options 2020-09-09 21:00:30 +10:00
option.hh Add support for removing from options 2020-09-09 21:00:30 +10:00
optional.hh Support piping data to client stdin 2020-05-10 19:30:13 +10:00
parameters_parser.cc Do not keep a reference to ParametersDesc inside ParameterParser 2019-05-10 23:46:16 +10:00
parameters_parser.hh Do not keep a reference to ParametersDesc inside ParameterParser 2019-05-10 23:46:16 +10:00
range.hh Refactor how InsetCompletionHide hook parameter is computed 2020-06-27 13:33:50 +10:00
ranges.cc Change pipe diffing to work linewise 2019-01-23 20:20:54 +11:00
ranges.hh Add a range based remove_if overload 2020-05-29 11:59:03 +10:00
ranked_match.cc Rank a word-boundary after a non-word-boundary 2019-09-07 22:53:29 +02:00
ranked_match.hh Make non smart case full match better than smart case full match 2017-07-19 20:18:47 +02:00
ref_ptr.hh RefPtr: use inconditional noexcept specification on destructor 2018-02-28 15:04:00 +11:00
regex_impl.cc Add missing limits includes 2021-01-03 10:58:09 +11:00
regex_impl.hh Do not decode utf-8 when looking for regex next start 2019-12-04 22:33:11 +11:00
regex.cc Try to bypass clang crash 2019-01-20 22:59:28 +11:00
regex.hh Split compile time regex flags from runtime ones 2019-01-20 22:59:28 +11:00
register_manager.cc Do not trigger RegisterModified hooks on register about to be restored 2020-07-21 20:27:42 +10:00
register_manager.hh commands: add "registers" subcommand to :debug 2020-12-23 14:22:44 -08:00
remote.cc Allow quiting last client with unsaved buffer in daemon mode 2020-10-19 20:39:25 +11:00
remote.hh Allow quiting last client with unsaved buffer in daemon mode 2020-10-19 20:39:25 +11:00
safe_ptr.hh Header and dependency cleanup 2019-01-24 21:22:20 +11:00
scope.cc Do not include non-primitive option value in *SetOption hook filter 2020-06-09 21:38:47 +10:00
scope.hh Add override 2019-11-09 12:53:45 -05:00
selection.cc Avoid to_remove vector in select helper function 2020-05-29 12:00:02 +10:00
selection.hh Add missing limits includes 2021-01-03 10:58:09 +11:00
selectors.cc Ensure that the capture group actually matched in select_matches 2020-09-22 21:14:40 +10:00
selectors.hh Ensure that the capture group actually matched in select_matches 2020-09-22 21:14:40 +10:00
shared_string.cc Fix shared string registry ref count stats 2018-07-26 22:20:19 +10:00
shared_string.hh
shell_manager.cc Add a libexec/ directory and use it to find the kak command 2020-12-09 09:13:45 +11:00
shell_manager.hh Expand env vars as list of strings 2020-03-02 20:53:28 +11:00
string_utils.cc Output debug memory stats in a nice table 2020-05-19 17:16:37 +10:00
string_utils.hh Output debug memory stats in a nice table 2020-05-19 17:16:37 +10:00
string.cc Fix String::resize not zero-terminating 2019-11-17 09:50:18 +11:00
string.hh Fix empty strings not being zero terminated 2020-03-29 20:28:56 +11:00
unicode.hh Header and dependency cleanup 2019-01-24 21:22:20 +11:00
unit_tests.cc Remove posB from information given by the diff algorithm 2020-03-20 20:27:50 +11:00
unit_tests.hh
units.hh Constexprify various hash functions 2017-10-20 12:21:22 +08:00
user_interface.hh Add support for markup in info boxes 2019-11-22 21:50:51 +11:00
utf8_iterator.hh Header and dependency cleanup 2019-01-24 21:22:20 +11:00
utf8.hh Rank a word-boundary after a non-word-boundary 2019-09-07 22:53:29 +02:00
utils.hh Do not trigger RegisterModified hooks on register about to be restored 2020-07-21 20:27:42 +10:00
value.hh Small code simplifications 2017-09-07 19:38:34 +08:00
vector.hh
window.cc Do not include non-primitive option value in *SetOption hook filter 2020-06-09 21:38:47 +10:00
window.hh Fix window_range expansion 2019-12-16 14:09:20 +11:00
word_db.cc Fix performance issue with word completion 2020-11-07 10:42:51 +11:00
word_db.hh Fix performance issue with word completion 2020-11-07 10:42:51 +11:00