forked from chromium/chromium
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* add file_util_posix.cc to mac port (NOTE: untested on linux) * a bit of cleanup in path_service.cc related to this * a few more cleanups to file_util.cc to make it build for mac git-svn-id: svn://svn.chromium.org/chrome/trunk/src@589 0039d316-1c4b-4281-b951-d872f2087c98
- Loading branch information
erikkay@google.com
committed
Aug 8, 2008
1 parent
764be58
commit 5af2edb
Showing
10 changed files
with
644 additions
and
71 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
// Copyright 2008, Google Inc. | ||
// All rights reserved. | ||
// | ||
// Redistribution and use in source and binary forms, with or without | ||
// modification, are permitted provided that the following conditions are | ||
// met: | ||
// | ||
// * Redistributions of source code must retain the above copyright | ||
// notice, this list of conditions and the following disclaimer. | ||
// * Redistributions in binary form must reproduce the above | ||
// copyright notice, this list of conditions and the following disclaimer | ||
// in the documentation and/or other materials provided with the | ||
// distribution. | ||
// * Neither the name of Google Inc. nor the names of its | ||
// contributors may be used to endorse or promote products derived from | ||
// this software without specific prior written permission. | ||
// | ||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
|
||
#ifndef BASE_BASE_PATHS_MAC_H_ | ||
#define BASE_BASE_PATHS_MAC_H_ | ||
|
||
// This file declares Mac-specific path keys for the base module. | ||
// These can be used with the PathService to access various special | ||
// directories and files. | ||
|
||
namespace base { | ||
|
||
enum { | ||
PATH_MAC_START = 200, | ||
|
||
FILE_EXE, // path and filename of the current executable | ||
FILE_MODULE, // path and filename of the module containing the code for the | ||
// PathService (which could differ from FILE_EXE if the | ||
// PathService were compiled into a DLL, for example) | ||
DIR_APP_DATA, // Application Data directory under the user profile. | ||
DIR_LOCAL_APP_DATA, // "Local Settings\Application Data" directory under the | ||
// user profile. | ||
PATH_MAC_END | ||
}; | ||
|
||
} // namespace base | ||
|
||
#endif // BASE_BASE_PATHS_MAC_H_ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
// Copyright 2008, Google Inc. | ||
// All rights reserved. | ||
// | ||
// Redistribution and use in source and binary forms, with or without | ||
// modification, are permitted provided that the following conditions are | ||
// met: | ||
// | ||
// * Redistributions of source code must retain the above copyright | ||
// notice, this list of conditions and the following disclaimer. | ||
// * Redistributions in binary form must reproduce the above | ||
// copyright notice, this list of conditions and the following disclaimer | ||
// in the documentation and/or other materials provided with the | ||
// distribution. | ||
// * Neither the name of Google Inc. nor the names of its | ||
// contributors may be used to endorse or promote products derived from | ||
// this software without specific prior written permission. | ||
// | ||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
// Copied from base/basictypes.h with some modifications | ||
|
||
#include "base/base_paths_mac.h" | ||
|
||
#import <Cocoa/Cocoa.h> | ||
|
||
#include "base/logging.h" | ||
#include "base/string_util.h" | ||
|
||
namespace base { | ||
|
||
bool PathProviderMac(int key, std::wstring* result) { | ||
std::wstring cur; | ||
switch (key) { | ||
case base::FILE_EXE: | ||
case base::FILE_MODULE: { | ||
NSString* path = [[NSBundle mainBundle] executablePath]; | ||
cur = reinterpret_cast<const wchar_t*>( | ||
[path cStringUsingEncoding:NSUTF32StringEncoding]); | ||
break; | ||
} | ||
case base::DIR_APP_DATA: | ||
case base::DIR_LOCAL_APP_DATA: { | ||
// TODO(erikkay): maybe we should remove one of these for mac? The local | ||
// vs. roaming distinction is fairly Windows-specific. | ||
NSArray* dirs = NSSearchPathForDirectoriesInDomains( | ||
NSApplicationSupportDirectory, NSUserDomainMask, YES); | ||
if (!dirs || [dirs count] == 0) | ||
return false; | ||
DCHECK([dirs count] == 1); | ||
NSString* tail = [[NSString alloc] initWithCString:"Google/Chrome"]; | ||
NSString* path = [[dirs lastObject] stringByAppendingPathComponent:tail]; | ||
cur = reinterpret_cast<const wchar_t*>( | ||
[path cStringUsingEncoding:NSUTF32StringEncoding]); | ||
break; | ||
} | ||
default: | ||
return false; | ||
} | ||
|
||
result->swap(cur); | ||
return true; | ||
} | ||
|
||
} // namespace base |
Oops, something went wrong.