improved the full diff view a bit more
This commit is contained in:
parent
5fc888924c
commit
58bb110c92
@ -131,6 +131,51 @@ $this->load->view (
|
|||||||
|
|
||||||
<div id="code_diff_mainarea_result">
|
<div id="code_diff_mainarea_result">
|
||||||
<?php
|
<?php
|
||||||
|
function format_diff ($a, $b, $css_class)
|
||||||
|
{
|
||||||
|
if ($b == '') return htmlspecialchars($a);
|
||||||
|
|
||||||
|
$cc = '';
|
||||||
|
$diffstart = -1;
|
||||||
|
$aalen = strlen($a);
|
||||||
|
$bblen = strlen($b);
|
||||||
|
|
||||||
|
for ($i = 0; $i < $aalen && $i < $bblen; $i++)
|
||||||
|
{
|
||||||
|
if ($a[$i] == $b[$i])
|
||||||
|
{
|
||||||
|
if ($diffstart >= 0)
|
||||||
|
{
|
||||||
|
$cc .= sprintf ('<span class="%s">', $css_class);
|
||||||
|
$cc .= htmlspecialchars(substr($a, $diffstart, $i - $diffstart));
|
||||||
|
$cc .= '</span>';
|
||||||
|
$diffstart = -1;
|
||||||
|
}
|
||||||
|
$cc .= htmlspecialchars($a[$i]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ($diffstart < 0) $diffstart = $i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($diffstart >= 0)
|
||||||
|
{
|
||||||
|
$cc .= sprintf ('<span class="%s">', $css_class);
|
||||||
|
$cc .= htmlspecialchars(substr($a, $diffstart, $aalen - $diffstart));
|
||||||
|
$cc .= '</span>';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ($aalen > $bblen)
|
||||||
|
{
|
||||||
|
$cc .= htmlspecialchars(substr ($a, $aalen, $aalen - $bblen));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $cc;
|
||||||
|
}
|
||||||
|
|
||||||
if (!$fullview)
|
if (!$fullview)
|
||||||
{
|
{
|
||||||
print '<table id="code_diff_mainarea_result_table">';
|
print '<table id="code_diff_mainarea_result_table">';
|
||||||
@ -290,19 +335,15 @@ else
|
|||||||
|
|
||||||
foreach ($file['content'] as $x)
|
foreach ($file['content'] as $x)
|
||||||
{
|
{
|
||||||
if (array_key_exists('rev1line', $x))
|
$diffclass = array_key_exists('rev1diffclass', $x)? $x['rev1diffclass']: 'diff';
|
||||||
{
|
print "<span class='{$diffclass}'>";
|
||||||
$diffclass = array_key_exists('rev1diffclass', $x)? $x['rev1diffclass']: 'diff';
|
|
||||||
print "<span class='{$diffclass}'>";
|
if ($diffclass == 'diffchanged')
|
||||||
if ($x['rev1line'] == '') print ' ';
|
print format_diff ($x['rev1line'], $x['rev2line'], 'diffchangedold');
|
||||||
else print htmlspecialchars($x['rev1line']);
|
|
||||||
print "</span>";
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
print htmlspecialchars($x['rev1line']);
|
||||||
print $x['rev1lineno'];
|
|
||||||
}
|
print "</span>\n";
|
||||||
print "\n";
|
|
||||||
}
|
}
|
||||||
printf ("</div>");
|
printf ("</div>");
|
||||||
print '</pre>';
|
print '</pre>';
|
||||||
@ -331,22 +372,16 @@ else
|
|||||||
print "<pre class='prettyprint lang-{$fileext}' style='width: 100%' id='code_diff_mainarea_result_fulldiffnew'>";
|
print "<pre class='prettyprint lang-{$fileext}' style='width: 100%' id='code_diff_mainarea_result_fulldiffnew'>";
|
||||||
foreach ($file['content'] as $x)
|
foreach ($file['content'] as $x)
|
||||||
{
|
{
|
||||||
if (array_key_exists('rev2line', $x))
|
$diffclass = array_key_exists('rev2diffclass', $x)? $x['rev2diffclass']: 'diff';
|
||||||
{
|
|
||||||
$diffclass = array_key_exists('rev2diffclass', $x)? $x['rev2diffclass']: 'diff';
|
|
||||||
|
|
||||||
print "<span class='{$diffclass}'>";
|
print "<span class='{$diffclass}'>";
|
||||||
|
|
||||||
if ($x['rev2line'] == '') print ' ';
|
if ($diffclass == 'diffchanged')
|
||||||
else print htmlspecialchars($x['rev2line']);
|
print format_diff ($x['rev2line'], $x['rev1line'], 'diffchangednew');
|
||||||
|
|
||||||
print "</span>";
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
print htmlspecialchars($x['rev2line']);
|
||||||
print $x['rev2lineno'];
|
|
||||||
}
|
print "</span>\n";
|
||||||
print "\n";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
print '</pre>';
|
print '</pre>';
|
||||||
|
@ -374,3 +374,12 @@
|
|||||||
padding-left:15px;
|
padding-left:15px;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#code_diff_mainarea_result_fullview .diffchangedold {
|
||||||
|
text-decoration: line-through;
|
||||||
|
}
|
||||||
|
|
||||||
|
#code_diff_mainarea_result_fullview .diffchangednew {
|
||||||
|
//background-color:#ffff00;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user