Bug 54008 - nsIFile::MoveTo doesn't work according to API on Mac.
This commit is contained in:
@@ -1393,21 +1393,31 @@ nsresult nsLocalFile::MoveCopy( nsIFile* newParentDir, const char* newName, PRBo
|
||||
nsresult rv = ResolveAndStat( PR_TRUE );
|
||||
if ( NS_FAILED( rv ) )
|
||||
return rv;
|
||||
|
||||
OSErr macErr;
|
||||
FSSpec srcSpec = mResolvedSpec;
|
||||
Str255 newPascalName;
|
||||
|
||||
// If newParentDir == nsnull, it's a simple rename
|
||||
if ( !newParentDir )
|
||||
{
|
||||
NS_ENSURE_ARG( newName );
|
||||
myPLstrncpy( newPascalName, newName, 255 );
|
||||
macErr = ::FSpRename( &srcSpec, newPascalName );
|
||||
return MacErrorMapper( macErr );
|
||||
}
|
||||
|
||||
nsCOMPtr<nsILocalFileMac> destDir( do_QueryInterface( newParentDir ));
|
||||
FSSpec destSpec;
|
||||
|
||||
PRBool isDirectory;
|
||||
rv = newParentDir->IsDirectory( &isDirectory );
|
||||
if ( NS_FAILED( rv ) )
|
||||
return rv;
|
||||
FSSpec srcSpec;
|
||||
FSSpec destSpec;
|
||||
srcSpec = mResolvedSpec;
|
||||
rv = destDir->GetResolvedFSSpec( &destSpec );
|
||||
if ( NS_FAILED( rv ) )
|
||||
return rv;
|
||||
|
||||
OSErr macErr;
|
||||
Str255 newPascalName;
|
||||
if ( newName )
|
||||
myPLstrncpy( newPascalName, newName, 255);
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user