summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2009-11-11 13:25:53 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2009-11-11 13:25:53 +0000
commit4b83a0d848627ce3a9cb63f647c5a9fdb5799f5b (patch)
tree8f4ed35962636c9667a55f22fae8b7f6f194c5e4 /lib
parent58103680bdfe3cf404267504bf8dd2155140fa61 (diff)
downloadredmine-4b83a0d848627ce3a9cb63f647c5a9fdb5799f5b.tar.gz
redmine-4b83a0d848627ce3a9cb63f647c5a9fdb5799f5b.zip
Fixes diff parser for when lines starting with multiple dashes are removed (#4186).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3028 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'lib')
-rw-r--r--lib/redmine/unified_diff.rb5
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/redmine/unified_diff.rb b/lib/redmine/unified_diff.rb
index e66ff217f..09fbfcf1a 100644
--- a/lib/redmine/unified_diff.rb
+++ b/lib/redmine/unified_diff.rb
@@ -27,11 +27,10 @@ module Redmine
@truncated = false
diff_table = DiffTable.new(diff_type)
diff.each do |line|
- if line =~ /^(---|\+\+\+) (.*)$/
+ unless diff_table.add_line line
self << diff_table if diff_table.length > 1
diff_table = DiffTable.new(diff_type)
end
- diff_table.add_line line
lines += 1
if options[:max_lines] && lines > options[:max_lines]
@truncated = true
@@ -61,11 +60,11 @@ module Redmine
end
# Function for add a line of this Diff
+ # Returns false when the diff ends
def add_line(line)
unless @parsing
if line =~ /^(---|\+\+\+) (.*)$/
@file_name = $2
- return false
elsif line =~ /^@@ (\+|\-)(\d+)(,\d+)? (\+|\-)(\d+)(,\d+)? @@/
@line_num_l = $2.to_i
@line_num_r = $5.to_i