| 234 | |
| 235 | |
| 236 | void Char16AdvanceSet(char16_t *&ioStr,int inChar) |
| 237 | { |
| 238 | if (inChar>=0x10000) |
| 239 | { |
| 240 | int over = (inChar-0x10000); |
| 241 | if (over>=0x100000) |
| 242 | { |
| 243 | *ioStr++ = 0xfffd; |
| 244 | } |
| 245 | else |
| 246 | { |
| 247 | *ioStr++ = (over>>10) + 0xd800; |
| 248 | *ioStr++ = (over&0x3ff) + 0xdc00; |
| 249 | } |
| 250 | } |
| 251 | else if (IsUtf16Surrogate(inChar)) |
| 252 | { |
| 253 | *ioStr++ = 0xfffd; |
| 254 | } |
| 255 | else |
| 256 | *ioStr++ = inChar; |
| 257 | } |
| 258 | |
| 259 | |
| 260 | template<typename T> |
no test coverage detected