[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.209 and 1.210

version 1.209, 2019/03/08 10:29:25 version 1.210, 2019/03/08 10:34:20
Line 30 
Line 30 
                     struct mouse_event *);                      struct mouse_event *);
 static struct screen *window_copy_init(struct window_mode_entry *,  static struct screen *window_copy_init(struct window_mode_entry *,
                     struct cmd_find_state *, struct args *);                      struct cmd_find_state *, struct args *);
   static struct screen *window_copy_view_init(struct window_mode_entry *,
                       struct cmd_find_state *, struct args *);
 static void     window_copy_free(struct window_mode_entry *);  static void     window_copy_free(struct window_mode_entry *);
 static void     window_copy_resize(struct window_mode_entry *, u_int, u_int);  static void     window_copy_resize(struct window_mode_entry *, u_int, u_int);
 static void     window_copy_formats(struct window_mode_entry *,  static void     window_copy_formats(struct window_mode_entry *,
Line 125 
Line 127 
         .formats = window_copy_formats,          .formats = window_copy_formats,
 };  };
   
   const struct window_mode window_view_mode = {
           .name = "view-mode",
   
           .init = window_copy_view_init,
           .free = window_copy_free,
           .resize = window_copy_resize,
           .key_table = window_copy_key_table,
           .command = window_copy_command,
           .formats = window_copy_formats,
   };
   
 enum {  enum {
         WINDOW_COPY_OFF,          WINDOW_COPY_OFF,
         WINDOW_COPY_SEARCHUP,          WINDOW_COPY_SEARCHUP,
Line 203 
Line 216 
         char             jumpchar;          char             jumpchar;
 };  };
   
 static struct screen *  static struct window_copy_mode_data *
 window_copy_init(struct window_mode_entry *wme,  window_copy_common_init(struct window_mode_entry *wme)
     __unused struct cmd_find_state *fs, __unused struct args *args)  
 {  {
         struct window_pane              *wp = wme->wp;          struct window_pane              *wp = wme->wp;
         struct window_copy_mode_data    *data;          struct window_copy_mode_data    *data;
         struct screen                   *s;          struct screen                   *base = &wp->base;
   
         wme->data = data = xcalloc(1, sizeof *data);          wme->data = data = xcalloc(1, sizeof *data);
   
Line 226 
Line 238 
         data->searchmark = NULL;          data->searchmark = NULL;
         data->searchx = data->searchy = data->searcho = -1;          data->searchx = data->searchy = data->searcho = -1;
   
         if (wp->fd != -1)  
                 bufferevent_disable(wp->event, EV_READ|EV_WRITE);  
   
         data->jumptype = WINDOW_COPY_OFF;          data->jumptype = WINDOW_COPY_OFF;
         data->jumpchar = '\0';          data->jumpchar = '\0';
   
         s = &data->screen;          screen_init(&data->screen, screen_size_x(base), screen_size_y(base), 0);
         screen_init(s, screen_size_x(&wp->base), screen_size_y(&wp->base), 0);  
         data->modekeys = options_get_number(wp->window->options, "mode-keys");          data->modekeys = options_get_number(wp->window->options, "mode-keys");
   
         data->backing = NULL;          return (data);
   
         return (s);  
 }  }
   
 void  static struct screen *
 window_copy_init_from_pane(struct window_pane *wp, int scroll_exit)  window_copy_init(struct window_mode_entry *wme,
       __unused struct cmd_find_state *fs, struct args *args)
 {  {
         struct window_mode_entry        *wme = wp->mode;          struct window_pane              *wp = wme->wp;
         struct window_copy_mode_data    *data = wme->data;          struct window_copy_mode_data    *data;
         struct screen                   *s = &data->screen;          struct screen_write_ctx          ctx;
         struct screen_write_ctx          ctx;  
         u_int                            i;          u_int                            i;
   
         if (wme == NULL || wme->mode != &window_copy_mode)          data = window_copy_common_init(wme);
                 fatalx("not in copy mode");  
   
           if (wp->fd != -1)
                   bufferevent_disable(wp->event, EV_READ|EV_WRITE);
   
         data->backing = &wp->base;          data->backing = &wp->base;
         data->cx = data->backing->cx;          data->cx = data->backing->cx;
         data->cy = data->backing->cy;          data->cy = data->backing->cy;
         data->scroll_exit = scroll_exit;  
   
         s->cx = data->cx;          data->scroll_exit = args_has(args, 'e');
         s->cy = data->cy;  
   
         screen_write_start(&ctx, NULL, s);          data->screen.cx = data->cx;
         for (i = 0; i < screen_size_y(s); i++)          data->screen.cy = data->cy;
   
           screen_write_start(&ctx, NULL, &data->screen);
           for (i = 0; i < screen_size_y(&data->screen); i++)
                 window_copy_write_line(wme, &ctx, i);                  window_copy_write_line(wme, &ctx, i);
         screen_write_cursormove(&ctx, data->cx, data->cy);          screen_write_cursormove(&ctx, data->cx, data->cy);
         screen_write_stop(&ctx);          screen_write_stop(&ctx);
   
           return (&data->screen);
 }  }
   
 void  static struct screen *
 window_copy_init_for_output(struct window_pane *wp)  window_copy_view_init(struct window_mode_entry *wme,
       __unused struct cmd_find_state *fs, __unused struct args *args)
 {  {
           struct window_pane              *wp = wme->wp;
         struct window_copy_mode_data    *data;          struct window_copy_mode_data    *data;
           struct screen                   *base = &wp->base;
           struct screen                   *s;
   
         if (wp->mode != NULL && wp->mode->mode == &window_copy_mode) {          data = window_copy_common_init(wme);
                 data = wp->mode->data;  
                 if (data->backing != &wp->base)  
                         return;  
         }  
         window_pane_reset_mode(wp);  
   
         window_pane_set_mode(wp, &window_copy_mode, NULL, NULL);          data->backing = s = xmalloc(sizeof *data->backing);
         data = wp->mode->data;          screen_init(s, screen_size_x(base), screen_size_y(base), UINT_MAX);
   
         data->backing = xmalloc(sizeof *data->backing);          return (&data->screen);
         screen_init(data->backing, screen_size_x(&wp->base),  
             screen_size_y(&wp->base), UINT_MAX);  
 }  }
   
 static void  static void

Legend:
Removed from v.1.209  
changed lines
  Added in v.1.210