diff options
Diffstat (limited to 'ext/standard/php_string.h')
-rw-r--r-- | ext/standard/php_string.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/ext/standard/php_string.h b/ext/standard/php_string.h index e0ffff5e23..bb173ee85a 100644 --- a/ext/standard/php_string.h +++ b/ext/standard/php_string.h @@ -154,12 +154,13 @@ PHPAPI char *php_strerror(int errnum); #ifndef HAVE_MBLEN # define php_mblen(ptr, len) 1 +# define php_mb_reset() +#elif defined(_REENTRANT) && defined(HAVE_MBRLEN) && defined(HAVE_MBSTATE_T) +# define php_mblen(ptr, len) ((int) mbrlen(ptr, len, &BG(mblen_state))) +# define php_mb_reset() memset(&BG(mblen_state), 0, sizeof(BG(mblen_state))) #else -# if defined(_REENTRANT) && defined(HAVE_MBRLEN) && defined(HAVE_MBSTATE_T) -# define php_mblen(ptr, len) ((ptr) == NULL ? memset(&BG(mblen_state), 0, sizeof(BG(mblen_state))): (int)mbrlen(ptr, len, &BG(mblen_state))) -# else -# define php_mblen(ptr, len) mblen(ptr, len) -# endif +# define php_mblen(ptr, len) mblen(ptr, len) +# define php_mb_reset() mblen(NULL, 0) #endif void register_string_constants(INIT_FUNC_ARGS); |