+
+ if( file_exists( $filename ) ) {
+ if( filesize( $filename ) == 0 ) {
+ // Some horrible error corrupted stuff :(
+ @unlink( $filename );
+ } else {
+ return true;
+ }
+ }
+
+ if( file_exists( $wgMathDirectory . "/{$this->hash}.png" ) ) {
+ $hashpath = $this->_getHashPath();
+
+ if( !file_exists( $hashpath ) ) {
+ if( !@wfMkdirParents( $hashpath, 0755 ) ) {
+ return false;
+ }
+ } elseif( !is_dir( $hashpath ) || !is_writable( $hashpath ) ) {
+ return false;
+ }
+ if ( function_exists( "link" ) ) {
+ return link ( $wgMathDirectory . "/{$this->hash}.png",
+ $hashpath . "/{$this->hash}.png" );
+ } else {
+ return rename ( $wgMathDirectory . "/{$this->hash}.png",
+ $hashpath . "/{$this->hash}.png" );
+ }
+ }
+