From c44627b8f27cd992cbcb4a764c07e4115d2d1766 Mon Sep 17 00:00:00 2001 From: "dwitte%stanford.edu" Date: Mon, 19 Jul 2004 23:43:35 +0000 Subject: [PATCH] Removing nsSafeSaveFile. b=250092, r=biesi, sr=darin git-svn-id: svn://10.0.0.236/trunk@159518 18797224-902f-48f8-a5cc-f745e15eee43 --- .../modules/libpref/src/nsSafeSaveFile.cpp | 129 ------------------ mozilla/modules/libpref/src/nsSafeSaveFile.h | 55 -------- 2 files changed, 184 deletions(-) delete mode 100644 mozilla/modules/libpref/src/nsSafeSaveFile.cpp delete mode 100644 mozilla/modules/libpref/src/nsSafeSaveFile.h diff --git a/mozilla/modules/libpref/src/nsSafeSaveFile.cpp b/mozilla/modules/libpref/src/nsSafeSaveFile.cpp deleted file mode 100644 index 2824dbe5a65..00000000000 --- a/mozilla/modules/libpref/src/nsSafeSaveFile.cpp +++ /dev/null @@ -1,129 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: NPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Netscape Public License - * Version 1.1 (the "License"); you may not use this file except in - * compliance with the License. You may obtain a copy of the License at - * http://www.mozilla.org/NPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Brian Nesse - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the NPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the NPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#include "nsSafeSaveFile.h" - -nsresult nsSafeSaveFile::Init(nsIFile *aTargetFile, nsIFile **aTempFile) -{ - NS_ASSERTION(aTargetFile, "null pointer"); - NS_ASSERTION(aTempFile, "null pointer"); - *aTempFile = nsnull; - - nsresult rv; - - rv = aTargetFile->Exists(&mTargetFileExists); - if (NS_FAILED(rv)) { - NS_ERROR("Can't tell if target file exists"); - mTargetFileExists = PR_TRUE; // Safer to assume it exists - we just do more work. - } - - nsCOMPtr tempResult; - rv = aTargetFile->Clone(getter_AddRefs(tempResult)); - if (NS_SUCCEEDED(rv) && mTargetFileExists) { - PRUint32 perm; - if (NS_FAILED(aTargetFile->GetPermissions(&perm))) { - NS_ERROR("Can't get permissions of target file"); - perm = 0700; - } - rv = tempResult->CreateUnique(nsIFile::NORMAL_FILE_TYPE, perm); - } - if (NS_SUCCEEDED(rv)) { - NS_ADDREF(*aTempFile = tempResult); - mTargetFile = aTargetFile; - mTempFile = tempResult; - } - return rv; -} - -nsresult nsSafeSaveFile::OnSaveFinished(PRBool aSaveSucceeded, PRBool aBackupTarget) -{ - nsresult rv = NS_OK; - - if (aSaveSucceeded) { - NS_ENSURE_STATE(mTargetFile && mTempFile); - - if (!mTargetFileExists) { - // If the target file did not exist when we were initialized, then the - // temp file we gave out was actually a reference to the target file. - // since we succeeded in writing to the temp file (and hence succeeded - // in writing to the target file), there is nothing more to do. -#ifdef DEBUG - PRBool equal; - if (NS_FAILED(mTargetFile->Equals(mTempFile, &equal)) || !equal) - NS_ERROR("mTempFile not equal to mTargetFile"); -#endif - return NS_OK; - } - - nsCAutoString targetFilename; - rv = mTargetFile->GetNativeLeafName(targetFilename); - - if (aBackupTarget) { - // Create a copy of the target before we overwrite it - nsCAutoString backupFilename(targetFilename); - PRInt32 pos = backupFilename.RFindChar('.'); - if (pos != -1) - backupFilename.Truncate(pos); - backupFilename.AppendLiteral(".bak"); - - // Find a unique name for the backup by using CreateUnique - nsCOMPtr uniqueFile; - rv = mTargetFile->Clone(getter_AddRefs(uniqueFile)); - if (NS_SUCCEEDED(rv)) { - rv = uniqueFile->SetNativeLeafName(backupFilename); - if (NS_SUCCEEDED(rv)) { - rv = uniqueFile->CreateUnique(nsIFile::NORMAL_FILE_TYPE, 0600); - if (NS_SUCCEEDED(rv)) { - uniqueFile->GetNativeLeafName(backupFilename); - uniqueFile->Remove(PR_FALSE); - // Finally, move the target to the backup - mTargetFile->MoveToNative(nsnull, backupFilename); - } - } - } - } - - if (NS_SUCCEEDED(rv)) - rv = mTempFile->MoveToNative(nsnull, targetFilename); // This will replace target - } - else { - NS_ENSURE_STATE(mTempFile); - rv = mTempFile->Remove(PR_FALSE); - } - return rv; -} diff --git a/mozilla/modules/libpref/src/nsSafeSaveFile.h b/mozilla/modules/libpref/src/nsSafeSaveFile.h deleted file mode 100644 index f10e7d22efa..00000000000 --- a/mozilla/modules/libpref/src/nsSafeSaveFile.h +++ /dev/null @@ -1,55 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: NPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Netscape Public License - * Version 1.1 (the "License"); you may not use this file except in - * compliance with the License. You may obtain a copy of the License at - * http://www.mozilla.org/NPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Mozilla Communicator client code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Brian Nesse - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the NPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the NPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#include "nsIFile.h" -#include "nsString.h" - -class nsSafeSaveFile { - public: - nsSafeSaveFile() {} - ~nsSafeSaveFile() {} - - nsresult Init(nsIFile *aTargetFile, nsIFile **aTempFile); - nsresult OnSaveFinished(PRBool aSaveSucceeded, PRBool aBackupTarget); - - private: - nsCOMPtr mTargetFile; - PRBool mTargetFileExists; - nsCOMPtr mTempFile; -}; -