diff options
author | dmaclach@chromium.org <dmaclach@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-20 18:40:42 +0000 |
---|---|---|
committer | dmaclach@chromium.org <dmaclach@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-20 18:40:42 +0000 |
commit | 7c1e303fcf556aa07816cc702d5ff06f0d0def12 (patch) | |
tree | e7d23fa80217a3b23b09a1d3f6199d3832a47f1b /base/file_version_info_mac.mm | |
parent | 3baebc3b65f670293c01e9935c7d13770ca89c21 (diff) | |
download | chromium_src-7c1e303fcf556aa07816cc702d5ff06f0d0def12.zip chromium_src-7c1e303fcf556aa07816cc702d5ff06f0d0def12.tar.gz chromium_src-7c1e303fcf556aa07816cc702d5ff06f0d0def12.tar.bz2 |
file_version_info was not finding Mac values correctly. Got it now looking in the appropriate bundle.
BUG=NONE
TEST=BUILD
Review URL: http://codereview.chromium.org/5815001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69728 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/file_version_info_mac.mm')
-rw-r--r-- | base/file_version_info_mac.mm | 62 |
1 files changed, 18 insertions, 44 deletions
diff --git a/base/file_version_info_mac.mm b/base/file_version_info_mac.mm index 57be79a..6c6dd22 100644 --- a/base/file_version_info_mac.mm +++ b/base/file_version_info_mac.mm @@ -4,43 +4,27 @@ #include "base/file_version_info_mac.h" -#import <Cocoa/Cocoa.h> +#import <Foundation/Foundation.h> -#include "base/basictypes.h" #include "base/file_path.h" -#include "base/string_util.h" -#include "base/utf_string_conversions.h" +#include "base/logging.h" +#include "base/sys_string_conversions.h" +#include "base/mac_util.h" FileVersionInfoMac::FileVersionInfoMac(NSBundle *bundle) : bundle_(bundle) { - [bundle_ retain]; -} - -FileVersionInfoMac::~FileVersionInfoMac() { - [bundle_ release]; } // static FileVersionInfo* FileVersionInfo::CreateFileVersionInfoForCurrentModule() { - // TODO(erikkay): this should really use bundleForClass, but we don't have - // a class to hang onto yet. - NSBundle* bundle = [NSBundle mainBundle]; - return new FileVersionInfoMac(bundle); -} - -// static -FileVersionInfo* FileVersionInfo::CreateFileVersionInfo( - const std::wstring& file_path) { - NSString* path = [NSString stringWithCString: - reinterpret_cast<const char*>(file_path.c_str()) - encoding:NSUTF32StringEncoding]; - return new FileVersionInfoMac([NSBundle bundleWithPath:path]); + return CreateFileVersionInfo(mac_util::MainAppBundlePath()); } // static FileVersionInfo* FileVersionInfo::CreateFileVersionInfo( const FilePath& file_path) { - NSString* path = [NSString stringWithUTF8String:file_path.value().c_str()]; - return new FileVersionInfoMac([NSBundle bundleWithPath:path]); + NSString* path = base::SysUTF8ToNSString(file_path.value()); + NSBundle* bundle = [NSBundle bundleWithPath:path]; + return new FileVersionInfoMac(bundle); } std::wstring FileVersionInfoMac::company_name() { @@ -56,11 +40,11 @@ std::wstring FileVersionInfoMac::internal_name() { } std::wstring FileVersionInfoMac::product_name() { - return GetStringValue(L"CFBundleName"); + return GetWStringValue(kCFBundleNameKey); } std::wstring FileVersionInfoMac::product_short_name() { - return GetStringValue(L"CFBundleName"); + return GetWStringValue(kCFBundleNameKey); } std::wstring FileVersionInfoMac::comments() { @@ -68,11 +52,11 @@ std::wstring FileVersionInfoMac::comments() { } std::wstring FileVersionInfoMac::legal_copyright() { - return GetStringValue(L"CFBundleGetInfoString"); + return GetWStringValue(CFSTR("CFBundleGetInfoString")); } std::wstring FileVersionInfoMac::product_version() { - return GetStringValue(L"CFBundleShortVersionString"); + return GetWStringValue(CFSTR("CFBundleShortVersionString")); } std::wstring FileVersionInfoMac::file_description() { @@ -92,7 +76,7 @@ std::wstring FileVersionInfoMac::file_version() { } std::wstring FileVersionInfoMac::original_filename() { - return GetStringValue(L"CFBundleName"); + return GetWStringValue(kCFBundleNameKey); } std::wstring FileVersionInfoMac::special_build() { @@ -100,7 +84,7 @@ std::wstring FileVersionInfoMac::special_build() { } std::wstring FileVersionInfoMac::last_change() { - return GetStringValue(L"SVNRevision"); + return GetWStringValue(CFSTR("SVNRevision")); } bool FileVersionInfoMac::is_official_build() { @@ -111,23 +95,13 @@ bool FileVersionInfoMac::is_official_build() { #endif } -bool FileVersionInfoMac::GetValue(const wchar_t* name, - std::wstring* value_str) { +std::wstring FileVersionInfoMac::GetWStringValue(CFStringRef name) { if (bundle_) { - NSString* value = [bundle_ objectForInfoDictionaryKey: - [NSString stringWithUTF8String:WideToUTF8(name).c_str()]]; + NSString *ns_name = mac_util::CFToNSCast(name); + NSString* value = [bundle_ objectForInfoDictionaryKey:ns_name]; if (value) { - *value_str = reinterpret_cast<const wchar_t*>( - [value cStringUsingEncoding:NSUTF32StringEncoding]); - return true; + return base::SysNSStringToWide(value); } } - return false; -} - -std::wstring FileVersionInfoMac::GetStringValue(const wchar_t* name) { - std::wstring str; - if (GetValue(name, &str)) - return str; return std::wstring(); } |