* Code duplication of validity checks between wfIsValidFileName() and UploadForm::internalProcessUpload() -- this guarantees behavior will become inconsistent over time. Move the normalization into a single place.
* The additional chars excluded for Windows don't cover the entire set of illegal chars. There are several more punctuation characters, plus general issues such as all non-ASCII characters.
* Application of filesystem rules based on OS could result in strange inconsistent behavior; alternate filestore backends could support different sets of legal characters.
* No clear reason for the change to wfVarDump(); var_export works just fine and doesn't use the fragile output buffering
on non-mySQL schemas.
* (bug 14763) Child classes of Database (DatabasePostgres and DatabaseOracle)
had stict standards issues with setFakeSlaveLag() and setFakeMaster().
-* Image now can't contain "*" or "?" characters under Windows
=== API changes in 1.13 ===
*/
function wfVarDump( $var ) {
global $wgOut;
- ob_start();
- var_dump( $var );
- $s = str_replace("\n","<br />\n", ob_get_contents() . "\n");
- ob_end_clean();
+ $s = str_replace("\n","<br />\n", var_export( $var, true ) . "\n");
if ( headers_sent() || !@is_object( $wgOut ) ) {
print $s;
} else {
return md5( mt_rand( 0, 0x7fffffff ) . $salt );
}
-
-/**
- * Checks filename for validity
- * @param mixed $title Filename or title to check
- */
-function wfIsValidFileName( $name ) {
- if( !$name instanceof Title )
- if( !Title::makeTitleSafe( NS_IMAGE, $name ) )
- return false;
- else
- $name = $name->getText();
-
- if( in_string( ':', $name ) )
- return false;
- elseif( wfBaseName( $name ) != $name )
- return false;
- elseif( wfIsWindows() && ( in_string( '*', $name ) || in_string( '?', $name ) ) )
- return false;
- else
- return true;
-}
if( $nt->getNamespace() != NS_IMAGE ) {
$errors[] = array('imagenocrossnamespace');
}
- if( !wfIsValidFileName( $nt ) ) {
- $errors[] = array('imageinvalidfilename');
- }
if( !File::checkExtensionCompatibility( $file, $nt->getDbKey() ) ) {
$errors[] = array('imagetypemismatch');
}
* out of it. We'll strip some silently that Title would die on.
*/
$filtered = preg_replace ( "/[^".Title::legalChars()."]|:/", '-', $filtered );
- if( wfIsWindows() )
- $filtered = preg_replace ( "/[*?]/", '-', $filtered );
$nt = Title::makeTitleSafe( NS_IMAGE, $filtered );
if( is_null( $nt ) ) {
$resultDetails = array( 'filtered' => $filtered );
cannot move pages from and into that namespace.',
'imagenocrossnamespace' => 'Cannot move file to non-file namespace',
'imagetypemismatch' => 'The new file extension does not match its type',
-'imageinvalidfilename' => 'Target image file name is invalid',
# Export
'export' => 'Export pages',
'immobile_namespace',
'imagenocrossnamespace',
'imagetypemismatch',
- 'imageinvalidfilename',
),
'export' => array(
'export',