mirror of
https://github.com/php/php-src.git
synced 2024-11-29 04:46:07 +08:00
Restore intra-string whitespace collapsing broken in the previous change.
This commit is contained in:
parent
4668ca80b5
commit
124a0a5a69
@ -116,17 +116,26 @@ PHPAPI int strnatcmp_ex(char const *a, size_t a_len, char const *b, size_t b_len
|
||||
while (1) {
|
||||
ca = *ap; cb = *bp;
|
||||
|
||||
/* skip over leading spaces or zeros */
|
||||
while (leading && (isspace((int)(unsigned char)ca) || (ca == '0' && (ap+1 < aend) && !ispunct(*(ap+1))))) {
|
||||
/* skip over leading zeros unless they are followed by punctuation */
|
||||
while (leading && ca == '0' && (ap+1 < aend) && !ispunct(*(ap+1))) {
|
||||
ca = *++ap;
|
||||
}
|
||||
|
||||
while (leading && (isspace((int)(unsigned char)cb) || (cb == '0' && (bp+1 < bend) && !ispunct(*(bp+1))))) {
|
||||
while (leading && cb == '0' && (bp+1 < bend) && !ispunct(*(bp+1))) {
|
||||
cb = *++bp;
|
||||
}
|
||||
|
||||
leading = 0;
|
||||
|
||||
/* Skip consecutive whitespace */
|
||||
while (isspace((int)(unsigned char)ca)) {
|
||||
ca = *++ap;
|
||||
}
|
||||
|
||||
while (isspace((int)(unsigned char)cb)) {
|
||||
cb = *++bp;
|
||||
}
|
||||
|
||||
/* process run of digits */
|
||||
if (isdigit((int)(unsigned char)ca) && isdigit((int)(unsigned char)cb)) {
|
||||
fractional = (ca == '0' || cb == '0');
|
||||
|
Loading…
Reference in New Issue
Block a user