summaryrefslogtreecommitdiff
path: root/ext/date/lib/parse_tz.c
diff options
context:
space:
mode:
authorIlia Alshanetsky <iliaa@php.net>2007-01-18 23:20:24 +0000
committerIlia Alshanetsky <iliaa@php.net>2007-01-18 23:20:24 +0000
commit6f98a771e6ad876ec6f1da0104530f3f3ee0a885 (patch)
tree7e330b10bd3c59f722c947271f24d6b8e385897d /ext/date/lib/parse_tz.c
parent84a827e0d40d5b80c660baf16250f56a9992b67f (diff)
downloadphp-git-6f98a771e6ad876ec6f1da0104530f3f3ee0a885.tar.gz
Fixed bug #39993 (tr_TR.UTF-8 locale has problems with PHP).
Diffstat (limited to 'ext/date/lib/parse_tz.c')
-rw-r--r--ext/date/lib/parse_tz.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/ext/date/lib/parse_tz.c b/ext/date/lib/parse_tz.c
index 31e42dec84..4f99d22c54 100644
--- a/ext/date/lib/parse_tz.c
+++ b/ext/date/lib/parse_tz.c
@@ -21,6 +21,7 @@
#include "timelib.h"
#include <stdio.h>
+#include <locale.h>
#ifdef HAVE_STRING_H
#include <string.h>
@@ -195,6 +196,7 @@ void timelib_dump_tzinfo(timelib_tzinfo *tz)
static int seek_to_tz_position(const unsigned char **tzf, char *timezone, const timelib_tzdb *tzdb)
{
int left = 0, right = tzdb->index_size - 1;
+ char *cur_locale = setlocale(LC_CTYPE, "C");
do {
int mid = ((unsigned)left + right) >> 1;
@@ -206,11 +208,13 @@ static int seek_to_tz_position(const unsigned char **tzf, char *timezone, const
left = mid + 1;
} else { /* (cmp == 0) */
(*tzf) = &(tzdb->data[tzdb->index[mid].pos + 20]);
+ setlocale(LC_CTYPE, cur_locale);
return 1;
}
} while (left <= right);
+ setlocale(LC_CTYPE, cur_locale);
return 0;
}