[BACK]Return to window-copy.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / tmux

Diff for /src/usr.bin/tmux/window-copy.c between version 1.167 and 1.168

version 1.167, 2017/03/08 13:36:12 version 1.168, 2017/03/08 20:05:25
Line 1921 
Line 1921 
 window_copy_cursor_left(struct window_pane *wp)  window_copy_cursor_left(struct window_pane *wp)
 {  {
         struct window_copy_mode_data    *data = wp->modedata;          struct window_copy_mode_data    *data = wp->modedata;
         u_int                            py;          u_int                            py, cx;
           struct grid_cell                 gc;
   
         py = screen_hsize(data->backing) + data->cy - data->oy;          py = screen_hsize(data->backing) + data->cy - data->oy;
         if (data->cx == 0 && py > 0) {          cx = data->cx;
           while (cx > 0) {
                   grid_get_cell(data->backing->grid, cx, py, &gc);
                   if (~gc.flags & GRID_FLAG_PADDING)
                           break;
                   cx--;
           }
           if (cx == 0 && py > 0) {
                 window_copy_cursor_up(wp, 0);                  window_copy_cursor_up(wp, 0);
                 window_copy_cursor_end_of_line(wp);                  window_copy_cursor_end_of_line(wp);
         } else if (data->cx > 0) {          } else if (cx > 0) {
                 window_copy_update_cursor(wp, data->cx - 1, data->cy);                  window_copy_update_cursor(wp, cx - 1, data->cy);
                 if (window_copy_update_selection(wp, 1))                  if (window_copy_update_selection(wp, 1))
                         window_copy_redraw_lines(wp, data->cy, 1);                          window_copy_redraw_lines(wp, data->cy, 1);
         }          }
Line 1938 
Line 1946 
 window_copy_cursor_right(struct window_pane *wp)  window_copy_cursor_right(struct window_pane *wp)
 {  {
         struct window_copy_mode_data    *data = wp->modedata;          struct window_copy_mode_data    *data = wp->modedata;
         u_int                            px, py, yy;          u_int                            px, py, yy, cx, cy;
           struct grid_cell                 gc;
   
         py = screen_hsize(data->backing) + data->cy - data->oy;          py = screen_hsize(data->backing) + data->cy - data->oy;
         yy = screen_hsize(data->backing) + screen_size_y(data->backing) - 1;          yy = screen_hsize(data->backing) + screen_size_y(data->backing) - 1;
         if (data->screen.sel.flag && data->rectflag)          if (data->screen.sel.flag && data->rectflag)
                 px = screen_size_x(&data->screen);                  px = screen_size_x(&data->screen);
         else {          else
                 px = window_copy_find_length(wp, py);                  px = window_copy_find_length(wp, py);
         }  
   
         if (data->cx >= px && py < yy) {          if (data->cx >= px && py < yy) {
                 window_copy_cursor_start_of_line(wp);                  window_copy_cursor_start_of_line(wp);
                 window_copy_cursor_down(wp, 0);                  window_copy_cursor_down(wp, 0);
         } else if (data->cx < px) {          } else if (data->cx < px) {
                 window_copy_update_cursor(wp, data->cx + 1, data->cy);                  cx = data->cx + 1;
                   cy = screen_hsize(data->backing) + data->cy - data->oy;
                   while (cx < px) {
                           grid_get_cell(data->backing->grid, cx, cy, &gc);
                           if (~gc.flags & GRID_FLAG_PADDING)
                                   break;
                           cx++;
                   }
                   window_copy_update_cursor(wp, cx, data->cy);
                 if (window_copy_update_selection(wp, 1))                  if (window_copy_update_selection(wp, 1))
                         window_copy_redraw_lines(wp, data->cy, 1);                          window_copy_redraw_lines(wp, data->cy, 1);
         }          }

Legend:
Removed from v.1.167  
changed lines
  Added in v.1.168