class Object
Constants
- HEADER
www.ctan.org/get/macros/texinfo/texinfo/gnulib/lib/config.charset Tue, 25 Dec 2007 00:00:00 GMT
Public Instance Methods
charset_alias(config_charset, mapfile = nil)
click to toggle source
# File ext/iconv/mkwrapper.rb, line 15 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