home bbs files messages ]

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