aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--configure.in2
-rw-r--r--encoding.c6
-rw-r--r--main.c4
4 files changed, 19 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 17b9bd00f2..ed05028907 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Fri Dec 21 12:00:34 2007 Tanaka Akira <akr@fsij.org>
+
+ * configure.in: check langinfo.h and locale.h.
+
+ * encoding.c: use langinfo.h only if available.
+
+ * main.c: use locale.h only if available.
+
Fri Dec 21 11:47:56 2007 Tanaka Akira <akr@fsij.org>
* encoding.c: include locale.h
diff --git a/configure.in b/configure.in
index ba3abcb162..a80c373256 100644
--- a/configure.in
+++ b/configure.in
@@ -530,7 +530,7 @@ AC_CHECK_HEADERS(stdlib.h string.h unistd.h limits.h sys/file.h sys/ioctl.h sys/
fcntl.h sys/fcntl.h sys/select.h sys/time.h sys/times.h sys/param.h\
syscall.h pwd.h grp.h a.out.h utime.h memory.h direct.h sys/resource.h \
sys/mkdev.h sys/utime.h netinet/in_systm.h float.h ieeefp.h pthread.h \
- ucontext.h intrinsics.h)
+ ucontext.h intrinsics.h langinfo.h locale.h)
dnl Check additional types.
AC_CHECK_SIZEOF(rlim_t, 0, [
diff --git a/encoding.c b/encoding.c
index 1e130162be..07c9b42e9d 100644
--- a/encoding.c
+++ b/encoding.c
@@ -14,7 +14,9 @@
#include "ruby/encoding.h"
#include "regenc.h"
#include <ctype.h>
+#ifdef HAVE_LANGINFO_H
#include <langinfo.h>
+#endif
static ID id_encoding, id_based_encoding;
static VALUE rb_cEncoding;
@@ -707,9 +709,13 @@ rb_enc_set_default_external(VALUE encoding)
VALUE
rb_locale_charmap(VALUE klass)
{
+#ifdef HAVE_LANGINFO_H
char *codeset;
codeset = nl_langinfo(CODESET);
return rb_str_new2(codeset);
+#else
+ return rb_str_new2("ASCII-8BIT");
+#endif
}
static void
diff --git a/main.c b/main.c
index 691cfcdd5b..d1f275aa99 100644
--- a/main.c
+++ b/main.c
@@ -12,7 +12,9 @@
#undef RUBY_EXPORT
#include "ruby/ruby.h"
+#ifdef LOCALE_H
#include <locale.h>
+#endif
RUBY_GLOBAL_SETUP
@@ -23,7 +25,9 @@ main(int argc, char **argv, char **envp)
extern void ruby_set_debug_option(const char *);
ruby_set_debug_option(getenv("RUBY_DEBUG"));
#endif
+#ifdef LOCALE_H
setlocale(LC_CTYPE, "");
+#endif
ruby_sysinit(&argc, &argv);
{