OSDN Git Service

- 2.3.x backward compatibility applies to eucJP-win, too.
authormumumu-org <mumumu-org@2ef88817-412d-0410-a32c-8029a115e976>
Mon, 9 Jun 2008 22:16:57 +0000 (22:16 +0000)
committermumumu-org <mumumu-org@2ef88817-412d-0410-a32c-8029a115e976>
Mon, 9 Jun 2008 22:16:57 +0000 (22:16 +0000)
class/Ethna_I18N.php
class/Plugin/Validator/Ethna_Plugin_Validator_Max.php
class/Plugin/Validator/Ethna_Plugin_Validator_Min.php
class/Plugin/Validator/Ethna_Plugin_Validator_StrMaxCompat.php
class/Plugin/Validator/Ethna_Plugin_Validator_StrMinCompat.php

index 3e24be2..dbbcde5 100644 (file)
@@ -9,6 +9,13 @@
  *  @version    $Id$
  */
 
+// {{{  mbstring enabled check
+function mb_enabled()
+{
+    return (extension_loaded('mbstring')) ? true : false;
+}
+// }}}
+
 // {{{ I18N shortcut
 /**
  *  メッセージカタログからロケールに適合するメッセージを取得します。
index d4b7acb..f672357 100644 (file)
@@ -101,18 +101,17 @@ class Ethna_Plugin_Validator_Max extends Ethna_Plugin_Validator
                 $plugin = $this->backend->getPlugin();
 
                 //  select Plugin.
-                switch ($client_enc) {
-                    case 'UTF-8':
-                        $plugin_name = 'MbStrMax';
-                        $params['mbstrmax'] = $params['max'];
-                        break;
-                    case 'EUC-JP':
-                        $plugin_name = 'StrMaxCompat';
-                        $params['strmaxcompat'] = $params['max'];
-                        break;
-                    default:
-                        $plugin_name = 'StrMax';
-                        $params['strmax'] = $params['max'];
+                if (mb_enabled() && strcasecmp('UTF-8', $client_enc) == 0) {
+                    $plugin_name = 'MbStrMax';
+                    $params['mbstrmax'] = $params['max'];
+                } elseif (strcasecmp('EUC-JP', $client_enc == 0)
+                       || strcasecmp('eucJP-win', $client_enc == 0)) {
+                    //  2.3.x compatibility
+                    $plugin_name = 'StrMaxCompat';
+                    $params['strmaxcompat'] = $params['max'];
+                } else {
+                    $plugin_name = 'StrMax';
+                    $params['strmax'] = $params['max'];
                 }
                 unset($params['max']);
 
index 90f7efd..821cd8e 100644 (file)
@@ -101,18 +101,16 @@ class Ethna_Plugin_Validator_Min extends Ethna_Plugin_Validator
                 $plugin = $this->backend->getPlugin();
 
                 //  select Plugin.
-                switch ($client_enc) {
-                    case 'UTF-8':
-                        $plugin_name = 'MbStrMin';
-                        $params['mbstrmin'] = $params['min'];
-                        break;
-                    case 'EUC-JP':
-                        $plugin_name = 'StrMinCompat';
-                        $params['strmincompat'] = $params['min'];
-                        break;
-                    default:
-                        $plugin_name = 'StrMin';
-                        $params['strmin'] = $params['min'];
+                if (mb_enabled() && strcasecmp('UTF-8', $client_enc) == 0) {
+                    $plugin_name = 'MbStrMin';
+                    $params['mbstrmin'] = $params['min'];
+                } elseif (strcasecmp('EUC-JP', $client_enc == 0)
+                       || strcasecmp('eucJP-win', $client_enc == 0)) {
+                    $plugin_name = 'StrMinCompat';
+                    $params['strmincompat'] = $params['min'];
+                } else { 
+                    $plugin_name = 'StrMin';
+                    $params['strmin'] = $params['min'];
                 }
                 unset($params['min']);
 
index 96be3fd..54d0f93 100644 (file)
@@ -48,7 +48,9 @@ class Ethna_Plugin_Validator_StrMaxCompat extends Ethna_Plugin_Validator
 
         $ctl = $this->backend->getController();
         $client_enc = $ctl->getClientEncoding();
-        if (extension_loaded('mbstring') && strcasecmp('EUC-JP', $client_enc) !== 0) {
+        if (mb_enabled()
+        && (strcasecmp('EUC-JP', $client_enc) != 0
+         && strcasecmp('eucJP-win', $client_enc) != 0)) {
             $var = mb_convert_encoding($var, 'EUC-JP', $client_enc);
         }
 
index a4d8987..4e02ce2 100644 (file)
@@ -47,7 +47,9 @@ class Ethna_Plugin_Validator_StrMinCompat extends Ethna_Plugin_Validator
 
         $ctl = $this->backend->getController();
         $client_enc = $ctl->getClientEncoding();
-        if (extension_loaded('mbstring') && strcasecmp('EUC-JP', $client_enc) !== 0) {
+        if (mb_enabled()
+        && (strcasecmp('EUC-JP', $client_enc) != 0
+         && strcasecmp('eucJP-win', $client_enc) != 0)) {
             $var = mb_convert_encoding($var, 'EUC-JP', $client_enc);
         }