From fd100e1ef1726418c81ab8833cf8bcf86fab6eef Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rub=C3=A9n=20D=C3=A1vila?= <rdavila84@gmail.com>
Date: Wed, 30 Dec 2015 21:44:12 -0500
Subject: [PATCH] Don't modify "match" diff lines. #3945

---
 lib/gitlab/diff/highlight.rb           | 7 ++++++-
 spec/lib/gitlab/diff/highlight_spec.rb | 5 +++++
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/lib/gitlab/diff/highlight.rb b/lib/gitlab/diff/highlight.rb
index 40a54ede2bb..c780ea21775 100644
--- a/lib/gitlab/diff/highlight.rb
+++ b/lib/gitlab/diff/highlight.rb
@@ -25,7 +25,12 @@ module Gitlab
 
       def update_diff_lines
         @highlighted_code.lines.each_with_index do |line, i|
-          @diff_lines[i].text = "#{@diff_line_prefixes[i]}#{line}"
+          diff_line = @diff_lines[i]
+
+          # ignore highlighting for "match" lines
+          next if diff_line.type == 'match'
+
+          diff_line.text = "#{@diff_line_prefixes[i]}#{line}"
         end
 
         @diff_lines
diff --git a/spec/lib/gitlab/diff/highlight_spec.rb b/spec/lib/gitlab/diff/highlight_spec.rb
index 80083c15cff..54621f773d7 100644
--- a/spec/lib/gitlab/diff/highlight_spec.rb
+++ b/spec/lib/gitlab/diff/highlight_spec.rb
@@ -24,5 +24,10 @@ describe Gitlab::Diff::Highlight, lib: true do
     it 'should keep the inline diff markup' do
       expect(diff_lines[5].text).to match(Regexp.new(Regexp.escape('<span class="idiff">RuntimeError, </span>')))
     end
+
+    it 'should not modify "match" lines' do
+      expect(diff_lines[0].text).to eq('@@ -6,12 +6,18 @@ module Popen')
+      expect(diff_lines[22].text).to eq('@@ -19,6 +25,7 @@ module Popen')
+    end
   end
 end
-- 
GitLab