aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES5
-rw-r--r--configure.ac2
-rw-r--r--src/config.h.in6
-rw-r--r--src/main.c11
4 files changed, 23 insertions, 1 deletions
diff --git a/CHANGES b/CHANGES
index e21559b00..226307e6b 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,11 @@
Changelog
+Daniel (18 October 2004)
+- Peter Wullinger pointed out that curl should call setlocale() properly to
+ initiate the specific language operations, to make the IDN stuff work
+ better.
+
Version 7.12.2 (18 October 2004)
Daniel (16 October 2004)
diff --git a/configure.ac b/configure.ac
index 566f682a8..a9aa71529 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1121,6 +1121,7 @@ AC_CHECK_HEADERS(
sys/utime.h \
sys/poll.h \
libgen.h \
+ locale.h \
setjmp.h,
dnl to do if not found
[],
@@ -1217,6 +1218,7 @@ AC_CHECK_FUNCS( strtoll \
utime \
sigsetjmp \
basename \
+ setlocale \
poll,
dnl if found
[],
diff --git a/src/config.h.in b/src/config.h.in
index 3bd44ab88..45eab3694 100644
--- a/src/config.h.in
+++ b/src/config.h.in
@@ -95,6 +95,12 @@
/* Define if you have the <limits.h> header file */
#undef HAVE_LIMITS_H
+/* Define to 1 if you have the <locale.h> header file. */
+#undef HAVE_LOCALE_H
+
+/* Define to 1 if you have the `setlocale' function. */
+#undef HAVE_SETLOCALE
+
/* type to use in place of socklen_t if not defined */
#undef socklen_t
diff --git a/src/main.c b/src/main.c
index 86e06ccd3..75a4355c1 100644
--- a/src/main.c
+++ b/src/main.c
@@ -90,7 +90,7 @@
#include <sys/utime.h>
#endif
-#endif
+#endif /* HAVE_UTIME_H */
#ifdef HAVE_LIMITS_H
#include <limits.h>
@@ -100,6 +100,10 @@
#include <sys/poll.h>
#endif
+#ifdef HAVE_LOCALE_H
+#include <locale.h> /* for setlocale() */
+#endif
+
#define ENABLE_CURLX_PRINTF
/* make the curlx header define all printf() functions to use the curlx_*
versions instead */
@@ -2790,6 +2794,11 @@ operate(struct Configurable *config, int argc, char *argv[])
errorbuffer[0]=0; /* prevent junk from being output */
+ /* setup proper locale from environment */
+#ifdef HAVE_SETLOCALE
+ setlocale(LC_ALL, "");
+#endif
+
/* inits */
if (main_init() != CURLE_OK) {
helpf("error initializing curl library\n");