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

Diff for /src/usr.bin/less/charset.c between version 1.22 and 1.23

version 1.22, 2019/05/07 14:26:38 version 1.23, 2019/05/15 18:18:08
Line 329 
Line 329 
 }  }
   
 /*  /*
  * Store a character into a UTF-8 string.  
  */  
 void  
 put_wchar(char **pp, LWCHAR ch)  
 {  
         if (!utf_mode || ch < 0x80) {  
                 /* 0xxxxxxx */  
                 *(*pp)++ = (char)ch;  
         } else if (ch < 0x800) {  
                 /* 110xxxxx 10xxxxxx */  
                 *(*pp)++ = (char)(0xC0 | ((ch >> 6) & 0x1F));  
                 *(*pp)++ = (char)(0x80 | (ch & 0x3F));  
         } else if (ch < 0x10000) {  
                 /* 1110xxxx 10xxxxxx 10xxxxxx */  
                 *(*pp)++ = (char)(0xE0 | ((ch >> 12) & 0x0F));  
                 *(*pp)++ = (char)(0x80 | ((ch >> 6) & 0x3F));  
                 *(*pp)++ = (char)(0x80 | (ch & 0x3F));  
         } else if (ch < 0x200000) {  
                 /* 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx */  
                 *(*pp)++ = (char)(0xF0 | ((ch >> 18) & 0x07));  
                 *(*pp)++ = (char)(0x80 | ((ch >> 12) & 0x3F));  
                 *(*pp)++ = (char)(0x80 | ((ch >> 6) & 0x3F));  
                 *(*pp)++ = (char)(0x80 | (ch & 0x3F));  
         } else if (ch < 0x4000000) {  
                 /* 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx */  
                 *(*pp)++ = (char)(0xF0 | ((ch >> 24) & 0x03));  
                 *(*pp)++ = (char)(0x80 | ((ch >> 18) & 0x3F));  
                 *(*pp)++ = (char)(0x80 | ((ch >> 12) & 0x3F));  
                 *(*pp)++ = (char)(0x80 | ((ch >> 6) & 0x3F));  
                 *(*pp)++ = (char)(0x80 | (ch & 0x3F));  
         } else {  
                 /* 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx */  
                 *(*pp)++ = (char)(0xF0 | ((ch >> 30) & 0x01));  
                 *(*pp)++ = (char)(0x80 | ((ch >> 24) & 0x3F));  
                 *(*pp)++ = (char)(0x80 | ((ch >> 18) & 0x3F));  
                 *(*pp)++ = (char)(0x80 | ((ch >> 12) & 0x3F));  
                 *(*pp)++ = (char)(0x80 | ((ch >> 6) & 0x3F));  
                 *(*pp)++ = (char)(0x80 | (ch & 0x3F));  
         }  
 }  
   
 /*  
  * Step forward or backward one character in a string.   * Step forward or backward one character in a string.
  */   */
 LWCHAR  LWCHAR

Legend:
Removed from v.1.22  
changed lines
  Added in v.1.23