diff --git a/xpcom/io/MANIFEST b/xpcom/io/MANIFEST index d714ce3609aa..5ba3afd39e70 100644 --- a/xpcom/io/MANIFEST +++ b/xpcom/io/MANIFEST @@ -4,7 +4,6 @@ nsFileSpec.h nsFileSpecStreaming.h nsFileStream.h nsIFileStream.h -nsIFileUtils.h nsIUnicharInputStream.h nsSpecialSystemDirectory.h nsStorageStream.h diff --git a/xpcom/io/Makefile.in b/xpcom/io/Makefile.in index c263e37523c9..d62e7ac20ac4 100644 --- a/xpcom/io/Makefile.in +++ b/xpcom/io/Makefile.in @@ -85,7 +85,6 @@ EXPORTS = \ nsFileSpecStreaming.h \ nsFileStream.h \ nsIFileStream.h \ - nsIFileUtils.h \ nsIUnicharInputStream.h \ nsLinebreakConverter.h \ nsLocalFile.h \ diff --git a/xpcom/io/makefile.win b/xpcom/io/makefile.win index d24b6e0ed735..91214fe1ab1d 100644 --- a/xpcom/io/makefile.win +++ b/xpcom/io/makefile.win @@ -39,7 +39,6 @@ EXPORTS = \ nsFileSpecStreaming.h \ nsFileStream.h \ nsIFileStream.h \ - nsIFileUtils.h \ nsIUnicharInputStream.h \ nsLinebreakConverter.h \ nsScriptableInputStream.h \ diff --git a/xpcom/io/nsIFile.idl b/xpcom/io/nsIFile.idl index dc47d0621002..02afedbbe5ab 100644 --- a/xpcom/io/nsIFile.idl +++ b/xpcom/io/nsIFile.idl @@ -1,42 +1,27 @@ -/* Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: NPL 1.1/GPL 2.0/LGPL 2.1 +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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/ * - * 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. * - * 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, + * released March 31, 1998. * - * The Original Code is mozilla.org 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. + * The Initial Developer of the Original Code is Netscape Communications + * Corporation. Portions created by Netscape are + * Copyright (C) 1998-1999 Netscape Communications Corporation. All + * Rights Reserved. * * Contributor(s): * Doug Turner * Christopher Blizzard - * - * 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 ***** */ - + */ /** @@ -44,7 +29,7 @@ * Strings are not such a way. If you grew up on windows or unix, you * may think they are. Welcome to reality. * - * @status FROZEN + * @status UNDER_REVIEW */ #include "nsISupports.idl" @@ -317,7 +302,32 @@ interface nsIFile : nsISupports %{C++ #define NS_FILE_CONTRACTID "@mozilla.org/file;1" #define NS_FILE_CLASSNAME "File Specification" -#ifndef MOZILLA_STRICT_API -#include "nsIFileUtils.h" -#endif + +//////////////////////////////////////////////////////////////////////////////// +// Special Directories + +#include "nsIServiceManager.h" +#include "nsIProperties.h" +#include "nsCOMPtr.h" + +#define NS_DIRECTORY_SERVICE_CID {0xf00152d0,0xb40b,0x11d3,{0x8c, 0x9c, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74}} + +inline nsresult +NS_GetSpecialDirectory(const char* specialDirName, nsIFile* *result) +{ + nsresult rv; + static NS_DEFINE_CID(kDirectoryServiceCID, NS_DIRECTORY_SERVICE_CID); + nsCOMPtr serv(do_GetService(kDirectoryServiceCID, &rv)); + if (NS_FAILED(rv)) return rv; + + nsCOMPtr dir; + rv = serv->Get(specialDirName, NS_GET_IID(nsIFile), getter_AddRefs(dir)); + if (NS_FAILED(rv)) return rv; + + *result = NS_STATIC_CAST(nsIFile*, NS_STATIC_CAST(nsISupports*, dir)); + if (*result) + NS_ADDREF(*result); + return NS_OK; +} + %}