Sha256: 0178d97492b5e3af50aaf7471a7ba4bfd052188474f1f7e7af2ff4f93bd82515
Contents?: true
Size: 1.34 KB
Versions: 8
Compression:
Stored size: 1.34 KB
Contents
#! /usr/bin/ruby require 'rbconfig' require 'optparse' # http://www.ctan.org/get/macros/texinfo/texinfo/gnulib/lib/config.charset # Tue, 25 Dec 2007 00:00:00 GMT HEADER = <<SRC require 'iconv.so' class Iconv < Data case RUBY_PLATFORM SRC def charset_alias(config_charset, mapfile = nil) found = nil src = [HEADER] open(config_charset) do |input| input.find {|line| /^case "\$os" in/ =~ line} or return input.each do |line| case line when /^\s*([-\w\*]+(?:\s*\|\s*[-\w\*]+)*)(?=\))/ (s = " when ") << $&.split('|').collect {|targ| targ.strip! tail = targ.chomp!("*") ? '' : '\z' head = targ.slice!(/\A\*/) ? '' : '\A' targ.gsub!(/\*/, '.*') "/#{head}#{targ}#{tail}/" }.join(", ") src << s found = {} when /^\s*echo "(?:\$\w+\.)?([-\w*]+)\s+([-\w]+)"/ sys, can = $1, $2 can.downcase! unless found[can] or (/\Aen_(?!US\z)/ =~ sys && /\ACP437\z/i =~ can) found[can] = true src << " charset_map['#{can}'] = '#{sys}'.freeze" end when /^\s*;;/ found = nil end end end src << " end" << "end" if mapfile open(mapfile, "wb") {|f| f.puts(*src)} else puts(*src) end end (1..2) === ARGV.size or abort "usage: #{$0} config_charset [mapfile]" charset_alias(*ARGV)
Version data entries
8 entries across 8 versions & 1 rubygems