Media: Normalize all space characters to a space in sanitize_file_name().
The `sanitize_file_name()` function normalizes the no-break space to a normal space (`U+0020`) in order to prevent issues saving files with the no-break space in it. This patch expands the replacement to all space characters, since it’s known that macOS stores a `NARROW NO-BREAK SPACE` (`U+202F`) in screenshot filenames between the time and the am/pm indicator. There are deeper issues with the way this function works, but this patch resolves a known and common problem without raising any of the deeper refactoring questions. Reviewed by audrasjb, youknowriad. Merges [60399] to the 6.8 branch. Props audrasjb, desrosj, dmsnell, jonsurrell, matt, room34, siliconforks, zieladam, annezazu. Fixes #62995. Built from https://develop.svn.wordpress.org/branches/6.8@60411 git-svn-id: http://core.svn.wordpress.org/branches/6.8@59747 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
@@ -2035,7 +2035,17 @@ function sanitize_file_name( $filename ) {
|
||||
}
|
||||
|
||||
if ( $utf8_pcre ) {
|
||||
$filename = preg_replace( "#\x{00a0}#siu", ' ', $filename );
|
||||
/**
|
||||
* Replace all whitespace characters with a basic space (U+0020).
|
||||
*
|
||||
* The “Zs” in the pattern selects characters in the `Space_Separator`
|
||||
* category, which is what Unicode considers space characters.
|
||||
*
|
||||
* @see https://www.unicode.org/reports/tr44/#General_Category_Values
|
||||
* @see https://www.unicode.org/versions/Unicode16.0.0/core-spec/chapter-6/#G17548
|
||||
* @see https://www.php.net/manual/en/regexp.reference.unicode.php
|
||||
*/
|
||||
$filename = preg_replace( '#\p{Zs}#siu', ' ', $filename );
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
*
|
||||
* @global string $wp_version
|
||||
*/
|
||||
$wp_version = '6.8.2-alpha-60410';
|
||||
$wp_version = '6.8.2-alpha-60411';
|
||||
|
||||
/**
|
||||
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
||||
|
||||
Reference in New Issue
Block a user