Make WordPress Core

Ticket #31328: 31328.patch

File 31328.patch, 1.2 KB (added by SergeyBiryukov, 9 years ago)
  • src/wp-includes/formatting.php

     
    785785                        $unicode .= chr($value);
    786786                        $unicode_length++;
    787787                } else {
    788                         if ( count( $values ) == 0 ) $num_octets = ( $value < 224 ) ? 2 : 3;
     788                        if ( count( $values ) == 0 ) {
     789                                if ( $value < 224 ) {
     790                                        $num_octets = 2;
     791                                } elseif ( $value < 240 ) {
     792                                        $num_octets = 3;
     793                                } else {
     794                                        $num_octets = 4;
     795                                }
     796                        }
    789797
    790798                        $values[] = $value;
    791799
     
    792800                        if ( $length && ( $unicode_length + ($num_octets * 3) ) > $length )
    793801                                break;
    794802                        if ( count( $values ) == $num_octets ) {
    795                                 if ($num_octets == 3) {
    796                                         $unicode .= '%' . dechex($values[0]) . '%' . dechex($values[1]) . '%' . dechex($values[2]);
    797                                         $unicode_length += 9;
    798                                 } else {
    799                                         $unicode .= '%' . dechex($values[0]) . '%' . dechex($values[1]);
    800                                         $unicode_length += 6;
     803                                for ( $j = 0; $j < $num_octets; $j++ ) {
     804                                        $unicode .= '%' . dechex( $values[ $j ] );
    801805                                }
    802806
     807                                $unicode_length += $num_octets * 3;
     808
    803809                                $values = array();
    804810                                $num_octets = 1;
    805811                        }