Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Unified Diff: icu52/patches/uconv.patch

Issue 224943002: icu local change part1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/
Patch Set: function indentation changed Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « icu52/patches/ubrk.patch ('k') | icu52/patches/uloc.patch » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: icu52/patches/uconv.patch
===================================================================
--- icu52/patches/uconv.patch (revision 0)
+++ icu52/patches/uconv.patch (revision 0)
@@ -0,0 +1,333 @@
+Index: source/common/ucnv2022.cpp
+===================================================================
+--- source/common/ucnv2022.cpp (revision 259715)
++++ source/common/ucnv2022.cpp (working copy)
+@@ -167,13 +167,19 @@
+ * all versions, not just JIS7 and JIS8.
+ * - ICU does not distinguish between different versions of JIS X 0208.
+ */
++#if UCONFIG_NO_NON_HTML5_CONVERSION
++enum { MAX_JA_VERSION=0 };
++#else
+ enum { MAX_JA_VERSION=4 };
++#endif
+ static const uint16_t jpCharsetMasks[MAX_JA_VERSION+1]={
+ CSM(ASCII)|CSM(JISX201)|CSM(JISX208)|CSM(HWKANA_7BIT),
++#if !UCONFIG_NO_NON_HTML5_CONVERSION
+ CSM(ASCII)|CSM(JISX201)|CSM(JISX208)|CSM(HWKANA_7BIT)|CSM(JISX212),
+ CSM(ASCII)|CSM(JISX201)|CSM(JISX208)|CSM(HWKANA_7BIT)|CSM(JISX212)|CSM(GB2312)|CSM(KSC5601)|CSM(ISO8859_1)|CSM(ISO8859_7),
+ CSM(ASCII)|CSM(JISX201)|CSM(JISX208)|CSM(HWKANA_7BIT)|CSM(JISX212)|CSM(GB2312)|CSM(KSC5601)|CSM(ISO8859_1)|CSM(ISO8859_7),
+ CSM(ASCII)|CSM(JISX201)|CSM(JISX208)|CSM(HWKANA_7BIT)|CSM(JISX212)|CSM(GB2312)|CSM(KSC5601)|CSM(ISO8859_1)|CSM(ISO8859_7)
++#endif
+ };
+
+ typedef enum {
+@@ -361,14 +367,25 @@
+ };
+
+
++/* Enable ISO-2022-{KR,CN,CN-Ext} for now.
++ * TODO(jshin): Disable it when we know what to do about 'replacement'
++ * encodings. See http://crbug.com/277037 and
++ * https://codereview.chromium.org/145973021/
++ */
++#ifndef U_ENABLE_ISO_2022_KR_CN
++#define U_ENABLE_ISO_2022_KR_CN 1
++#endif
++
+ /* Type def for refactoring changeState_2022 code*/
+ typedef enum{
+ #ifdef U_ENABLE_GENERIC_ISO_2022
+ ISO_2022=0,
+ #endif
+ ISO_2022_JP=1,
++#ifdef U_ENABLE_ISO_2022_KR_CN
+ ISO_2022_KR=2,
+ ISO_2022_CN=3
++#endif
+ } Variant2022;
+
+ /*********** ISO 2022 Converter Protos ***********/
+@@ -485,24 +502,28 @@
+ /* prevent indexing beyond jpCharsetMasks[] */
+ myConverterData->version = version = 0;
+ }
++#if !UCONFIG_NO_NON_HTML5_CONVERSION
+ if(jpCharsetMasks[version]&CSM(ISO8859_7)) {
+ myConverterData->myConverterArray[ISO8859_7] =
+ ucnv_loadSharedData("ISO8859_7", &stackPieces, &stackArgs, errorCode);
+ }
++#endif
+ myConverterData->myConverterArray[JISX208] =
+ ucnv_loadSharedData("Shift-JIS", &stackPieces, &stackArgs, errorCode);
++#if !UCONFIG_NO_NON_HTML5_CONVERSION
+ if(jpCharsetMasks[version]&CSM(JISX212)) {
+ myConverterData->myConverterArray[JISX212] =
+ ucnv_loadSharedData("jisx-212", &stackPieces, &stackArgs, errorCode);
+ }
+ if(jpCharsetMasks[version]&CSM(GB2312)) {
+ myConverterData->myConverterArray[GB2312] =
+- ucnv_loadSharedData("ibm-5478", &stackPieces, &stackArgs, errorCode); /* gb_2312_80-1 */
++ ucnv_loadSharedData("noop-gb2312_gl", &stackPieces, &stackArgs, errorCode); /* gb_2312_80-1 */
+ }
+ if(jpCharsetMasks[version]&CSM(KSC5601)) {
+ myConverterData->myConverterArray[KSC5601] =
+ ucnv_loadSharedData("ksc_5601", &stackPieces, &stackArgs, errorCode);
+ }
++#endif
+
+ /* set the function pointers to appropriate funtions */
+ cnv->sharedData=(UConverterSharedData*)(&_ISO2022JPData);
+@@ -513,6 +534,7 @@
+ myConverterData->name[len]=(char)(myConverterData->version+(int)'0');
+ myConverterData->name[len+1]='\0';
+ }
++#ifdef U_ENABLE_ISO_2022_KR_CN
+ else if(myLocale[0]=='k' && (myLocale[1]=='o'|| myLocale[1]=='r') &&
+ (myLocale[2]=='_' || myLocale[2]=='\0'))
+ {
+@@ -558,13 +580,13 @@
+
+ /* open the required converters and cache them */
+ myConverterData->myConverterArray[GB2312_1] =
+- ucnv_loadSharedData("ibm-5478", &stackPieces, &stackArgs, errorCode);
++ ucnv_loadSharedData("noop-gb2312_gl", &stackPieces, &stackArgs, errorCode);
+ if(version==1) {
+ myConverterData->myConverterArray[ISO_IR_165] =
+- ucnv_loadSharedData("iso-ir-165", &stackPieces, &stackArgs, errorCode);
++ ucnv_loadSharedData("noop-iso-ir-165", &stackPieces, &stackArgs, errorCode);
+ }
+ myConverterData->myConverterArray[CNS_11643] =
+- ucnv_loadSharedData("cns-11643-1992", &stackPieces, &stackArgs, errorCode);
++ ucnv_loadSharedData("noop-cns-11643", &stackPieces, &stackArgs, errorCode);
+
+
+ /* set the function pointers to appropriate funtions */
+@@ -582,6 +604,7 @@
+ (void)uprv_strcpy(myConverterData->name,"ISO_2022,locale=zh,version=2");
+ }
+ }
++#endif // U_ENABLE_ISO_2022_KR_CN
+ else{
+ #ifdef U_ENABLE_GENERIC_ISO_2022
+ myConverterData->isFirstBuffer = TRUE;
+Index: source/common/ucnvbocu.cpp
+===================================================================
+--- source/common/ucnvbocu.cpp (revision 259715)
++++ source/common/ucnvbocu.cpp (working copy)
+@@ -19,7 +19,7 @@
+
+ #include "unicode/utypes.h"
+
+-#if !UCONFIG_NO_CONVERSION
++#if !UCONFIG_NO_CONVERSION && !UCONFIG_NO_NON_HTML5_CONVERSION
+
+ #include "unicode/ucnv.h"
+ #include "unicode/ucnv_cb.h"
+Index: source/common/ucnvisci.c
+===================================================================
+--- source/common/ucnvisci.c (revision 259715)
++++ source/common/ucnvisci.c (working copy)
+@@ -17,7 +17,7 @@
+
+ #include "unicode/utypes.h"
+
+-#if !UCONFIG_NO_CONVERSION && !UCONFIG_NO_LEGACY_CONVERSION
++#if !UCONFIG_NO_CONVERSION && !UCONFIG_NO_LEGACY_CONVERSION && !UCONFIG_NO_NON_HTML5_CONVERSION
+
+ #include "unicode/ucnv.h"
+ #include "unicode/ucnv_cb.h"
+Index: source/common/ucnvscsu.c
+===================================================================
+--- source/common/ucnvscsu.c (revision 259715)
++++ source/common/ucnvscsu.c (working copy)
+@@ -21,7 +21,7 @@
+
+ #include "unicode/utypes.h"
+
+-#if !UCONFIG_NO_CONVERSION
++#if !UCONFIG_NO_CONVERSION && !UCONFIG_NO_NON_HTML5_CONVERSION
+
+ #include "unicode/ucnv.h"
+ #include "unicode/ucnv_cb.h"
+Index: source/common/ucnv_u7.c
+===================================================================
+--- source/common/ucnv_u7.c (revision 259715)
++++ source/common/ucnv_u7.c (working copy)
+@@ -16,7 +16,7 @@
+
+ #include "unicode/utypes.h"
+
+-#if !UCONFIG_NO_CONVERSION
++#if !UCONFIG_NO_CONVERSION && !UCONFIG_NO_NON_HTML5_CONVERSION
+
+ #include "unicode/ucnv.h"
+ #include "ucnv_bld.h"
+Index: source/common/unicode/uconfig.h
+===================================================================
+--- source/common/unicode/uconfig.h (revision 259715)
++++ source/common/unicode/uconfig.h (working copy)
+@@ -265,6 +265,14 @@
+ #endif
+
+ /**
++ * This switch turns off all the converters NOT listed in
++ * the encoding standard : http://encoding.spec.whatwg.org
++ */
++#ifndef UCONFIG_NO_NON_HTML5_CONVERSION
++#define UCONFIG_NO_NON_HTML5_CONVERSION 0
++#endif
++
++/**
+ * \def UCONFIG_NO_LEGACY_CONVERSION
+ * This switch turns off all converters except for
+ * - Unicode charsets (UTF-7/8/16/32, CESU-8, SCSU, BOCU-1)
+Index: source/common/ucnv_bld.cpp
+===================================================================
+--- source/common/ucnv_bld.cpp (revision 259715)
++++ source/common/ucnv_bld.cpp (working copy)
+@@ -79,16 +79,25 @@
+ &_HZData,
+ #endif
+
++#if UCONFIG_NO_NON_HTML5_CONVERSION
++ NULL,
++#else
+ &_SCSUData,
++#endif
+
+-#if UCONFIG_NO_LEGACY_CONVERSION
++
++#if UCONFIG_NO_LEGACY_CONVERSION || UCONFIG_NO_NON_HTML5_CONVERSION
+ NULL,
+ #else
+ &_ISCIIData,
+ #endif
+
+ &_ASCIIData,
++#if UCONFIG_NO_NON_HTML5_CONVERSION
++ NULL, NULL, &_UTF16Data, &_UTF32Data, NULL, NULL,
++#else
+ &_UTF7Data, &_Bocu1Data, &_UTF16Data, &_UTF32Data, &_CESU8Data, &_IMAPData,
++#endif
+
+ #if UCONFIG_NO_LEGACY_CONVERSION
+ NULL,
+Index: source/common/ucnv_u8.c
+===================================================================
+--- source/common/ucnv_u8.c (revision 259715)
++++ source/common/ucnv_u8.c (working copy)
+@@ -87,6 +87,15 @@
+ static const uint32_t
+ utf8_minChar32[7]={ 0, 0, 0x80, 0x800, 0x10000, 0xffffffff, 0xffffffff };
+
++static UBool hasCESU8Data(const UConverter *cnv)
++{
++#if UCONFIG_NO_NON_HTML5_CONVERSION
++ return FALSE;
++#else
++ return (UBool)(cnv->sharedData == &_CESU8Data);
++#endif
++}
++
+ static void ucnv_toUnicode_UTF8 (UConverterToUnicodeArgs * args,
+ UErrorCode * err)
+ {
+@@ -96,10 +105,10 @@
+ const unsigned char *sourceLimit = (unsigned char *) args->sourceLimit;
+ const UChar *targetLimit = args->targetLimit;
+ unsigned char *toUBytes = cnv->toUBytes;
+- UBool isCESU8 = (UBool)(cnv->sharedData == &_CESU8Data);
++ UBool isCESU8 = hasCESU8Data(cnv);
+ uint32_t ch, ch2 = 0;
+ int32_t i, inBytes;
+-
++
+ /* Restore size of current sequence */
+ if (cnv->toUnicodeStatus && myTarget < targetLimit)
+ {
+@@ -226,7 +235,7 @@
+ const unsigned char *sourceLimit = (unsigned char *) args->sourceLimit;
+ const UChar *targetLimit = args->targetLimit;
+ unsigned char *toUBytes = cnv->toUBytes;
+- UBool isCESU8 = (UBool)(cnv->sharedData == &_CESU8Data);
++ UBool isCESU8 = hasCESU8Data(cnv);
+ uint32_t ch, ch2 = 0;
+ int32_t i, inBytes;
+
+@@ -357,7 +366,7 @@
+ UChar32 ch;
+ uint8_t tempBuf[4];
+ int32_t indexToWrite;
+- UBool isNotCESU8 = (UBool)(cnv->sharedData != &_CESU8Data);
++ UBool isNotCESU8 = !hasCESU8Data(cnv);
+
+ if (cnv->fromUChar32 && myTarget < targetLimit)
+ {
+@@ -473,7 +482,7 @@
+ int32_t offsetNum, nextSourceIndex;
+ int32_t indexToWrite;
+ uint8_t tempBuf[4];
+- UBool isNotCESU8 = (UBool)(cnv->sharedData != &_CESU8Data);
++ UBool isNotCESU8 = !hasCESU8Data(cnv);
+
+ if (cnv->fromUChar32 && myTarget < targetLimit)
+ {
+Index: source/common/unicode/urename.h
+===================================================================
+--- source/common/unicode/urename.h (revision 259715)
++++ source/common/unicode/urename.h (working copy)
+@@ -73,12 +73,16 @@
+ #define UDataMemory_setData U_ICU_ENTRY_POINT_RENAME(UDataMemory_setData)
+ #define UDatamemory_assign U_ICU_ENTRY_POINT_RENAME(UDatamemory_assign)
+ #define _ASCIIData U_ICU_ENTRY_POINT_RENAME(_ASCIIData)
++#if !UCONFIG_NO_NON_HTML5_CONVERSION
+ #define _Bocu1Data U_ICU_ENTRY_POINT_RENAME(_Bocu1Data)
+ #define _CESU8Data U_ICU_ENTRY_POINT_RENAME(_CESU8Data)
++#endif
+ #define _CompoundTextData U_ICU_ENTRY_POINT_RENAME(_CompoundTextData)
+ #define _HZData U_ICU_ENTRY_POINT_RENAME(_HZData)
++#if !UCONFIG_NO_NON_HTML5_CONVERSION
+ #define _IMAPData U_ICU_ENTRY_POINT_RENAME(_IMAPData)
+ #define _ISCIIData U_ICU_ENTRY_POINT_RENAME(_ISCIIData)
++#endif
+ #define _ISO2022Data U_ICU_ENTRY_POINT_RENAME(_ISO2022Data)
+ #define _LMBCSData1 U_ICU_ENTRY_POINT_RENAME(_LMBCSData1)
+ #define _LMBCSData11 U_ICU_ENTRY_POINT_RENAME(_LMBCSData11)
+@@ -94,14 +98,18 @@
+ #define _LMBCSData8 U_ICU_ENTRY_POINT_RENAME(_LMBCSData8)
+ #define _Latin1Data U_ICU_ENTRY_POINT_RENAME(_Latin1Data)
+ #define _MBCSData U_ICU_ENTRY_POINT_RENAME(_MBCSData)
++#if !UCONFIG_NO_NON_HTML5_CONVERSION
+ #define _SCSUData U_ICU_ENTRY_POINT_RENAME(_SCSUData)
++#endif
+ #define _UTF16BEData U_ICU_ENTRY_POINT_RENAME(_UTF16BEData)
+ #define _UTF16Data U_ICU_ENTRY_POINT_RENAME(_UTF16Data)
+ #define _UTF16LEData U_ICU_ENTRY_POINT_RENAME(_UTF16LEData)
+ #define _UTF32BEData U_ICU_ENTRY_POINT_RENAME(_UTF32BEData)
+ #define _UTF32Data U_ICU_ENTRY_POINT_RENAME(_UTF32Data)
+ #define _UTF32LEData U_ICU_ENTRY_POINT_RENAME(_UTF32LEData)
++#if !UCONFIG_NO_NON_HTML5_CONVERSION
+ #define _UTF7Data U_ICU_ENTRY_POINT_RENAME(_UTF7Data)
++#endif
+ #define _UTF8Data U_ICU_ENTRY_POINT_RENAME(_UTF8Data)
+ #define cmemory_cleanup U_ICU_ENTRY_POINT_RENAME(cmemory_cleanup)
+ #define cmemory_inUse U_ICU_ENTRY_POINT_RENAME(cmemory_inUse)
+Index: source/common/ucnv_cnv.h
+===================================================================
+--- source/common/ucnv_cnv.h (revision 259715)
++++ source/common/ucnv_cnv.h (working copy)
+@@ -259,8 +259,13 @@
+ _ISO2022Data,
+ _LMBCSData1,_LMBCSData2, _LMBCSData3, _LMBCSData4, _LMBCSData5, _LMBCSData6,
+ _LMBCSData8,_LMBCSData11,_LMBCSData16,_LMBCSData17,_LMBCSData18,_LMBCSData19,
++#if !UCONFIG_NO_NON_HTML5_CONVERSION
+ _HZData,_ISCIIData, _SCSUData, _ASCIIData,
+ _UTF7Data, _Bocu1Data, _UTF16Data, _UTF32Data, _CESU8Data, _IMAPData, _CompoundTextData;
++#else
++ _HZData, _ASCIIData,
++ _UTF16Data, _UTF32Data, _CompoundTextData;
++#endif
+
+ U_CDECL_END
+
Property changes on: icu52/patches/uconv.patch
___________________________________________________________________
Added: svn:eol-style
+ LF
« no previous file with comments | « icu52/patches/ubrk.patch ('k') | icu52/patches/uloc.patch » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698