move utf8 encoding from view to UnifiedDiff (#12641)

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11545 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Toshi MARUYAMA 2013-03-07 08:31:58 +00:00
parent 8e92ffc191
commit b19a6d06d9
2 changed files with 7 additions and 14 deletions

View File

@ -10,7 +10,7 @@
<thead>
<tr>
<th colspan="4" class="filename">
<%= Redmine::CodesetUtil.to_utf8_by_setting(table_file.file_name) %>
<%= table_file.file_name %>
</th>
</tr>
</thead>
@ -24,11 +24,11 @@
<tr>
<th class="line-num"><%= line.nb_line_left %></th>
<td class="line-code <%= line.type_diff_left %>">
<pre><%= Redmine::CodesetUtil.to_utf8_by_setting(line.html_line_left).html_safe %></pre>
<pre><%= line.html_line_left.html_safe %></pre>
</td>
<th class="line-num"><%= line.nb_line_right %></th>
<td class="line-code <%= line.type_diff_right %>">
<pre><%= Redmine::CodesetUtil.to_utf8_by_setting(line.html_line_right).html_safe %></pre>
<pre><%= line.html_line_right.html_safe %></pre>
</td>
</tr>
<% end -%>
@ -40,7 +40,7 @@
<thead>
<tr>
<th colspan="3" class="filename">
<%= Redmine::CodesetUtil.to_utf8_by_setting(table_file.file_name) %>
<%= table_file.file_name %>
</th>
</tr>
</thead>
@ -55,7 +55,7 @@
<th class="line-num"><%= line.nb_line_left %></th>
<th class="line-num"><%= line.nb_line_right %></th>
<td class="line-code <%= line.type_diff %>">
<pre><%= Redmine::CodesetUtil.to_utf8_by_setting(line.html_line).html_safe %></pre>
<pre><%= line.html_line.html_safe %></pre>
</td>
</tr>
<% end -%>

View File

@ -30,15 +30,8 @@ module Redmine
diff_table = DiffTable.new(diff_type, diff_style)
diff.each do |line|
line_encoding = nil
if line.respond_to?(:force_encoding)
line_encoding = line.encoding
# TODO: UTF-16 and Japanese CP932 which is imcompatible with ASCII
# In Japan, diffrence between file path encoding
# and file contents encoding is popular.
line.force_encoding('ASCII-8BIT')
end
unless diff_table.add_line line
line.force_encoding(line_encoding) if line_encoding
line = Redmine::CodesetUtil.to_utf8_by_setting(line)
unless diff_table.add_line(line)
self << diff_table if diff_table.length > 0
diff_table = DiffTable.new(diff_type, diff_style)
end