summaryrefslogtreecommitdiffstats
path: root/vendor/diff-display
diff options
context:
space:
mode:
authorJohan Sørensen <johan@johansorensen.com>2009-03-12 13:11:29 +0100
committerJohan Sørensen <johan@johansorensen.com>2009-04-22 15:16:23 +0200
commit7f2d5e93ff5d6749cd97f423817a871dd4c9c6e3 (patch)
tree48ef7b6bef5423bcc52c45d36b861d2cd492e89b /vendor/diff-display
parent60d273f8704e655fcabe8aabb28a0051aed8181b (diff)
downloadgitorious-mainline-outdated-7f2d5e93ff5d6749cd97f423817a871dd4c9c6e3.zip
gitorious-mainline-outdated-7f2d5e93ff5d6749cd97f423817a871dd4c9c6e3.tar.gz
gitorious-mainline-outdated-7f2d5e93ff5d6749cd97f423817a871dd4c9c6e3.tar.bz2
Updated Diff::Display to not mark complete-rewrite lines as having inline diffs
Diffstat (limited to 'vendor/diff-display')
-rw-r--r--vendor/diff-display/lib/diff/display/unified/generator.rb18
-rw-r--r--vendor/diff-display/test/fixtures/simple_rewrite.diff8
-rw-r--r--vendor/diff-display/test/test_datastructure.rb11
-rw-r--r--vendor/diff-display/test/test_generator.rb16
4 files changed, 46 insertions, 7 deletions
diff --git a/vendor/diff-display/lib/diff/display/unified/generator.rb b/vendor/diff-display/lib/diff/display/unified/generator.rb
index 91b1d16..2107ed9 100644
--- a/vendor/diff-display/lib/diff/display/unified/generator.rb
+++ b/vendor/diff-display/lib/diff/display/unified/generator.rb
@@ -135,13 +135,17 @@ module Diff::Display
def process_lines_with_differences(oldline, newline)
start, ending = get_change_extent(oldline, newline)
- # -
- line = inline_diff(oldline, start, ending)
- process_line(line, :rem, true)
-
- # +
- line = inline_diff(newline, start, ending)
- process_line(line, :add, true)
+ if start.zero? && ending.zero?
+ process_line(oldline, :rem, false) # -
+ process_line(newline, :add, false) # +
+ else
+ # -
+ line = inline_diff(oldline, start, ending)
+ process_line(line, :rem, true)
+ # +
+ line = inline_diff(newline, start, ending)
+ process_line(line, :add, true)
+ end
end
# Inserts string formating characters around the section of a string
diff --git a/vendor/diff-display/test/fixtures/simple_rewrite.diff b/vendor/diff-display/test/fixtures/simple_rewrite.diff
new file mode 100644
index 0000000..d7a7cff
--- /dev/null
+++ b/vendor/diff-display/test/fixtures/simple_rewrite.diff
@@ -0,0 +1,8 @@
+diff --git a/text.txt b/text.txt
+index 7b57bd2..7010a82 100644
+--- a/text.txt
++++ b/text.txt
+@@ -1 +1 @@
+-some text
++asdasdsa
+\ No newline at end of file
diff --git a/vendor/diff-display/test/test_datastructure.rb b/vendor/diff-display/test/test_datastructure.rb
index 6073010..1a1d29d 100644
--- a/vendor/diff-display/test/test_datastructure.rb
+++ b/vendor/diff-display/test/test_datastructure.rb
@@ -53,6 +53,17 @@ class TestDatastructure < Test::Unit::TestCase
assert_equal :nonewline, Diff::Display::Line.nonewline("foo").identifier
end
+ def test_expands_inline_changes
+ line = Diff::Display::AddLine.new('the \\0quick \\1brown fox', 42, true)
+ expanded = line.expand_inline_changes_with("START", "END")
+ assert_equal "the STARTquick ENDbrown fox", expanded.to_s
+ end
+
+ def test_segments
+ line = Diff::Display::AddLine.new('the \\0quick \\1brown fox', 42, true)
+ assert_equal ["the ", "quick ", "brown fox"], line.segments
+ end
+
# Block
def test_block_behaves_like_an_array
block = Diff::Display::Block.new
diff --git a/vendor/diff-display/test/test_generator.rb b/vendor/diff-display/test/test_generator.rb
index 09f6b60..bc5b73a 100644
--- a/vendor/diff-display/test/test_generator.rb
+++ b/vendor/diff-display/test/test_generator.rb
@@ -108,7 +108,23 @@ class TestGenerator < Test::Unit::TestCase
]
assert_equal expected, line_numbers_for(:simple)
end
+
+ def test_rewrite_line_does_not_set_inline_changes
+ diff_data = load_diff("simple_rewrite")
+ data = Diff::Display::Unified::Generator.run(diff_data)
+
+ assert_equal diff_data.chomp, data.to_diff
+ modblock = data[5]
+ assert_instance_of Diff::Display::ModBlock, modblock
+
+ assert_instance_of Diff::Display::RemLine, rem = modblock[0]
+ assert_instance_of Diff::Display::AddLine, add = modblock[1]
+
+ assert !rem.inline_changes?, "rem has inline changes"
+ assert !add.inline_changes?, "add has inline_changes"
+ end
+ protected
def line_numbers_for(diff)
diff_data = load_diff(diff)
data = Diff::Display::Unified::Generator.run(diff_data)