Changeset 463


Ignore:
Timestamp:
2007-07-29T06:40:44+02:00 (8 years ago)
Author:
moo
Message:

fix nesting <span> and <li>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/coverager/coverager.php

    r460 r463  
    108108                ob_start();
    109109                highlight_string($source);
    110                 $lines = explode('<br />', str_replace("\n", "", ob_get_clean()));
     110                $lines = str_replace("\n", "", ob_get_clean());
     111                $lines = str_replace('<code>', '', $lines);
     112                $lines = str_replace('</code>', '', $lines);
     113                $lines = preg_replace('(^<span[^>]*>|</span>$)', '', $lines);
     114                $lines = explode('<br />', $lines);
    111115                $last = array_pop($lines);
    112116                $filecov = sprint_cov($fileinfo['cov'], $lines, false);
     
    295299function sprint_cov($cov, $lines, $encode = true)
    296300{
     301    $lastattr = null;
    297302    foreach ($lines as $l => $line) {
    298303        $offs = $l + 1;
    299304        if ($encode) {
    300305            $line = str_replace("\n", "", htmlspecialchars($line));
     306        }
     307        else if ($line !== "") {
     308            if (substr($line, 0, 7) == '</span>') {
     309                $lastattr = null;
     310                $line = substr($line, 7);
     311            }
     312            else if (isset($lastattr)) {
     313                $line = $lastattr . $line;
     314            }
     315
     316            if (preg_match('!(<span[^>]+>|</span>).*$!', $line, $m)) {
     317                if ($m[1] == '</span>') {
     318                    $lastattr = null;
     319                }
     320                else {
     321                    $line .= '</span>';
     322                    $lastattr = $m[1];
     323                }
     324            }
    301325        }
    302326        if (isset($cov[$offs])) {
     
    312336    return implode('', $lines);
    313337}
     338
    314339if (!function_exists('xcache_coverager_decode')) {
    315340    function xcache_coverager_decode($bytes)
Note: See TracChangeset for help on using the changeset viewer.