[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.82 and 1.83

version 1.82, 2020/12/07 09:46:58 version 1.83, 2021/02/05 12:29:18
Line 32 
Line 32 
                     struct screen_redraw_ctx *);                      struct screen_redraw_ctx *);
   
 #define CELL_INSIDE 0  #define CELL_INSIDE 0
 #define CELL_LEFTRIGHT 1  #define CELL_TOPBOTTOM 1
 #define CELL_TOPBOTTOM 2  #define CELL_LEFTRIGHT 2
 #define CELL_TOPLEFT 3  #define CELL_TOPLEFT 3
 #define CELL_TOPRIGHT 4  #define CELL_TOPRIGHT 4
 #define CELL_BOTTOMLEFT 5  #define CELL_BOTTOMLEFT 5
Line 47 
Line 47 
   
 #define CELL_BORDERS " xqlkmjwvtun~"  #define CELL_BORDERS " xqlkmjwvtun~"
   
   #define START_ISOLATE "\342\201\246"
   #define END_ISOLATE   "\342\201\251"
   
 static const struct utf8_data screen_redraw_double_borders[] = {  static const struct utf8_data screen_redraw_double_borders[] = {
         { "", 0, 0, 0 },          { "", 0, 0, 0 },
         { "\342\225\221", 0, 3, 1 }, /* U+2551 */          { "\342\225\221", 0, 3, 1 }, /* U+2551 */
Line 299 
Line 302 
         case 13:        /* 1101, left right bottom */          case 13:        /* 1101, left right bottom */
                 return (CELL_TOPJOIN);                  return (CELL_TOPJOIN);
         case 12:        /* 1100, left right */          case 12:        /* 1100, left right */
                 return (CELL_TOPBOTTOM);                  return (CELL_LEFTRIGHT);
         case 11:        /* 1011, left top bottom */          case 11:        /* 1011, left top bottom */
                 return (CELL_RIGHTJOIN);                  return (CELL_RIGHTJOIN);
         case 10:        /* 1010, left top */          case 10:        /* 1010, left top */
Line 313 
Line 316 
         case 5:         /* 0101, right bottom */          case 5:         /* 0101, right bottom */
                 return (CELL_TOPLEFT);                  return (CELL_TOPLEFT);
         case 3:         /* 0011, top bottom */          case 3:         /* 0011, top bottom */
                 return (CELL_LEFTRIGHT);                  return (CELL_TOPBOTTOM);
         }          }
         return (CELL_OUTSIDE);          return (CELL_OUTSIDE);
 }  }
Line 680 
Line 683 
         struct tty              *tty = &c->tty;          struct tty              *tty = &c->tty;
         struct window_pane      *wp;          struct window_pane      *wp;
         u_int                    cell_type, x = ctx->ox + i, y = ctx->oy + j;          u_int                    cell_type, x = ctx->ox + i, y = ctx->oy + j;
         int                      pane_status = ctx->pane_status;          int                      pane_status = ctx->pane_status, isolates;
         struct grid_cell         gc;          struct grid_cell         gc;
         const struct grid_cell  *tmp;          const struct grid_cell  *tmp;
   
Line 705 
Line 708 
         }          }
         screen_redraw_border_set(wp, ctx->pane_lines, cell_type, &gc);          screen_redraw_border_set(wp, ctx->pane_lines, cell_type, &gc);
   
           if (cell_type == CELL_TOPBOTTOM &&
               (c->flags & CLIENT_UTF8) &&
               tty_term_has(tty->term, TTYC_BIDI))
                   isolates = 1;
           else
                   isolates = 0;
   
         if (ctx->statustop)          if (ctx->statustop)
                 tty_cursor(tty, i, ctx->statuslines + j);                  tty_cursor(tty, i, ctx->statuslines + j);
         else          else
                 tty_cursor(tty, i, j);                  tty_cursor(tty, i, j);
           if (isolates)
                   tty_puts(tty, END_ISOLATE);
         tty_cell(tty, &gc, &grid_default_cell, NULL);          tty_cell(tty, &gc, &grid_default_cell, NULL);
           if (isolates)
                   tty_puts(tty, START_ISOLATE);
 }  }
   
 /* Draw the borders. */  /* Draw the borders. */

Legend:
Removed from v.1.82  
changed lines
  Added in v.1.83