WordPress.org

Make WordPress Core

Ticket #6294: functions.php-r7414.diff

File functions.php-r7414.diff, 1.4 KB (added by neodude, 7 years ago)

patch for wp_unique_functions, fixed issues described in comment 2

  • wp-includes/functions.php

     
    11251125        $info = pathinfo($filename); 
    11261126        $ext = $info['extension']; 
    11271127        $name = basename($filename, ".{$ext}"); 
     1128         
     1129        // edge case: if file is named '.ext', treat as an empty name 
     1130        if( $name === ".$ext" ) 
     1131                $name = ''; 
    11281132 
    11291133        // Increment the file number until we have a unique file to save in $dir. Use $override['unique_filename_callback'] if supplied. 
    11301134        if ( $unique_filename_callback && function_exists( $unique_filename_callback ) ) { 
    11311135                $filename = $unique_filename_callback( $dir, $name ); 
    11321136        } else { 
    11331137                $number = ''; 
    1134                 $filename = str_replace( '#', '_', $name ); 
    1135                 $filename = str_replace( array( '\\', "'" ), '', $filename ); 
    1136                 if ( empty( $ext) ) 
     1138 
     1139                if ( empty( $ext ) ) 
    11371140                        $ext = ''; 
    11381141                else 
    11391142                        $ext = strtolower( ".$ext" ); 
    1140                 $filename = $filename . $ext; 
     1143 
     1144                $filename = str_replace( $ext, '', $filename ); 
     1145                $filename = sanitize_title_with_dashes( $filename ) . $ext; 
     1146 
    11411147                while ( file_exists( $dir . "/$filename" ) ) { 
    11421148                        if ( '' == "$number$ext" ) 
    11431149                                $filename = $filename . ++$number . $ext; 
    11441150                        else 
    11451151                                $filename = str_replace( "$number$ext", ++$number . $ext, $filename ); 
    11461152                } 
    1147                 $filename = str_replace( $ext, '', $filename ); 
    1148                 $filename = sanitize_title_with_dashes( $filename ) . $ext; 
    11491153        } 
    11501154 
    11511155        return $filename;