diff --git a/ChangeLog b/ChangeLog index 4010dda20..4bda4f740 100644 --- a/ChangeLog +++ b/ChangeLog @@ -20,6 +20,7 @@ $HeadURL: https://phpmyadmin.svn.sourceforge.net/svnroot/phpmyadmin/trunk/phpMyA designer, thanks to Sutharshan Balachandren. - bug #2983062, patch #2989408 [engines] Fix warnings when changing table engine to Maria, thanks to Madhura Jayaratne. +- bug #2974067 [display] non-binary fields shown as hex 3.3.2.0 (2010-04-13) - patch #2969449 [core] Name for MERGE engine varies depending on the diff --git a/libraries/common.lib.php b/libraries/common.lib.php index f07223303..2e184746d 100644 --- a/libraries/common.lib.php +++ b/libraries/common.lib.php @@ -2595,6 +2595,17 @@ function PMA_printable_bit_value($value, $length) { return $printable; } +/** + * Verifies whether the value contains a non-printable character + * + * @uses preg_match() + * @param string $value + * @return boolean + */ +function PMA_contains_nonprintable_ascii($value) { + return preg_match('@[^[:print:]]@', $value); +} + /** * Converts a BIT type default value * for example, b'010' becomes 010 diff --git a/libraries/display_tbl.lib.php b/libraries/display_tbl.lib.php index 41bb98765..05feefb63 100644 --- a/libraries/display_tbl.lib.php +++ b/libraries/display_tbl.lib.php @@ -1368,7 +1368,7 @@ function PMA_displayTableBody(&$dt_result, &$is_display, $map, $analyzed_sql) { if ($_SESSION['tmp_user_values']['display_binary']) { // user asked to see the real contents of BINARY // fields - if ($_SESSION['tmp_user_values']['display_binary_as_hex']) { + if ($_SESSION['tmp_user_values']['display_binary_as_hex'] && PMA_contains_nonprintable_ascii($row[$i])) { $row[$i] = bin2hex($row[$i]); } else {