Skip to content

Commit

Permalink
Merge pull request #1927 from H3rnand3zzz/feature/print-newline-char
Browse files Browse the repository at this point in the history
Handle alt+enter as newline char
  • Loading branch information
jubalh authored Nov 13, 2023
2 parents 740c209 + dac6d0c commit 08d2a51
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 0 deletions.
3 changes: 3 additions & 0 deletions docs/profanity.1
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,9 @@ Mark current window for later reading with an attention flag.
.BI ALT+m
Switch between windows marked with the attention flag.
.TP
.BI ALT+ENTER
Add newline character without sending a message/command.
.TP
.BI ALT+c
Run external editor (see
.BR profanity-editor (1))
Expand Down
11 changes: 11 additions & 0 deletions src/ui/inputwin.c
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,7 @@ static int _inp_rl_subwin_pagedown_handler(int count, int key);
static int _inp_rl_startup_hook(void);
static int _inp_rl_down_arrow_handler(int count, int key);
static int _inp_rl_send_to_editor(int count, int key);
static int _inp_rl_print_newline_symbol(int count, int key);

void
create_input_window(void)
Expand Down Expand Up @@ -482,6 +483,7 @@ _inp_rl_addfuncs(void)
rl_add_funmap_entry("prof_win_close", _inp_rl_win_close_handler);
rl_add_funmap_entry("prof_send_to_editor", _inp_rl_send_to_editor);
rl_add_funmap_entry("prof_cut_to_history", _inp_rl_down_arrow_handler);
rl_add_funmap_entry("prof_print_newline_symbol", _inp_rl_print_newline_symbol);
}

// Readline callbacks
Expand Down Expand Up @@ -555,6 +557,8 @@ _inp_rl_startup_hook(void)
rl_bind_keyseq("\\e[1;5B", _inp_rl_down_arrow_handler); // ctrl+arrow down
rl_bind_keyseq("\\eOb", _inp_rl_down_arrow_handler);

rl_bind_keyseq("\\e\\C-\r", _inp_rl_print_newline_symbol); // alt+enter

// unbind unwanted mappings
rl_bind_keyseq("\\e=", NULL);

Expand Down Expand Up @@ -960,3 +964,10 @@ _inp_rl_send_to_editor(int count, int key)

return 0;
}

static int
_inp_rl_print_newline_symbol(int count, int key)
{
rl_insert_text("\n");
return 0;
}

0 comments on commit 08d2a51

Please sign in to comment.