Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.lang.c    |    Meh, in C you gotta define EVERYTHING    |    243,242 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 242,019 of 243,242    |
|    Michael Sanders to bart    |
|    Re: Unicode...    |
|    21 Nov 25 17:39:45    |
   
   From: porkchop@invalid.foo   
      
   On Fri, 21 Nov 2025 17:03:10 +0000, bart wrote:   
      
   > size_t utf8width(char* s) {   
   > size_t length;   
   > int c, n;   
   >   
   > length=0;   
   > while (c=*s) {   
   > if ((c & 0x80) == 0) n = 1;   
   > else if ((c & 0xE0) == 0xC0) n = 2;   
   > else if ((c & 0xF0) == 0xE0) n = 3;   
   > else n = 4;   
   > s += n;   
   > ++length;   
   > }   
   > return length;   
   > }   
      
   A variant based on your take:   
      
   size_t utf8width(char *s) {   
    size_t len = 0;   
    unsigned char c;   
      
    while ((c = (unsigned char)*s))   
    s += (c < 0x80) ? 1 :   
    (c < 0xE0) ? 2 :   
    (c < 0xF0) ? 3 : 4,   
    ++len;   
      
    return len;   
   }   
      
   --   
   :wq   
   Mike Sanders   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca