* dcrt0.cc (dll_crt0_1): Reset locale to "C" at the last moment before
calling the application's main. * syscalls.cc (internal_setlocale): Don't reset locale to "C here. Change comment accordingly.
This commit is contained in:
parent
37671b5114
commit
41d184bb62
|
@ -1,3 +1,10 @@
|
||||||
|
2010-01-14 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* dcrt0.cc (dll_crt0_1): Reset locale to "C" at the last moment before
|
||||||
|
calling the application's main.
|
||||||
|
* syscalls.cc (internal_setlocale): Don't reset locale to "C here.
|
||||||
|
Change comment accordingly.
|
||||||
|
|
||||||
2010-01-14 Corinna Vinschen <corinna@vinschen.de>
|
2010-01-14 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* cygwin.din (dup3): Export.
|
* cygwin.din (dup3): Export.
|
||||||
|
|
|
@ -940,6 +940,8 @@ dll_crt0_1 (void *)
|
||||||
do this for noncygwin case since the signal thread is blocked due to
|
do this for noncygwin case since the signal thread is blocked due to
|
||||||
LoadLibrary serialization. */
|
LoadLibrary serialization. */
|
||||||
ld_preload ();
|
ld_preload ();
|
||||||
|
/* Per POSIX set the default application locale back to "C". */
|
||||||
|
_setlocale_r (_REENT, LC_CTYPE, "C");
|
||||||
if (user_data->main)
|
if (user_data->main)
|
||||||
cygwin_exit (user_data->main (__argc, __argv, *user_data->envptr));
|
cygwin_exit (user_data->main (__argc, __argv, *user_data->envptr));
|
||||||
__asm__ (" \n\
|
__asm__ (" \n\
|
||||||
|
|
|
@ -4362,10 +4362,11 @@ internal_setlocale ()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Called from dll_crt0_1, before calling the application's main().
|
/* Called from dll_crt0_1, before fetching the command line from Windows.
|
||||||
Set the internal charset according to the environment locale settings.
|
Set the internal charset according to the environment locale settings.
|
||||||
Check if a required codepage is available, and only switch internal
|
Check if a required codepage is available, and only switch internal
|
||||||
charset if so. Afterwards, reset application locale to "C" per POSIX. */
|
charset if so.
|
||||||
|
Make sure to reset the application locale to "C" per POSIX. */
|
||||||
void
|
void
|
||||||
initial_setlocale ()
|
initial_setlocale ()
|
||||||
{
|
{
|
||||||
|
@ -4373,7 +4374,6 @@ initial_setlocale ()
|
||||||
if (ret && check_codepage (ret)
|
if (ret && check_codepage (ret)
|
||||||
&& strcmp (cygheap->locale.charset, __locale_charset ()) != 0)
|
&& strcmp (cygheap->locale.charset, __locale_charset ()) != 0)
|
||||||
internal_setlocale ();
|
internal_setlocale ();
|
||||||
_setlocale_r (_REENT, LC_CTYPE, "C");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Like newlib's setlocale, but additionally check if the charset needs
|
/* Like newlib's setlocale, but additionally check if the charset needs
|
||||||
|
|
Loading…
Reference in New Issue