WordPress.org

Make WordPress Core

Ticket #6294: functions.php-r7414.diff

File functions.php-r7414.diff, 1.4 KB (added by neodude, 10 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;