@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
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
diff = Redmine::UnifiedDiff.new(read_diff_fixture('subversion.diff'), :max_lines => 20)
assert_equal 2, diff.size
end
+
+ def test_line_starting_with_dashes
+ diff = Redmine::UnifiedDiff.new(<<-DIFF
+--- old.txt Wed Nov 11 14:24:58 2009
++++ new.txt Wed Nov 11 14:25:02 2009
+@@ -1,8 +1,4 @@
+-Lines that starts with dashes:
+-
+-------------------------
+--- file.c
+-------------------------
++A line that starts with dashes:
+
+ and removed.
+
+@@ -23,4 +19,4 @@
+
+
+
+-Another chunk of change
++Another chunk of changes
+
+DIFF
+ )
+ assert_equal 1, diff.size
+ end
private