Embed the Emoji version
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66023 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
b02f3731b6
commit
7aaf5b2878
@ -38381,3 +38381,12 @@ uniname2ctype(const UChar *name, unsigned int len)
|
|||||||
#define ONIG_UNICODE_VERSION_MAJOR 10
|
#define ONIG_UNICODE_VERSION_MAJOR 10
|
||||||
#define ONIG_UNICODE_VERSION_MINOR 0
|
#define ONIG_UNICODE_VERSION_MINOR 0
|
||||||
#define ONIG_UNICODE_VERSION_TEENY 0
|
#define ONIG_UNICODE_VERSION_TEENY 0
|
||||||
|
#if defined ONIG_UNICODE_EMOJI_VERSION_STRING && !( \
|
||||||
|
ONIG_UNICODE_EMOJI_VERSION_MAJOR == 5 && \
|
||||||
|
ONIG_UNICODE_EMOJI_VERSION_MINOR == 0 && \
|
||||||
|
1)
|
||||||
|
# error ONIG_UNICODE_EMOJI_VERSION_STRING mismatch
|
||||||
|
#endif
|
||||||
|
#define ONIG_UNICODE_EMOJI_VERSION_STRING "5.0"
|
||||||
|
#define ONIG_UNICODE_EMOJI_VERSION_MAJOR 5
|
||||||
|
#define ONIG_UNICODE_EMOJI_VERSION_MINOR 0
|
||||||
|
@ -18,7 +18,11 @@ unless ARGV.size == 2
|
|||||||
abort "Usage: #{$0} data_directory emoji_data_directory"
|
abort "Usage: #{$0} data_directory emoji_data_directory"
|
||||||
end
|
end
|
||||||
|
|
||||||
$unicode_version = File.basename(ARGV[0])[/\A[.\d]+\z/]
|
pat = /(?:\A|\/)([.\d]+)\z/
|
||||||
|
$versions = {
|
||||||
|
:Unicode => ARGV[0][pat, 1],
|
||||||
|
:Emoji => ARGV[1][pat, 1],
|
||||||
|
}
|
||||||
|
|
||||||
POSIX_NAMES = %w[NEWLINE Alpha Blank Cntrl Digit Graph Lower Print XPosixPunct Space Upper XDigit Word Alnum ASCII Punct]
|
POSIX_NAMES = %w[NEWLINE Alpha Blank Cntrl Digit Graph Lower Print XPosixPunct Space Upper XDigit Word Alnum ASCII Punct]
|
||||||
|
|
||||||
@ -307,18 +311,30 @@ end
|
|||||||
def data_foreach(name, &block)
|
def data_foreach(name, &block)
|
||||||
fn = get_file(name)
|
fn = get_file(name)
|
||||||
warn "Reading #{name}"
|
warn "Reading #{name}"
|
||||||
pat = /^# #{File.basename(name).sub(/\./, '-([\\d.]+)\\.')}/
|
if /^emoji-/ =~ name
|
||||||
|
sep = ""
|
||||||
|
pat = /^# #{Regexp.quote(File.basename(name))}.*^# Version: ([\d.]+)/m
|
||||||
|
type = :Emoji
|
||||||
|
else
|
||||||
|
sep = "\n"
|
||||||
|
pat = /^# #{File.basename(name).sub(/\./, '-([\\d.]+)\\.')}/
|
||||||
|
type = :Unicode
|
||||||
|
end
|
||||||
File.open(fn, 'rb') do |f|
|
File.open(fn, 'rb') do |f|
|
||||||
line = f.gets
|
line = f.gets(sep)
|
||||||
unless /^emoji-/ =~ name
|
unless version = line[pat, 1]
|
||||||
unless pat =~ line
|
raise ArgumentError, <<-ERROR
|
||||||
raise ArgumentError, "#{name}: no Unicode version"
|
#{name}: no #{type} version
|
||||||
end
|
#{line.gsub(/^/, '> ')}
|
||||||
if !$unicode_version
|
ERROR
|
||||||
$unicode_version = $1
|
end
|
||||||
elsif $unicode_version != $1
|
if !(v = $versions[type])
|
||||||
raise ArgumentError, "#{name}: Unicode version mismatch: #$1"
|
$versions[type] = version
|
||||||
end
|
elsif v != version
|
||||||
|
raise ArgumentError, <<-ERROR
|
||||||
|
#{name}: #{type} version mismatch: #{version} to #{v}
|
||||||
|
#{line.gsub(/^/, '> ')}
|
||||||
|
ERROR
|
||||||
end
|
end
|
||||||
f.each(&block)
|
f.each(&block)
|
||||||
end
|
end
|
||||||
@ -510,17 +526,20 @@ uniname2ctype(const UChar *name, unsigned int len)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
__HEREDOC
|
__HEREDOC
|
||||||
versions = $unicode_version.scan(/\d+/)
|
$versions.each do |type, ver|
|
||||||
print("#if defined ONIG_UNICODE_VERSION_STRING && !( \\\n")
|
name = type == :Unicode ? "ONIG_UNICODE_VERSION" : "ONIG_UNICODE_EMOJI_VERSION"
|
||||||
%w[MAJOR MINOR TEENY].zip(versions) do |n, v|
|
versions = ver.scan(/\d+/)
|
||||||
print(" ONIG_UNICODE_VERSION_#{n} == #{v} && \\\n")
|
print("#if defined #{name}_STRING && !( \\\n")
|
||||||
end
|
versions.zip(%w[MAJOR MINOR TEENY]) do |v, n|
|
||||||
print(" 1)\n")
|
print(" #{name}_#{n} == #{v} && \\\n")
|
||||||
print("# error ONIG_UNICODE_VERSION_STRING mismatch\n")
|
end
|
||||||
print("#endif\n")
|
print(" 1)\n")
|
||||||
print("#define ONIG_UNICODE_VERSION_STRING #{$unicode_version.dump}\n")
|
print("# error #{name}_STRING mismatch\n")
|
||||||
%w[MAJOR MINOR TEENY].zip(versions) do |n, v|
|
print("#endif\n")
|
||||||
print("#define ONIG_UNICODE_VERSION_#{n} #{v}\n")
|
print("#define #{name}_STRING #{ver.dump}\n")
|
||||||
|
versions.zip(%w[MAJOR MINOR TEENY]) do |v, n|
|
||||||
|
print("#define #{name}_#{n} #{v}\n")
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
output.restore
|
output.restore
|
||||||
|
Loading…
x
Reference in New Issue
Block a user