Skip to content

Commit d69baef

Browse files
committed
Fix escaped path decoding
1 parent 28aa69f commit d69baef

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

lib/git/escaped_path.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def unescape
4242
private
4343

4444
def extract_octal(path, index)
45-
[path[index + 1..index + 4].to_i(8), 4]
45+
[path[index + 1..index + 3].to_i(8), 4]
4646
end
4747

4848
def extract_escape(path, index)

tests/units/test_escaped_path.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@ def test_unicode_path
2121
assert_equal(expected_unescaped_path, Git::EscapedPath.new(path).unescape)
2222
end
2323

24+
def test_unicode_path2
25+
path = 'test\320\2411991923'
26+
expected_unescaped_path = 'testС1991923'
27+
assert_equal(expected_unescaped_path, Git::EscapedPath.new(path).unescape)
28+
end
29+
2430
def test_single_char_escapes
2531
Git::EscapedPath::UNESCAPES.each_pair do |escape_char, expected_char|
2632
path = "\\#{escape_char}"

0 commit comments

Comments
 (0)