Use zend_codepoint_to_uchar() macro.

This commit is contained in:
Andrei Zmievski 2006-01-25 00:02:23 +00:00
parent 9c8bc2043c
commit e7752216f4

View File

@ -2278,15 +2278,8 @@ PHP_FUNCTION(strpos)
php_error(E_WARNING, "Needle argument codepoint value out of range (0 - 0x10FFFF)");
RETURN_FALSE;
}
/* supplementary codepoint values may require 2 UChar's */
if (U_IS_BMP(Z_LVAL_PP(needle))) {
u_needle_char[n_len++] = (UChar) Z_LVAL_PP(needle);
u_needle_char[n_len] = 0;
} else {
u_needle_char[n_len++] = (UChar) U16_LEAD(Z_LVAL_PP(needle));
u_needle_char[n_len++] = (UChar) U16_TRAIL(Z_LVAL_PP(needle));
u_needle_char[n_len] = 0;
}
n_len += zend_codepoint_to_uchar(Z_LVAL_PP(needle), u_needle_char);
u_needle_char[n_len] = 0;
/* locate the codepoint at the specified offset */
U16_FWD_N((UChar*)haystack, cp_offset, haystack_len, offset);