]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
optimised the 7 bit case for utf8 conversion
authorAndrew Tridgell <tridge@samba.org>
Thu, 5 Jul 2001 00:57:42 +0000 (00:57 +0000)
committerAndrew Tridgell <tridge@samba.org>
Thu, 5 Jul 2001 00:57:42 +0000 (00:57 +0000)
source/lib/iconv.c

index a5a7a847b5f63032b5229851b133d83382464d72..07d42eed8f64a67c475fb873ae27131e06342f27 100644 (file)
@@ -368,7 +368,10 @@ static size_t utf8_pull(char **inbuf, size_t *inbytesleft,
                unsigned char *uc = (unsigned char *)*outbuf;
                int len = 1;
 
-               if ((c[0] & 0xf0) == 0xe0) {
+               if ((c[0] & 0x80) == 0) {
+                       uc[0] = c[0];
+                       uc[1] = 0;
+               } else if ((c[0] & 0xf0) == 0xe0) {
                        if (*inbytesleft < 3) {
                                DEBUG(0,("short utf8 char\n"));
                                goto badseq;
@@ -384,9 +387,6 @@ static size_t utf8_pull(char **inbuf, size_t *inbytesleft,
                        uc[1] = (c[0]>>2) & 0x7;
                        uc[0] = (c[0]<<6) | (c[1]&0x3f);
                        len = 2;
-               } else {
-                       uc[0] = c[0];
-                       uc[1] = 0;
                }
 
                (*inbuf)  += len;