WordPress.org

Make WordPress Core

Changeset 10376


Ignore:
Timestamp:
01/19/09 04:40:12 (5 years ago)
Author:
azaozz
Message:

Fix incorrect quote style in wp_specialchars, props sambauers, see #8767

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/formatting.php

    r10370 r10376  
    213213    } 
    214214 
     215    // Account for the previous behaviour of the function when the $quote_style is not an accepted value 
     216    if ( empty( $quote_style ) ) { 
     217        $quote_style = ENT_NOQUOTES; 
     218    } elseif ( !in_array( $quote_style, array( 0, 2, 3, 'single', 'double' ), true ) ) { 
     219        $quote_style = ENT_QUOTES; 
     220    } 
     221 
    215222    // Store the site charset as a static to avoid multiple calls to wp_load_alloptions() 
    216223    if ( !$charset ) { 
     
    226233    } 
    227234 
    228     switch ( $quote_style ) { 
    229         case ENT_QUOTES: 
    230         default: 
    231             $quote_style = ENT_QUOTES; 
    232             $_quote_style = ENT_QUOTES; 
    233             break; 
    234         case ENT_COMPAT: 
    235         case 'double': 
    236             $quote_style = ENT_COMPAT; 
    237             $_quote_style = ENT_COMPAT; 
    238             break; 
    239         case 'single': 
    240             $quote_style = ENT_NOQUOTES; 
    241             $_quote_style = 'single'; 
    242             break; 
    243         case ENT_NOQUOTES: 
    244         case false: 
    245         case 0: 
    246         case '': 
    247         case null: 
    248             $quote_style = ENT_NOQUOTES; 
    249             $_quote_style = ENT_NOQUOTES; 
    250             break; 
     235    $_quote_style = $quote_style; 
     236 
     237    if ( $quote_style === 'double' ) { 
     238        $quote_style = ENT_COMPAT; 
     239        $_quote_style = ENT_COMPAT; 
     240    } elseif ( $quote_style === 'single' ) { 
     241        $quote_style = ENT_NOQUOTES; 
    251242    } 
    252243 
     
    297288    if ( strpos( $string, '&' ) === false ) { 
    298289        return $string; 
     290    } 
     291 
     292    // Match the previous behaviour of wp_specialchars() when the $quote_style is not an accepted value 
     293    if ( empty( $quote_style ) ) { 
     294        $quote_style = ENT_NOQUOTES; 
     295    } elseif ( !in_array( $quote_style, array( 0, 2, 3, 'single', 'double' ), true ) ) { 
     296        $quote_style = ENT_QUOTES; 
    299297    } 
    300298 
     
    307305    $others_preg = array( '/&#0*60;/'  => '<', '/&#0*62;/'  => '>', '/&#0*38;/'  => '&', '/&#x0*26;/i' => '&' ); 
    308306 
    309     switch ( $quote_style ) { 
    310         case ENT_QUOTES: 
    311         default: 
    312             $translation = array_merge( $single, $double, $others ); 
    313             $translation_preg = array_merge( $single_preg, $double_preg, $others_preg ); 
    314             break; 
    315         case ENT_COMPAT: 
    316         case 'double': 
    317             $translation = array_merge( $double, $others ); 
    318             $translation_preg = array_merge( $double_preg, $others_preg ); 
    319             break; 
    320         case 'single': 
    321             $translation = array_merge( $single, $others ); 
    322             $translation_preg = array_merge( $single_preg, $others_preg ); 
    323             break; 
    324         case ENT_NOQUOTES: 
    325         case false: 
    326         case 0: 
    327         case '': 
    328         case null: 
    329             $translation = $others; 
    330             $translation_preg = $others_preg; 
    331             break; 
     307    if ( $quote_style === ENT_QUOTES ) { 
     308        $translation = array_merge( $single, $double, $others ); 
     309        $translation_preg = array_merge( $single_preg, $double_preg, $others_preg ); 
     310    } elseif ( $quote_style === ENT_COMPAT || $quote_style === 'double' ) { 
     311        $translation = array_merge( $double, $others ); 
     312        $translation_preg = array_merge( $double_preg, $others_preg ); 
     313    } elseif ( $quote_style === 'single' ) { 
     314        $translation = array_merge( $single, $others ); 
     315        $translation_preg = array_merge( $single_preg, $others_preg ); 
     316    } elseif ( $quote_style === ENT_NOQUOTES ) { 
     317        $translation = $others; 
     318        $translation_preg = $others_preg; 
    332319    } 
    333320 
Note: See TracChangeset for help on using the changeset viewer.