mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
chance CLI codepage, only when SAPI is initialized
This finally solves issues with DBSC console codepages, and in general improves the console codepage switching. When module_initialized, all the possible encoding INI settings with regard to possible modifications are set, and that's the right moment to switch the console codepage in regard to I/O. CJK glyphs might take more than 1 cell, so then visual issues can occur, when switching console codepage back and forth. Users are free to use ini_set(), but any visual issues are then up to the user responsibility.
This commit is contained in:
parent
8ba7878f1b
commit
b91d7f186a
1 changed files with 7 additions and 1 deletions
|
@ -384,6 +384,8 @@ PW32CP wchar_t *php_win32_cp_env_any_to_w(const char* env)
|
|||
|
||||
static BOOL php_win32_cp_cli_io_setup(void)
|
||||
{
|
||||
BOOL ret = TRUE;
|
||||
|
||||
if (PG(input_encoding) && PG(input_encoding)[0]) {
|
||||
cur_in_cp = php_win32_cp_get_by_enc(PG(input_encoding));
|
||||
if (!cur_in_cp) {
|
||||
|
@ -402,7 +404,11 @@ static BOOL php_win32_cp_cli_io_setup(void)
|
|||
cur_out_cp = cur_cp;
|
||||
}
|
||||
|
||||
return SetConsoleCP(cur_in_cp->id) && SetConsoleOutputCP(cur_out_cp->id);
|
||||
if(php_get_module_initialized()) {
|
||||
ret = SetConsoleCP(cur_in_cp->id) && SetConsoleOutputCP(cur_out_cp->id);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
PW32CP const struct php_win32_cp *php_win32_cp_do_setup(const char *enc)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue