ICU-535 fixed some compiler warnings
X-SVN-Rev: 2314
This commit is contained in:
parent
115436cc74
commit
3de2aeabe7
@ -150,9 +150,13 @@ typedef int32_t UTextOffset;
|
|||||||
|
|
||||||
# define UTF_GET_CHAR_UNSAFE(s, i, c) UTF16_GET_CHAR_UNSAFE(s, i, c)
|
# define UTF_GET_CHAR_UNSAFE(s, i, c) UTF16_GET_CHAR_UNSAFE(s, i, c)
|
||||||
# define UTF_GET_CHAR_SAFE(s, start, i, length, c, strict) UTF16_GET_CHAR_SAFE(s, start, i, length, c, strict)
|
# define UTF_GET_CHAR_SAFE(s, start, i, length, c, strict) UTF16_GET_CHAR_SAFE(s, start, i, length, c, strict)
|
||||||
|
# define UTF_GET_CHAR_SAFE_STRICT(s, start, i, length, c) UTF16_GET_CHAR_SAFE_STRICT(s, start, i, length, c)
|
||||||
|
# define UTF_GET_CHAR_SAFE_LENIENT(s, start, i, length, c) UTF16_GET_CHAR_SAFE_LENIENT(s, start, i, length, c)
|
||||||
|
|
||||||
# define UTF_NEXT_CHAR_UNSAFE(s, i, c) UTF16_NEXT_CHAR_UNSAFE(s, i, c)
|
# define UTF_NEXT_CHAR_UNSAFE(s, i, c) UTF16_NEXT_CHAR_UNSAFE(s, i, c)
|
||||||
# define UTF_NEXT_CHAR_SAFE(s, i, length, c, strict) UTF16_NEXT_CHAR_SAFE(s, i, length, c, strict)
|
# define UTF_NEXT_CHAR_SAFE(s, i, length, c, strict) UTF16_NEXT_CHAR_SAFE(s, i, length, c, strict)
|
||||||
|
# define UTF_NEXT_CHAR_SAFE_STRICT(s, i, length, c) UTF16_NEXT_CHAR_SAFE_STRICT(s, i, length, c)
|
||||||
|
# define UTF_NEXT_CHAR_SAFE_LENIENT(s, i, length, c) UTF16_NEXT_CHAR_SAFE_LENIENT(s, i, length, c)
|
||||||
|
|
||||||
# define UTF_APPEND_CHAR_UNSAFE(s, i, c) UTF16_APPEND_CHAR_UNSAFE(s, i, c)
|
# define UTF_APPEND_CHAR_UNSAFE(s, i, c) UTF16_APPEND_CHAR_UNSAFE(s, i, c)
|
||||||
# define UTF_APPEND_CHAR_SAFE(s, i, length, c) UTF16_APPEND_CHAR_SAFE(s, i, length, c)
|
# define UTF_APPEND_CHAR_SAFE(s, i, length, c) UTF16_APPEND_CHAR_SAFE(s, i, length, c)
|
||||||
@ -168,6 +172,8 @@ typedef int32_t UTextOffset;
|
|||||||
|
|
||||||
# define UTF_PREV_CHAR_UNSAFE(s, i, c) UTF16_PREV_CHAR_UNSAFE(s, i, c)
|
# define UTF_PREV_CHAR_UNSAFE(s, i, c) UTF16_PREV_CHAR_UNSAFE(s, i, c)
|
||||||
# define UTF_PREV_CHAR_SAFE(s, start, i, c, strict) UTF16_PREV_CHAR_SAFE(s, start, i, c, strict)
|
# define UTF_PREV_CHAR_SAFE(s, start, i, c, strict) UTF16_PREV_CHAR_SAFE(s, start, i, c, strict)
|
||||||
|
# define UTF_PREV_CHAR_SAFE_STRICT(s, start, i, c) UTF16_PREV_CHAR_SAFE_STRICT(s, start, i, c)
|
||||||
|
# define UTF_PREV_CHAR_SAFE_LENIENT(s, start, i, c) UTF16_PREV_CHAR_SAFE_LENIENT(s, start, i, c)
|
||||||
|
|
||||||
# define UTF_BACK_1_UNSAFE(s, i) UTF16_BACK_1_UNSAFE(s, i)
|
# define UTF_BACK_1_UNSAFE(s, i) UTF16_BACK_1_UNSAFE(s, i)
|
||||||
# define UTF_BACK_1_SAFE(s, start, i) UTF16_BACK_1_SAFE(s, start, i)
|
# define UTF_BACK_1_SAFE(s, start, i) UTF16_BACK_1_SAFE(s, start, i)
|
||||||
@ -192,30 +198,30 @@ typedef int32_t UTextOffset;
|
|||||||
|
|
||||||
#ifdef UTF_SAFE
|
#ifdef UTF_SAFE
|
||||||
|
|
||||||
# define UTF_GET_CHAR(s, start, i, length, c) UTF_GET_CHAR_SAFE(s, start, i, length, c, FALSE)
|
# define UTF_GET_CHAR(s, start, i, length, c) UTF_GET_CHAR_SAFE_LENIENT(s, start, i, length, c)
|
||||||
|
|
||||||
# define UTF_NEXT_CHAR(s, i, length, c) UTF_NEXT_CHAR_SAFE(s, i, length, c, FALSE)
|
# define UTF_NEXT_CHAR(s, i, length, c) UTF_NEXT_CHAR_SAFE_LENIENT(s, i, length, c)
|
||||||
# define UTF_APPEND_CHAR(s, i, length, c) UTF_APPEND_CHAR_SAFE(s, i, length, c)
|
# define UTF_APPEND_CHAR(s, i, length, c) UTF_APPEND_CHAR_SAFE(s, i, length, c)
|
||||||
# define UTF_FWD_1(s, i, length) UTF_FWD_1_SAFE(s, i, length)
|
# define UTF_FWD_1(s, i, length) UTF_FWD_1_SAFE(s, i, length)
|
||||||
# define UTF_FWD_N(s, i, length, n) UTF_FWD_N_SAFE(s, i, length, n)
|
# define UTF_FWD_N(s, i, length, n) UTF_FWD_N_SAFE(s, i, length, n)
|
||||||
# define UTF_SET_CHAR_START(s, start, i) UTF_SET_CHAR_START_SAFE(s, start, i)
|
# define UTF_SET_CHAR_START(s, start, i) UTF_SET_CHAR_START_SAFE(s, start, i)
|
||||||
|
|
||||||
# define UTF_PREV_CHAR(s, start, i, c) UTF_PREV_CHAR_SAFE(s, start, i, c, FALSE)
|
# define UTF_PREV_CHAR(s, start, i, c) UTF_PREV_CHAR_SAFE_LENIENT(s, start, i, c)
|
||||||
# define UTF_BACK_1(s, start, i) UTF_BACK_1_SAFE(s, start, i)
|
# define UTF_BACK_1(s, start, i) UTF_BACK_1_SAFE(s, start, i)
|
||||||
# define UTF_BACK_N(s, start, i, n) UTF_BACK_N_SAFE(s, start, i, n)
|
# define UTF_BACK_N(s, start, i, n) UTF_BACK_N_SAFE(s, start, i, n)
|
||||||
# define UTF_SET_CHAR_LIMIT(s, start, i, length) UTF_SET_CHAR_LIMIT_SAFE(s, start, i, length)
|
# define UTF_SET_CHAR_LIMIT(s, start, i, length) UTF_SET_CHAR_LIMIT_SAFE(s, start, i, length)
|
||||||
|
|
||||||
#elif defined(UTF_STRICT)
|
#elif defined(UTF_STRICT)
|
||||||
|
|
||||||
# define UTF_GET_CHAR(s, start, i, length, c) UTF_GET_CHAR_SAFE(s, start, i, length, c, TRUE)
|
# define UTF_GET_CHAR(s, start, i, length, c) UTF_GET_CHAR_SAFE_STRICT(s, start, i, length, c)
|
||||||
|
|
||||||
# define UTF_NEXT_CHAR(s, i, length, c) UTF_NEXT_CHAR_SAFE(s, i, length, c, TRUE)
|
# define UTF_NEXT_CHAR(s, i, length, c) UTF_NEXT_CHAR_SAFE_STRICT(s, i, length, c)
|
||||||
# define UTF_APPEND_CHAR(s, i, length, c) UTF_APPEND_CHAR_SAFE(s, i, length, c)
|
# define UTF_APPEND_CHAR(s, i, length, c) UTF_APPEND_CHAR_SAFE(s, i, length, c)
|
||||||
# define UTF_FWD_1(s, i, length) UTF_FWD_1_SAFE(s, i, length)
|
# define UTF_FWD_1(s, i, length) UTF_FWD_1_SAFE(s, i, length)
|
||||||
# define UTF_FWD_N(s, i, length, n) UTF_FWD_N_SAFE(s, i, length, n)
|
# define UTF_FWD_N(s, i, length, n) UTF_FWD_N_SAFE(s, i, length, n)
|
||||||
# define UTF_SET_CHAR_START(s, start, i) UTF_SET_CHAR_START_SAFE(s, start, i)
|
# define UTF_SET_CHAR_START(s, start, i) UTF_SET_CHAR_START_SAFE(s, start, i)
|
||||||
|
|
||||||
# define UTF_PREV_CHAR(s, start, i, c) UTF_PREV_CHAR_SAFE(s, start, i, c, TRUE)
|
# define UTF_PREV_CHAR(s, start, i, c) UTF_PREV_CHAR_SAFE_STRICT(s, start, i, c)
|
||||||
# define UTF_BACK_1(s, start, i) UTF_BACK_1_SAFE(s, start, i)
|
# define UTF_BACK_1(s, start, i) UTF_BACK_1_SAFE(s, start, i)
|
||||||
# define UTF_BACK_N(s, start, i, n) UTF_BACK_N_SAFE(s, start, i, n)
|
# define UTF_BACK_N(s, start, i, n) UTF_BACK_N_SAFE(s, start, i, n)
|
||||||
# define UTF_SET_CHAR_LIMIT(s, start, i, length) UTF_SET_CHAR_LIMIT_SAFE(s, start, i, length)
|
# define UTF_SET_CHAR_LIMIT(s, start, i, length) UTF_SET_CHAR_LIMIT_SAFE(s, start, i, length)
|
||||||
|
@ -72,7 +72,8 @@
|
|||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define UTF16_GET_CHAR_SAFE(s, start, i, length, c, strict) { \
|
#define _UTF16_GET_CHAR_SAFE_1(s, start, i, length, c) \
|
||||||
|
{ \
|
||||||
(c)=(s)[i]; \
|
(c)=(s)[i]; \
|
||||||
if(UTF_IS_SURROGATE(c)) { \
|
if(UTF_IS_SURROGATE(c)) { \
|
||||||
uint16_t __c2; \
|
uint16_t __c2; \
|
||||||
@ -80,23 +81,54 @@
|
|||||||
if((i)+1<(length) && UTF_IS_SECOND_SURROGATE(__c2=(s)[(i)+1])) { \
|
if((i)+1<(length) && UTF_IS_SECOND_SURROGATE(__c2=(s)[(i)+1])) { \
|
||||||
(c)=UTF16_GET_PAIR_VALUE((c), __c2); \
|
(c)=UTF16_GET_PAIR_VALUE((c), __c2); \
|
||||||
/* strict: ((c)&0xfffe)==0xfffe is caught by UTF_IS_ERROR() */ \
|
/* strict: ((c)&0xfffe)==0xfffe is caught by UTF_IS_ERROR() */ \
|
||||||
} else if(strict) {\
|
}
|
||||||
/* unmatched first surrogate */ \
|
|
||||||
(c)=UTF_ERROR_VALUE; \
|
#define _UTF16_GET_CHAR_SAFE_2(s, start, i, length, c) \
|
||||||
} \
|
|
||||||
} else { \
|
} else { \
|
||||||
if((i)>(start) && UTF_IS_FIRST_SURROGATE(__c2=(s)[(i)-1])) { \
|
if((i)>(start) && UTF_IS_FIRST_SURROGATE(__c2=(s)[(i)-1])) { \
|
||||||
(c)=UTF16_GET_PAIR_VALUE(__c2, (c)); \
|
(c)=UTF16_GET_PAIR_VALUE(__c2, (c)); \
|
||||||
/* strict: ((c)&0xfffe)==0xfffe is caught by UTF_IS_ERROR() */ \
|
/* strict: ((c)&0xfffe)==0xfffe is caught by UTF_IS_ERROR() */ \
|
||||||
} else if(strict) {\
|
}
|
||||||
/* unmatched second surrogate */ \
|
|
||||||
|
#define _UTF16_SAFE_ERROR(c) \
|
||||||
|
{ \
|
||||||
|
/* unmatched first surrogate */ \
|
||||||
(c)=UTF_ERROR_VALUE; \
|
(c)=UTF_ERROR_VALUE; \
|
||||||
} \
|
}
|
||||||
|
|
||||||
|
#define _UTF16_GET_CHAR_SAFE_END \
|
||||||
} \
|
} \
|
||||||
/* else strict: (c)==0xfffe is caught by UTF_IS_ERROR() */ \
|
/* else strict: (c)==0xfffe is caught by UTF_IS_ERROR() */ \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define UTF16_GET_CHAR_SAFE(s, start, i, length, c, strict) \
|
||||||
|
_UTF16_GET_CHAR_SAFE_1(s, start, i, length, c) \
|
||||||
|
else if(strict) \
|
||||||
|
_UTF16_SAFE_ERROR(c) \
|
||||||
|
_UTF16_GET_CHAR_SAFE_2(s, start, i, length, c) \
|
||||||
|
else if(strict) \
|
||||||
|
_UTF16_SAFE_ERROR(c) \
|
||||||
|
_UTF16_GET_CHAR_SAFE_END
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The following two macros will get around compilers complaining
|
||||||
|
* about constant conditional statements.
|
||||||
|
*/
|
||||||
|
#define UTF16_GET_CHAR_SAFE_STRICT(s, start, i, length, c) \
|
||||||
|
_UTF16_GET_CHAR_SAFE_1(s, start, i, length, c) \
|
||||||
|
else \
|
||||||
|
_UTF16_SAFE_ERROR(c) \
|
||||||
|
_UTF16_GET_CHAR_SAFE_2(s, start, i, length, c) \
|
||||||
|
else \
|
||||||
|
_UTF16_SAFE_ERROR(c) \
|
||||||
|
_UTF16_GET_CHAR_SAFE_END
|
||||||
|
|
||||||
|
#define UTF16_GET_CHAR_SAFE_LENIENT(s, start, i, length, c) \
|
||||||
|
_UTF16_GET_CHAR_SAFE_1(s, start, i, length, c) \
|
||||||
|
_UTF16_GET_CHAR_SAFE_2(s, start, i, length, c) \
|
||||||
|
_UTF16_GET_CHAR_SAFE_END
|
||||||
|
|
||||||
/* definitions with forward iteration --------------------------------------- */
|
/* definitions with forward iteration --------------------------------------- */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -159,7 +191,7 @@
|
|||||||
|
|
||||||
/* safe versions with error-checking and optional regularity-checking */
|
/* safe versions with error-checking and optional regularity-checking */
|
||||||
|
|
||||||
#define UTF16_NEXT_CHAR_SAFE(s, i, length, c, strict) { \
|
#define _UTF16_NEXT_CHAR_SAFE_1(s, i, length, c) \
|
||||||
(c)=(s)[(i)++]; \
|
(c)=(s)[(i)++]; \
|
||||||
if(UTF_IS_FIRST_SURROGATE(c)) { \
|
if(UTF_IS_FIRST_SURROGATE(c)) { \
|
||||||
uint16_t __c2; \
|
uint16_t __c2; \
|
||||||
@ -167,14 +199,33 @@
|
|||||||
++(i); \
|
++(i); \
|
||||||
(c)=UTF16_GET_PAIR_VALUE((c), __c2); \
|
(c)=UTF16_GET_PAIR_VALUE((c), __c2); \
|
||||||
/* strict: ((c)&0xfffe)==0xfffe is caught by UTF_IS_ERROR() */ \
|
/* strict: ((c)&0xfffe)==0xfffe is caught by UTF_IS_ERROR() */ \
|
||||||
} else if(strict) {\
|
}
|
||||||
/* unmatched first surrogate */ \
|
|
||||||
(c)=UTF_ERROR_VALUE; \
|
#define _UTF16_NEXT_CHAR_SAFE_END \
|
||||||
} \
|
} \
|
||||||
} else if(strict && UTF_IS_SECOND_SURROGATE(c)) { \
|
}
|
||||||
/* unmatched second surrogate */ \
|
|
||||||
(c)=UTF_ERROR_VALUE; \
|
#define UTF16_NEXT_CHAR_SAFE(s, i, length, c, strict) \
|
||||||
/* else strict: (c)==0xfffe is caught by UTF_IS_ERROR() */ \
|
{ \
|
||||||
|
_UTF16_NEXT_CHAR_SAFE_1(s, i, length, c) \
|
||||||
|
else if(strict) \
|
||||||
|
_UTF16_SAFE_ERROR(c) \
|
||||||
|
} else if(strict && UTF_IS_SECOND_SURROGATE(c)) \
|
||||||
|
_UTF16_SAFE_ERROR(c) \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define UTF16_NEXT_CHAR_SAFE_STRICT(s, i, length, c) \
|
||||||
|
{ \
|
||||||
|
_UTF16_NEXT_CHAR_SAFE_1(s, i, length, c) \
|
||||||
|
else \
|
||||||
|
_UTF16_SAFE_ERROR(c) \
|
||||||
|
} else if(UTF_IS_SECOND_SURROGATE(c)) \
|
||||||
|
_UTF16_SAFE_ERROR(c) \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define UTF16_NEXT_CHAR_SAFE_LENIENT(s, i, length, c) \
|
||||||
|
{ \
|
||||||
|
_UTF16_NEXT_CHAR_SAFE_1(s, i, length, c) \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -267,7 +318,7 @@
|
|||||||
|
|
||||||
/* safe versions with error-checking and optional regularity-checking */
|
/* safe versions with error-checking and optional regularity-checking */
|
||||||
|
|
||||||
#define UTF16_PREV_CHAR_SAFE(s, start, i, c, strict) { \
|
#define _UTF16_PREV_CHAR_SAFE_1(s, start, i, c) \
|
||||||
(c)=(s)[--(i)]; \
|
(c)=(s)[--(i)]; \
|
||||||
if(UTF_IS_SECOND_SURROGATE(c)) { \
|
if(UTF_IS_SECOND_SURROGATE(c)) { \
|
||||||
uint16_t __c2; \
|
uint16_t __c2; \
|
||||||
@ -275,14 +326,30 @@
|
|||||||
--(i); \
|
--(i); \
|
||||||
(c)=UTF16_GET_PAIR_VALUE(__c2, (c)); \
|
(c)=UTF16_GET_PAIR_VALUE(__c2, (c)); \
|
||||||
/* strict: ((c)&0xfffe)==0xfffe is caught by UTF_IS_ERROR() */ \
|
/* strict: ((c)&0xfffe)==0xfffe is caught by UTF_IS_ERROR() */ \
|
||||||
} else if(strict) {\
|
}
|
||||||
/* unmatched second surrogate */ \
|
|
||||||
(c)=UTF_ERROR_VALUE; \
|
|
||||||
} \
|
#define UTF16_PREV_CHAR_SAFE(s, start, i, c, strict) \
|
||||||
} else if(strict && UTF_IS_FIRST_SURROGATE(c)) { \
|
{ \
|
||||||
/* unmatched first surrogate */ \
|
_UTF16_PREV_CHAR_SAFE_1(s, start, i, c) \
|
||||||
(c)=UTF_ERROR_VALUE; \
|
else if(strict) \
|
||||||
/* else strict: (c)==0xfffe is caught by UTF_IS_ERROR() */ \
|
_UTF16_SAFE_ERROR(c) \
|
||||||
|
} else if(strict && UTF_IS_FIRST_SURROGATE(c)) \
|
||||||
|
_UTF16_SAFE_ERROR(c) \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define UTF16_PREV_CHAR_SAFE_STRICT(s, start, i, c) \
|
||||||
|
{ \
|
||||||
|
_UTF16_PREV_CHAR_SAFE_1(s, start, i, c) \
|
||||||
|
else \
|
||||||
|
_UTF16_SAFE_ERROR(c) \
|
||||||
|
} else if (UTF_IS_FIRST_SURROGATE(c)) \
|
||||||
|
_UTF16_SAFE_ERROR(c) \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define UTF16_PREV_CHAR_SAFE_LENIENT(s, start, i, c) \
|
||||||
|
{ \
|
||||||
|
_UTF16_PREV_CHAR_SAFE_1(s, start, i, c) \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -502,13 +502,13 @@ UnicodeString::doCompare( UTextOffset start,
|
|||||||
if(minLength > 0) {
|
if(minLength > 0) {
|
||||||
int32_t result;
|
int32_t result;
|
||||||
|
|
||||||
if(U_IS_BIG_ENDIAN) {
|
# if U_IS_BIG_ENDIAN
|
||||||
// big-endian: byte comparison works
|
// big-endian: byte comparison works
|
||||||
result = uprv_memcmp(chars + start, srcChars + srcStart, minLength * sizeof(UChar));
|
result = uprv_memcmp(chars + start, srcChars + srcStart, minLength * sizeof(UChar));
|
||||||
if(result != 0) {
|
if(result != 0) {
|
||||||
return (int8_t)(result >> 15 | 1);
|
return (int8_t)(result >> 15 | 1);
|
||||||
}
|
}
|
||||||
} else {
|
# else
|
||||||
// little-endian: compare UChar units
|
// little-endian: compare UChar units
|
||||||
chars += start;
|
chars += start;
|
||||||
srcChars += srcStart;
|
srcChars += srcStart;
|
||||||
@ -520,7 +520,7 @@ UnicodeString::doCompare( UTextOffset start,
|
|||||||
++chars;
|
++chars;
|
||||||
++srcChars;
|
++srcChars;
|
||||||
} while(--minLength > 0);
|
} while(--minLength > 0);
|
||||||
}
|
# endif
|
||||||
}
|
}
|
||||||
return lengthResult;
|
return lengthResult;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user