From 24801a0c17038e56d3eb6f43d40c925ce361e2b3 Mon Sep 17 00:00:00 2001 From: jakubvrana Date: Mon, 14 Sep 2009 19:39:37 +0000 Subject: [PATCH] Display whitespace in texts (bug #2858042) git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@1110 7c3ca157-0c34-0410-bff1-cbf682f78f5c --- adminer/include/editing.inc.php | 6 +++--- adminer/include/functions.inc.php | 8 ++++++++ adminer/select.inc.php | 6 +++--- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/adminer/include/editing.inc.php b/adminer/include/editing.inc.php index 990fde86..907847f4 100644 --- a/adminer/include/editing.inc.php +++ b/adminer/include/editing.inc.php @@ -53,10 +53,10 @@ function select($result, $dbh2 = null) { } else { if ($blobs[$key] && !is_utf8($val)) { $val = "" . lang('%d byte(s)', strlen($val)) . ""; //! link to download - } elseif (!strlen(trim($val, " \t"))) { + } elseif (!strlen($val)) { $val = " "; // some content to print a border } else { - $val = nl2br(h($val)); + $val = whitespace(h($val)); if ($types[$key] == 254) { $val = "$val"; } @@ -124,7 +124,7 @@ function process_field($field, $type_field) { global $dbh; return idf_escape($field["field"]) . process_type($type_field) . ($field["null"] ? " NULL" : " NOT NULL") // NULL for timestamp - . (!isset($field["default"]) || $field["auto_increment"] || ereg('text|blob', $field["type"]) ? "" : " DEFAULT " . ($field["type"] == "timestamp" && eregi("^CURRENT_TIMESTAMP( on update CURRENT_TIMESTAMP)?$", $field["default"]) ? $field["default"] : $dbh->quote($field["default"]))) + . (!$field["has_default"] || $field["auto_increment"] || ereg('text|blob', $field["type"]) ? "" : " DEFAULT " . ($field["type"] == "timestamp" && eregi("^CURRENT_TIMESTAMP( on update CURRENT_TIMESTAMP)?$", $field["default"]) ? $field["default"] : $dbh->quote($field["default"]))) . " COMMENT " . $dbh->quote($field["comment"]) ; } diff --git a/adminer/include/functions.inc.php b/adminer/include/functions.inc.php index b66462bb..76bba2a9 100644 --- a/adminer/include/functions.inc.php +++ b/adminer/include/functions.inc.php @@ -43,6 +43,14 @@ function h($string) { return htmlspecialchars($string, ENT_QUOTES); } +/** Convert text whitespace to HTML +* @param string +* @return string +*/ +function whitespace($string) { + return nl2br(preg_replace('~(^| ) ~m', '\\1 ', str_replace("\t", " ", $string))); +} + /** Escape for TD * @param string * @return string diff --git a/adminer/select.inc.php b/adminer/select.inc.php index 93b5c27a..bf6e2e93 100644 --- a/adminer/select.inc.php +++ b/adminer/select.inc.php @@ -219,12 +219,12 @@ if (!$columns) { if (ereg('blob|binary', $fields[$key]["type"]) && strlen($val)) { $link = h(ME . 'download=' . urlencode($TABLE) . '&field=' . urlencode($key) . '&') . $unique_idf; } - if (!strlen(trim($val, " \t"))) { + if (!strlen($val)) { $val = " "; } elseif (strlen($text_length) && ereg('blob|text', $fields[$key]["type"]) && is_utf8($val)) { - $val = nl2br(shorten_utf8($val, max(0, intval($text_length)))); // usage of LEFT() would reduce traffic but complicate query + $val = whitespace(shorten_utf8($val, max(0, intval($text_length)))); // usage of LEFT() would reduce traffic but complicate query } else { - $val = nl2br(h($val)); + $val = whitespace(h($val)); } if (!$link) { // link related items