register unsigned long c;
register unsigned long c = 0;
ldap_utf8getcc( const char** src ){    register unsigned long c;    register const unsigned char* s = (const unsigned char*)*src;    switch (UTF8len [(*s >> 2) & 0x3F]) {      case 0: /* erroneous: s points to the middle of a character. */	      c = (*s++) & 0x3F; goto more5;      case 1: c = (*s++); break;      case 2: c = (*s++) & 0x1F; goto more1;      case 3: c = (*s++) & 0x0F; goto more2;      case 4: c = (*s++) & 0x07; goto more3;      case 5: c = (*s++) & 0x03; goto more4;      case 6: c = (*s++) & 0x01; goto more5;      more5: if ((*s & 0xC0) != 0x80) break; c = (c << 6) | ((*s++) & 0x3F);      more4: if ((*s & 0xC0) != 0x80) break; c = (c << 6) | ((*s++) & 0x3F);      more3: if ((*s & 0xC0) != 0x80) break; c = (c << 6) | ((*s++) & 0x3F);      more2: if ((*s & 0xC0) != 0x80) break; c = (c << 6) | ((*s++) & 0x3F);      more1: if ((*s & 0xC0) != 0x80) break; c = (c << 6) | ((*s++) & 0x3F);	break;    }    *src = (const char*)s;    return c;}