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

Diff for /src/usr.bin/tmux/tty.c between version 1.127 and 1.128

version 1.127, 2012/03/17 21:27:51 version 1.128, 2012/03/17 22:56:04
Line 177 
Line 177 
 void  void
 tty_init_termios(int fd, struct termios *orig_tio, struct bufferevent *bufev)  tty_init_termios(int fd, struct termios *orig_tio, struct bufferevent *bufev)
 {  {
         struct termios   tio;          struct termios  tio;
   
         if (fd == -1 || tcgetattr(fd, orig_tio) != 0)          if (fd == -1 || tcgetattr(fd, orig_tio) != 0)
                 return;                  return;
Line 235 
Line 235 
 }  }
   
 void  void
   tty_set_version(struct tty *tty, u_int version)
   {
           if (tty->xterm_version != 0)
                   return;
           tty->xterm_version = version;
   
           if (tty->xterm_version > 270) {
                   tty_puts(tty, "\033[65;1\"p");
   
                   tty_putcode(tty, TTYC_RMACS);
                   memcpy(&tty->cell, &grid_default_cell, sizeof tty->cell);
   
                   tty->cx = UINT_MAX;
                   tty->cy = UINT_MAX;
   
                   tty->rupper = UINT_MAX;
                   tty->rlower = UINT_MAX;
           }
   }
   
   void
 tty_stop_tty(struct tty *tty)  tty_stop_tty(struct tty *tty)
 {  {
         struct winsize  ws;          struct winsize  ws;
Line 276 
Line 297 
                 tty_raw(tty, "\033[?1000l");                  tty_raw(tty, "\033[?1000l");
   
         tty_raw(tty, tty_term_string(tty->term, TTYC_RMCUP));          tty_raw(tty, tty_term_string(tty->term, TTYC_RMCUP));
   
           if (tty->xterm_version > 270)
                   tty_raw(tty, "\033[61;1\"p");
 }  }
   
 void  void
Line 844 
Line 868 
 {  {
         struct window_pane      *wp = ctx->wp;          struct window_pane      *wp = ctx->wp;
         struct screen           *s = wp->screen;          struct screen           *s = wp->screen;
           char                     tmp[64];
   
         if (ctx->ocy != ctx->orlower)          if (ctx->ocy != ctx->orlower)
                 return;                  return;
   
         if (ctx->xoff != 0 || screen_size_x(s) < tty->sx ||          if (ctx->xoff != 0 || screen_size_x(s) < tty->sx ||
             !tty_term_has(tty->term, TTYC_CSR)) {              !tty_term_has(tty->term, TTYC_CSR)) {
                 tty_redraw_region(tty, ctx);                  if (tty_large_region(tty, ctx))
                           wp->flags |= PANE_REDRAW;
                   else if (tty->xterm_version > 270) {
                           snprintf(tmp, sizeof tmp,
                               "\033[%u;%u;%u;%u;1;%u;%u;1$v",
                               ctx->yoff + ctx->orupper + 2,
                               ctx->xoff + 1,
                               ctx->yoff + ctx->orlower + 1,
                               ctx->xoff + screen_size_x(s),
                               ctx->yoff + ctx->orupper + 1,
                               ctx->xoff + 1);
                           tty_puts(tty, tmp);
                           tty_cmd_clearline(tty, ctx);
                   } else
                           tty_redraw_region(tty, ctx);
                 return;                  return;
         }          }
   

Legend:
Removed from v.1.127  
changed lines
  Added in v.1.128