From 38db258110a944da16b8ffd2e43c1b5880fb2f55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20=C4=8Ciha=C5=99?= Date: Sun, 11 May 2003 17:29:53 +0000 Subject: [PATCH] Merged patch #729514 - support for iconv parameters. --- ChangeLog | 6 ++++++ Documentation.html | 9 +++++++++ config.inc.php3 | 5 +++++ libraries/charset_conversion.lib.php3 | 12 ++++++++---- libraries/config_import.lib.php3 | 4 ++++ 5 files changed, 32 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index a7ed52918..cef057228 100755 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,12 @@ phpMyAdmin - Changelog $Id$ $Source$ + +2003-05-10 Michal Cihar + * Documentation.html, config.inc.php3, + libraries/charset_conversion.lib.php3, libraries/config_import.lib.php3: + Merged patch #729514 - support for iconv parameters. + 2003-05-11 Marc Delisle ### 2.5.0 released diff --git a/Documentation.html b/Documentation.html index c20af1162..627518eea 100755 --- a/Documentation.html +++ b/Documentation.html @@ -1325,6 +1325,15 @@ $cfg['PmaAbsoluteUri'] = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://'

+
$cfg['IconvExtraParams'] string
+
+ Specify some parameters for iconv used in charset conversion. See + iconv + documentation for details. +

+
+
$cfg['AvailableCharsets'] array
Available character sets for MySQL conversion. You can add your own (any of diff --git a/config.inc.php3 b/config.inc.php3 index 79337d0ec..a0749cf9d 100755 --- a/config.inc.php3 +++ b/config.inc.php3 @@ -315,6 +315,11 @@ $cfg['AllowAnywhereRecoding'] = FALSE; // recode - use recode_string function $cfg['RecodingEngine'] = 'auto'; +// Specify some parameters for iconv used in charset conversion. See iconv +// documentation for details: +// http://www.gnu.org/software/libiconv/documentation/libiconv/iconv_open.3.html +$cfg['IconvExtraParams'] = '//IGNORE'; + // Available charsets for MySQL conversion. currently contains all which could // be found in lang/* files and few more. // Charsets will be shown in same order as here listed, so if you frequently diff --git a/libraries/charset_conversion.lib.php3 b/libraries/charset_conversion.lib.php3 index 9cf4842d0..39f2b6873 100644 --- a/libraries/charset_conversion.lib.php3 +++ b/libraries/charset_conversion.lib.php3 @@ -82,6 +82,10 @@ if (!defined('PMA_CHARSET_CONVERSION_LIB_INCLUDED')){ define('PMA_CHARSET_LIBICONV', 2); define('PMA_CHARSET_RECODE', 3); + if (!isset($cfg['IconvExtraParams'])) { + $cfg['IconvExtraParams'] = '//IGNORE'; + } + // Finally detects which function will we use: if (isset($cfg['AllowAnywhereRecoding']) && $cfg['AllowAnywhereRecoding'] @@ -185,7 +189,7 @@ if (!defined('PMA_CHARSET_CONVERSION_LIB_INCLUDED')){ return recode_string($convcharset . '..' . $charset, $what); break; case PMA_CHARSET_ICONV: - return iconv($convcharset, $charset, $what); + return iconv($convcharset, $charset . $cfg['IconvExtraParams'], $what); break; case PMA_CHARSET_LIBICONV: return libiconv($convcharset, $charset, $what); @@ -241,7 +245,7 @@ if (!defined('PMA_CHARSET_CONVERSION_LIB_INCLUDED')){ return recode_string($charset . '..' . $convcharset, $what); break; case PMA_CHARSET_ICONV: - return iconv($charset, $convcharset, $what); + return iconv($charset, $convcharset . $cfg['IconvExtraParams'], $what); break; case PMA_CHARSET_LIBICONV: return libiconv($charset, $convcharset, $what); @@ -272,7 +276,7 @@ if (!defined('PMA_CHARSET_CONVERSION_LIB_INCLUDED')){ return recode_string($src_charset . '..' . $dest_charset, $what); break; case PMA_CHARSET_ICONV: - return iconv($src_charset, $dest_charset, $what); + return iconv($src_charset, $dest_charset . $GLOBALS['cfg']['IconvExtraParams'], $what); break; case PMA_CHARSET_LIBICONV: return libiconv($src_charset, $dest_charset, $what); @@ -312,7 +316,7 @@ if (!defined('PMA_CHARSET_CONVERSION_LIB_INCLUDED')){ while (!feof($fin)) { $line = fgets($fin, 4096); if ($GLOBALS['PMA_recoding_engine'] == PMA_CHARSET_ICONV) { - $dist = iconv($src_charset, $dest_charset, $line); + $dist = iconv($src_charset, $dest_charset . $GLOBALS['cfg']['IconvExtraParams'], $line); } else { $dist = libiconv($src_charset, $dest_charset, $line); } diff --git a/libraries/config_import.lib.php3 b/libraries/config_import.lib.php3 index df12aed54..3a512445f 100644 --- a/libraries/config_import.lib.php3 +++ b/libraries/config_import.lib.php3 @@ -482,6 +482,10 @@ if (!defined('PMA_CONFIG_IMPORT_LIB_INCLUDED')) { $cfg['AllowAnywhereRecoding'] = FALSE; } + if (!isset($cfg['IconvExtraParams'])) { + $cfg['IconvExtraParams'] = '//IGNORE'; + } + if (!isset($cfg['Lang']) &&isset($cfgLang)) { $cfg['Lang'] = $cfgLang; unset($cfgLang);