diff options
-rw-r--r-- | ext/mbstring/mbstring.c | 71 | ||||
-rw-r--r-- | ext/pgsql/pgsql.c | 6 | ||||
-rw-r--r-- | php.ini-dist | 3 | ||||
-rw-r--r-- | php.ini-recommended | 3 |
4 files changed, 75 insertions, 8 deletions
diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c index d333124389..c013fdf963 100644 --- a/ext/mbstring/mbstring.c +++ b/ext/mbstring/mbstring.c @@ -462,7 +462,61 @@ php_mbregex_free_cache(mb_regex_t *pre) #endif + /* php.ini directive handler */ +static PHP_INI_MH(OnUpdate_mbstring_language) +{ + int *list, size; + enum mbfl_no_language no_language; + + no_language = mbfl_name2no_language(new_value); + if (no_language != mbfl_no_language_invalid) { + switch (no_language) { + case mbfl_no_language_japanese: + MBSTRG(language) = mbfl_no_language_japanese; + MBSTRG(current_language) = mbfl_no_language_japanese; + MBSTRG(internal_encoding) = mbfl_no_encoding_euc_jp; + MBSTRG(current_internal_encoding) = mbfl_no_encoding_euc_jp; + break; + case mbfl_no_language_korean: + MBSTRG(language) = mbfl_no_language_korean; + MBSTRG(current_language) = mbfl_no_language_korean; + MBSTRG(internal_encoding) = mbfl_no_encoding_euc_kr; + MBSTRG(current_internal_encoding) = mbfl_no_encoding_euc_kr; + break; + case mbfl_no_language_simplified_chinese: + MBSTRG(language) = mbfl_no_language_simplified_chinese; + MBSTRG(current_language) = mbfl_no_language_simplified_chinese; + MBSTRG(internal_encoding) = mbfl_no_encoding_euc_cn; + MBSTRG(current_internal_encoding) = mbfl_no_encoding_euc_cn; + break; + case mbfl_no_language_traditional_chinese: + MBSTRG(language) = mbfl_no_language_traditional_chinese; + MBSTRG(current_language) = mbfl_no_language_traditional_chinese; + MBSTRG(internal_encoding) = mbfl_no_encoding_euc_tw; + MBSTRG(current_internal_encoding) = mbfl_no_encoding_euc_tw; + break; + case mbfl_no_language_russian: + MBSTRG(language) = mbfl_no_language_russian; + MBSTRG(current_language) = mbfl_no_language_russian; + MBSTRG(internal_encoding) = mbfl_no_encoding_koi8r; + MBSTRG(current_internal_encoding) = mbfl_no_encoding_koi8r; + break; + case mbfl_no_language_english: + default: + MBSTRG(language) = mbfl_no_language_english; + MBSTRG(current_language) = mbfl_no_language_english; + MBSTRG(internal_encoding) = mbfl_no_encoding_8859_1; + MBSTRG(current_internal_encoding) = mbfl_no_encoding_8859_1; + break; + } + + } else { + return FAILURE; + } + return SUCCESS; +} + static PHP_INI_MH(OnUpdate_mbstring_detect_order) { int *list, size; @@ -497,6 +551,7 @@ static PHP_INI_MH(OnUpdate_mbstring_http_input) return SUCCESS; } + static PHP_INI_MH(OnUpdate_mbstring_http_output) { enum mbfl_no_encoding no_encoding; @@ -582,6 +637,7 @@ static PHP_INI_MH(OnUpdate_mbstring_substitute_character) /* php.ini directive registration */ PHP_INI_BEGIN() + PHP_INI_ENTRY("mbstring.language", NULL, PHP_INI_ALL, OnUpdate_mbstring_language) PHP_INI_ENTRY("mbstring.detect_order", NULL, PHP_INI_ALL, OnUpdate_mbstring_detect_order) PHP_INI_ENTRY("mbstring.http_input", NULL, PHP_INI_ALL, OnUpdate_mbstring_http_input) PHP_INI_ENTRY("mbstring.http_output", NULL, PHP_INI_ALL, OnUpdate_mbstring_http_output) @@ -598,20 +654,25 @@ PHP_INI_END() static void php_mbstring_init_globals(zend_mbstring_globals *pglobals TSRMLS_DC) { + MBSTRG(language) = mbfl_no_language_english; + MBSTRG(current_language) = mbfl_no_language_english; + MBSTRG(internal_encoding) = mbfl_no_encoding_8859_1; + MBSTRG(current_internal_encoding) = mbfl_no_encoding_8859_1; + #if defined(HAVE_MBSTR_CN) & !defined(HAVE_MBSTR_JA) - MBSTRG(language) = mbfl_no_language_chinese; - MBSTRG(current_language) = mbfl_no_language_chinese; + MBSTRG(language) = mbfl_no_language_simplified_chinese; + MBSTRG(current_language) = mbfl_no_language_simplified_chinese; MBSTRG(internal_encoding) = mbfl_no_encoding_euc_cn; MBSTRG(current_internal_encoding) = mbfl_no_encoding_euc_cn; #endif #if defined(HAVE_MBSTR_TW) & !defined(HAVE_MBSTR_JA) - MBSTRG(language) = mbfl_no_language_chinese; - MBSTRG(current_language) = mbfl_no_language_chinese; + MBSTRG(language) = mbfl_no_language_traditional_chinese; + MBSTRG(current_language) = mbfl_no_language_traditional_chinese; MBSTRG(internal_encoding) = mbfl_no_encoding_euc_tw; MBSTRG(current_internal_encoding) = mbfl_no_encoding_euc_tw; #endif #if defined(HAVE_MBSTR_KR) & !defined(HAVE_MBSTR_JA) - MBSTRG(language) = mbfl_no_language_chinese; + MBSTRG(language) = mbfl_no_language_korean; MBSTRG(current_language) = mbfl_no_language_korean; MBSTRG(internal_encoding) = mbfl_no_encoding_euc_kr; MBSTRG(current_internal_encoding) = mbfl_no_encoding_euc_kr; diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c index f4e41dd738..bbd4f0c08a 100644 --- a/ext/pgsql/pgsql.c +++ b/ext/pgsql/pgsql.c @@ -1457,7 +1457,7 @@ PHP_FUNCTION(pg_free_result) } /* }}} */ -/* {{{ proto int pg_last_oid(resource result) +/* {{{ proto string pg_last_oid(resource result) Returns the last object identifier */ PHP_FUNCTION(pg_last_oid) { @@ -1575,7 +1575,7 @@ PHP_FUNCTION(pg_untrace) } /* }}} */ -/* {{{ proto int pg_lo_create(resource connection) +/* {{{ proto int pg_lo_create([resource connection]) Create a large object */ PHP_FUNCTION(pg_lo_create) { @@ -1618,7 +1618,7 @@ PHP_FUNCTION(pg_lo_create) } /* }}} */ -/* {{{ proto bool pg_lo_unlink([resource connection,] int large_object_oid) +/* {{{ proto bool pg_lo_unlink([resource connection,] string large_object_oid) Delete a large object */ PHP_FUNCTION(pg_lo_unlink) { diff --git a/php.ini-dist b/php.ini-dist index 9e2e6fcb90..953125b9aa 100644 --- a/php.ini-dist +++ b/php.ini-dist @@ -898,6 +898,9 @@ sockets.use_system_read = On ;printer.default_printer = "" [mbstring] +; language for internal character representation. +;mbstring.language = Japanese + ; internal/script encoding. ; Some encoding cannot work as internal encoding. ; (e.g. SJIS, BIG5, ISO-2022-*) diff --git a/php.ini-recommended b/php.ini-recommended index d695e57868..6b2422fa2a 100644 --- a/php.ini-recommended +++ b/php.ini-recommended @@ -905,6 +905,9 @@ sockets.use_system_read = On ;printer.default_printer = "" [mbstring] +; language for internal character representation. +;mbstring.language = Japanese + ; internal/script encoding. ; Some encoding cannot work as internal encoding. ; (e.g. SJIS, BIG5, ISO-2022-*) |