#include "timelib.h"
#include <stdio.h>
+
+#ifdef HAVE_LOCALE_H
#include <locale.h>
+#endif
#ifdef HAVE_STRING_H
#include <string.h>
static int seek_to_tz_position(const unsigned char **tzf, char *timezone, const timelib_tzdb *tzdb)
{
int left = 0, right = tzdb->index_size - 1;
+#ifdef HAVE_SETLOCALE
char *cur_locale = NULL, *tmp;
-
+
tmp = setlocale(LC_CTYPE, NULL);
if (tmp) {
cur_locale = strdup(tmp);
}
setlocale(LC_CTYPE, "C");
+#endif
do {
int mid = ((unsigned)left + right) >> 1;
left = mid + 1;
} else { /* (cmp == 0) */
(*tzf) = &(tzdb->data[tzdb->index[mid].pos + 20]);
+#ifdef HAVE_SETLOCALE
setlocale(LC_CTYPE, cur_locale);
if (cur_locale) free(cur_locale);
+#endif
return 1;
}
} while (left <= right);
+#ifdef HAVE_SETLOCALE
setlocale(LC_CTYPE, cur_locale);
if (cur_locale) free(cur_locale);
+#endif
return 0;
}