git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53759 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

This commit is contained in:
duerst 2016-02-07 01:39:26 +00:00
Родитель b6d25f03a8
Коммит 07ad033850
2 изменённых файлов: 23 добавлений и 1 удалений

Просмотреть файл

@ -1047,6 +1047,12 @@ $(srcdir)/.unicode-tables.time: $(srcdir)/tool/generic_erb.rb \
$(srcdir)/template/unicode_norm_gen.tmpl \ $(srcdir)/template/unicode_norm_gen.tmpl \
$(UNICODE_DATA_DIR) lib/unicode_normalize $(UNICODE_DATA_DIR) lib/unicode_normalize
$(srcdir)/enc/unicode/casefold.h: $(srcdir)/enc/unicode/case-folding.rb \
$(UNICODE_SRC_DATA_DIR)/CaseFolding.txt
$(Q) $(BASERUBY) $(srcdir)/enc/unicode/case-folding.rb \
--output-file=$(srcdir)/enc/unicode/casefold.h \
$(UNICODE_SRC_DATA_DIR)/CaseFolding.txt
download-extlibs: download-extlibs:
$(Q) $(BASERUBY) -C $(srcdir) -w tool/extlibs.rb --download ext $(Q) $(BASERUBY) -C $(srcdir) -w tool/extlibs.rb --download ext

Просмотреть файл

@ -3,6 +3,9 @@
# Usage: # Usage:
# $ wget http://www.unicode.org/Public/UNIDATA/CaseFolding.txt # $ wget http://www.unicode.org/Public/UNIDATA/CaseFolding.txt
# $ ruby case-folding.rb CaseFolding.txt -o casefold.h # $ ruby case-folding.rb CaseFolding.txt -o casefold.h
# or:
# $ wget http://www.unicode.org/Public/UNIDATA/CaseFolding.txt
# $ ruby case-folding.rb -m . -o casefold.h
class CaseFolding class CaseFolding
module Util module Util
@ -175,16 +178,29 @@ end
if $0 == __FILE__ if $0 == __FILE__
require 'optparse' require 'optparse'
dest = nil dest = nil
mapping_directory = nil
mapping_data = nil
fold_1 = false fold_1 = false
ARGV.options do |opt| ARGV.options do |opt|
opt.banner << " [INPUT]" opt.banner << " [INPUT]"
opt.on("--output-file=FILE", "-o", "output to the FILE instead of STDOUT") {|output| opt.on("--output-file=FILE", "-o", "output to the FILE instead of STDOUT") {|output|
dest = (output unless output == '-') dest = (output unless output == '-')
} }
opt.on('--mapping-data-directory', '-m', 'data directory of mapping files') { |directory|
mapping_directory = directory
}
opt.parse! opt.parse!
abort(opt.to_s) if ARGV.size > 1 abort(opt.to_s) if ARGV.size > 1
end end
filename = ARGV[0] || 'CaseFolding.txt' if mapping_directory
if ARGV[0]
warn "Either specify directory or individual file, but not both."
exit
end
filename = File.expand_path("CaseFolding.txt", mapping_directory)
end
filename ||= ARGV[0] || 'CaseFolding.txt'
data = CaseFolding.load(filename) data = CaseFolding.load(filename)
if dest if dest
open(dest, "wb") do |f| open(dest, "wb") do |f|