Sorry about that.
Attached is a full patch containing Dave's initial work
and my additions for: select-line, copy-line, and copy-end-of-line.
Let me know if you'd prefer incremental patches
or if you need them based off of a different point in the source history.
Thanks!

On Sat, Apr 30, 2011 at 3:39 AM, Nicholas Marriott <
nicholas.marri...@gmail.com> wrote:

> I only seem to be getting half of this exchange, where is this patch?
>
>
diff --git a/mode-key.c b/mode-key.c
index 89c3e90..4938de1 100644
--- a/mode-key.c
+++ b/mode-key.c
@@ -82,6 +82,8 @@ const struct mode_key_cmdstr mode_key_cmdstr_copy[] = {
 	{ MODEKEYCOPY_BOTTOMLINE, "bottom-line" },
 	{ MODEKEYCOPY_CANCEL, "cancel" },
 	{ MODEKEYCOPY_CLEARSELECTION, "clear-selection" },
+	{ MODEKEYCOPY_COPYLINE, "copy-line" },
+	{ MODEKEYCOPY_COPYENDOFLINE, "copy-end-of-line" },
 	{ MODEKEYCOPY_COPYSELECTION, "copy-selection" },
 	{ MODEKEYCOPY_DOWN, "cursor-down" },
 	{ MODEKEYCOPY_ENDOFLINE, "end-of-line" },
@@ -110,6 +112,7 @@ const struct mode_key_cmdstr mode_key_cmdstr_copy[] = {
 	{ MODEKEYCOPY_SEARCHDOWN, "search-forward" },
 	{ MODEKEYCOPY_SEARCHREVERSE, "search-reverse" },
 	{ MODEKEYCOPY_SEARCHUP, "search-backward" },
+	{ MODEKEYCOPY_SELECTLINE, "select-line" },
 	{ MODEKEYCOPY_STARTNUMBERPREFIX, "start-number-prefix" },
 	{ MODEKEYCOPY_STARTOFLINE, "start-of-line" },
 	{ MODEKEYCOPY_STARTSELECTION, "begin-selection" },
@@ -198,6 +201,7 @@ const struct mode_key_entry mode_key_vi_copy[] = {
 	{ ':',			0, MODEKEYCOPY_GOTOLINE },
 	{ '?',			0, MODEKEYCOPY_SEARCHUP },
 	{ 'B',			0, MODEKEYCOPY_PREVIOUSSPACE },
+	{ 'D',			0, MODEKEYCOPY_COPYENDOFLINE },
 	{ 'E',			0, MODEKEYCOPY_NEXTSPACEEND },
 	{ 'F',			0, MODEKEYCOPY_JUMPBACK },
 	{ 'G',			0, MODEKEYCOPY_HISTORYBOTTOM },
@@ -323,6 +327,7 @@ const struct mode_key_entry mode_key_emacs_copy[] = {
 	{ '\005' /* C-e */,	0, MODEKEYCOPY_ENDOFLINE },
 	{ '\006' /* C-f */,	0, MODEKEYCOPY_RIGHT },
 	{ '\007' /* C-g */,	0, MODEKEYCOPY_CLEARSELECTION },
+	{ '\013' /* C-k */,	0, MODEKEYCOPY_COPYENDOFLINE },
 	{ '\016' /* C-n */,	0, MODEKEYCOPY_DOWN },
 	{ '\020' /* C-p */,	0, MODEKEYCOPY_UP },
 	{ '\022' /* C-r */,	0, MODEKEYCOPY_SEARCHUP },
diff --git a/tmux.1 b/tmux.1
index d0a92a5..cb41d42 100644
--- a/tmux.1
+++ b/tmux.1
@@ -770,7 +770,7 @@ The following keys are supported as appropriate for the mode:
 .It Li "Cursor to top line" Ta "H" Ta "M-R"
 .It Li "Cursor up" Ta "k" Ta "Up"
 .It Li "Delete entire line" Ta "d" Ta "C-u"
-.It Li "Delete to end of line" Ta "D" Ta "C-k"
+.It Li "Delete/Copy to end of line" Ta "D" Ta "C-k"
 .It Li "End of line" Ta "$" Ta "C-e"
 .It Li "Go to line" Ta ":" Ta "g"
 .It Li "Half page down" Ta "C-d" Ta "M-Down"
diff --git a/tmux.h b/tmux.h
index 89ea61b..c62183f 100644
--- a/tmux.h
+++ b/tmux.h
@@ -454,6 +454,8 @@ enum mode_key_cmd {
 	MODEKEYCOPY_BOTTOMLINE,
 	MODEKEYCOPY_CANCEL,
 	MODEKEYCOPY_CLEARSELECTION,
+	MODEKEYCOPY_COPYLINE,
+	MODEKEYCOPY_COPYENDOFLINE,
 	MODEKEYCOPY_COPYSELECTION,
 	MODEKEYCOPY_DOWN,
 	MODEKEYCOPY_ENDOFLINE,
@@ -484,6 +486,7 @@ enum mode_key_cmd {
 	MODEKEYCOPY_SEARCHDOWN,
 	MODEKEYCOPY_SEARCHREVERSE,
 	MODEKEYCOPY_SEARCHUP,
+	MODEKEYCOPY_SELECTLINE,
 	MODEKEYCOPY_STARTNUMBERPREFIX,
 	MODEKEYCOPY_STARTOFLINE,
 	MODEKEYCOPY_STARTSELECTION,
diff --git a/window-copy.c b/window-copy.c
index 123cc21..1c4d55a 100644
--- a/window-copy.c
+++ b/window-copy.c
@@ -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:
+		// copy-line includes select-line
+	case MODEKEYCOPY_SELECTLINE:
+		// only move to the beginning for select or copy line
+		window_copy_cursor_start_of_line(wp);
+	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);
+
+		// do we need to check if sess != NULL
+		// or do we know it's not because of the above copying?
+		if (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);
------------------------------------------------------------------------------
WhatsUp Gold - Download Free Network Management Software
The most intuitive, comprehensive, and cost-effective network 
management toolset available today.  Delivers lowest initial 
acquisition cost and overall TCO of any competing solution.
http://p.sf.net/sfu/whatsupgold-sd
_______________________________________________
tmux-users mailing list
tmux-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tmux-users

Reply via email to