90 #ifndef LLVM_SUPPORT_CONVERTUTF_H
91 #define LLVM_SUPPORT_CONVERTUTF_H
107 #define UNI_REPLACEMENT_CHAR (UTF32)0x0000FFFD
108 #define UNI_MAX_BMP (UTF32)0x0000FFFF
109 #define UNI_MAX_UTF16 (UTF32)0x0010FFFF
110 #define UNI_MAX_UTF32 (UTF32)0x7FFFFFFF
111 #define UNI_MAX_LEGAL_UTF32 (UTF32)0x0010FFFF
113 #define UNI_MAX_UTF8_BYTES_PER_CODE_POINT 4
115 #define UNI_UTF16_BYTE_ORDER_MARK_NATIVE 0xFEFF
116 #define UNI_UTF16_BYTE_ORDER_MARK_SWAPPED 0xFFFE
136 const UTF8** sourceStart,
const UTF8* sourceEnd,
140 const UTF8** sourceStart,
const UTF8* sourceEnd,
144 const UTF16** sourceStart,
const UTF16* sourceEnd,
148 const UTF32** sourceStart,
const UTF32* sourceEnd,
152 const UTF16** sourceStart,
const UTF16* sourceEnd,
156 const UTF32** sourceStart,
const UTF32* sourceEnd,
186 char *&ResultPtr,
const UTF8 *&ErrorPtr);
216 const UTF8 *sourceEnd,
219 if (*source == sourceEnd)
222 if ((ptrdiff_t)size > sourceEnd - *source)
ConversionResult ConvertUTF32toUTF8(const UTF32 **sourceStart, const UTF32 *sourceEnd, UTF8 **targetStart, UTF8 *targetEnd, ConversionFlags flags)
ConversionResult ConvertUTF16toUTF32(const UTF16 **sourceStart, const UTF16 *sourceEnd, UTF32 **targetStart, UTF32 *targetEnd, ConversionFlags flags)
Boolean isLegalUTF8Sequence(const UTF8 *source, const UTF8 *sourceEnd)
ConversionResult ConvertUTF16toUTF8(const UTF16 **sourceStart, const UTF16 *sourceEnd, UTF8 **targetStart, UTF8 *targetEnd, ConversionFlags flags)
Boolean isLegalUTF8String(const UTF8 **source, const UTF8 *sourceEnd)
unsigned getNumBytesForUTF8(UTF8 firstByte)
ConversionResult ConvertUTF32toUTF16(const UTF32 **sourceStart, const UTF32 *sourceEnd, UTF16 **targetStart, UTF16 *targetEnd, ConversionFlags flags)
bool ConvertUTF8toWide(unsigned WideCharWidth, llvm::StringRef Source, char *&ResultPtr, const UTF8 *&ErrorPtr)
bool ConvertCodePointToUTF8(unsigned Source, char *&ResultPtr)
ConversionResult ConvertUTF8toUTF32(const UTF8 **sourceStart, const UTF8 *sourceEnd, UTF32 **targetStart, UTF32 *targetEnd, ConversionFlags flags)
bool convertUTF16ToUTF8String(ArrayRef< char > SrcBytes, std::string &Out)
ConversionResult ConvertUTF8toUTF16(const UTF8 **sourceStart, const UTF8 *sourceEnd, UTF16 **targetStart, UTF16 *targetEnd, ConversionFlags flags)
bool hasUTF16ByteOrderMark(ArrayRef< char > S)