From 9b14b990c904997faae9ddc82a036f0b8996754c Mon Sep 17 00:00:00 2001 From: Xuefer Date: Sun, 5 Jul 2009 06:22:22 +0000 Subject: [PATCH] merged r461,r462,r463,r464 from trunk git-svn-id: svn://svn.lighttpd.net/xcache/branches/1.3@615 c26eb9a1-5813-0410-bd6c-c2e55f420ca7 --- coverager.c | 2 +- coverager/coverager.css | 1 + coverager/coverager.php | 27 ++++++++++++++++++++++++++- 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/coverager.c b/coverager.c index b7ffeeb..e852066 100644 --- a/coverager.c +++ b/coverager.c @@ -520,7 +520,7 @@ PHP_FUNCTION(xcache_coverager_decode) } for (; len >= sizeof(long) * 2; len -= sizeof(long) * 2, p += 2) { - add_index_long(return_value, p[0], p[1]); + add_index_long(return_value, p[0], p[1] < 0 ? 0 : p[1]); } } /* }}} */ diff --git a/coverager/coverager.css b/coverager/coverager.css index 554f036..820a533 100644 --- a/coverager/coverager.css +++ b/coverager/coverager.css @@ -1,5 +1,6 @@ h1 { text-align: center; display: block; } input, table { font-family: sans-serif; font-size: 11px; } +th { font-size: 12px; } table { border-collapse: collapse; } table.cycles { border: 1px solid black; margin-top: 5px; margin-bottom: 5px; } table.cycles .col1 { background-color: #f5f5f5; } diff --git a/coverager/coverager.php b/coverager/coverager.php index bcc5d11..7d492a9 100644 --- a/coverager/coverager.php +++ b/coverager/coverager.php @@ -107,7 +107,11 @@ class XcacheCoverageViewer $source = implode('', $lines); ob_start(); highlight_string($source); - $lines = explode('
', str_replace("\n", "", ob_get_clean())); + $lines = str_replace("\n", "", ob_get_clean()); + $lines = str_replace('', '', $lines); + $lines = str_replace('', '', $lines); + $lines = preg_replace('(^]*>|$)', '', $lines); + $lines = explode('
', $lines); $last = array_pop($lines); $filecov = sprint_cov($fileinfo['cov'], $lines, false); $filecov .= $last; @@ -294,11 +298,31 @@ class XcacheCoverageViewer function sprint_cov($cov, $lines, $encode = true) { + $lastattr = null; foreach ($lines as $l => $line) { $offs = $l + 1; if ($encode) { $line = str_replace("\n", "", htmlspecialchars($line)); } + else if ($line !== "") { + if (substr($line, 0, 7) == '') { + $lastattr = null; + $line = substr($line, 7); + } + else if (isset($lastattr)) { + $line = $lastattr . $line; + } + + if (preg_match('!(]+>|)[^<>]*$!', $line, $m)) { + if ($m[1] == '') { + $lastattr = null; + } + else { + $line .= ''; + $lastattr = $m[1]; + } + } + } if (isset($cov[$offs])) { $lines[$l] = sprintf("
  • %s\t%s\n
  • " , $cov[$offs] ? '' : 'No' @@ -311,6 +335,7 @@ function sprint_cov($cov, $lines, $encode = true) } return implode('', $lines); } + if (!function_exists('xcache_coverager_decode')) { function xcache_coverager_decode($bytes) {