浏览代码

Merge branch 'bug26594'

Nick Mathewson 5 年之前
父节点
当前提交
d88ce331ef
共有 2 个文件被更改,包括 16 次插入3 次删除
  1. 2 0
      configure.ac
  2. 14 3
      src/lib/string/compat_string.h

+ 2 - 0
configure.ac

@@ -610,6 +610,8 @@ AC_CHECK_FUNCS(
         sigaction \
         socketpair \
 	statvfs \
+        strncasecmp \
+        strcasecmp \
         strlcat \
         strlcpy \
 	strnlen \

+ 14 - 3
src/lib/string/compat_string.h

@@ -13,9 +13,20 @@
 
 /* ===== String compatibility */
 #ifdef _WIN32
-/* Windows names string functions differently from most other platforms. */
-#define strncasecmp _strnicmp
-#define strcasecmp _stricmp
+/* Windows doesn't have str(n)casecmp, but mingw defines it: only define it
+ * ourselves if it's missing. */
+#ifndef HAVE_STRNCASECMP
+static inline int strncasecmp(const char *a, const char *b, size_t n);
+static inline int strncasecmp(const char *a, const char *b, size_t n) {
+  return strncmpi(a,b);
+}
+#endif
+#ifndef HAVE_STRCASECMP
+static inline int strcasecmp(const char *a, const char *b, size_t n);
+static inline int strcasecmp(const char *a, const char *b, size_t n) {
+  return strcmpi(a,b);
+}
+#endif
 #endif
 
 #if defined __APPLE__