diff options
author | Ilia Alshanetsky <iliaa@php.net> | 2007-01-18 23:20:24 +0000 |
---|---|---|
committer | Ilia Alshanetsky <iliaa@php.net> | 2007-01-18 23:20:24 +0000 |
commit | 6f98a771e6ad876ec6f1da0104530f3f3ee0a885 (patch) | |
tree | 7e330b10bd3c59f722c947271f24d6b8e385897d /ext/date/lib/parse_tz.c | |
parent | 84a827e0d40d5b80c660baf16250f56a9992b67f (diff) | |
download | php-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.c | 4 |
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; } |