diff options
| author | Rui Hirokawa <hirokawa@php.net> | 2005-12-23 11:14:54 +0000 |
|---|---|---|
| committer | Rui Hirokawa <hirokawa@php.net> | 2005-12-23 11:14:54 +0000 |
| commit | 283f4759f605249f699f0cc1e1c9a96d97e8d2d8 (patch) | |
| tree | 3bb98c651e957e8bf08d148a2b391fb91febe317 /ext | |
| parent | b863d322884e4f0789eb136c22d66780b3244bb8 (diff) | |
| download | php-git-283f4759f605249f699f0cc1e1c9a96d97e8d2d8.tar.gz | |
fixed #28899 mb_substr() and substr() work differently when mbstring.func_overload is enabled.
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/mbstring/mbstring.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c index 14c662d8e5..999397af89 100644 --- a/ext/mbstring/mbstring.c +++ b/ext/mbstring/mbstring.c @@ -60,7 +60,6 @@ #include "ext/standard/url.h" #include "main/php_output.h" #include "ext/standard/info.h" - #include "libmbfl/mbfl/mbfl_allocators.h" #include "php_variables.h" @@ -1763,6 +1762,11 @@ PHP_FUNCTION(mb_substr) } } + if (((MBSTRG(func_overload) & MB_OVERLOAD_STRING) == MB_OVERLOAD_STRING) + && (from >= mbfl_strlen(&string))) { + RETURN_FALSE; + } + ret = mbfl_substr(&string, &result, from, len); if (ret != NULL) { RETVAL_STRINGL((char *)ret->val, ret->len, 0); /* the string is already strdup()'ed */ |
