Swap a few APIs to reduce sign and implicit truncations required to work with it
[folly.git] / folly / portability / String.cpp
index e48076b1415b845d561571ad4836f8ebecaa188a..fa595458444c04ab6f9da4e2a014ba8d2d1ec662 100755 (executable)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2016 Facebook, Inc.
+ * Copyright 2017 Facebook, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -27,7 +27,7 @@ extern "C" void* memrchr(const void* s, int c, size_t n) {
 }
 #endif
 
-#if defined(_WIN32) || defined(__APPLE__) || defined(__FreeBSD__)
+#if defined(_WIN32) || defined(__FreeBSD__)
 extern "C" char* strndup(const char* a, size_t len) {
   auto neededLen = strlen(a);
   if (neededLen > len) {
@@ -44,7 +44,21 @@ extern "C" char* strndup(const char* a, size_t len) {
 #endif
 
 #ifdef _WIN32
-extern "C" char* strtok_r(char* str, char const* delim, char** ctx) {
+extern "C" {
+void bzero(void* s, size_t n) {
+  memset(s, 0, n);
+}
+
+int strcasecmp(const char* a, const char* b) {
+  return _stricmp(a, b);
+}
+
+int strncasecmp(const char* a, const char* b, size_t c) {
+  return _strnicmp(a, b, c);
+}
+
+char* strtok_r(char* str, char const* delim, char** ctx) {
   return strtok_s(str, delim, ctx);
 }
+}
 #endif