aboutsummaryrefslogtreecommitdiff
path: root/window-copy.c
diff options
context:
space:
mode:
authorTiago Cunha <tcunha@gmx.com>2011-05-18 20:35:36 +0000
committerTiago Cunha <tcunha@gmx.com>2011-05-18 20:35:36 +0000
commit69e0aabcdf536f5771f261e4b6103234070fc267 (patch)
tree4ad54c2202a2cfb21b15051ce4a8acfb7d46084f /window-copy.c
parent3cb428bc7e7da680dc0b18458812427f70f55677 (diff)
downloadrtmux-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.c22
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);