summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/mbstring/mbstring.c71
-rw-r--r--ext/pgsql/pgsql.c6
-rw-r--r--php.ini-dist3
-rw-r--r--php.ini-recommended3
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-*)