From d9c99b83c7de1f193aa353e7f49e8889dc227083 Mon Sep 17 00:00:00 2001 From: Micah Cowan Date: Sat, 5 Jun 2010 07:48:35 +0000 Subject: [PATCH] Make double start-of-line do what double end-of-line does, on wrapped lines. --- window-copy.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/window-copy.c b/window-copy.c index 729395a8..917a4e97 100644 --- a/window-copy.c +++ b/window-copy.c @@ -1,4 +1,4 @@ -/* $Id: window-copy.c,v 1.117 2010-05-22 21:56:04 micahcowan Exp $ */ +/* $Id: window-copy.c,v 1.118 2010-06-05 07:48:35 micahcowan Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -1383,7 +1383,17 @@ void window_copy_cursor_start_of_line(struct window_pane *wp) { struct window_copy_mode_data *data = wp->modedata; + struct screen *back_s = data->backing; + struct grid *gd = back_s->grid; + u_int py; + if (data->cx == 0) { + py = screen_hsize(back_s) + data->cy - data->oy; + while (py > 0 && gd->linedata[py-1].flags & GRID_LINE_WRAPPED) { + window_copy_cursor_up(wp, 0); + py = screen_hsize(back_s) + data->cy - data->oy; + } + } window_copy_update_cursor(wp, 0, data->cy); if (window_copy_update_selection(wp)) window_copy_redraw_lines(wp, data->cy, 1);