mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 19:35:51 +00:00
fixing bug #21085. xpinstall now quits gracefully when destination file already exists in a file move and file copy operation. r=cathleen
This commit is contained in:
parent
5a261c8ad9
commit
06e6eeef21
@ -640,6 +640,16 @@ nsInstallFileOpItem::NativeFileOpFileCopyPrepare()
|
||||
return nsInstall::DOES_NOT_EXIST;
|
||||
else if(mTarget->IsFile())
|
||||
return nsInstall::IS_FILE;
|
||||
else
|
||||
{
|
||||
nsFileSpec tempVar;
|
||||
|
||||
tempVar = *mTarget;
|
||||
tempVar += mSrc->GetLeafName();
|
||||
|
||||
if(tempVar.Exists())
|
||||
return nsInstall::ALREADY_EXISTS;
|
||||
}
|
||||
|
||||
return nsInstall::SUCCESS;
|
||||
}
|
||||
@ -749,8 +759,20 @@ nsInstallFileOpItem::NativeFileOpFileMovePrepare()
|
||||
{
|
||||
if(!mTarget->Exists())
|
||||
return nsInstall::DOES_NOT_EXIST;
|
||||
else if(mTarget->IsFile())
|
||||
return nsInstall::IS_FILE;
|
||||
else
|
||||
return NativeFileOpFileCopyPrepare();
|
||||
{
|
||||
nsFileSpec tempVar;
|
||||
|
||||
tempVar = *mTarget;
|
||||
tempVar += mSrc->GetLeafName();
|
||||
|
||||
if(tempVar.Exists())
|
||||
return nsInstall::ALREADY_EXISTS;
|
||||
else
|
||||
return NativeFileOpFileCopyPrepare();
|
||||
}
|
||||
}
|
||||
|
||||
return nsInstall::SOURCE_DOES_NOT_EXIST;
|
||||
|
Loading…
Reference in New Issue
Block a user