[前][次][番号順一覧][スレッド一覧]

ruby-changes:66913

From: Martin <ko1@a...>
Date: Tue, 27 Jul 2021 18:15:24 +0900 (JST)
Subject: [ruby-changes:66913] 26b1e6fca8 (master): Deal with Unicode ranges in the file emoji-sequences.txt

https://git.ruby-lang.org/ruby.git/commit/?id=26b1e6fca8

From 26b1e6fca8f2c9e02e7b5d26fb35a16f3e7a66a3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Martin=20D=C3=BCrst?= <duerst@i...>
Date: Tue, 27 Jul 2021 18:12:24 +0900
Subject: Deal with Unicode ranges in the file emoji-sequences.txt

Detect Unicode ranges and loop over them.
This fixes issue #18028.
---
 bin/goruby                         |  1 +
 bin/ruby                           |  1 +
 lib/libruby.so.3.1.0               |  1 +
 test/ruby/enc/test_emoji_breaks.rb | 11 ++++++++++-
 4 files changed, 13 insertions(+), 1 deletion(-)
 create mode 120000 bin/goruby
 create mode 120000 bin/ruby
 create mode 120000 lib/libruby.so.3.1.0

diff --git a/bin/goruby b/bin/goruby
new file mode 120000
index 0000000..ac29731
--- /dev/null
+++ b/bin/goruby
@@ -0,0 +1 @@
+../goruby
\ No newline at end of file
diff --git a/bin/ruby b/bin/ruby
new file mode 120000
index 0000000..69cf081
--- /dev/null
+++ b/bin/ruby
@@ -0,0 +1 @@
+../ruby
\ No newline at end of file
diff --git a/lib/libruby.so.3.1.0 b/lib/libruby.so.3.1.0
new file mode 120000
index 0000000..db22f09
--- /dev/null
+++ b/lib/libruby.so.3.1.0
@@ -0,0 +1 @@
+../libruby.so.3.1.0
\ No newline at end of file
diff --git a/test/ruby/enc/test_emoji_breaks.rb b/test/ruby/enc/test_emoji_breaks.rb
index e765b10..1d58e43 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 https://github.com/ruby/ruby/blob/trunk/test/ruby/enc/test_emoji_breaks.rb#L84
         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
-- 
cgit v1.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]