diff --git a/key-string.c b/key-string.c index d2b31e03..38e5b8a7 100644 --- a/key-string.c +++ b/key-string.c @@ -257,6 +257,10 @@ key_string_lookup_key(key_code key) return (out); } + /* Display C-@ as C-Space. */ + if ((key & KEYC_MASK_KEY) == 0) + key = ' ' | KEYC_CTRL | (key & KEYC_MASK_MOD); + /* Fill in the modifiers. */ if (key & KEYC_CTRL) strlcat(out, "C-", sizeof out); @@ -329,15 +333,6 @@ key_string_lookup_key(key_code key) return (out); } - /* - * Special case: display C-@ as C-Space. Could do this below in - * the (key >= 0 && key <= 32), but this way we let it be found - * in key_string_table, for the unlikely chance that we might - * change its name. - */ - if ((key & KEYC_MASK_KEY) == 0) - key = ' ' | KEYC_CTRL | (key & KEYC_MASK_MOD); - /* Try the key against the string table. */ for (i = 0; i < nitems(key_string_table); i++) { if (key == key_string_table[i].key) diff --git a/window-copy.c b/window-copy.c index 1aa1734f..76cea4e6 100644 --- a/window-copy.c +++ b/window-copy.c @@ -305,6 +305,7 @@ window_copy_common_init(struct window_mode_entry *wme) data->cursordrag = CURSORDRAG_NONE; data->lineflag = LINE_SEL_NONE; + data->selflag = SEL_CHAR; if (wp->searchstr != NULL) { data->searchtype = WINDOW_COPY_SEARCHUP; @@ -739,6 +740,7 @@ window_copy_cmd_stop_selection(struct window_copy_cmd_state *cs) data->cursordrag = CURSORDRAG_NONE; data->lineflag = LINE_SEL_NONE; + data->selflag = SEL_CHAR; return (WINDOW_COPY_CMD_NOTHING); } @@ -3360,6 +3362,7 @@ window_copy_clear_selection(struct window_mode_entry *wme) data->cursordrag = CURSORDRAG_NONE; data->lineflag = LINE_SEL_NONE; + data->selflag = SEL_CHAR; py = screen_hsize(data->backing) + data->cy - data->oy; px = window_copy_find_length(wme, py);