int count = 0;
unsigned const char *tables = NULL;
#if HAVE_SETLOCALE
- char *locale = setlocale(LC_CTYPE, NULL);
+ char *locale;
#endif
pcre_cache_entry *pce;
pcre_cache_entry new_entry;
+#if HAVE_SETLOCALE
+# ifdef PHP_WIN32 && ZTS
+ _configthreadlocale(_ENABLE_PER_THREAD_LOCALE);
+# endif
+ locale = setlocale(LC_CTYPE, NULL);
+#endif
+
/* Try to lookup the cached regex entry, and if successful, just pass
back the compiled pattern, otherwise go on and compile it. */
if (zend_hash_find(&PCRE_G(pcre_cache), regex, regex_len+1, (void **)&pce) == SUCCESS) {