From 619882ef78c432d2bba03cfee6a3ea122927bacb Mon Sep 17 00:00:00 2001 From: Madhura Jayaraman Date: Thu, 16 Nov 2023 09:52:12 -0800 Subject: [PATCH] change --- base/strings/string_util_starboard.h | 8 ----- cobalt/browser/application.cc | 2 +- cobalt/csp/source_list.cc | 6 ++-- cobalt/debug/console/command_manager.cc | 6 ---- cobalt/dom/document.cc | 24 +++++++------- cobalt/dom/on_screen_keyboard.cc | 8 ++--- cobalt/loader/cors_preflight.cc | 31 +------------------ cobalt/loader/cors_preflight_cache.cc | 7 ----- cobalt/loader/cors_preflight_cache.h | 4 --- cobalt/media/sandbox/format_guesstimator.cc | 2 +- .../skia/skia/src/ports/SkFontMgr_cobalt.cc | 12 ------- .../skia/src/ports/SkFontStyleSet_cobalt.cc | 22 ------------- .../nplb/string_compare_no_case_n_test.cc | 2 ++ starboard/nplb/string_compare_no_case_test.cc | 3 +- starboard/nplb/string_duplicate_test.cc | 2 ++ starboard/shared/starboard/media/mime_type.cc | 6 ---- starboard/string.h | 2 +- .../chromium/media/base/starboard_utils.cc | 2 +- .../chromium/media/filters/chunk_demuxer.cc | 2 +- .../include/gtest/internal/gtest-port.h | 2 ++ 20 files changed, 31 insertions(+), 122 deletions(-) diff --git a/base/strings/string_util_starboard.h b/base/strings/string_util_starboard.h index 6bb3f65b7e29..c16239526066 100644 --- a/base/strings/string_util_starboard.h +++ b/base/strings/string_util_starboard.h @@ -25,14 +25,6 @@ namespace base { -inline int strcasecmp(const char* string1, const char* string2) { - return SbStringCompareNoCase(string1, string2); -} - -inline int strncasecmp(const char* string1, const char* string2, size_t count) { - return SbStringCompareNoCaseN(string1, string2, count); -} - #if defined(vsnprintf) #undef vsnprintf #endif diff --git a/cobalt/browser/application.cc b/cobalt/browser/application.cc index 7c33e71a19c5..1f73882376c2 100644 --- a/cobalt/browser/application.cc +++ b/cobalt/browser/application.cc @@ -116,7 +116,7 @@ const int64_t kWatchdogTimeInterval = 10000000; const int64_t kWatchdogTimeWait = 2000000; bool IsStringNone(const std::string& str) { - return !base::strcasecmp(str.c_str(), "none"); + return !strcasecmp(str.c_str(), "none"); } #if defined(ENABLE_WEBDRIVER) || defined(ENABLE_DEBUGGER) diff --git a/cobalt/csp/source_list.cc b/cobalt/csp/source_list.cc index 902ba39e2d72..6133e12f0373 100644 --- a/cobalt/csp/source_list.cc +++ b/cobalt/csp/source_list.cc @@ -35,7 +35,7 @@ bool IsSourceListNone(const char* begin, const char* end) { const char* position = begin; SkipWhile(&position, end); size_t len = static_cast(position - begin); - if (base::strncasecmp("'none'", begin, len) != 0) { + if (strncasecmp("'none'", begin, len) != 0) { return false; } @@ -400,7 +400,7 @@ bool SourceList::ParseNonce(const char* begin, const char* end, const char* prefix = "'nonce-"; if (nonce_length <= strlen(prefix) || - base::strncasecmp(prefix, begin, strlen(prefix)) != 0) { + strncasecmp(prefix, begin, strlen(prefix)) != 0) { return true; } @@ -433,7 +433,7 @@ bool SourceList::ParseHash(const char* begin, const char* end, for (size_t i = 0; i < arraysize(kSupportedPrefixes); ++i) { const HashPrefix& algorithm = kSupportedPrefixes[i]; if (hash_length > strlen(algorithm.prefix) && - base::strncasecmp(algorithm.prefix, begin, strlen(algorithm.prefix)) == + strncasecmp(algorithm.prefix, begin, strlen(algorithm.prefix)) == 0) { prefix = algorithm.prefix; *hash_algorithm = algorithm.type; diff --git a/cobalt/debug/console/command_manager.cc b/cobalt/debug/console/command_manager.cc index f87ea66e2c35..99a9420c5990 100644 --- a/cobalt/debug/console/command_manager.cc +++ b/cobalt/debug/console/command_manager.cc @@ -50,15 +50,9 @@ ConsoleCommandManager::CommandHandler::~CommandHandler() { // static bool ConsoleCommandManager::CommandHandler::IsOnEnableOrTrue( const std::string& message) { - #if SB_API_VERSION < 16 - return (SbStringCompareNoCase("on", message.c_str()) == 0) || - (SbStringCompareNoCase("enable", message.c_str()) == 0) || - (SbStringCompareNoCase("true", message.c_str()) == 0); - #else return (strcasecmp("on", message.c_str()) == 0) || (strcasecmp("enable", message.c_str()) == 0) || (strcasecmp("true", message.c_str()) == 0); - #endif // SB_API_VERSION < 16 } diff --git a/cobalt/dom/document.cc b/cobalt/dom/document.cc index e405cd9de197..6fb63cdc46cf 100644 --- a/cobalt/dom/document.cc +++ b/cobalt/dom/document.cc @@ -235,26 +235,26 @@ scoped_refptr Document::CreateEvent( script::ExceptionState* exception_state) { // https://www.w3.org/TR/dom/#dom-document-createevent // The match of interface name is case-insensitive. - if (base::strcasecmp(interface_name.c_str(), "event") == 0 || - base::strcasecmp(interface_name.c_str(), "events") == 0 || - base::strcasecmp(interface_name.c_str(), "htmlevents") == 0) { + if (strcasecmp(interface_name.c_str(), "event") == 0 || + strcasecmp(interface_name.c_str(), "events") == 0 || + strcasecmp(interface_name.c_str(), "htmlevents") == 0) { return new web::Event(web::Event::Uninitialized); - } else if (base::strcasecmp(interface_name.c_str(), "keyboardevent") == 0 || - base::strcasecmp(interface_name.c_str(), "keyevents") == 0) { + } else if (strcasecmp(interface_name.c_str(), "keyboardevent") == 0 || + strcasecmp(interface_name.c_str(), "keyevents") == 0) { return new KeyboardEvent(web::Event::Uninitialized); - } else if (base::strcasecmp(interface_name.c_str(), "messageevent") == 0) { + } else if (strcasecmp(interface_name.c_str(), "messageevent") == 0) { return new web::MessageEvent(web::Event::Uninitialized); - } else if (base::strcasecmp(interface_name.c_str(), "mouseevent") == 0 || - base::strcasecmp(interface_name.c_str(), "mouseevents") == 0) { + } else if (strcasecmp(interface_name.c_str(), "mouseevent") == 0 || + strcasecmp(interface_name.c_str(), "mouseevents") == 0) { return new MouseEvent(web::Event::Uninitialized); - } else if (base::strcasecmp(interface_name.c_str(), "uievent") == 0 || - base::strcasecmp(interface_name.c_str(), "uievents") == 0) { + } else if (strcasecmp(interface_name.c_str(), "uievent") == 0 || + strcasecmp(interface_name.c_str(), "uievents") == 0) { return new UIEvent(web::Event::Uninitialized); - } else if (base::strcasecmp(interface_name.c_str(), "wheelevent") == 0) { + } else if (strcasecmp(interface_name.c_str(), "wheelevent") == 0) { // This not in the spec, but commonly implemented to create a WheelEvent. // https://www.w3.org/TR/2016/WD-uievents-20160804/#interface-wheelevent return new WheelEvent(web::Event::Uninitialized); - } else if (base::strcasecmp(interface_name.c_str(), "customevent") == 0) { + } else if (strcasecmp(interface_name.c_str(), "customevent") == 0) { return new web::CustomEvent(web::Event::Uninitialized); } diff --git a/cobalt/dom/on_screen_keyboard.cc b/cobalt/dom/on_screen_keyboard.cc index 07a3c9704262..0b90098312c4 100644 --- a/cobalt/dom/on_screen_keyboard.cc +++ b/cobalt/dom/on_screen_keyboard.cc @@ -51,12 +51,8 @@ bool ParseColor(const char* color_str, int& r, int& g, int& b) { } // Handle rgb color notation rgb(R, G, B) - #if SB_API_VERSION < 16 - bool strcmp = SbStringCompareNoCaseN("rgb(", color_str, 4) == 0; - #else - bool strcmp = strncasecmp("rgb(", color_str, 4) == 0; - #endif //SB_API_VERSION < 16 - if (!is_hex && len >= 10 && strcmp) { + if (!is_hex && len >= 10 && + strncasecmp("rgb(", color_str, 4) == 0) { int rgb_tmp[3] = {-1, -1, -1}; const char* ptr = color_str + 4; int i = 0; diff --git a/cobalt/loader/cors_preflight.cc b/cobalt/loader/cors_preflight.cc index 718a2cc438aa..d2af211981b9 100644 --- a/cobalt/loader/cors_preflight.cc +++ b/cobalt/loader/cors_preflight.cc @@ -117,15 +117,9 @@ bool IsInArray(const char* input_str, const char* array[], size_t size) { return false; } for (size_t i = 0; i < size; ++i) { - #if SB_API_VERSION < 16 - if (SbStringCompareNoCase(input_str, array[i]) == 0) { - return true; - } - #else if (strcasecmp(input_str, array[i]) == 0) { return true; } - #endif // SB_API_VERSION < 16 } return false; } @@ -138,17 +132,10 @@ bool HasFieldValue(const std::vector& field_values, if (field_values[i].empty()) { continue; } - #if SB_API_VERSION < 16 - if (SbStringCompareNoCase(field_values[i].c_str(), - find_value_name.c_str()) == 0) { - return true; - } - #else if (strcasecmp(field_values[i].c_str(), find_value_name.c_str()) == 0) { return true; } - #endif // SB_API_VERSION < 16 } return false; @@ -185,7 +172,7 @@ bool CORSPreflight::IsSafeRequestHeader(const std::string& name, // Safe if header name is 'Content-Type' and value is a match of // kAllowedMIMEType. - if (SbStringCompareNoCase(name.c_str(), kContentType) == 0) { + if (strcasecmp(name.c_str(), kContentType) == 0) { std::vector content_type_split = base::SplitString( value, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); auto begin_iter = content_type_split[0].cbegin(); @@ -234,17 +221,10 @@ bool CORSPreflight::IsSafeResponseHeader( } for (size_t i = 0; i < CORS_exposed_header_name_list.size(); i++) { - #if SB_API_VERSION < 16 - if (SbStringCompareNoCase(CORS_exposed_header_name_list.at(i).c_str(), - name.c_str()) == 0) { - return true; - } - #else if (strcasecmp(CORS_exposed_header_name_list.at(i).c_str(), name.c_str()) == 0) { return true; } - #endif //SB_API_VERSION < 16 } return false; } @@ -402,21 +382,12 @@ void CORSPreflight::OnURLFetchComplete(const net::URLFetcher* source) { if (HasFieldValue(headernames_vec, it.name())) { continue; } - #if SB_API_VERSION < 16 - if (SbStringCompareNoCase(it.name().c_str(), kAuthorization) == 0 || - (!HasFieldValue(headernames_vec, "*") && - !IsSafeRequestHeader(it.name(), it.value()))) { - error_callback_.Run(); - return; - } - #else if (strcasecmp(it.name().c_str(), kAuthorization) == 0 || (!HasFieldValue(headernames_vec, "*") && !IsSafeRequestHeader(it.name(), it.value()))) { error_callback_.Run(); return; } - #endif //SB_API_VERSION < 16 } // step 10-18 for adding entry to preflight cache. diff --git a/cobalt/loader/cors_preflight_cache.cc b/cobalt/loader/cors_preflight_cache.cc index 6d09a4127ab1..cd5302d58e0d 100644 --- a/cobalt/loader/cors_preflight_cache.cc +++ b/cobalt/loader/cors_preflight_cache.cc @@ -127,17 +127,10 @@ bool CORSPreflightCache::HaveEntry( if (entry_ptr->allow_all_headers_except_non_wildcard) { bool has_auth_header = false; for (const auto& header : unsafe_headernames) { - #if SB_API_VERSION < 16 - if (SbStringCompareNoCase(header.c_str(), kAuthorization)) { - has_auth_header = true; - break; - } - #else if (strcasecmp(header.c_str(), kAuthorization)) { has_auth_header = true; break; } - #endif //SB_API_VERSION < 16 } // wildcard header is allowed if entry's allowed headers include it. return !has_auth_header || diff --git a/cobalt/loader/cors_preflight_cache.h b/cobalt/loader/cors_preflight_cache.h index 48cdb7aeb9fe..e1a72bfcc80f 100644 --- a/cobalt/loader/cors_preflight_cache.h +++ b/cobalt/loader/cors_preflight_cache.h @@ -54,11 +54,7 @@ class CORSPreflightCache : public base::RefCounted { // Case-insensitive comparator. struct CaseInsensitiveCompare { bool operator()(const std::string& lhs, const std::string& rhs) const { - #if SB_API_VERSION < 16 - return SbStringCompareNoCase(lhs.c_str(), rhs.c_str()) < 0; - #else return strcasecmp(lhs.c_str(), rhs.c_str()) < 0; - #endif //SB_API_VERSION < 16 } }; diff --git a/cobalt/media/sandbox/format_guesstimator.cc b/cobalt/media/sandbox/format_guesstimator.cc index 1225b5aec70d..1a571106caeb 100644 --- a/cobalt/media/sandbox/format_guesstimator.cc +++ b/cobalt/media/sandbox/format_guesstimator.cc @@ -118,7 +118,7 @@ std::string ExtractCodecs(const std::string& content_type) { std::vector tokens = ::base::SplitString( content_type, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); for (size_t i = 1; i < tokens.size(); ++i) { - if (base::strncasecmp(tokens[i].c_str(), kCodecs, strlen(kCodecs))) { + if (strncasecmp(tokens[i].c_str(), kCodecs, strlen(kCodecs))) { continue; } auto codec = tokens[i].substr(strlen("codecs=")); diff --git a/cobalt/renderer/rasterizer/skia/skia/src/ports/SkFontMgr_cobalt.cc b/cobalt/renderer/rasterizer/skia/skia/src/ports/SkFontMgr_cobalt.cc index b4e3197d18fa..918d040d83e0 100644 --- a/cobalt/renderer/rasterizer/skia/skia/src/ports/SkFontMgr_cobalt.cc +++ b/cobalt/renderer/rasterizer/skia/skia/src/ports/SkFontMgr_cobalt.cc @@ -307,15 +307,9 @@ void SkFontMgr_Cobalt::LoadLocaleDefault() { std::string script = icu::Locale::createCanonical(base::GetSystemLanguageScript().c_str()) .getScript(); - #if SB_API_VERSION < 16 - if (SbStringCompareNoCase(script.c_str(), ROBOTO_SCRIPT) == 0) { - return; - } - #else if (strcasecmp(script.c_str(), ROBOTO_SCRIPT) == 0) { return; } - #endif // SB_API_VERSION < 16 default_fonts_loaded_event_.Reset(); for (int i = 0; i < families_.count(); i++) { @@ -521,15 +515,9 @@ bool SkFontMgr_Cobalt::CheckIfFamilyMatchesLocaleScript( } std::string family_script = icu::Locale::createCanonical(family_tag.c_str()).getScript(); - #if SB_API_VERSION < 16 - if (SbStringCompareNoCase(script, family_script.c_str()) != 0) { - return false; - } - #else if (strcasecmp(script, family_script.c_str()) != 0) { return false; } - #endif //SB_API_VERSION < 16 sk_sp check_typeface( new_family->MatchStyleWithoutLocking(SkFontStyle())); diff --git a/cobalt/renderer/rasterizer/skia/skia/src/ports/SkFontStyleSet_cobalt.cc b/cobalt/renderer/rasterizer/skia/skia/src/ports/SkFontStyleSet_cobalt.cc index c3d5b34e0367..660b96385e80 100644 --- a/cobalt/renderer/rasterizer/skia/skia/src/ports/SkFontStyleSet_cobalt.cc +++ b/cobalt/renderer/rasterizer/skia/skia/src/ports/SkFontStyleSet_cobalt.cc @@ -232,17 +232,6 @@ SkFontStyleSet_Cobalt::SkFontStyleSet_Cobalt( ++extension; // Only add font formats that match the format setting. - #if SB_API_VERSION < 16 - if (font_format_setting == kTtf) { - if (SbStringCompareNoCase("ttf", extension) != 0 && - SbStringCompareNoCase(extension, "ttc") != 0) { - continue; - } - } else if (font_format_setting == kWoff2 && - SbStringCompareNoCase("woff2", extension) != 0) { - continue; - } - #else if (font_format_setting == kTtf) { if (strcasecmp("ttf", extension) != 0 && strcasecmp(extension, "ttc") != 0) { @@ -252,7 +241,6 @@ SkFontStyleSet_Cobalt::SkFontStyleSet_Cobalt( strcasecmp("woff2", extension) != 0) { continue; } - #endif //SB_API_VERSION < 16 SkFontStyle style(font_file.weight, SkFontStyle::kNormal_Width, font_file.style == FontFileInfo::kItalic_FontStyle @@ -284,15 +272,6 @@ SkFontStyleSet_Cobalt::SkFontStyleSet_Cobalt( int* index = styles_index_map.find(font_name); if (index != nullptr) { // If style with name already exists in family, replace it. - #if SB_API_VERSION < 16 - if (font_format_setting == kTtfPreferred && - SbStringCompareNoCase("ttf", extension) == 0) { - styles_[*index].reset(font); - } else if (font_format_setting == kWoff2Preferred && - SbStringCompareNoCase("woff2", extension) == 0) { - styles_[*index].reset(font); - } - #else if (font_format_setting == kTtfPreferred && strcasecmp("ttf", extension) == 0) { styles_[*index].reset(font); @@ -300,7 +279,6 @@ SkFontStyleSet_Cobalt::SkFontStyleSet_Cobalt( strcasecmp("woff2", extension) == 0) { styles_[*index].reset(font); } - #endif //SB_API_VERSION < 16 } else { int count = styles_.count(); styles_index_map.set(font_name, count); diff --git a/starboard/nplb/string_compare_no_case_n_test.cc b/starboard/nplb/string_compare_no_case_n_test.cc index 84e422808be4..761693faebe0 100644 --- a/starboard/nplb/string_compare_no_case_n_test.cc +++ b/starboard/nplb/string_compare_no_case_n_test.cc @@ -19,6 +19,7 @@ namespace starboard { namespace nplb { namespace { +#if SB_API_VERSION < 16 TEST(SbStringCompareNoCaseNTest, SunnyDaySelf) { const char kString[] = "0123456789"; EXPECT_EQ(0, SbStringCompareNoCaseN(kString, kString, strlen(kString))); @@ -55,6 +56,7 @@ TEST(SbStringCompareNoCaseNTest, SunnyDayCase) { EXPECT_EQ(0, SbStringCompareNoCaseN(kString4, kString3, strlen(kString4) / 2)); } +#endif // SB_API_VERSION < 16 } // namespace } // namespace nplb diff --git a/starboard/nplb/string_compare_no_case_test.cc b/starboard/nplb/string_compare_no_case_test.cc index 9d3748092601..f173db3e7e10 100644 --- a/starboard/nplb/string_compare_no_case_test.cc +++ b/starboard/nplb/string_compare_no_case_test.cc @@ -19,6 +19,7 @@ namespace starboard { namespace nplb { namespace { +#if SB_API_VERSION < 16 TEST(SbStringCompareNoCaseTest, SunnyDaySelf) { const char kString[] = "0123456789"; EXPECT_EQ(0, SbStringCompareNoCase(kString, kString)); @@ -36,7 +37,7 @@ TEST(SbStringCompareNoCaseTest, SunnyDayCase) { EXPECT_EQ(0, SbStringCompareNoCase(kString1, kString2)); EXPECT_EQ(0, SbStringCompareNoCase(kString2, kString1)); } - +#endif // SB_API_VERSION < 16 } // namespace } // namespace nplb } // namespace starboard diff --git a/starboard/nplb/string_duplicate_test.cc b/starboard/nplb/string_duplicate_test.cc index 27f7fc2f48f2..ddf5f19c5ad9 100644 --- a/starboard/nplb/string_duplicate_test.cc +++ b/starboard/nplb/string_duplicate_test.cc @@ -25,7 +25,9 @@ void RunTest(const char* input) { char* dupe = SbStringDuplicate(input); const char* kNull = NULL; EXPECT_NE(kNull, dupe); + #if SB_API_VERSION < 16 EXPECT_EQ(0, SbStringCompareNoCase(input, dupe)); + #endif //SB_API_VERSION < 16 EXPECT_EQ(strlen(input), strlen(dupe)); SbMemoryDeallocate(dupe); } diff --git a/starboard/shared/starboard/media/mime_type.cc b/starboard/shared/starboard/media/mime_type.cc index 80b25f78f834..66d8e4cffa0d 100644 --- a/starboard/shared/starboard/media/mime_type.cc +++ b/starboard/shared/starboard/media/mime_type.cc @@ -196,15 +196,9 @@ const std::string& MimeType::GetParamName(int index) const { int MimeType::GetParamIndexByName(const char* name) const { for (size_t i = 0; i < params_.size(); ++i) { - #if SB_API_VERSION < 16 - if (SbStringCompareNoCase(params_[i].name.c_str(), name) == 0) { - return static_cast(i); - } - #else if (strcasecmp(params_[i].name.c_str(), name) == 0) { return static_cast(i); } - #endif // SB_API_VERSION < 16 } return kInvalidParamIndex; } diff --git a/starboard/string.h b/starboard/string.h index be8e29d8dfe6..945d6f1ee861 100644 --- a/starboard/string.h +++ b/starboard/string.h @@ -36,7 +36,6 @@ extern "C" { // // |source|: The string to be copied. SB_EXPORT char* SbStringDuplicate(const char* source); -#endif // SB_API_VERSION < 16 // Compares two strings, ignoring differences in case. The return value is: // - |< 0| if |string1| is ASCII-betically lower than |string2|. @@ -63,6 +62,7 @@ SB_EXPORT int SbStringCompareNoCase(const char* string1, const char* string2); SB_EXPORT int SbStringCompareNoCaseN(const char* string1, const char* string2, size_t count); +#endif // SB_API_VERSION < 16 // Produces a string formatted with |format| and |arguments|, placing as much // of the result that will fit into |out_buffer|. The return value specifies diff --git a/third_party/chromium/media/base/starboard_utils.cc b/third_party/chromium/media/base/starboard_utils.cc index 1518fb9abdf9..e7e9e56ec04f 100644 --- a/third_party/chromium/media/base/starboard_utils.cc +++ b/third_party/chromium/media/base/starboard_utils.cc @@ -418,7 +418,7 @@ std::string ExtractCodecs(const std::string& mime_type) { std::vector tokens = ::base::SplitString( mime_type, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); for (size_t i = 1; i < tokens.size(); ++i) { - if (base::strncasecmp(tokens[i].c_str(), kCodecs, strlen(kCodecs))) { + if (strncasecmp(tokens[i].c_str(), kCodecs, strlen(kCodecs))) { continue; } auto codec = tokens[i].substr(strlen(kCodecs)); diff --git a/third_party/chromium/media/filters/chunk_demuxer.cc b/third_party/chromium/media/filters/chunk_demuxer.cc index e24189d7fb41..0bb01f4cd5a6 100644 --- a/third_party/chromium/media/filters/chunk_demuxer.cc +++ b/third_party/chromium/media/filters/chunk_demuxer.cc @@ -84,7 +84,7 @@ bool ParseMimeType(const std::string& mime_type, std::string* type, *type = tokens[0]; codecs->clear(); for (size_t i = 1; i < tokens.size(); ++i) { - if (base::strncasecmp(tokens[i].c_str(), kCodecs, strlen(kCodecs))) { + if (strncasecmp(tokens[i].c_str(), kCodecs, strlen(kCodecs))) { continue; } *codecs = tokens[i].substr(strlen(kCodecs)); diff --git a/third_party/googletest/src/googletest/include/gtest/internal/gtest-port.h b/third_party/googletest/src/googletest/include/gtest/internal/gtest-port.h index b6fa7c6137df..a833aaf79d92 100644 --- a/third_party/googletest/src/googletest/include/gtest/internal/gtest-port.h +++ b/third_party/googletest/src/googletest/include/gtest/internal/gtest-port.h @@ -2084,9 +2084,11 @@ inline int IsATTY(FILE* /*file*/) { return SbLogIsTty() ? 1 : 0; } inline int Stat(const char* path, StatStruct* buf) { return SbFileGetPathInfo(path, buf) ? 0 : -1; } +#if SB_API_VERSION < 16 inline int StrCaseCmp(const char* s1, const char* s2) { return SbStringCompareNoCase(s1, s2); } +#endif //SB_API_VERSION < 16 inline char* StrDup(const char* src) { return strdup(src); } inline int RmDir(const char* dir) { return SbFileDelete(dir); }