deps: ICU 60.2 bump

- Update to Maintainance ICU 60.2
- CLDR 32.0.1
- http://site.icu-project.org/download/60#TOC-ICU-60.2-bug-fixes
- Subsumes https://github.com/nodejs/node/pull/16931

PR-URL: https://github.com/nodejs/node/pull/17687
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
Steven R. Loomis 2017-12-14 11:26:30 -08:00
parent f7c709fdd0
commit e42708c8e3
No known key found for this signature in database
GPG Key ID: 3932080F4FB419E3
14 changed files with 51 additions and 31 deletions

4
configure vendored
View File

@ -1132,8 +1132,8 @@ def glob_to_var(dir_base, dir_sub, patch_dir):
def configure_intl(o): def configure_intl(o):
icus = [ icus = [
{ {
'url': 'https://ssl.icu-project.org/files/icu4c/60.1/icu4c-60_1-src.zip', 'url': 'https://ssl.icu-project.org/files/icu4c/60.2/icu4c-60_2-src.zip',
'md5': 'e6cb990ac2a3161d31a3def8435f80cb', 'md5': '115908818fd0324530b2acb1b029738d',
}, },
] ]
def icu_download(path): def icu_download(path):

View File

@ -121,7 +121,7 @@ class RuleBasedBreakIterator::BreakCache: public UMemory {
* If the requested position is a break boundary, leave the iteration * If the requested position is a break boundary, leave the iteration
* position on it. * position on it.
* If the requested position is not a boundary, leave the iteration * If the requested position is not a boundary, leave the iteration
* position on the preceding boundary and include both the the * position on the preceding boundary and include both the
* preceding and following boundaries in the cache. * preceding and following boundaries in the cache.
* Additional boundaries, either preceding or following, may be added * Additional boundaries, either preceding or following, may be added
* to the cache as a side effect. * to the cache as a side effect.

0
deps/icu-small/source/common/rbbicst.pl vendored Normal file → Executable file
View File

View File

@ -28,6 +28,7 @@
#include "unicode/utf.h" #include "unicode/utf.h"
#include "unicode/utf8.h" #include "unicode/utf8.h"
#include "unicode/utf16.h" #include "unicode/utf16.h"
#include "uassert.h"
#include "ucnv_bld.h" #include "ucnv_bld.h"
#include "ucnv_cnv.h" #include "ucnv_cnv.h"
#include "cmemory.h" #include "cmemory.h"
@ -694,7 +695,9 @@ ucnv_UTF8FromUTF8(UConverterFromUnicodeArgs *pFromUArgs,
// Use a single counter for source and target, counting the minimum of // Use a single counter for source and target, counting the minimum of
// the source length and the target capacity. // the source length and the target capacity.
// Let the standard converter handle edge cases. // Let the standard converter handle edge cases.
const uint8_t *limit=sourceLimit;
if(count>targetCapacity) { if(count>targetCapacity) {
limit-=(count-targetCapacity);
count=targetCapacity; count=targetCapacity;
} }
@ -707,11 +710,11 @@ ucnv_UTF8FromUTF8(UConverterFromUnicodeArgs *pFromUArgs,
// sequence from the previous buffer. // sequence from the previous buffer.
int32_t length=count-toULimit; int32_t length=count-toULimit;
if(length>0) { if(length>0) {
uint8_t b1=*(sourceLimit-1); uint8_t b1=*(limit-1);
if(U8_IS_SINGLE(b1)) { if(U8_IS_SINGLE(b1)) {
// common ASCII character // common ASCII character
} else if(U8_IS_TRAIL(b1) && length>=2) { } else if(U8_IS_TRAIL(b1) && length>=2) {
uint8_t b2=*(sourceLimit-2); uint8_t b2=*(limit-2);
if(0xe0<=b2 && b2<0xf0 && U8_IS_VALID_LEAD3_AND_T1(b2, b1)) { if(0xe0<=b2 && b2<0xf0 && U8_IS_VALID_LEAD3_AND_T1(b2, b1)) {
// truncated 3-byte sequence // truncated 3-byte sequence
count-=2; count-=2;
@ -811,7 +814,7 @@ moreBytes:
} }
/* copy the legal byte sequence to the target */ /* copy the legal byte sequence to the target */
{ if(count>=toULength) {
int8_t i; int8_t i;
for(i=0; i<oldToULength; ++i) { for(i=0; i<oldToULength; ++i) {
@ -822,9 +825,18 @@ moreBytes:
*target++=*source++; *target++=*source++;
} }
count-=toULength; count-=toULength;
} else {
// A supplementary character that does not fit into the target.
// Let the standard converter handle this.
source-=(toULength-oldToULength);
pToUArgs->source=(char *)source;
pFromUArgs->target=(char *)target;
*pErrorCode=U_USING_DEFAULT_WARNING;
return;
} }
} }
} }
U_ASSERT(count>=0);
if(U_SUCCESS(*pErrorCode) && source<sourceLimit) { if(U_SUCCESS(*pErrorCode) && source<sourceLimit) {
if(target==(const uint8_t *)pFromUArgs->targetLimit) { if(target==(const uint8_t *)pFromUArgs->targetLimit) {

View File

@ -292,7 +292,7 @@ public:
* does nothing. Negative values move to previous boundaries * does nothing. Negative values move to previous boundaries
* and positive values move to later boundaries. * and positive values move to later boundaries.
* @return The new iterator position, or * @return The new iterator position, or
* DONE if there are fewer than |n| boundaries in the specfied direction. * DONE if there are fewer than |n| boundaries in the specified direction.
* @stable ICU 2.0 * @stable ICU 2.0
*/ */
virtual int32_t next(int32_t n) = 0; virtual int32_t next(int32_t n) = 0;

View File

@ -29,7 +29,7 @@
* converter, you can get its properties, set options, convert your data and * converter, you can get its properties, set options, convert your data and
* close the converter.</p> * close the converter.</p>
* *
* <p>Since many software programs recogize different converter names for * <p>Since many software programs recognize different converter names for
* different types of converters, there are other functions in this API to * different types of converters, there are other functions in this API to
* iterate over the converter aliases. The functions {@link ucnv_getAvailableName() }, * iterate over the converter aliases. The functions {@link ucnv_getAvailableName() },
* {@link ucnv_getAlias() } and {@link ucnv_getStandardName() } are some of the * {@link ucnv_getAlias() } and {@link ucnv_getStandardName() } are some of the
@ -184,7 +184,7 @@ typedef enum {
/** /**
* Function pointer for error callback in the codepage to unicode direction. * Function pointer for error callback in the codepage to unicode direction.
* Called when an error has occured in conversion to unicode, or on open/close of the callback (see reason). * Called when an error has occurred in conversion to unicode, or on open/close of the callback (see reason).
* @param context Pointer to the callback's private data * @param context Pointer to the callback's private data
* @param args Information about the conversion in progress * @param args Information about the conversion in progress
* @param codeUnits Points to 'length' bytes of the concerned codepage sequence * @param codeUnits Points to 'length' bytes of the concerned codepage sequence
@ -452,7 +452,7 @@ ucnv_openU(const UChar *name,
* @param platform the platform in which the codepage number exists * @param platform the platform in which the codepage number exists
* @param err error status <TT>U_MEMORY_ALLOCATION_ERROR, U_FILE_ACCESS_ERROR</TT> * @param err error status <TT>U_MEMORY_ALLOCATION_ERROR, U_FILE_ACCESS_ERROR</TT>
* @return the created Unicode converter object, or <TT>NULL</TT> if an error * @return the created Unicode converter object, or <TT>NULL</TT> if an error
* occured. * occurred.
* @see ucnv_open * @see ucnv_open
* @see ucnv_openU * @see ucnv_openU
* @see ucnv_close * @see ucnv_close
@ -596,7 +596,7 @@ U_NAMESPACE_END
* stateful, then subChars will be an empty string. * stateful, then subChars will be an empty string.
* *
* @param converter the Unicode converter * @param converter the Unicode converter
* @param subChars the subsitution characters * @param subChars the substitution characters
* @param len on input the capacity of subChars, on output the number * @param len on input the capacity of subChars, on output the number
* of bytes copied to it * of bytes copied to it
* @param err the outgoing error status code. * @param err the outgoing error status code.
@ -832,7 +832,7 @@ ucnv_getMinCharSize(const UConverter *converter);
* name will be filled in. * name will be filled in.
* *
* @param converter the Unicode converter. * @param converter the Unicode converter.
* @param displayLocale is the specific Locale we want to localised for * @param displayLocale is the specific Locale we want to localized for
* @param displayName user provided buffer to be filled in * @param displayName user provided buffer to be filled in
* @param displayNameCapacity size of displayName Buffer * @param displayNameCapacity size of displayName Buffer
* @param err error status code * @param err error status code
@ -877,7 +877,7 @@ ucnv_getName(const UConverter *converter, UErrorCode *err);
* *
* @param converter the Unicode converter * @param converter the Unicode converter
* @param err the error status code. * @param err the error status code.
* @return If any error occurrs, -1 will be returned otherwise, the codepage number * @return If any error occurs, -1 will be returned otherwise, the codepage number
* will be returned * will be returned
* @see ucnv_openCCSID * @see ucnv_openCCSID
* @see ucnv_getPlatform * @see ucnv_getPlatform

View File

@ -389,7 +389,7 @@ utext_equals(const UText *a, const UText *b);
/***************************************************************************** /*****************************************************************************
* *
* Functions to work with the text represeted by a UText wrapper * Functions to work with the text represented by a UText wrapper
* *
*****************************************************************************/ *****************************************************************************/
@ -433,7 +433,7 @@ utext_isLengthExpensive(const UText *ut);
* *
* The iteration position will be set to the start of the returned code point. * The iteration position will be set to the start of the returned code point.
* *
* This function is roughly equivalent to the the sequence * This function is roughly equivalent to the sequence
* utext_setNativeIndex(index); * utext_setNativeIndex(index);
* utext_current32(); * utext_current32();
* (There is a subtle difference if the index is out of bounds by being less than zero - * (There is a subtle difference if the index is out of bounds by being less than zero -
@ -592,7 +592,7 @@ U_STABLE void U_EXPORT2
utext_setNativeIndex(UText *ut, int64_t nativeIndex); utext_setNativeIndex(UText *ut, int64_t nativeIndex);
/** /**
* Move the iterator postion by delta code points. The number of code points * Move the iterator position by delta code points. The number of code points
* is a signed number; a negative delta will move the iterator backwards, * is a signed number; a negative delta will move the iterator backwards,
* towards the start of the text. * towards the start of the text.
* <p> * <p>
@ -611,7 +611,7 @@ U_STABLE UBool U_EXPORT2
utext_moveIndex32(UText *ut, int32_t delta); utext_moveIndex32(UText *ut, int32_t delta);
/** /**
* Get the native index of the character preceeding the current position. * Get the native index of the character preceding the current position.
* If the iteration position is already at the start of the text, zero * If the iteration position is already at the start of the text, zero
* is returned. * is returned.
* The value returned is the same as that obtained from the following sequence, * The value returned is the same as that obtained from the following sequence,
@ -628,7 +628,7 @@ utext_moveIndex32(UText *ut, int32_t delta);
* native index of the character most recently returned from utext_next(). * native index of the character most recently returned from utext_next().
* *
* @param ut the text to be accessed * @param ut the text to be accessed
* @return the native index of the character preceeding the current index position, * @return the native index of the character preceding the current index position,
* or zero if the current position is at the start of the text. * or zero if the current position is at the start of the text.
* @stable ICU 3.6 * @stable ICU 3.6
*/ */
@ -1054,7 +1054,7 @@ UTextAccess(UText *ut, int64_t nativeIndex, UBool forward);
* be NUL-terminated if there is sufficient space in the destination buffer. * be NUL-terminated if there is sufficient space in the destination buffer.
* *
* @param ut the UText from which to extract data. * @param ut the UText from which to extract data.
* @param nativeStart the native index of the first characer to extract. * @param nativeStart the native index of the first character to extract.
* @param nativeLimit the native string index of the position following the last * @param nativeLimit the native string index of the position following the last
* character to extract. * character to extract.
* @param dest the UChar (UTF-16) buffer into which the extracted text is placed * @param dest the UChar (UTF-16) buffer into which the extracted text is placed
@ -1211,7 +1211,7 @@ UTextClose(UText *ut);
struct UTextFuncs { struct UTextFuncs {
/** /**
* (public) Function table size, sizeof(UTextFuncs) * (public) Function table size, sizeof(UTextFuncs)
* Intended for use should the table grow to accomodate added * Intended for use should the table grow to accommodate added
* functions in the future, to allow tests for older format * functions in the future, to allow tests for older format
* function tables that do not contain the extensions. * function tables that do not contain the extensions.
* *
@ -1345,7 +1345,7 @@ typedef struct UTextFuncs UTextFuncs;
struct UText { struct UText {
/** /**
* (private) Magic. Used to help detect when UText functions are handed * (private) Magic. Used to help detect when UText functions are handed
* invalid or unitialized UText structs. * invalid or uninitialized UText structs.
* utext_openXYZ() functions take an initialized, * utext_openXYZ() functions take an initialized,
* but not necessarily open, UText struct as an * but not necessarily open, UText struct as an
* optional fill-in parameter. This magic field * optional fill-in parameter. This magic field
@ -1367,7 +1367,7 @@ struct UText {
/** /**
* Text provider properties. This set of flags is maintainted by the * Text provider properties. This set of flags is maintained by the
* text provider implementation. * text provider implementation.
* @stable ICU 3.4 * @stable ICU 3.4
*/ */

View File

@ -64,7 +64,7 @@
* This value will change in the subsequent releases of ICU * This value will change in the subsequent releases of ICU
* @stable ICU 2.6 * @stable ICU 2.6
*/ */
#define U_ICU_VERSION_MINOR_NUM 1 #define U_ICU_VERSION_MINOR_NUM 2
/** The current ICU patchlevel version as an integer. /** The current ICU patchlevel version as an integer.
* This value will change in the subsequent releases of ICU * This value will change in the subsequent releases of ICU
@ -119,7 +119,7 @@
* This value will change in the subsequent releases of ICU * This value will change in the subsequent releases of ICU
* @stable ICU 2.4 * @stable ICU 2.4
*/ */
#define U_ICU_VERSION "60.1" #define U_ICU_VERSION "60.2"
/** The current ICU library major/minor version as a string without dots, for library name suffixes. /** The current ICU library major/minor version as a string without dots, for library name suffixes.
* This value will change in the subsequent releases of ICU * This value will change in the subsequent releases of ICU
@ -131,7 +131,7 @@
/** Data version in ICU4C. /** Data version in ICU4C.
* @internal ICU 4.4 Internal Use Only * @internal ICU 4.4 Internal Use Only
**/ **/
#define U_ICU_DATA_VERSION "60.1" #define U_ICU_DATA_VERSION "60.2"
#endif /* U_HIDE_INTERNAL_API */ #endif /* U_HIDE_INTERNAL_API */
/*=========================================================================== /*===========================================================================

Binary file not shown.

View File

@ -708,6 +708,8 @@ fZone(NULL),
fRepeatedWallTime(UCAL_WALLTIME_LAST), fRepeatedWallTime(UCAL_WALLTIME_LAST),
fSkippedWallTime(UCAL_WALLTIME_LAST) fSkippedWallTime(UCAL_WALLTIME_LAST)
{ {
validLocale[0] = 0;
actualLocale[0] = 0;
clear(); clear();
if (U_FAILURE(success)) { if (U_FAILURE(success)) {
return; return;
@ -734,6 +736,8 @@ fZone(NULL),
fRepeatedWallTime(UCAL_WALLTIME_LAST), fRepeatedWallTime(UCAL_WALLTIME_LAST),
fSkippedWallTime(UCAL_WALLTIME_LAST) fSkippedWallTime(UCAL_WALLTIME_LAST)
{ {
validLocale[0] = 0;
actualLocale[0] = 0;
if (U_FAILURE(success)) { if (U_FAILURE(success)) {
return; return;
} }
@ -766,6 +770,8 @@ fZone(NULL),
fRepeatedWallTime(UCAL_WALLTIME_LAST), fRepeatedWallTime(UCAL_WALLTIME_LAST),
fSkippedWallTime(UCAL_WALLTIME_LAST) fSkippedWallTime(UCAL_WALLTIME_LAST)
{ {
validLocale[0] = 0;
actualLocale[0] = 0;
if (U_FAILURE(success)) { if (U_FAILURE(success)) {
return; return;
} }
@ -822,8 +828,10 @@ Calendar::operator=(const Calendar &right)
fWeekendCease = right.fWeekendCease; fWeekendCease = right.fWeekendCease;
fWeekendCeaseMillis = right.fWeekendCeaseMillis; fWeekendCeaseMillis = right.fWeekendCeaseMillis;
fNextStamp = right.fNextStamp; fNextStamp = right.fNextStamp;
uprv_strcpy(validLocale, right.validLocale); uprv_strncpy(validLocale, right.validLocale, sizeof(validLocale));
uprv_strcpy(actualLocale, right.actualLocale); uprv_strncpy(actualLocale, right.actualLocale, sizeof(actualLocale));
validLocale[sizeof(validLocale)-1] = 0;
actualLocale[sizeof(validLocale)-1] = 0;
} }
return *this; return *this;

0
deps/icu-small/source/i18n/regexcst.pl vendored Normal file → Executable file
View File

0
deps/icu-small/source/i18n/unicode/selfmt.h vendored Normal file → Executable file
View File

View File

@ -652,7 +652,7 @@ processFile(const char *filename, const char *cp,
goto finish; goto finish;
} }
if (ucbuf == NULL || U_FAILURE(status)) { if (ucbuf == NULL || U_FAILURE(status)) {
fprintf(stderr, "An error occured processing file %s. Error: %s\n", fprintf(stderr, "An error occurred processing file %s. Error: %s\n",
openFileName == NULL ? filename : openFileName, u_errorName(status)); openFileName == NULL ? filename : openFileName, u_errorName(status));
goto finish; goto finish;
} }

View File

@ -362,7 +362,7 @@ parseUCARules(ParseState* state, char *tag, uint32_t startline, const struct USt
ucbuf = ucbuf_open(filename, &cp, getShowWarning(),FALSE, status); ucbuf = ucbuf_open(filename, &cp, getShowWarning(),FALSE, status);
if (U_FAILURE(*status)) { if (U_FAILURE(*status)) {
error(line, "An error occured while opening the input file %s\n", filename); error(line, "An error occurred while opening the input file %s\n", filename);
return NULL; return NULL;
} }
@ -500,7 +500,7 @@ parseTransliterator(ParseState* state, char *tag, uint32_t startline, const stru
ucbuf = ucbuf_open(filename, &cp, getShowWarning(),FALSE, status); ucbuf = ucbuf_open(filename, &cp, getShowWarning(),FALSE, status);
if (U_FAILURE(*status)) { if (U_FAILURE(*status)) {
error(line, "An error occured while opening the input file %s\n", filename); error(line, "An error occurred while opening the input file %s\n", filename);
return NULL; return NULL;
} }
@ -758,7 +758,7 @@ GenrbImporter::getRules(
return; return;
} }
if (ucbuf.isNull() || U_FAILURE(errorCode)) { if (ucbuf.isNull() || U_FAILURE(errorCode)) {
fprintf(stderr, "An error occured processing file %s. Error: %s\n", openFileName.data(), u_errorName(errorCode)); fprintf(stderr, "An error occurred processing file %s. Error: %s\n", openFileName.data(), u_errorName(errorCode));
return; return;
} }