Revert r37443 for the moment:
authorBrion Vibber <brion@users.mediawiki.org>
Thu, 10 Jul 2008 04:47:25 +0000 (04:47 +0000)
committerBrion Vibber <brion@users.mediawiki.org>
Thu, 10 Jul 2008 04:47:25 +0000 (04:47 +0000)
* 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

RELEASE-NOTES
includes/GlobalFunctions.php
includes/Title.php
includes/specials/SpecialUpload.php
languages/messages/MessagesEn.php
maintenance/language/messages.inc

index a03dbb6..0f6dc37 100644 (file)
@@ -431,7 +431,6 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
   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 ===
 
index 2f1b60b..b7ac5d1 100644 (file)
@@ -862,10 +862,7 @@ function wfMerge( $old, $mine, $yours, &$result ){
  */
 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 {
@@ -2367,24 +2364,3 @@ function wfGenerateToken( $salt = '' ) {
 
        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;
-}
index f481311..972d3fc 100644 (file)
@@ -2443,9 +2443,6 @@ class Title {
                                if( $nt->getNamespace() != NS_IMAGE ) {
                                        $errors[] = array('imagenocrossnamespace');
                                }
-                               if( !wfIsValidFileName( $nt ) ) {
-                                       $errors[] = array('imageinvalidfilename');
-                               }
                                if( !File::checkExtensionCompatibility( $file, $nt->getDbKey() ) ) {
                                        $errors[] = array('imagetypemismatch');
                                }
index 5567c8d..2b3873a 100644 (file)
@@ -427,8 +427,6 @@ class UploadForm {
                 * 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 );
index 8c9ebf0..359da30 100644 (file)
@@ -2485,7 +2485,6 @@ cannot move a page over itself.',
 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',
index ba68f69..6091345 100644 (file)
@@ -1692,7 +1692,6 @@ $wgMessageStructure = array(
                'immobile_namespace',
                'imagenocrossnamespace',
                'imagetypemismatch',
-               'imageinvalidfilename',
        ),
        'export' => array(
                'export',