rem: return ((wchar)(c & 0x0F) << 12) | (c1 << 6) | c2; c3 = (wchar)soap_get1(soap) & 0x3F;
add: return ((soap_wchar)(c & 0x0F) << 12) | (c1 << 6) | c2; c3 = (soap_wchar)soap_get1(soap) & 0x3F;
context: soap_getutf8(struct soap *soap){ register wchar c, c1, c2, c3, c4;  c = soap_get(soap);  if (c < 0x80)    return c;  c1 = soap_get(soap);  if (c1 < 0x80)  { soap_unget(soap, c1);    return c;  }  c1 &= 0x3F;  if (c < 0xE0)    return ((wchar)(c & 0x1F) << 6) | c1;  c2 = (wchar)soap_get1(soap) & 0x3F;  if (c < 0xF0)    return ((wchar)(c & 0x0F) << 12) | (c1 << 6) | c2;  c3 = (wchar)soap_get1(soap) & 0x3F;  if (c < 0xF8)    return ((wchar)(c & 0x07) << 18) | (c1 << 12) | (c2 << 6) | c3;  c4 = (wchar)soap_get1(soap) & 0x3F;  if (c < 0xFC)    return ((wchar)(c & 0x03) << 24) | (c1 << 18) | (c2 << 12) | (c3 << 6) | c4;  return ((wchar)(c & 0x01) << 30) | (c1 << 24) | (c2 << 18) | (c3 << 12) | (c4 << 6) | (wchar)(soap_get1(soap) & 0x3F);}