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

Diff for /src/usr.bin/tmux/status.c between version 1.174 and 1.175

version 1.174, 2018/01/01 11:03:54 version 1.175, 2018/02/05 08:21:54
Line 151 
Line 151 
         struct session  *s = c->session;          struct session  *s = c->session;
         struct timeval   tv;          struct timeval   tv;
   
         evtimer_del(&c->status_timer);          evtimer_del(&c->status.timer);
   
         if (s == NULL)          if (s == NULL)
                 return;                  return;
Line 163 
Line 163 
         tv.tv_sec = options_get_number(s->options, "status-interval");          tv.tv_sec = options_get_number(s->options, "status-interval");
   
         if (tv.tv_sec != 0)          if (tv.tv_sec != 0)
                 evtimer_add(&c->status_timer, &tv);                  evtimer_add(&c->status.timer, &tv);
         log_debug("client %p, status interval %d", c, (int)tv.tv_sec);          log_debug("client %p, status interval %d", c, (int)tv.tv_sec);
 }  }
   
Line 173 
Line 173 
 {  {
         struct session  *s = c->session;          struct session  *s = c->session;
   
         if (event_initialized(&c->status_timer))          if (event_initialized(&c->status.timer))
                 evtimer_del(&c->status_timer);                  evtimer_del(&c->status.timer);
         else          else
                 evtimer_set(&c->status_timer, status_timer_callback, c);                  evtimer_set(&c->status.timer, status_timer_callback, c);
   
         if (s != NULL && options_get_number(s->options, "status"))          if (s != NULL && options_get_number(s->options, "status"))
                 status_timer_callback(-1, 0, c);                  status_timer_callback(-1, 0, c);
Line 317 
Line 317 
         int                      larrow, rarrow;          int                      larrow, rarrow;
   
         /* Delete the saved status line, if any. */          /* Delete the saved status line, if any. */
         if (c->old_status != NULL) {          if (c->status.old_status != NULL) {
                 screen_free(c->old_status);                  screen_free(c->status.old_status);
                 free(c->old_status);                  free(c->status.old_status);
                 c->old_status = NULL;                  c->status.old_status = NULL;
         }          }
   
         /* No status line? */          /* No status line? */
Line 337 
Line 337 
         style_apply(&stdgc, s->options, "status-style");          style_apply(&stdgc, s->options, "status-style");
   
         /* Create the target screen. */          /* Create the target screen. */
         memcpy(&old_status, &c->status, sizeof old_status);          memcpy(&old_status, &c->status.status, sizeof old_status);
         screen_init(&c->status, c->tty.sx, lines, 0);          screen_init(&c->status.status, c->tty.sx, lines, 0);
         screen_write_start(&ctx, NULL, &c->status);          screen_write_start(&ctx, NULL, &c->status.status);
         for (offset = 0; offset < lines * c->tty.sx; offset++)          for (offset = 0; offset < lines * c->tty.sx; offset++)
                 screen_write_putc(&ctx, &stdgc, ' ');                  screen_write_putc(&ctx, &stdgc, ' ');
         screen_write_stop(&ctx);          screen_write_stop(&ctx);
Line 462 
Line 462 
   
 draw:  draw:
         /* Begin drawing. */          /* Begin drawing. */
         screen_write_start(&ctx, NULL, &c->status);          screen_write_start(&ctx, NULL, &c->status.status);
   
         /* Draw the left string and arrow. */          /* Draw the left string and arrow. */
         screen_write_cursormove(&ctx, 0, 0);          screen_write_cursormove(&ctx, 0, 0);
Line 517 
Line 517 
         free(left);          free(left);
         free(right);          free(right);
   
         if (grid_compare(c->status.grid, old_status.grid) == 0) {          if (grid_compare(c->status.status.grid, old_status.grid) == 0) {
                 screen_free(&old_status);                  screen_free(&old_status);
                 return (0);                  return (0);
         }          }
Line 590 
Line 590 
   
         status_message_clear(c);          status_message_clear(c);
   
         if (c->old_status == NULL) {          if (c->status.old_status == NULL) {
                 c->old_status = xmalloc(sizeof *c->old_status);                  c->status.old_status = xmalloc(sizeof *c->status.old_status);
                 memcpy(c->old_status, &c->status, sizeof *c->old_status);                  memcpy(c->status.old_status, &c->status.status,
                 screen_init(&c->status, c->tty.sx, 1, 0);                      sizeof *c->status.old_status);
                   screen_init(&c->status.status, c->tty.sx, 1, 0);
         }          }
   
         va_start(ap, fmt);          va_start(ap, fmt);
Line 631 
Line 632 
                 c->tty.flags &= ~(TTY_NOCURSOR|TTY_FREEZE);                  c->tty.flags &= ~(TTY_NOCURSOR|TTY_FREEZE);
         c->flags |= CLIENT_REDRAW; /* screen was frozen and may have changed */          c->flags |= CLIENT_REDRAW; /* screen was frozen and may have changed */
   
         screen_reinit(&c->status);          screen_reinit(&c->status.status);
 }  }
   
 /* Clear status line message after timer expires. */  /* Clear status line message after timer expires. */
Line 656 
Line 657 
   
         if (c->tty.sx == 0 || c->tty.sy == 0)          if (c->tty.sx == 0 || c->tty.sy == 0)
                 return (0);                  return (0);
         memcpy(&old_status, &c->status, sizeof old_status);          memcpy(&old_status, &c->status.status, sizeof old_status);
   
         lines = status_line_size(c->session);          lines = status_line_size(c->session);
         if (lines <= 1) {          if (lines <= 1) {
                 lines = 1;                  lines = 1;
                 screen_init(&c->status, c->tty.sx, 1, 0);                  screen_init(&c->status.status, c->tty.sx, 1, 0);
         } else          } else
                 screen_init(&c->status, c->tty.sx, lines, 0);                  screen_init(&c->status.status, c->tty.sx, lines, 0);
   
         len = screen_write_strlen("%s", c->message_string);          len = screen_write_strlen("%s", c->message_string);
         if (len > c->tty.sx)          if (len > c->tty.sx)
Line 671 
Line 672 
   
         style_apply(&gc, s->options, "message-style");          style_apply(&gc, s->options, "message-style");
   
         screen_write_start(&ctx, NULL, &c->status);          screen_write_start(&ctx, NULL, &c->status.status);
         screen_write_cursormove(&ctx, 0, 0);          screen_write_cursormove(&ctx, 0, 0);
         for (offset = 0; offset < lines * c->tty.sx; offset++)          for (offset = 0; offset < lines * c->tty.sx; offset++)
                 screen_write_putc(&ctx, &gc, ' ');                  screen_write_putc(&ctx, &gc, ' ');
Line 679 
Line 680 
         screen_write_nputs(&ctx, len, &gc, "%s", c->message_string);          screen_write_nputs(&ctx, len, &gc, "%s", c->message_string);
         screen_write_stop(&ctx);          screen_write_stop(&ctx);
   
         if (grid_compare(c->status.grid, old_status.grid) == 0) {          if (grid_compare(c->status.status.grid, old_status.grid) == 0) {
                 screen_free(&old_status);                  screen_free(&old_status);
                 return (0);                  return (0);
         }          }
Line 710 
Line 711 
         status_message_clear(c);          status_message_clear(c);
         status_prompt_clear(c);          status_prompt_clear(c);
   
         if (c->old_status == NULL) {          if (c->status.old_status == NULL) {
                 c->old_status = xmalloc(sizeof *c->old_status);                  c->status.old_status = xmalloc(sizeof *c->status.old_status);
                 memcpy(c->old_status, &c->status, sizeof *c->old_status);                  memcpy(c->status.old_status, &c->status.status,
                 screen_init(&c->status, c->tty.sx, 1, 0);                      sizeof *c->status.old_status);
                   screen_init(&c->status.status, c->tty.sx, 1, 0);
         }          }
   
         c->prompt_string = format_expand_time(ft, msg, t);          c->prompt_string = format_expand_time(ft, msg, t);
Line 763 
Line 765 
         c->tty.flags &= ~(TTY_NOCURSOR|TTY_FREEZE);          c->tty.flags &= ~(TTY_NOCURSOR|TTY_FREEZE);
         c->flags |= CLIENT_REDRAW; /* screen was frozen and may have changed */          c->flags |= CLIENT_REDRAW; /* screen was frozen and may have changed */
   
         screen_reinit(&c->status);          screen_reinit(&c->status.status);
 }  }
   
 /* Update status line prompt with a new prompt string. */  /* Update status line prompt with a new prompt string. */
Line 809 
Line 811 
   
         if (c->tty.sx == 0 || c->tty.sy == 0)          if (c->tty.sx == 0 || c->tty.sy == 0)
                 return (0);                  return (0);
         memcpy(&old_status, &c->status, sizeof old_status);          memcpy(&old_status, &c->status.status, sizeof old_status);
   
         lines = status_line_size(c->session);          lines = status_line_size(c->session);
         if (lines <= 1) {          if (lines <= 1) {
                 lines = 1;                  lines = 1;
                 screen_init(&c->status, c->tty.sx, 1, 0);                  screen_init(&c->status.status, c->tty.sx, 1, 0);
         } else          } else
                 screen_init(&c->status, c->tty.sx, lines, 0);                  screen_init(&c->status.status, c->tty.sx, lines, 0);
   
         len = screen_write_strlen("%s", c->prompt_string);          len = screen_write_strlen("%s", c->prompt_string);
         if (len > c->tty.sx)          if (len > c->tty.sx)
Line 834 
Line 836 
         if (start > c->tty.sx)          if (start > c->tty.sx)
                 start = c->tty.sx;                  start = c->tty.sx;
   
         screen_write_start(&ctx, NULL, &c->status);          screen_write_start(&ctx, NULL, &c->status.status);
         screen_write_cursormove(&ctx, 0, 0);          screen_write_cursormove(&ctx, 0, 0);
         for (offset = 0; offset < lines * c->tty.sx; offset++)          for (offset = 0; offset < lines * c->tty.sx; offset++)
                 screen_write_putc(&ctx, &gc, ' ');                  screen_write_putc(&ctx, &gc, ' ');
Line 880 
Line 882 
                         screen_write_cell(&ctx, &cursorgc);                          screen_write_cell(&ctx, &cursorgc);
                 }                  }
         }          }
         if (c->status.cx < screen_size_x(&c->status) && c->prompt_index >= i)          if (c->status.status.cx < screen_size_x(&c->status.status) &&
               c->prompt_index >= i)
                 screen_write_putc(&ctx, &cursorgc, ' ');                  screen_write_putc(&ctx, &cursorgc, ' ');
   
 finished:  finished:
         screen_write_stop(&ctx);          screen_write_stop(&ctx);
   
         if (grid_compare(c->status.grid, old_status.grid) == 0) {          if (grid_compare(c->status.status.grid, old_status.grid) == 0) {
                 screen_free(&old_status);                  screen_free(&old_status);
                 return (0);                  return (0);
         }          }

Legend:
Removed from v.1.174  
changed lines
  Added in v.1.175