blob: a742a841ee40f0805e7f70f477ef441a83f8d59d [file] [log] [blame]
[%# The contents of this file are subject to the Mozilla Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is the Bugzilla Bug Tracking System.
#
# The Initial Developer of the Original Code is Netscape Communications
# Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s): John Keiser <jkeiser@netscape.com>
# Frédéric Buclin <LpSolit@gmail.com>
#%]
[%# This line is really long for a reason: to get rid of any possible textnodes
# between the elements. This is necessary because DOM parent-child-sibling
# relations can change and screw up the javascript for restoring, collapsing
# and expanding. Do not change without testing all three of those.
# Also, the first empty row is required because 'table-layout: fixed' only
# considers the first row to determine column widths. If a colspan is found,
# it then share the width equally among all columns, which we don't want.
#%]
<table class="file_table"><thead><tr><td class="num"></td><td></td><td class="num"></td><td></td></tr><tr><td class="file_head" colspan="4"><a href="#" onclick="return twisty_click(this)">[% collapsed ? '(+)' : '(-)' %]</a><input type="checkbox" name="[% file.filename FILTER html %]"[% collapsed ? '' : ' checked' %] style="display: none">
[% IF lxr_prefix && !file.is_add %]
<a href="[% lxr_prefix %]">[% file.filename FILTER html %]</a>
[% ELSE %]
[% file.filename FILTER html %]
[% END %]
[% IF file.plus_lines %]
[% IF file.minus_lines %]
(-[% file.minus_lines %]&nbsp;/&nbsp;+[% file.plus_lines %]&nbsp;lines)
[% ELSE %]
(+[% file.plus_lines %]&nbsp;lines)
[% END %]
[% ELSE %]
[% IF file.minus_lines %]
(-[% file.minus_lines %]&nbsp;lines)
[% END %]
[% END %]
</td></tr></thead><tbody class="[% collapsed ? 'file_collapse' : 'file' %]">
<script type="text/javascript">
incremental_restore()
</script>
[% section_num = 0 %]
[% FOREACH section = sections %]
[% section_num = section_num + 1 %]
<tr><th colspan="4" class="section_head">
<table id="[% file.filename FILTER html %]_sec[% section_num %]" cellpadding="0" cellspacing="0">
<tr><th width="95%" align="left">
[% IF file.is_add %]
Added
[% ELSIF file.is_remove %]
[% IF bonsai_prefix %]
<a href="[% bonsai_prefix %]">Removed</a>
[% ELSE %]
Removed
[% END %]
[% ELSE %]
[% IF bonsai_prefix %]
<a href="[% bonsai_prefix %]#[% section.old_start %]">
[% END %]
[% IF section.old_lines > 1 %]
&nbsp;Lines&nbsp;[% section.old_start %]-[% section.old_start +
section.old_lines - 1 %]
[% ELSE %]
Line&nbsp;[% section.old_start %]
[% END %]
[% IF bonsai_prefix %]
</a>
[% END %]
&nbsp;&nbsp;[% section.func_info FILTER html IF section.func_info %]
[% END %]
</th><th>
<a href="#[% file.filename FILTER html %]_sec[% section_num %]">Link&nbsp;Here</a>&nbsp;
</th></tr></table>
</th></tr>
[% current_line_old = section.old_start %]
[% current_line_new = section.new_start %]
[% FOREACH group = section.groups %]
[% IF group.context %]
[% FOREACH line = group.context %]
<tr>
<td class="num">[% current_line_old %]</td>
<td><pre>[% line FILTER html %]</pre></td>
<td class="num">[% current_line_new %]</td>
<td><pre>[% line FILTER html %]</pre></td>
</tr>
[% current_line_old = current_line_old + 1 %]
[% current_line_new = current_line_new + 1 %]
[% END %]
[% END %]
[% IF group.plus.size %]
[% IF group.minus.size %]
[% i = 0 %]
[% WHILE (i < group.plus.size || i < group.minus.size) %]
[%# WHILE cannot loop more than 1000 times by default, so we break it every 500 times. %]
[% currentloop = 0 %]
[% WHILE currentloop < 500 && (i < group.plus.size || i < group.minus.size) %]
<tr>
[% IF i < group.minus.size %]
<td class="num">[% current_line_old + i %]</td>
<td class="changed"><pre>[% group.minus.$i FILTER html %]</pre></td>
[% ELSIF i == group.minus.size %]
[% rowspan = group.plus.size - group.minus.size %]
<td class="num"[% IF rowspan > 1 %] rowspan="[% rowspan FILTER none %]"[% END %]></td>
<td class="changed"[% IF rowspan > 1 %] rowspan="[% rowspan FILTER none %]"[% END %]></td>
[% END %]
[% IF i < group.plus.size %]
<td class="num">[% current_line_new + i %]</td>
<td class="changed"><pre>[% group.plus.$i FILTER html %]</pre></td>
[% ELSIF i == group.plus.size %]
[% rowspan = group.minus.size - group.plus.size %]
<td class="num"[% IF rowspan > 1 %] rowspan="[% rowspan FILTER none %]"[% END %]></td>
<td class="changed"[% IF rowspan > 1 %] rowspan="[% rowspan FILTER none %]"[% END %]></td>
[% END %]
</tr>
[% currentloop = currentloop + 1 %]
[% i = i + 1 %]
[% END %]
[% END %]
[% current_line_old = current_line_old + group.minus.size %]
[% current_line_new = current_line_new + group.plus.size %]
[% ELSE %]
[% FOREACH line = group.plus %]
[% IF file.is_add %]
<tr>
<td class="num">[% current_line_new %]</td>
<td class="added" colspan="3"><pre>[% line FILTER html %]</pre></td>
</tr>
[% ELSE %]
<tr>
[% IF loop.first %]
<td class="num"[% IF group.plus.size > 1 %] rowspan="[% group.plus.size %]"[% END %]></td>
<td[% IF group.plus.size > 1 %] rowspan="[% group.plus.size %]"[% END %]></td>
[% END %]
<td class="num">[% current_line_new %]</td>
<td class="added"><pre>[% line FILTER html %]</pre></td>
</tr>
[% END %]
[% current_line_new = current_line_new + 1 %]
[% END %]
[% END %]
[% ELSE %]
[% IF group.minus.size %]
[% FOREACH line = group.minus %]
[% IF file.is_remove %]
<tr>
<td class="num">[% current_line_old %]</td>
<td class="removed" colspan="3"><pre>[% line FILTER html %]</pre></td>
</tr>
[% ELSE %]
<tr>
<td class="num">[% current_line_old %]</td>
<td class="removed"><pre>[% line FILTER html %]</pre></td>
[% IF loop.first %]
<td class="num"[% IF group.minus.size > 1 %] rowspan="[% group.minus.size %]"[% END %]></td>
<td[% IF group.minus.size > 1 %] rowspan="[% group.minus.size %]"[% END %]></td>
[% END %]
</tr>
[% END %]
[% current_line_old = current_line_old + 1 %]
[% END %]
[% END %]
[% END %]
[% END %]
[% END %]
</table>