diff options
-rw-r--r-- | ext/standard/string.c | 40 |
1 files changed, 18 insertions, 22 deletions
diff --git a/ext/standard/string.c b/ext/standard/string.c index e8fe75cad1..c06de62a80 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -1462,33 +1462,29 @@ PHPAPI zend_string *php_string_tolower(zend_string *s) unsigned char *c; const unsigned char *e; - if (EXPECTED(!BG(locale_changed))) { - return zend_string_tolower(s); - } else { - c = (unsigned char *)ZSTR_VAL(s); - e = c + ZSTR_LEN(s); + c = (unsigned char *)ZSTR_VAL(s); + e = c + ZSTR_LEN(s); - while (c < e) { - if (isupper(*c)) { - register unsigned char *r; - zend_string *res = zend_string_alloc(ZSTR_LEN(s), 0); + while (c < e) { + if (isupper(*c)) { + register unsigned char *r; + zend_string *res = zend_string_alloc(ZSTR_LEN(s), 0); - if (c != (unsigned char*)ZSTR_VAL(s)) { - memcpy(ZSTR_VAL(res), ZSTR_VAL(s), c - (unsigned char*)ZSTR_VAL(s)); - } - r = c + (ZSTR_VAL(res) - ZSTR_VAL(s)); - while (c < e) { - *r = tolower(*c); - r++; - c++; - } - *r = '\0'; - return res; + if (c != (unsigned char*)ZSTR_VAL(s)) { + memcpy(ZSTR_VAL(res), ZSTR_VAL(s), c - (unsigned char*)ZSTR_VAL(s)); } - c++; + r = c + (ZSTR_VAL(res) - ZSTR_VAL(s)); + while (c < e) { + *r = tolower(*c); + r++; + c++; + } + *r = '\0'; + return res; } - return zend_string_copy(s); + c++; } + return zend_string_copy(s); } /* }}} */ |