diff options
Diffstat (limited to 'lib/gitlab/encoding_helper.rb')
-rw-r--r-- | lib/gitlab/encoding_helper.rb | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/gitlab/encoding_helper.rb b/lib/gitlab/encoding_helper.rb index 8ac756a0b6a..c50417f4d4f 100644 --- a/lib/gitlab/encoding_helper.rb +++ b/lib/gitlab/encoding_helper.rb @@ -24,7 +24,7 @@ module Gitlab # return message if message type is binary detect = CharlockHolmes::EncodingDetector.detect(message) - return message.force_encoding("BINARY") if all_binary?(message, detect) + return message.force_encoding("BINARY") if detect_binary?(message, detect) if detect && detect[:encoding] && detect[:confidence] > ENCODING_CONFIDENCE_THRESHOLD # force detected encoding if we have sufficient confidence. @@ -38,17 +38,17 @@ module Gitlab "--broken encoding: #{encoding}" end - def all_binary?(data, detect = nil) + def detect_binary?(data, detect = nil) detect ||= CharlockHolmes::EncodingDetector.detect(data) - detect && detect[:type] == :binary + detect && detect[:type] == :binary && detect[:confidence] == 100 end - def libgit2_binary?(data) + def detect_libgit2_binary?(data) # EncodingDetector checks the first 1024 * 1024 bytes for NUL byte, libgit2 checks # only the first 8000 (https://github.com/libgit2/libgit2/blob/2ed855a9e8f9af211e7274021c2264e600c0f86b/src/filter.h#L15), # which is what we use below to keep a consistent behavior. detect = CharlockHolmes::EncodingDetector.new(8000).detect(data) - all_binary?(data, detect) + detect && detect[:type] == :binary end def encode_utf8(message) |