mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-24 01:40:12 -05:00
config: add 'pipe-selected' key binding
This works just like pipe-visible and pipe-scrollback, but pipes the user-selected text, if any, to the external tool. Closes #51
This commit is contained in:
parent
33e25e7f93
commit
639a61abd8
8 changed files with 43 additions and 13 deletions
27
input.c
27
input.c
|
|
@ -145,7 +145,8 @@ execute_binding(struct seat *seat, struct terminal *term,
|
|||
break;
|
||||
|
||||
case BIND_ACTION_PIPE_SCROLLBACK:
|
||||
case BIND_ACTION_PIPE_VIEW: {
|
||||
case BIND_ACTION_PIPE_VIEW:
|
||||
case BIND_ACTION_PIPE_SELECTED: {
|
||||
if (pipe_argv == NULL)
|
||||
break;
|
||||
|
||||
|
|
@ -171,9 +172,27 @@ execute_binding(struct seat *seat, struct terminal *term,
|
|||
goto pipe_err;
|
||||
}
|
||||
|
||||
bool success = action == BIND_ACTION_PIPE_SCROLLBACK
|
||||
? term_scrollback_to_text(term, &text, &len)
|
||||
: term_view_to_text(term, &text, &len);
|
||||
bool success;
|
||||
switch (action) {
|
||||
case BIND_ACTION_PIPE_SCROLLBACK:
|
||||
success = term_scrollback_to_text(term, &text, &len);
|
||||
break;
|
||||
|
||||
case BIND_ACTION_PIPE_VIEW:
|
||||
success = term_view_to_text(term, &text, &len);
|
||||
break;
|
||||
|
||||
case BIND_ACTION_PIPE_SELECTED:
|
||||
text = selection_to_text(term);
|
||||
success = text != NULL;
|
||||
len = text != NULL ? strlen(text) : 0;
|
||||
break;
|
||||
|
||||
default:
|
||||
assert(false);
|
||||
success = false;
|
||||
break;
|
||||
}
|
||||
|
||||
if (!success)
|
||||
goto pipe_err;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue