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

Diff for /src/usr.bin/tmux/screen-write.c between version 1.75 and 1.76

version 1.75, 2015/11/12 11:09:11 version 1.76, 2015/11/12 22:04:37
Line 112 
Line 112 
 {  {
         va_list                 ap;          va_list                 ap;
         char                   *msg;          char                   *msg;
         struct utf8_data        utf8data;          struct utf8_data        ud;
         u_char                 *ptr;          u_char                 *ptr;
         size_t                  left, size = 0;          size_t                  left, size = 0;
   
Line 122 
Line 122 
   
         ptr = msg;          ptr = msg;
         while (*ptr != '\0') {          while (*ptr != '\0') {
                 if (*ptr > 0x7f && utf8_open(&utf8data, *ptr)) {                  if (*ptr > 0x7f && utf8_open(&ud, *ptr)) {
                         ptr++;                          ptr++;
   
                         left = strlen(ptr);                          left = strlen(ptr);
                         if (left < utf8data.size - 1)                          if (left < ud.size - 1)
                                 break;                                  break;
                         while (utf8_append(&utf8data, *ptr))                          while (utf8_append(&ud, *ptr))
                                 ptr++;                                  ptr++;
                         ptr++;                          ptr++;
   
                         size += utf8data.width;                          size += ud.width;
                 } else {                  } else {
                         if (*ptr > 0x1f && *ptr < 0x7f)                          if (*ptr > 0x1f && *ptr < 0x7f)
                                 size++;                                  size++;
Line 173 
Line 173 
     struct grid_cell *gc, const char *fmt, va_list ap)      struct grid_cell *gc, const char *fmt, va_list ap)
 {  {
         char                   *msg;          char                   *msg;
         struct utf8_data        utf8data;          struct utf8_data        ud;
         u_char                 *ptr;          u_char                 *ptr;
         size_t                  left, size = 0;          size_t                  left, size = 0;
   
Line 181 
Line 181 
   
         ptr = msg;          ptr = msg;
         while (*ptr != '\0') {          while (*ptr != '\0') {
                 if (*ptr > 0x7f && utf8_open(&utf8data, *ptr)) {                  if (*ptr > 0x7f && utf8_open(&ud, *ptr)) {
                         ptr++;                          ptr++;
   
                         left = strlen(ptr);                          left = strlen(ptr);
                         if (left < utf8data.size - 1)                          if (left < ud.size - 1)
                                 break;                                  break;
                         while (utf8_append(&utf8data, *ptr))                          while (utf8_append(&ud, *ptr))
                                 ptr++;                                  ptr++;
                         ptr++;                          ptr++;
   
                         if (maxlen > 0 &&                          if (maxlen > 0 &&
                             size + utf8data.width > (size_t) maxlen) {                              size + ud.width > (size_t) maxlen) {
                                 while (size < (size_t) maxlen) {                                  while (size < (size_t) maxlen) {
                                         screen_write_putc(ctx, gc, ' ');                                          screen_write_putc(ctx, gc, ' ');
                                         size++;                                          size++;
                                 }                                  }
                                 break;                                  break;
                         }                          }
                         size += utf8data.width;                          size += ud.width;
   
                         grid_cell_set(gc, &utf8data);                          grid_cell_set(gc, &ud);
                         screen_write_cell(ctx, gc);                          screen_write_cell(ctx, gc);
                 } else {                  } else {
                         if (maxlen > 0 && size + 1 > (size_t) maxlen)                          if (maxlen > 0 && size + 1 > (size_t) maxlen)
Line 226 
Line 226 
     struct grid_cell *gc, const char *fmt, ...)      struct grid_cell *gc, const char *fmt, ...)
 {  {
         struct grid_cell         lgc;          struct grid_cell         lgc;
         struct utf8_data         utf8data;          struct utf8_data         ud;
         va_list                  ap;          va_list                  ap;
         char                    *msg;          char                    *msg;
         u_char                  *ptr, *last;          u_char                  *ptr, *last;
Line 254 
Line 254 
                         continue;                          continue;
                 }                  }
   
                 if (*ptr > 0x7f && utf8_open(&utf8data, *ptr)) {                  if (*ptr > 0x7f && utf8_open(&ud, *ptr)) {
                         ptr++;                          ptr++;
   
                         left = strlen(ptr);                          left = strlen(ptr);
                         if (left < utf8data.size - 1)                          if (left < ud.size - 1)
                                 break;                                  break;
                         while (utf8_append(&utf8data, *ptr))                          while (utf8_append(&ud, *ptr))
                                 ptr++;                                  ptr++;
                         ptr++;                          ptr++;
   
                         if (maxlen > 0 &&                          if (maxlen > 0 &&
                             size + utf8data.width > (size_t) maxlen) {                              size + ud.width > (size_t) maxlen) {
                                 while (size < (size_t) maxlen) {                                  while (size < (size_t) maxlen) {
                                         screen_write_putc(ctx, gc, ' ');                                          screen_write_putc(ctx, gc, ' ');
                                         size++;                                          size++;
                                 }                                  }
                                 break;                                  break;
                         }                          }
                         size += utf8data.width;                          size += ud.width;
   
                         grid_cell_set(&lgc, &utf8data);                          grid_cell_set(&lgc, &ud);
                         screen_write_cell(ctx, &lgc);                          screen_write_cell(ctx, &lgc);
                 } else {                  } else {
                         if (maxlen > 0 && size + 1 > (size_t) maxlen)                          if (maxlen > 0 && size + 1 > (size_t) maxlen)

Legend:
Removed from v.1.75  
changed lines
  Added in v.1.76