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

Unified Diff: source/common/unames.cpp

Issue 845603002: Update ICU to 54.1 step 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/icu.git@master
Patch Set: remove unusued directories Created 5 years, 11 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 | « source/common/umutex.cpp ('k') | source/common/unicode/brkiter.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: source/common/unames.cpp
diff --git a/source/common/unames.cpp b/source/common/unames.cpp
index 6a3e81c561df766abd045a701778522413a313d5..a2035c48dfc9c6bf4a658ed4b2cdbee06bdb3776 100644
--- a/source/common/unames.cpp
+++ b/source/common/unames.cpp
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 1999-2013, International Business Machines
+* Copyright (C) 1999-2014, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -33,8 +33,6 @@ U_NAMESPACE_BEGIN
/* prototypes ------------------------------------------------------------- */
-#define LENGTHOF(array) (int32_t)(sizeof(array)/sizeof((array)[0]))
-
static const char DATA_NAME[] = "unames";
static const char DATA_TYPE[] = "icu";
@@ -438,7 +436,7 @@ static const char *getCharCatName(UChar32 cp) {
/* Return unknown if the table of names above is not up to
date. */
- if (cat >= LENGTHOF(charCatNames)) {
+ if (cat >= UPRV_LENGTHOF(charCatNames)) {
return "unknown";
} else {
return charCatNames[cat];
@@ -1277,7 +1275,7 @@ static int32_t
calcExtNameSetsLengths(int32_t maxNameLength) {
int32_t i, length;
- for(i=0; i<LENGTHOF(charCatNames); ++i) {
+ for(i=0; i<UPRV_LENGTHOF(charCatNames); ++i) {
/*
* for each category, count the length of the category name
* plus 9=
@@ -1440,13 +1438,17 @@ calcNameSetsLengths(UErrorCode *pErrorCode) {
return TRUE;
}
+U_NAMESPACE_END
+
/* public API --------------------------------------------------------------- */
+U_NAMESPACE_USE
+
U_CAPI int32_t U_EXPORT2
u_charName(UChar32 code, UCharNameChoice nameChoice,
char *buffer, int32_t bufferLength,
UErrorCode *pErrorCode) {
- AlgorithmicRange *algRange;
+ AlgorithmicRange *algRange;
uint32_t *p;
uint32_t i;
int32_t length;
@@ -1552,15 +1554,16 @@ u_charFromName(UCharNameChoice nameChoice,
*pErrorCode = U_ILLEGAL_CHAR_FOUND;
return error;
}
+ // i==strlen(name)==strlen(lower)==strlen(upper)
/* try extended names first */
if (lower[0] == '<') {
if (nameChoice == U_EXTENDED_CHAR_NAME) {
- if (lower[--i] == '>') {
- for (--i; lower[i] && lower[i] != '-'; --i) {
- }
+ // Parse a string like "<category-HHHH>" where HHHH is a hex code point.
+ if (lower[--i] == '>' && i >= 3 && lower[--i] != '-') {
+ while (i >= 3 && lower[--i] != '-') {}
- if (lower[i] == '-') { /* We've got a category. */
+ if (i >= 2 && lower[i] == '-') {
uint32_t cIdx;
lower[i] = 0;
@@ -1580,7 +1583,7 @@ u_charFromName(UCharNameChoice nameChoice,
We could use a binary search, or a trie, if
we really wanted to. */
- for (lower[i] = 0, cIdx = 0; cIdx < LENGTHOF(charCatNames); ++cIdx) {
+ for (lower[i] = 0, cIdx = 0; cIdx < UPRV_LENGTHOF(charCatNames); ++cIdx) {
if (!uprv_strcmp(lower + 1, charCatNames[cIdx])) {
if (getCharCat(cp) == cIdx) {
@@ -2086,8 +2089,6 @@ uchar_swapNames(const UDataSwapper *ds,
return headerSize+(int32_t)offset;
}
-U_NAMESPACE_END
-
/*
* Hey, Emacs, please set the following:
*
« no previous file with comments | « source/common/umutex.cpp ('k') | source/common/unicode/brkiter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698