Skip to content

Commit d679ad1

Browse files
author
dbeard
committed
Fix trailing whitespace issue in filename parsing
1 parent 3b6897d commit d679ad1

3 files changed

Lines changed: 18 additions & 1 deletion

File tree

lib/git_diff_parser/patches.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ def self.parse(contents)
2828
body = false
2929
when /^\-\-\-/
3030
when %r{^\+\+\+ b/(?<file_name>.*)}
31-
file_name = Regexp.last_match[:file_name]
31+
file_name = Regexp.last_match[:file_name].rstrip
3232
body = true
3333
when /^(?<body>[\ @\+\-\\].*)/
3434
patch << Regexp.last_match[:body] if body

spec/git_diff_parser/patches_spec.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ module GitDiffParser
1515
let(:sjis_file) { 'spec/support/fixtures/sjis.csv' }
1616
let(:sjis_diff) { sjis_file.gsub(/\.csv\z/, '.diff') }
1717
let(:sjis_body) { File.read(sjis_diff) }
18+
19+
let(:whitespace_file) { 'b/spec/support/fixtures/sjis.csv' }
20+
let(:whitespace_filename_diff) { 'spec/support/fixtures/whitespacefilename.diff' }
21+
let(:whitespace_filename_body) { File.read(whitespace_filename_diff) }
1822

1923
it 'returns parsed patches' do
2024
diff_body = File.read('spec/support/fixtures/d1bd180-c27866c.diff')
@@ -36,6 +40,11 @@ module GitDiffParser
3640
expect { patches = Patches.parse(sjis_body) }.not_to raise_error
3741
expect(patches[0].file).to eq sjis_file
3842
end
43+
44+
it 'correctly strips trailing whitespace from filenames' do
45+
patches = Patches.parse(whitespace_filename_body)
46+
expect(patches[0].file == whitespace_file)
47+
end
3948
end
4049
end
4150
end
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
diff --git a/spec/support/fixtures/sjis.csv b/spec/support/fixtures/sjis.csv
2+
new file mode 100644
3+
index 0000000..4c19aee
4+
--- /dev/null
5+
+++ b/spec/support/fixtures/sjis.csv
6+
@@ -0,0 +1 @@
7+
+�M abcdefg
8+
\ No newline at end of file

0 commit comments

Comments
 (0)