Makes sense thanks. But your fix still wraps in some cases, can't spot
why immediately probably due to broken EOL tracking where _down moves
the cursor to the end. How about this instead?
Index: window-copy.c
===================================================================
RCS file: /cvs/src/usr.bin/tmux/window-copy.c,v
retrieving revision 1.93
diff -u -p -r1.93 window-copy.c
--- window-copy.c 5 Jul 2013 14:44:06 -0000 1.93
+++ window-copy.c 5 Jul 2013 16:42:50 -0000
@@ -1622,10 +1622,13 @@ void
window_copy_cursor_left(struct window_pane *wp)
{
struct window_copy_mode_data *data = wp->modedata;
+ struct screen *s = data->backing;
if (data->cx == 0) {
- window_copy_cursor_up(wp, 0);
- window_copy_cursor_end_of_line(wp);
+ if (data->oy != screen_hsize(s)) {
+ window_copy_cursor_up(wp, 0);
+ window_copy_cursor_end_of_line(wp);
+ }
} else {
window_copy_update_cursor(wp, data->cx - 1, data->cy);
if (window_copy_update_selection(wp))
@@ -1637,18 +1640,20 @@ void
window_copy_cursor_right(struct window_pane *wp)
{
struct window_copy_mode_data *data = wp->modedata;
+ struct screen *s = data->backing;
u_int px, py;
+ py = screen_hsize(s) + data->cy - data->oy;
if (data->screen.sel.flag && data->rectflag)
px = screen_size_x(&data->screen);
- else {
- py = screen_hsize(data->backing) + data->cy - data->oy;
+ else
px = window_copy_find_length(wp, py);
- }
if (data->cx >= px) {
- window_copy_cursor_start_of_line(wp);
- window_copy_cursor_down(wp, 0);
+ if (py < screen_hsize(s) + screen_size_y(s) - 1) {
+ window_copy_cursor_down(wp, 0);
+ window_copy_cursor_start_of_line(wp);
+ }
} else {
window_copy_update_cursor(wp, data->cx + 1, data->cy);
if (window_copy_update_selection(wp))
On Fri, Jul 05, 2013 at 12:17:28PM -0400, Ben Boeckel wrote:
> On Fri, Jul 05, 2013 at 16:56:33 +0100, Nicholas Marriott wrote:
> > Hi. What's the behaviour here before and after?
>
> Before, if you went "left" from the top-left corner was the top-right
> corner since (cy = = max(0, cy - 1); cx = end_of_line(cy);) was done.
> Something similar for the "right" of bottom-right being bottom-left. The
> new behavior is that nothing is "left" of the top-left nor "right" of
> bottom-right.
>
> --Ben
------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:
Build for Windows Store.
http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
tmux-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tmux-users