Index: webrtc/base/macutils.cc |
diff --git a/webrtc/base/macutils.cc b/webrtc/base/macutils.cc |
deleted file mode 100644 |
index 6e90722cf2fef34e2ac4f82f7b4ff75c5d1599e7..0000000000000000000000000000000000000000 |
--- a/webrtc/base/macutils.cc |
+++ /dev/null |
@@ -1,125 +0,0 @@ |
-/* |
- * Copyright 2007 The WebRTC Project Authors. All rights reserved. |
- * |
- * Use of this source code is governed by a BSD-style license |
- * that can be found in the LICENSE file in the root of the source |
- * tree. An additional intellectual property rights grant can be found |
- * in the file PATENTS. All contributing project authors may |
- * be found in the AUTHORS file in the root of the source tree. |
- */ |
- |
-#include <cstring> |
-#include <memory> |
-#include <sstream> |
- |
-#include <sys/utsname.h> |
- |
-#include "webrtc/base/checks.h" |
-#include "webrtc/base/logging.h" |
-#include "webrtc/base/macutils.h" |
-#include "webrtc/base/stringutils.h" |
- |
-namespace rtc { |
- |
-/////////////////////////////////////////////////////////////////////////////// |
- |
-bool ToUtf8(const CFStringRef str16, std::string* str8) { |
- if ((nullptr == str16) || (nullptr == str8)) { |
- return false; |
- } |
- size_t maxlen = CFStringGetMaximumSizeForEncoding(CFStringGetLength(str16), |
- kCFStringEncodingUTF8) + 1; |
- std::unique_ptr<char[]> buffer(new char[maxlen]); |
- if (!buffer || !CFStringGetCString(str16, buffer.get(), maxlen, |
- kCFStringEncodingUTF8)) { |
- return false; |
- } |
- str8->assign(buffer.get()); |
- return true; |
-} |
- |
-bool ToUtf16(const std::string& str8, CFStringRef* str16) { |
- if (nullptr == str16) { |
- return false; |
- } |
- *str16 = CFStringCreateWithBytes(kCFAllocatorDefault, |
- reinterpret_cast<const UInt8*>(str8.data()), |
- str8.length(), kCFStringEncodingUTF8, |
- false); |
- return nullptr != *str16; |
-} |
- |
-void DecodeFourChar(UInt32 fc, std::string* out) { |
- std::stringstream ss; |
- ss << '\''; |
- bool printable = true; |
- for (int i = 3; i >= 0; --i) { |
- char ch = (fc >> (8 * i)) & 0xFF; |
- if (isprint(static_cast<unsigned char>(ch))) { |
- ss << ch; |
- } else { |
- printable = false; |
- break; |
- } |
- } |
- if (printable) { |
- ss << '\''; |
- } else { |
- ss.str(""); |
- ss << "0x" << std::hex << fc; |
- } |
- out->append(ss.str()); |
-} |
- |
-static bool GetOSVersion(int* major, int* minor, int* bugfix) { |
- RTC_DCHECK(major && minor && bugfix); |
- struct utsname uname_info; |
- if (uname(&uname_info) != 0) |
- return false; |
- |
- if (strcmp(uname_info.sysname, "Darwin") != 0) |
- return false; |
- *major = 10; |
- |
- // The market version of macOS is always 4 lower than the internal version. |
- int minor_version = atoi(uname_info.release); |
- RTC_CHECK(minor_version >= 6); |
- *minor = minor_version - 4; |
- |
- const char* dot = ::strchr(uname_info.release, '.'); |
- if (!dot) |
- return false; |
- *bugfix = atoi(dot + 1); |
- return true; |
-} |
- |
-MacOSVersionName GetOSVersionName() { |
- int major = 0, minor = 0, bugfix = 0; |
- if (!GetOSVersion(&major, &minor, &bugfix)) { |
- return kMacOSUnknown; |
- } |
- if (major > 10) { |
- return kMacOSNewer; |
- } |
- if ((major < 10) || (minor < 3)) { |
- return kMacOSOlder; |
- } |
- switch (minor) { |
- case 3: |
- return kMacOSPanther; |
- case 4: |
- return kMacOSTiger; |
- case 5: |
- return kMacOSLeopard; |
- case 6: |
- return kMacOSSnowLeopard; |
- case 7: |
- return kMacOSLion; |
- case 8: |
- return kMacOSMountainLion; |
- case 9: |
- return kMacOSMavericks; |
- } |
- return kMacOSNewer; |
-} |
-} // namespace rtc |