aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--configure.in1
-rw-r--r--include/ruby/ruby.h4
-rw-r--r--st.c2
4 files changed, 17 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index d65a634afc..68f0330fe2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+Tue Jul 16 21:07:04 2013 Masaki Matsushita <glass.saga@gmail.com>
+
+ * configure.in: check strcasecmp().
+
+ * include/ruby/ruby.h: use strcasecmp() as st_strcasecmp() if it
+ exists.
+
+ * st.c (st_strcasecmp): define the function only if strcasecmp()
+ doesn't exist.
+
Tue Jul 16 20:21:28 2013 Tanaka Akira <akr@fsij.org>
* bignum.c (bigsq): Renamed from bigsqr.
diff --git a/configure.in b/configure.in
index 48184e23cf..e19f7209f4 100644
--- a/configure.in
+++ b/configure.in
@@ -1823,6 +1823,7 @@ AC_CHECK_FUNCS(sigaltstack)
AC_CHECK_FUNCS(sigprocmask)
AC_CHECK_FUNCS(sinh)
AC_CHECK_FUNCS(spawnv)
+AC_CHECK_FUNCS(strcasecmp)
AC_CHECK_FUNCS(symlink)
AC_CHECK_FUNCS(syscall)
AC_CHECK_FUNCS(sysconf)
diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h
index 2fd5981a67..df89b387dd 100644
--- a/include/ruby/ruby.h
+++ b/include/ruby/ruby.h
@@ -1808,7 +1808,11 @@ int rb_toupper(int c);
#define TOUPPER(c) rb_toupper((unsigned char)(c))
#define TOLOWER(c) rb_tolower((unsigned char)(c))
+#ifdef HAVE_STRCASECMP
+#define st_strcasecmp strcasecmp
+#else
int st_strcasecmp(const char *s1, const char *s2);
+#endif
int st_strncasecmp(const char *s1, const char *s2, size_t n);
#define STRCASECMP(s1, s2) (st_strcasecmp((s1), (s2)))
#define STRNCASECMP(s1, s2, n) (st_strncasecmp((s1), (s2), (n)))
diff --git a/st.c b/st.c
index e86171927b..fff79f5571 100644
--- a/st.c
+++ b/st.c
@@ -1524,6 +1524,7 @@ strhash(st_data_t arg)
}
#endif
+#ifndef HAVE_STRCASECMP
int
st_strcasecmp(const char *s1, const char *s2)
{
@@ -1547,6 +1548,7 @@ st_strcasecmp(const char *s1, const char *s2)
}
}
}
+#endif
int
st_strncasecmp(const char *s1, const char *s2, size_t n)