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

Diff for /src/usr.bin/tmux/input.c between version 1.17 and 1.18

version 1.17, 2009/10/13 15:23:13 version 1.18, 2009/10/20 19:18:28
Line 572 
Line 572 
 void  void
 input_state_utf8(u_char ch, struct input_ctx *ictx)  input_state_utf8(u_char ch, struct input_ctx *ictx)
 {  {
         log_debug2("-- un %zu: %hhu (%c)", ictx->off, ch, ch);          log_debug2("-- utf8 next: %zu: %hhu (%c)", ictx->off, ch, ch);
   
         ictx->utf8_buf[ictx->utf8_off++] = ch;          if (utf8_append(&ictx->utf8data, ch))
         if (--ictx->utf8_len != 0)                  return;         /* more to come */
                 return;  
         input_state(ictx, input_state_first);          input_state(ictx, input_state_first);
   
         ictx->cell.flags |= GRID_FLAG_UTF8;          ictx->cell.flags |= GRID_FLAG_UTF8;
         screen_write_cell(&ictx->ctx, &ictx->cell, ictx->utf8_buf);          screen_write_cell(&ictx->ctx, &ictx->cell, &ictx->utf8data);
         ictx->cell.flags &= ~GRID_FLAG_UTF8;          ictx->cell.flags &= ~GRID_FLAG_UTF8;
 }  }
   
Line 590 
Line 589 
         struct window_pane      *wp = ictx->wp;          struct window_pane      *wp = ictx->wp;
   
         if (ch > 0x7f && options_get_number(&wp->window->options, "utf8")) {          if (ch > 0x7f && options_get_number(&wp->window->options, "utf8")) {
                 /*                  if (utf8_open(&ictx->utf8data, ch)) {
                  * UTF-8 sequence.                          log_debug2("-- utf8 size %u: %zu: %hhu (%c)",
                  *                              ictx->utf8data.size, ictx->off, ch, ch);
                  * 11000010-11011111 C2-DF start of 2-byte sequence  
                  * 11100000-11101111 E0-EF start of 3-byte sequence  
                  * 11110000-11110100 F0-F4 start of 4-byte sequence  
                  */  
                 memset(ictx->utf8_buf, 0xff, sizeof ictx->utf8_buf);  
                 ictx->utf8_buf[0] = ch;  
                 ictx->utf8_off = 1;  
   
                 if (ch >= 0xc2 && ch <= 0xdf) {  
                         log_debug2("-- u2 %zu: %hhu (%c)", ictx->off, ch, ch);  
                         input_state(ictx, input_state_utf8);                          input_state(ictx, input_state_utf8);
                         ictx->utf8_len = 1;  
                         return;                          return;
                 }                  }
                 if (ch >= 0xe0 && ch <= 0xef) {  
                         log_debug2("-- u3 %zu: %hhu (%c)", ictx->off, ch, ch);  
                         input_state(ictx, input_state_utf8);  
                         ictx->utf8_len = 2;  
                         return;  
                 }  
                 if (ch >= 0xf0 && ch <= 0xf4) {  
                         log_debug2("-- u4 %zu: %hhu (%c)", ictx->off, ch, ch);  
                         input_state(ictx, input_state_utf8);  
                         ictx->utf8_len = 3;  
                         return;  
                 }  
         }          }
         log_debug2("-- ch %zu: %hhu (%c)", ictx->off, ch, ch);          log_debug2("-- ch %zu: %hhu (%c)", ictx->off, ch, ch);
   
         ictx->cell.data = ch;          ictx->cell.data = ch;
         screen_write_cell(&ictx->ctx, &ictx->cell, ictx->utf8_buf);          screen_write_cell(&ictx->ctx, &ictx->cell, NULL);
 }  }
   
 void  void

Legend:
Removed from v.1.17  
changed lines
  Added in v.1.18