diff options
author | Martin Dürst <[email protected]> | 2021-07-27 18:12:24 +0900 |
---|---|---|
committer | Martin Dürst <[email protected]> | 2021-07-27 18:14:20 +0900 |
commit | 26b1e6fca8f2c9e02e7b5d26fb35a16f3e7a66a3 (patch) | |
tree | f09314903b6f91447e7232b7c6ac6940b311bbe1 /test/ruby/enc/test_emoji_breaks.rb | |
parent | c3d31377b36b905779683ef22e4c27d25ddaa037 (diff) |
Deal with Unicode ranges in the file emoji-sequences.txt
Detect Unicode ranges and loop over them.
This fixes issue #18028.
Diffstat (limited to 'test/ruby/enc/test_emoji_breaks.rb')
-rw-r--r-- | test/ruby/enc/test_emoji_breaks.rb | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/test/ruby/enc/test_emoji_breaks.rb b/test/ruby/enc/test_emoji_breaks.rb index e765b10233..1d58e43ffa 100644 --- a/test/ruby/enc/test_emoji_breaks.rb +++ b/test/ruby/enc/test_emoji_breaks.rb @@ -84,7 +84,16 @@ TestEmojiBreaks.data_files_available? and class TestEmojiBreaks raise "File Name Mismatch: line: #{line}, expected filename: #{file.basename}.txt" if $.==1 and not line=="# #{file.basename}.txt" version_mismatch = false if line =~ /^# Version: #{file.version}/ next if /\A(#|\z)/.match? line - file_tests << BreakTest.new(file.basename, $., *line.split('#')) rescue 'whatever' + if line =~ /^(\h{4,6})\.\.(\h{4,6}) *(;.+)/ # deal with Unicode ranges in emoji-sequences.txt (Bug #18028) + range_start = $1.to_i(16) + range_end = $2.to_i(16) + rest = $3 + (range_start..range_end).each do |code_point| + file_tests << BreakTest.new(file.basename, $., *(code_point.to_s(16)+rest).split('#')) rescue 'whatever' + end + else + file_tests << BreakTest.new(file.basename, $., *line.split('#')) rescue 'whatever' + end end raise "File Version Mismatch: file: #{file.fullname}, version: #{file.version}" if version_mismatch tests += file_tests |