]> granicus.if.org Git - php/commitdiff
added mbstring.language option in ext/mbstring.
authorRui Hirokawa <hirokawa@php.net>
Thu, 11 Jul 2002 15:45:35 +0000 (15:45 +0000)
committerRui Hirokawa <hirokawa@php.net>
Thu, 11 Jul 2002 15:45:35 +0000 (15:45 +0000)
ext/mbstring/mbstring.c
ext/pgsql/pgsql.c
php.ini-dist
php.ini-recommended

index d333124389b29e5b9d0550dbb9d0730559e9400b..c013fdf963f3c586c263842755fc5bdf16cfe29e 100644 (file)
@@ -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;
index f4e41dd73836c94bc021f4e0d65987e6c02051d4..bbd4f0c08aa8197aa8f2ca3e12f13bebc90726f3 100644 (file)
@@ -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)
 {
index 9e2e6fcb901ace19272f420c51e8377b8092e785..953125b9aadbc78f887480e13e7553ed2e7cdf95 100644 (file)
@@ -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-*)
index d695e57868edfcd0736d96dd405c6e3e74ba4f3b..6b2422fa2a74cda673ae681a2a70b8cd1e5415d0 100644 (file)
@@ -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-*)