diff options
author | Tiago Cunha <tcunha@gmx.com> | 2011-05-18 20:35:36 +0000 |
---|---|---|
committer | Tiago Cunha <tcunha@gmx.com> | 2011-05-18 20:35:36 +0000 |
commit | 69e0aabcdf536f5771f261e4b6103234070fc267 (patch) | |
tree | 4ad54c2202a2cfb21b15051ce4a8acfb7d46084f /window-copy.c | |
parent | 3cb428bc7e7da680dc0b18458812427f70f55677 (diff) | |
download | rtmux-69e0aabcdf536f5771f261e4b6103234070fc267.tar.gz rtmux-69e0aabcdf536f5771f261e4b6103234070fc267.tar.bz2 rtmux-69e0aabcdf536f5771f261e4b6103234070fc267.zip |
Sync OpenBSD patchset 913:
Add three new copy-mode commands - select-line, copy-line,
copy-end-of-line. From Dave Disser and Randy Stauner a while back.
Diffstat (limited to 'window-copy.c')
-rw-r--r-- | window-copy.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/window-copy.c b/window-copy.c index 40a49890..c3b8fd04 100644 --- a/window-copy.c +++ b/window-copy.c @@ -1,4 +1,4 @@ -/* $Id: window-copy.c,v 1.131 2011-05-18 20:33:24 tcunha Exp $ */ +/* $Id: window-copy.c,v 1.132 2011-05-18 20:35:36 tcunha Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -500,6 +500,26 @@ window_copy_key(struct window_pane *wp, struct session *sess, int key) window_copy_start_selection(wp); window_copy_redraw_screen(wp); break; + case MODEKEYCOPY_COPYLINE: + case MODEKEYCOPY_SELECTLINE: + window_copy_cursor_start_of_line(wp); + /* FALLTHROUGH */ + case MODEKEYCOPY_COPYENDOFLINE: + window_copy_start_selection(wp); + for (; np > 1; np--) + window_copy_cursor_down(wp, 0); + window_copy_cursor_end_of_line(wp); + window_copy_redraw_screen(wp); + + /* If a copy command then copy the selection and exit. */ + if (sess != NULL && + (cmd == MODEKEYCOPY_COPYLINE || + cmd == MODEKEYCOPY_COPYENDOFLINE)) { + window_copy_copy_selection(wp); + window_pane_reset_mode(wp); + return; + } + break; case MODEKEYCOPY_CLEARSELECTION: window_copy_clear_selection(wp); window_copy_redraw_screen(wp); |