* nlsfuncs.cc (initial_setlocale): Move check whether charset has
changed from here... (internal_setlocale): ...to here, to avoid unnecessary work when invoked via CW_INT_SETLOCALE.
This commit is contained in:
parent
374a555fda
commit
87c0903113
@ -1,3 +1,10 @@
|
|||||||
|
2010-02-11 Andy Koppe <andy.koppe@gmail.com>
|
||||||
|
|
||||||
|
* nlsfuncs.cc (initial_setlocale): Move check whether charset has
|
||||||
|
changed from here...
|
||||||
|
(internal_setlocale): ...to here, to avoid unnecessary work when invoked
|
||||||
|
via CW_INT_SETLOCALE.
|
||||||
|
|
||||||
2010-02-10 Corinna Vinschen <corinna@vinschen.de>
|
2010-02-10 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* nlsfuncs.cc (__set_charset_from_locale): Allow "@euro" modifier only
|
* nlsfuncs.cc (__set_charset_from_locale): Allow "@euro" modifier only
|
||||||
|
@ -1129,12 +1129,17 @@ internal_setlocale ()
|
|||||||
/* FIXME: It could be necessary to convert the entire environment,
|
/* FIXME: It could be necessary to convert the entire environment,
|
||||||
not just PATH. */
|
not just PATH. */
|
||||||
tmp_pathbuf tp;
|
tmp_pathbuf tp;
|
||||||
char *path = getenv ("PATH");
|
char *path;
|
||||||
wchar_t *w_path = NULL, *w_cwd;
|
wchar_t *w_path = NULL, *w_cwd;
|
||||||
|
|
||||||
|
/* Don't do anything if the charset hasn't actually changed. */
|
||||||
|
if (strcmp (cygheap->locale.charset, __locale_charset ()) == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
debug_printf ("Cygwin charset changed from %s to %s",
|
debug_printf ("Cygwin charset changed from %s to %s",
|
||||||
cygheap->locale.charset, __locale_charset ());
|
cygheap->locale.charset, __locale_charset ());
|
||||||
/* Fetch PATH and CWD and convert to wchar_t in previous charset. */
|
/* Fetch PATH and CWD and convert to wchar_t in previous charset. */
|
||||||
|
path = getenv ("PATH");
|
||||||
if (path && *path) /* $PATH can be potentially unset. */
|
if (path && *path) /* $PATH can be potentially unset. */
|
||||||
{
|
{
|
||||||
w_path = tp.w_get ();
|
w_path = tp.w_get ();
|
||||||
@ -1175,8 +1180,7 @@ void
|
|||||||
initial_setlocale ()
|
initial_setlocale ()
|
||||||
{
|
{
|
||||||
char *ret = _setlocale_r (_REENT, LC_CTYPE, "");
|
char *ret = _setlocale_r (_REENT, LC_CTYPE, "");
|
||||||
if (ret && check_codepage (ret)
|
if (ret && check_codepage (ret))
|
||||||
&& strcmp (cygheap->locale.charset, __locale_charset ()) != 0)
|
|
||||||
internal_setlocale ();
|
internal_setlocale ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user