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

Diff for /src/usr.bin/tmux/screen-redraw.c between version 1.3 and 1.4

version 1.3, 2009/07/14 07:23:36 version 1.4, 2009/07/14 19:03:16
Line 63 
Line 63 
         return (0);          return (0);
 }  }
   
 /* Redraw entire screen.. */  /* Redraw entire screen. */
 void  void
 screen_redraw_screen(struct client *c)  screen_redraw_screen(struct client *c, int status_only)
 {  {
         struct window           *w = c->session->curw->window;          struct window           *w = c->session->curw->window;
         struct tty              *tty = &c->tty;          struct tty              *tty = &c->tty;
Line 75 
Line 75 
         u_char                   choriz, cvert, cbackg;          u_char                   choriz, cvert, cbackg;
   
         /* Get status line, er, status. */          /* Get status line, er, status. */
         status = options_get_number(&c->session->options, "status");          if (c->message_string != NULL || c->prompt_string != NULL)
                   status = 1;
           else
                   status = options_get_number(&c->session->options, "status");
   
           /* If only drawing status and it is present, don't need the rest. */
           if (status_only && status) {
                   tty_draw_line(tty, &c->status, 0, 0, tty->sy - 1);
                   return;
           }
   
         /* Work out ACS characters. */          /* Work out ACS characters. */
         if (tty_term_has(tty->term, TTYC_ACSC)) {          if (tty_term_has(tty->term, TTYC_ACSC)) {
                 has_acs = 1;                  has_acs = 1;
Line 95 
Line 104 
         if (has_acs)          if (has_acs)
                 tty_putcode(tty, TTYC_SMACS);                  tty_putcode(tty, TTYC_SMACS);
         for (j = 0; j < tty->sy - status; j++) {          for (j = 0; j < tty->sy - status; j++) {
                   if (status_only && j != tty->sy - 1)
                           continue;
                 for (i = 0; i < tty->sx; i++) {                  for (i = 0; i < tty->sx; i++) {
                         if (!screen_redraw_check_cell(c, i, j)) {                          if (!screen_redraw_check_cell(c, i, j)) {
                                 tty_cursor(tty, i, j, 0, 0);                                  tty_cursor(tty, i, j, 0, 0);
Line 120 
Line 131 
                         tty_putcode(tty, TTYC_SMACS);                          tty_putcode(tty, TTYC_SMACS);
                 if (wp->xoff > 0) {                  if (wp->xoff > 0) {
                         for (i = wp->yoff; i < wp->yoff + sy; i++) {                          for (i = wp->yoff; i < wp->yoff + sy; i++) {
                                   if (status_only && i != tty->sy - 1)
                                           continue;
                                 tty_cursor(tty, wp->xoff - 1, i, 0, 0);                                  tty_cursor(tty, wp->xoff - 1, i, 0, 0);
                                 tty_putc(tty, cvert);                                  tty_putc(tty, cvert);
                         }                          }
                 }                  }
                 if (wp->xoff + sx < tty->sx) {                  if (wp->xoff + sx < tty->sx) {
                         for (i = wp->yoff; i < wp->yoff + sy; i++) {                          for (i = wp->yoff; i < wp->yoff + sy; i++) {
                                   if (status_only && i != tty->sy - 1)
                                           continue;
                                 tty_cursor(tty, wp->xoff + sx, i, 0, 0);                                  tty_cursor(tty, wp->xoff + sx, i, 0, 0);
                                 tty_putc(&c->tty, cvert);                                  tty_putc(&c->tty, cvert);
                         }                          }
Line 133 
Line 148 
   
                 /* Draw top and bottom borders. */                  /* Draw top and bottom borders. */
                 if (wp->yoff > 0) {                  if (wp->yoff > 0) {
                         tty_cursor(tty, wp->xoff, wp->yoff - 1, 0, 0);                          if (!status_only || wp->yoff - 1 == tty->sy - 1) {
                         for (i = 0; i < sx; i++)                                  tty_cursor(tty, wp->xoff, wp->yoff - 1, 0, 0);
                                 tty_putc(tty, choriz);                                  for (i = 0; i < sx; i++)
                                           tty_putc(tty, choriz);
                           }
                 }                  }
                 if (wp->yoff + sy < tty->sy - status) {                  if (wp->yoff + sy < tty->sy - status) {
                         tty_cursor(tty, wp->xoff, wp->yoff + sy, 0, 0);                          if (!status_only || wp->yoff + sy == tty->sy - 1) {
                         for (i = 0; i < sx; i++)                                  tty_cursor(tty, wp->xoff, wp->yoff + sy, 0, 0);
                                 tty_putc(tty, choriz);                                  for (i = 0; i < sx; i++)
                                           tty_putc(tty, choriz);
                           }
                 }                  }
                 if (has_acs)                  if (has_acs)
                         tty_putcode(tty, TTYC_RMACS);                          tty_putcode(tty, TTYC_RMACS);
   
                 /* Draw the pane. */                  /* Draw the pane. */
                 screen_redraw_pane(c, wp);                  for (i = 0; i < wp->sy; i++) {
                           if (status_only && i != tty->sy - 1)
                                   continue;
                           tty_draw_line(tty, wp->screen, i, wp->xoff, wp->yoff);
                   }
         }          }
   
         /* Draw the status line. */          /* Draw the status line. */
         screen_redraw_status(c);          if (status)
                   tty_draw_line(tty, &c->status, 0, 0, tty->sy - 1);
 }  }
   
 /* Draw a single pane. */  /* Draw a single pane. */
Line 161 
Line 185 
   
         for (i = 0; i < wp->sy; i++)          for (i = 0; i < wp->sy; i++)
                 tty_draw_line(&c->tty, wp->screen, i, wp->xoff, wp->yoff);                  tty_draw_line(&c->tty, wp->screen, i, wp->xoff, wp->yoff);
 }  
   
   
 /* Draw the status line. */  
 void  
 screen_redraw_status(struct client *c)  
 {  
         tty_draw_line(&c->tty, &c->status, 0, 0, c->tty.sy - 1);  
 }  }

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4