=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/window-copy.c,v retrieving revision 1.321 retrieving revision 1.322 diff -c -r1.321 -r1.322 *** src/usr.bin/tmux/window-copy.c 2021/04/01 06:46:12 1.321 --- src/usr.bin/tmux/window-copy.c 2021/04/05 08:43:48 1.322 *************** *** 1,4 **** ! /* $OpenBSD: window-copy.c,v 1.321 2021/04/01 06:46:12 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: window-copy.c,v 1.322 2021/04/05 08:43:48 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott *************** *** 4291,4313 **** window_copy_cursor_back_to_indentation(struct window_mode_entry *wme) { struct window_copy_mode_data *data = wme->data; ! u_int px, py, xx; ! struct grid_cell gc; ! px = 0; ! py = screen_hsize(data->backing) + data->cy - data->oy; ! xx = window_copy_find_length(wme, py); ! while (px < xx) { ! grid_get_cell(data->backing->grid, px, py, &gc); ! if (gc.data.size != 1 || *gc.data.data != ' ') ! break; ! px++; ! } ! ! window_copy_update_cursor(wme, px, data->cy); ! if (window_copy_update_selection(wme, 1, 0)) ! window_copy_redraw_lines(wme, data->cy, 1); } static void --- 4291,4309 ---- window_copy_cursor_back_to_indentation(struct window_mode_entry *wme) { struct window_copy_mode_data *data = wme->data; ! struct screen *back_s = data->backing; ! struct grid_reader gr; ! u_int px, py, oldy, hsize; ! px = data->cx; ! hsize = screen_hsize(back_s); ! py = hsize + data->cy - data->oy; ! oldy = data->cy; ! grid_reader_start(&gr, back_s->grid, px, py); ! grid_reader_cursor_back_to_indentation(&gr); ! grid_reader_get_cursor(&gr, &px, &py); ! window_copy_acquire_cursor_up(wme, hsize, data->oy, oldy, px, py); } static void *************** *** 4398,4404 **** oldy = data->cy; grid_reader_start(&gr, back_s->grid, px, py); ! grid_reader_cursor_left(&gr); grid_reader_get_cursor(&gr, &px, &py); window_copy_acquire_cursor_up(wme, hsize, data->oy, oldy, px, py); } --- 4394,4400 ---- oldy = data->cy; grid_reader_start(&gr, back_s->grid, px, py); ! grid_reader_cursor_left(&gr, 1); grid_reader_get_cursor(&gr, &px, &py); window_copy_acquire_cursor_up(wme, hsize, data->oy, oldy, px, py); } *************** *** 4583,4592 **** py = hsize + data->cy - data->oy; oldy = data->cy; - if (px > 0) - px--; - grid_reader_start(&gr, back_s->grid, px, py); if (grid_reader_cursor_jump_back(&gr, data->jumpchar)) { grid_reader_get_cursor(&gr, &px, &py); window_copy_acquire_cursor_up(wme, hsize, data->oy, oldy, px, --- 4579,4586 ---- py = hsize + data->cy - data->oy; oldy = data->cy; grid_reader_start(&gr, back_s->grid, px, py); + grid_reader_cursor_left(&gr, 0); if (grid_reader_cursor_jump_back(&gr, data->jumpchar)) { grid_reader_get_cursor(&gr, &px, &py); window_copy_acquire_cursor_up(wme, hsize, data->oy, oldy, px, *************** *** 4609,4615 **** grid_reader_start(&gr, back_s->grid, px, py); if (grid_reader_cursor_jump(&gr, data->jumpchar)) { ! grid_reader_cursor_left(&gr); grid_reader_get_cursor(&gr, &px, &py); window_copy_acquire_cursor_down(wme, hsize, screen_size_y(back_s), data->oy, oldy, px, py, 0); --- 4603,4609 ---- grid_reader_start(&gr, back_s->grid, px, py); if (grid_reader_cursor_jump(&gr, data->jumpchar)) { ! grid_reader_cursor_left(&gr, 1); grid_reader_get_cursor(&gr, &px, &py); window_copy_acquire_cursor_down(wme, hsize, screen_size_y(back_s), data->oy, oldy, px, py, 0); *************** *** 4629,4641 **** py = hsize + data->cy - data->oy; oldy = data->cy; - if (px > 0) - px--; - - if (px > 0) - px--; - grid_reader_start(&gr, back_s->grid, px, py); if (grid_reader_cursor_jump_back(&gr, data->jumpchar)) { grid_reader_cursor_right(&gr, 1, 0); grid_reader_get_cursor(&gr, &px, &py); --- 4623,4631 ---- py = hsize + data->cy - data->oy; oldy = data->cy; grid_reader_start(&gr, back_s->grid, px, py); + grid_reader_cursor_left(&gr, 0); + grid_reader_cursor_left(&gr, 0); if (grid_reader_cursor_jump_back(&gr, data->jumpchar)) { grid_reader_cursor_right(&gr, 1, 0); grid_reader_get_cursor(&gr, &px, &py); *************** *** 4688,4694 **** grid_reader_cursor_right(&gr, 0, 0); grid_reader_cursor_next_word_end(&gr, separators); if (keys == MODEKEY_VI) ! grid_reader_cursor_left(&gr); grid_reader_get_cursor(&gr, &px, &py); *ppx = px; *ppy = py; --- 4678,4684 ---- grid_reader_cursor_right(&gr, 0, 0); grid_reader_cursor_next_word_end(&gr, separators); if (keys == MODEKEY_VI) ! grid_reader_cursor_left(&gr, 1); grid_reader_get_cursor(&gr, &px, &py); *ppx = px; *ppy = py; *************** *** 4718,4724 **** grid_reader_cursor_right(&gr, 0, 0); grid_reader_cursor_next_word_end(&gr, separators); if (keys == MODEKEY_VI) ! grid_reader_cursor_left(&gr); grid_reader_get_cursor(&gr, &px, &py); window_copy_acquire_cursor_down(wme, hsize, screen_size_y(back_s), data->oy, oldy, px, py, no_reset); --- 4708,4714 ---- grid_reader_cursor_right(&gr, 0, 0); grid_reader_cursor_next_word_end(&gr, separators); if (keys == MODEKEY_VI) ! grid_reader_cursor_left(&gr, 1); grid_reader_get_cursor(&gr, &px, &py); window_copy_acquire_cursor_down(wme, hsize, screen_size_y(back_s), data->oy, oldy, px, py, no_reset);