Index: xfa/src/fgas/include/fx_cpg.h |
diff --git a/xfa/src/fgas/include/fx_cpg.h b/xfa/src/fgas/include/fx_cpg.h |
index 3155e463989191516313a851e6138ebcefdefd9c..357ffd820a860fbb26fd1bab91d34d955f9ca20f 100644 |
--- a/xfa/src/fgas/include/fx_cpg.h |
+++ b/xfa/src/fgas/include/fx_cpg.h |
@@ -1,248 +1,248 @@ |
-// Copyright 2014 PDFium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
- |
-#ifndef _FX_CODEPAGE |
-#define _FX_CODEPAGE |
-class IFX_CodePage; |
-#define FX_CODEPAGE_DefANSI 0 |
-#define FX_CODEPAGE_DefOEM 1 |
-#define FX_CODEPAGE_DefMAC 2 |
-#define FX_CODEPAGE_Thread 3 |
-#define FX_CODEPAGE_Symbol 42 |
-#define FX_CODEPAGE_MSDOS_US 437 |
-#define FX_CODEPAGE_Arabic_ASMO708 708 |
-#define FX_CODEPAGE_Arabic_ASMO449Plus 709 |
-#define FX_CODEPAGE_Arabic_Transparent 710 |
-#define FX_CODEPAGE_Arabic_NafithaEnhanced 711 |
-#define FX_CODEPAGE_Arabic_TransparentASMO 720 |
-#define FX_CODEPAGE_MSDOS_Greek1 737 |
-#define FX_CODEPAGE_MSDOS_Baltic 775 |
-#define FX_CODEPAGE_MSWin31_WesternEuropean 819 |
-#define FX_CODEPAGE_MSDOS_WesternEuropean 850 |
-#define FX_CODEPAGE_MSDOS_EasternEuropean 852 |
-#define FX_CODEPAGE_MSDOS_Latin3 853 |
-#define FX_CODEPAGE_MSDOS_Cyrillic 855 |
-#define FX_CODEPAGE_MSDOS_Turkish 857 |
-#define FX_CODEPAGE_MSDOS_Latin1Euro 858 |
-#define FX_CODEPAGE_MSDOS_Portuguese 860 |
-#define FX_CODEPAGE_MSDOS_Icelandic 861 |
-#define FX_CODEPAGE_MSDOS_Hebrew 862 |
-#define FX_CODEPAGE_MSDOS_FrenchCanadian 863 |
-#define FX_CODEPAGE_MSDOS_Arabic 864 |
-#define FX_CODEPAGE_MSDOS_Norwegian 865 |
-#define FX_CODEPAGE_MSDOS_Russian 866 |
-#define FX_CODEPAGE_MSDOS_Greek2 869 |
-#define FX_CODEPAGE_MSDOS_Thai 874 |
-#define FX_CODEPAGE_MSDOS_KamenickyCS 895 |
-#define FX_CODEPAGE_ShiftJIS 932 |
-#define FX_CODEPAGE_ChineseSimplified 936 |
-#define FX_CODEPAGE_Korean 949 |
-#define FX_CODEPAGE_ChineseTraditional 950 |
-#define FX_CODEPAGE_UTF16LE 1200 |
-#define FX_CODEPAGE_UTF16BE 1201 |
-#define FX_CODEPAGE_MSWin_EasternEuropean 1250 |
-#define FX_CODEPAGE_MSWin_Cyrillic 1251 |
-#define FX_CODEPAGE_MSWin_WesternEuropean 1252 |
-#define FX_CODEPAGE_MSWin_Greek 1253 |
-#define FX_CODEPAGE_MSWin_Turkish 1254 |
-#define FX_CODEPAGE_MSWin_Hebrew 1255 |
-#define FX_CODEPAGE_MSWin_Arabic 1256 |
-#define FX_CODEPAGE_MSWin_Baltic 1257 |
-#define FX_CODEPAGE_MSWin_Vietnamese 1258 |
-#define FX_CODEPAGE_Johab 1361 |
-#define FX_CODEPAGE_MAC_Roman 10000 |
-#define FX_CODEPAGE_MAC_ShiftJIS 10001 |
-#define FX_CODEPAGE_MAC_ChineseTraditional 10002 |
-#define FX_CODEPAGE_MAC_Korean 10003 |
-#define FX_CODEPAGE_MAC_Arabic 10004 |
-#define FX_CODEPAGE_MAC_Hebrew 10005 |
-#define FX_CODEPAGE_MAC_Greek 10006 |
-#define FX_CODEPAGE_MAC_Cyrillic 10007 |
-#define FX_CODEPAGE_MAC_ChineseSimplified 10008 |
-#define FX_CODEPAGE_MAC_Thai 10021 |
-#define FX_CODEPAGE_MAC_EasternEuropean 10029 |
-#define FX_CODEPAGE_MAC_Turkish 10081 |
-#define FX_CODEPAGE_UTF32LE 12000 |
-#define FX_CODEPAGE_UTF32BE 12001 |
-#define FX_CODEPAGE_ISO8859_1 28591 |
-#define FX_CODEPAGE_ISO8859_2 28592 |
-#define FX_CODEPAGE_ISO8859_3 28593 |
-#define FX_CODEPAGE_ISO8859_4 28594 |
-#define FX_CODEPAGE_ISO8859_5 28595 |
-#define FX_CODEPAGE_ISO8859_6 28596 |
-#define FX_CODEPAGE_ISO8859_7 28597 |
-#define FX_CODEPAGE_ISO8859_8 28598 |
-#define FX_CODEPAGE_ISO8859_9 28599 |
-#define FX_CODEPAGE_ISO8859_10 28600 |
-#define FX_CODEPAGE_ISO8859_11 28601 |
-#define FX_CODEPAGE_ISO8859_12 28602 |
-#define FX_CODEPAGE_ISO8859_13 28603 |
-#define FX_CODEPAGE_ISO8859_14 28604 |
-#define FX_CODEPAGE_ISO8859_15 28605 |
-#define FX_CODEPAGE_ISO8859_16 28606 |
-#define FX_CODEPAGE_ISCII_Devanagari 57002 |
-#define FX_CODEPAGE_ISCII_Bengali 57003 |
-#define FX_CODEPAGE_ISCII_Tamil 57004 |
-#define FX_CODEPAGE_ISCII_Telugu 57005 |
-#define FX_CODEPAGE_ISCII_Assamese 57006 |
-#define FX_CODEPAGE_ISCII_Oriya 57007 |
-#define FX_CODEPAGE_ISCII_Kannada 57008 |
-#define FX_CODEPAGE_ISCII_Malayalam 57009 |
-#define FX_CODEPAGE_ISCII_Gujarati 57010 |
-#define FX_CODEPAGE_ISCII_Punjabi 57011 |
-#define FX_CODEPAGE_UTF7 65000 |
-#define FX_CODEPAGE_UTF8 65001 |
-#define FX_CHARSET_ANSI 0 |
-#define FX_CHARSET_Default 1 |
-#define FX_CHARSET_Symbol 2 |
-#define FX_CHARSET_MAC_Roman 77 |
-#define FX_CHARSET_MAC_ShiftJIS 78 |
-#define FX_CHARSET_MAC_Korean 79 |
-#define FX_CHARSET_MAC_ChineseSimplified 80 |
-#define FX_CHARSET_MAC_ChineseTriditional 81 |
-#define FX_CHARSET_MAC_Johab 82 |
-#define FX_CHARSET_MAC_Hebrew 83 |
-#define FX_CHARSET_MAC_Arabic 84 |
-#define FX_CHARSET_MAC_Greek 85 |
-#define FX_CHARSET_MAC_Turkish 86 |
-#define FX_CHARSET_MAC_Thai 87 |
-#define FX_CHARSET_MAC_EasternEuropean 88 |
-#define FX_CHARSET_MAC_Cyrillic 89 |
-#define FX_CHARSET_ShiftJIS 128 |
-#define FX_CHARSET_Korean 129 |
-#define FX_CHARSET_Johab 130 |
-#define FX_CHARSET_ChineseSimplified 134 |
-#define FX_CHARSET_ChineseTriditional 136 |
-#define FX_CHARSET_MSWin_Greek 161 |
-#define FX_CHARSET_MSWin_Turkish 162 |
-#define FX_CHARSET_MSWin_Vietnamese 163 |
-#define FX_CHARSET_MSWin_Hebrew 177 |
-#define FX_CHARSET_MSWin_Arabic 178 |
-#define FX_CHARSET_ArabicTraditional 179 |
-#define FX_CHARSET_ArabicUser 180 |
-#define FX_CHARSET_HebrewUser 181 |
-#define FX_CHARSET_MSWin_Baltic 186 |
-#define FX_CHARSET_MSWin_Cyrillic 204 |
-#define FX_CHARSET_Thai 222 |
-#define FX_CHARSET_MSWin_EasterEuropean 238 |
-#define FX_CHARSET_US 254 |
-#define FX_CHARSET_OEM 255 |
-FX_WORD FX_GetCodePageFromCharset(uint8_t charset); |
-FX_WORD FX_GetCharsetFromCodePage(FX_WORD codepage); |
-FX_WORD FX_GetCodePageFromStringA(const FX_CHAR* pStr, int32_t iLength); |
-FX_WORD FX_GetCodePageFormStringW(const FX_WCHAR* pStr, int32_t iLength); |
-FX_WORD FX_GetDefCodePageByLanguage(FX_WORD wLanguage); |
-void FX_SwapByteOrder(FX_WCHAR* pStr, int32_t iLength); |
-void FX_SwapByteOrderCopy(const FX_WCHAR* pSrc, |
- FX_WCHAR* pDst, |
- int32_t iLength); |
-void FX_UTF16ToWChar(void* pBuffer, int32_t iLength); |
-void FX_UTF16ToWCharCopy(const FX_WORD* pUTF16, |
- FX_WCHAR* pWChar, |
- int32_t iLength); |
-void FX_WCharToUTF16(void* pBuffer, int32_t iLength); |
-void FX_WCharToUTF16Copy(const FX_WCHAR* pWChar, |
- FX_WORD* pUTF16, |
- int32_t iLength); |
-int32_t FX_DecodeString(FX_WORD wCodePage, |
- const FX_CHAR* pSrc, |
- int32_t* pSrcLen, |
- FX_WCHAR* pDst, |
- int32_t* pDstLen, |
- FX_BOOL bErrBreak = FALSE); |
-int32_t FX_UTF8Decode(const FX_CHAR* pSrc, |
- int32_t* pSrcLen, |
- FX_WCHAR* pDst, |
- int32_t* pDstLen); |
-enum FX_CODESYSTEM { |
- FX_MBCS = 0, |
- FX_SBCS, |
- FX_DBCS, |
-}; |
-typedef struct _FX_CODEPAGE_HEADER { |
- uint16_t uCPID; |
- uint8_t uMinCharBytes; |
- uint8_t uMaxCharBytes; |
- FX_CODESYSTEM eCPType; |
- FX_BOOL bHasLeadByte; |
- FX_WCHAR wMinChar; |
- FX_WCHAR wMaxChar; |
- FX_WCHAR wDefChar; |
- FX_WCHAR wMinUnicode; |
- FX_WCHAR wMaxUnicode; |
- FX_WCHAR wDefUnicode; |
-} FX_CODEPAGE_HEADER; |
-#define FX_CPMAPTYPE_Consecution 1 |
-#define FX_CPMAPTYPE_Strict 2 |
-#define FX_CPMAPTYPE_NoMapping 3 |
-#define FX_CPMAPTYPE_Delta 4 |
-typedef struct _FX_CPCU_MAPTABLE1 { |
- uint16_t uMapType; |
- uint16_t uUniocde; |
-} FX_CPCU_MAPTABLE1; |
-typedef struct _FX_CPCU_MAPTABLE2 { |
- uint8_t uTrailByte; |
- uint8_t uMapType; |
- uint16_t uOffset; |
-} FX_CPCU_MAPTABLE2; |
-typedef struct _FX_CPCU_MAPINFO { |
- FX_CPCU_MAPTABLE1* pMapTable1; |
- FX_CPCU_MAPTABLE2* pMapTable2; |
- const uint8_t* pMapData; |
-} FX_CPCU_MAPINFO; |
-typedef struct _FX_CPUC_MAPTABLE { |
- uint16_t uStartUnicode; |
- uint16_t uEndUnicode; |
- uint16_t uMapType; |
- uint16_t uOffset; |
-} FX_CPUC_MAPTABLE; |
-typedef struct _FX_CPUC_MAPINFO { |
- uint32_t uMapCount; |
- FX_CPUC_MAPTABLE* pMapTable; |
- const uint8_t* pMapData; |
-} FX_CPUC_MAPINFO; |
-typedef struct _FX_CODEPAGE { |
- FX_CODEPAGE_HEADER const* pCPHeader; |
- FX_CPCU_MAPINFO const* pCPCUMapInfo; |
- FX_CPUC_MAPINFO const* pCPUCMapInfo; |
-} FX_CODEPAGE, *FX_LPCODEPAGE; |
-typedef FX_CODEPAGE const* FX_LPCCODEPAGE; |
-typedef struct _FX_STR2CPHASH { |
- uint32_t uHash; |
- uint32_t uCodePage; |
-} FX_STR2CPHASH; |
-typedef struct _FX_CHARSET_MAP { |
- uint16_t charset; |
- uint16_t codepage; |
-} FX_CHARSET_MAP; |
-typedef struct _FX_LANG2CPMAP { |
- FX_WORD wLanguage; |
- FX_WORD wCodepage; |
-} FX_LANG2CPMAP; |
- |
-class IFX_CodePage { |
- public: |
- static IFX_CodePage* Create(FX_WORD wCodePage); |
- virtual ~IFX_CodePage() {} |
- virtual void Release() = 0; |
- virtual FX_WORD GetCodePageNumber() const = 0; |
- virtual FX_CODESYSTEM GetCodeSystemType() const = 0; |
- virtual FX_BOOL HasLeadByte() const = 0; |
- virtual FX_BOOL IsLeadByte(uint8_t byte) const = 0; |
- virtual int32_t GetMinBytesPerChar() const = 0; |
- virtual int32_t GetMaxBytesPerChar() const = 0; |
- virtual FX_WCHAR GetMinCharcode() const = 0; |
- virtual FX_WCHAR GetMaxCharcode() const = 0; |
- virtual FX_WCHAR GetDefCharcode() const = 0; |
- virtual FX_WCHAR GetMinUnicode() const = 0; |
- virtual FX_WCHAR GetMaxUnicode() const = 0; |
- virtual FX_WCHAR GetDefUnicode() const = 0; |
- virtual FX_BOOL IsValidCharcode(FX_WORD wCharcode) const = 0; |
- virtual FX_WCHAR GetUnicode(FX_WORD wCharcode) const = 0; |
- virtual FX_BOOL IsValidUnicode(FX_WCHAR wUnicode) const = 0; |
- virtual FX_WORD GetCharcode(FX_WCHAR wUnicode) const = 0; |
-}; |
-#endif |
+// Copyright 2014 PDFium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
+ |
+#ifndef _FX_CODEPAGE |
+#define _FX_CODEPAGE |
+class IFX_CodePage; |
+#define FX_CODEPAGE_DefANSI 0 |
+#define FX_CODEPAGE_DefOEM 1 |
+#define FX_CODEPAGE_DefMAC 2 |
+#define FX_CODEPAGE_Thread 3 |
+#define FX_CODEPAGE_Symbol 42 |
+#define FX_CODEPAGE_MSDOS_US 437 |
+#define FX_CODEPAGE_Arabic_ASMO708 708 |
+#define FX_CODEPAGE_Arabic_ASMO449Plus 709 |
+#define FX_CODEPAGE_Arabic_Transparent 710 |
+#define FX_CODEPAGE_Arabic_NafithaEnhanced 711 |
+#define FX_CODEPAGE_Arabic_TransparentASMO 720 |
+#define FX_CODEPAGE_MSDOS_Greek1 737 |
+#define FX_CODEPAGE_MSDOS_Baltic 775 |
+#define FX_CODEPAGE_MSWin31_WesternEuropean 819 |
+#define FX_CODEPAGE_MSDOS_WesternEuropean 850 |
+#define FX_CODEPAGE_MSDOS_EasternEuropean 852 |
+#define FX_CODEPAGE_MSDOS_Latin3 853 |
+#define FX_CODEPAGE_MSDOS_Cyrillic 855 |
+#define FX_CODEPAGE_MSDOS_Turkish 857 |
+#define FX_CODEPAGE_MSDOS_Latin1Euro 858 |
+#define FX_CODEPAGE_MSDOS_Portuguese 860 |
+#define FX_CODEPAGE_MSDOS_Icelandic 861 |
+#define FX_CODEPAGE_MSDOS_Hebrew 862 |
+#define FX_CODEPAGE_MSDOS_FrenchCanadian 863 |
+#define FX_CODEPAGE_MSDOS_Arabic 864 |
+#define FX_CODEPAGE_MSDOS_Norwegian 865 |
+#define FX_CODEPAGE_MSDOS_Russian 866 |
+#define FX_CODEPAGE_MSDOS_Greek2 869 |
+#define FX_CODEPAGE_MSDOS_Thai 874 |
+#define FX_CODEPAGE_MSDOS_KamenickyCS 895 |
+#define FX_CODEPAGE_ShiftJIS 932 |
+#define FX_CODEPAGE_ChineseSimplified 936 |
+#define FX_CODEPAGE_Korean 949 |
+#define FX_CODEPAGE_ChineseTraditional 950 |
+#define FX_CODEPAGE_UTF16LE 1200 |
+#define FX_CODEPAGE_UTF16BE 1201 |
+#define FX_CODEPAGE_MSWin_EasternEuropean 1250 |
+#define FX_CODEPAGE_MSWin_Cyrillic 1251 |
+#define FX_CODEPAGE_MSWin_WesternEuropean 1252 |
+#define FX_CODEPAGE_MSWin_Greek 1253 |
+#define FX_CODEPAGE_MSWin_Turkish 1254 |
+#define FX_CODEPAGE_MSWin_Hebrew 1255 |
+#define FX_CODEPAGE_MSWin_Arabic 1256 |
+#define FX_CODEPAGE_MSWin_Baltic 1257 |
+#define FX_CODEPAGE_MSWin_Vietnamese 1258 |
+#define FX_CODEPAGE_Johab 1361 |
+#define FX_CODEPAGE_MAC_Roman 10000 |
+#define FX_CODEPAGE_MAC_ShiftJIS 10001 |
+#define FX_CODEPAGE_MAC_ChineseTraditional 10002 |
+#define FX_CODEPAGE_MAC_Korean 10003 |
+#define FX_CODEPAGE_MAC_Arabic 10004 |
+#define FX_CODEPAGE_MAC_Hebrew 10005 |
+#define FX_CODEPAGE_MAC_Greek 10006 |
+#define FX_CODEPAGE_MAC_Cyrillic 10007 |
+#define FX_CODEPAGE_MAC_ChineseSimplified 10008 |
+#define FX_CODEPAGE_MAC_Thai 10021 |
+#define FX_CODEPAGE_MAC_EasternEuropean 10029 |
+#define FX_CODEPAGE_MAC_Turkish 10081 |
+#define FX_CODEPAGE_UTF32LE 12000 |
+#define FX_CODEPAGE_UTF32BE 12001 |
+#define FX_CODEPAGE_ISO8859_1 28591 |
+#define FX_CODEPAGE_ISO8859_2 28592 |
+#define FX_CODEPAGE_ISO8859_3 28593 |
+#define FX_CODEPAGE_ISO8859_4 28594 |
+#define FX_CODEPAGE_ISO8859_5 28595 |
+#define FX_CODEPAGE_ISO8859_6 28596 |
+#define FX_CODEPAGE_ISO8859_7 28597 |
+#define FX_CODEPAGE_ISO8859_8 28598 |
+#define FX_CODEPAGE_ISO8859_9 28599 |
+#define FX_CODEPAGE_ISO8859_10 28600 |
+#define FX_CODEPAGE_ISO8859_11 28601 |
+#define FX_CODEPAGE_ISO8859_12 28602 |
+#define FX_CODEPAGE_ISO8859_13 28603 |
+#define FX_CODEPAGE_ISO8859_14 28604 |
+#define FX_CODEPAGE_ISO8859_15 28605 |
+#define FX_CODEPAGE_ISO8859_16 28606 |
+#define FX_CODEPAGE_ISCII_Devanagari 57002 |
+#define FX_CODEPAGE_ISCII_Bengali 57003 |
+#define FX_CODEPAGE_ISCII_Tamil 57004 |
+#define FX_CODEPAGE_ISCII_Telugu 57005 |
+#define FX_CODEPAGE_ISCII_Assamese 57006 |
+#define FX_CODEPAGE_ISCII_Oriya 57007 |
+#define FX_CODEPAGE_ISCII_Kannada 57008 |
+#define FX_CODEPAGE_ISCII_Malayalam 57009 |
+#define FX_CODEPAGE_ISCII_Gujarati 57010 |
+#define FX_CODEPAGE_ISCII_Punjabi 57011 |
+#define FX_CODEPAGE_UTF7 65000 |
+#define FX_CODEPAGE_UTF8 65001 |
+#define FX_CHARSET_ANSI 0 |
+#define FX_CHARSET_Default 1 |
+#define FX_CHARSET_Symbol 2 |
+#define FX_CHARSET_MAC_Roman 77 |
+#define FX_CHARSET_MAC_ShiftJIS 78 |
+#define FX_CHARSET_MAC_Korean 79 |
+#define FX_CHARSET_MAC_ChineseSimplified 80 |
+#define FX_CHARSET_MAC_ChineseTriditional 81 |
+#define FX_CHARSET_MAC_Johab 82 |
+#define FX_CHARSET_MAC_Hebrew 83 |
+#define FX_CHARSET_MAC_Arabic 84 |
+#define FX_CHARSET_MAC_Greek 85 |
+#define FX_CHARSET_MAC_Turkish 86 |
+#define FX_CHARSET_MAC_Thai 87 |
+#define FX_CHARSET_MAC_EasternEuropean 88 |
+#define FX_CHARSET_MAC_Cyrillic 89 |
+#define FX_CHARSET_ShiftJIS 128 |
+#define FX_CHARSET_Korean 129 |
+#define FX_CHARSET_Johab 130 |
+#define FX_CHARSET_ChineseSimplified 134 |
+#define FX_CHARSET_ChineseTriditional 136 |
+#define FX_CHARSET_MSWin_Greek 161 |
+#define FX_CHARSET_MSWin_Turkish 162 |
+#define FX_CHARSET_MSWin_Vietnamese 163 |
+#define FX_CHARSET_MSWin_Hebrew 177 |
+#define FX_CHARSET_MSWin_Arabic 178 |
+#define FX_CHARSET_ArabicTraditional 179 |
+#define FX_CHARSET_ArabicUser 180 |
+#define FX_CHARSET_HebrewUser 181 |
+#define FX_CHARSET_MSWin_Baltic 186 |
+#define FX_CHARSET_MSWin_Cyrillic 204 |
+#define FX_CHARSET_Thai 222 |
+#define FX_CHARSET_MSWin_EasterEuropean 238 |
+#define FX_CHARSET_US 254 |
+#define FX_CHARSET_OEM 255 |
+FX_WORD FX_GetCodePageFromCharset(uint8_t charset); |
+FX_WORD FX_GetCharsetFromCodePage(FX_WORD codepage); |
+FX_WORD FX_GetCodePageFromStringA(const FX_CHAR* pStr, int32_t iLength); |
+FX_WORD FX_GetCodePageFormStringW(const FX_WCHAR* pStr, int32_t iLength); |
+FX_WORD FX_GetDefCodePageByLanguage(FX_WORD wLanguage); |
+void FX_SwapByteOrder(FX_WCHAR* pStr, int32_t iLength); |
+void FX_SwapByteOrderCopy(const FX_WCHAR* pSrc, |
+ FX_WCHAR* pDst, |
+ int32_t iLength); |
+void FX_UTF16ToWChar(void* pBuffer, int32_t iLength); |
+void FX_UTF16ToWCharCopy(const FX_WORD* pUTF16, |
+ FX_WCHAR* pWChar, |
+ int32_t iLength); |
+void FX_WCharToUTF16(void* pBuffer, int32_t iLength); |
+void FX_WCharToUTF16Copy(const FX_WCHAR* pWChar, |
+ FX_WORD* pUTF16, |
+ int32_t iLength); |
+int32_t FX_DecodeString(FX_WORD wCodePage, |
+ const FX_CHAR* pSrc, |
+ int32_t* pSrcLen, |
+ FX_WCHAR* pDst, |
+ int32_t* pDstLen, |
+ FX_BOOL bErrBreak = FALSE); |
+int32_t FX_UTF8Decode(const FX_CHAR* pSrc, |
+ int32_t* pSrcLen, |
+ FX_WCHAR* pDst, |
+ int32_t* pDstLen); |
+enum FX_CODESYSTEM { |
+ FX_MBCS = 0, |
+ FX_SBCS, |
+ FX_DBCS, |
+}; |
+typedef struct _FX_CODEPAGE_HEADER { |
+ uint16_t uCPID; |
+ uint8_t uMinCharBytes; |
+ uint8_t uMaxCharBytes; |
+ FX_CODESYSTEM eCPType; |
+ FX_BOOL bHasLeadByte; |
+ FX_WCHAR wMinChar; |
+ FX_WCHAR wMaxChar; |
+ FX_WCHAR wDefChar; |
+ FX_WCHAR wMinUnicode; |
+ FX_WCHAR wMaxUnicode; |
+ FX_WCHAR wDefUnicode; |
+} FX_CODEPAGE_HEADER; |
+#define FX_CPMAPTYPE_Consecution 1 |
+#define FX_CPMAPTYPE_Strict 2 |
+#define FX_CPMAPTYPE_NoMapping 3 |
+#define FX_CPMAPTYPE_Delta 4 |
+typedef struct _FX_CPCU_MAPTABLE1 { |
+ uint16_t uMapType; |
+ uint16_t uUniocde; |
+} FX_CPCU_MAPTABLE1; |
+typedef struct _FX_CPCU_MAPTABLE2 { |
+ uint8_t uTrailByte; |
+ uint8_t uMapType; |
+ uint16_t uOffset; |
+} FX_CPCU_MAPTABLE2; |
+typedef struct _FX_CPCU_MAPINFO { |
+ FX_CPCU_MAPTABLE1* pMapTable1; |
+ FX_CPCU_MAPTABLE2* pMapTable2; |
+ const uint8_t* pMapData; |
+} FX_CPCU_MAPINFO; |
+typedef struct _FX_CPUC_MAPTABLE { |
+ uint16_t uStartUnicode; |
+ uint16_t uEndUnicode; |
+ uint16_t uMapType; |
+ uint16_t uOffset; |
+} FX_CPUC_MAPTABLE; |
+typedef struct _FX_CPUC_MAPINFO { |
+ uint32_t uMapCount; |
+ FX_CPUC_MAPTABLE* pMapTable; |
+ const uint8_t* pMapData; |
+} FX_CPUC_MAPINFO; |
+typedef struct _FX_CODEPAGE { |
+ FX_CODEPAGE_HEADER const* pCPHeader; |
+ FX_CPCU_MAPINFO const* pCPCUMapInfo; |
+ FX_CPUC_MAPINFO const* pCPUCMapInfo; |
+} FX_CODEPAGE, *FX_LPCODEPAGE; |
+typedef FX_CODEPAGE const* FX_LPCCODEPAGE; |
+typedef struct _FX_STR2CPHASH { |
+ uint32_t uHash; |
+ uint32_t uCodePage; |
+} FX_STR2CPHASH; |
+typedef struct _FX_CHARSET_MAP { |
+ uint16_t charset; |
+ uint16_t codepage; |
+} FX_CHARSET_MAP; |
+typedef struct _FX_LANG2CPMAP { |
+ FX_WORD wLanguage; |
+ FX_WORD wCodepage; |
+} FX_LANG2CPMAP; |
+ |
+class IFX_CodePage { |
+ public: |
+ static IFX_CodePage* Create(FX_WORD wCodePage); |
+ virtual ~IFX_CodePage() {} |
+ virtual void Release() = 0; |
+ virtual FX_WORD GetCodePageNumber() const = 0; |
+ virtual FX_CODESYSTEM GetCodeSystemType() const = 0; |
+ virtual FX_BOOL HasLeadByte() const = 0; |
+ virtual FX_BOOL IsLeadByte(uint8_t byte) const = 0; |
+ virtual int32_t GetMinBytesPerChar() const = 0; |
+ virtual int32_t GetMaxBytesPerChar() const = 0; |
+ virtual FX_WCHAR GetMinCharcode() const = 0; |
+ virtual FX_WCHAR GetMaxCharcode() const = 0; |
+ virtual FX_WCHAR GetDefCharcode() const = 0; |
+ virtual FX_WCHAR GetMinUnicode() const = 0; |
+ virtual FX_WCHAR GetMaxUnicode() const = 0; |
+ virtual FX_WCHAR GetDefUnicode() const = 0; |
+ virtual FX_BOOL IsValidCharcode(FX_WORD wCharcode) const = 0; |
+ virtual FX_WCHAR GetUnicode(FX_WORD wCharcode) const = 0; |
+ virtual FX_BOOL IsValidUnicode(FX_WCHAR wUnicode) const = 0; |
+ virtual FX_WORD GetCharcode(FX_WCHAR wUnicode) const = 0; |
+}; |
+#endif |