diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-01-13 00:10:00 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-01-13 00:10:00 +0000 |
commit | 9bded8aae94aacf03b308798bed7ee6a752ba099 (patch) | |
tree | f222acd4ff3a4dabbfc30ffd8671d215281f1ae1 /enc/make_encdb.rb | |
parent | e699dda5042b65e9e4c8ce29fa6575e3684b9100 (diff) | |
download | ruby-9bded8aae94aacf03b308798bed7ee6a752ba099.tar.gz |
* enc/make_encdb.rb: set properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15011 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'enc/make_encdb.rb')
-rwxr-xr-x | enc/make_encdb.rb | 128 |
1 files changed, 64 insertions, 64 deletions
diff --git a/enc/make_encdb.rb b/enc/make_encdb.rb index b8b430190f..b49f13c16e 100755 --- a/enc/make_encdb.rb +++ b/enc/make_encdb.rb @@ -1,64 +1,64 @@ -#
-# OnigEncodingDefine(foo, Foo) = {
-# ..
-# "Shift_JIS", /* Canonical Name */
-# ..
-# };
-# ENC_ALIAS("SJIS", "Shift_JIS")
-# ENC_REPLICATE("Windows-31J", "Shift_JIS")
-# ENC_ALIAS("CP932", "Windows-31J")
-#
-
-encodings = []
-replicas = {}
-aliases = {}
-encdir = ARGV[0]
-Dir.open(encdir) {|d| d.grep(/.+\.c\z/)}.each do |fn|
- open(File.join(encdir,fn)) do |f|
- orig = nil
- name = nil
- f.each_line do |line|
- break if /^OnigEncodingDefine/o =~ line
- end
- f.each_line do |line|
- break if /"(.*?)"/ =~ line
- end
- encodings << $1 if $1
- f.each_line do |line|
- if /^ENC_REPLICATE\(\s*"([^"]+)"\s*,\s*"([^"]+)"/o =~ line
- replicas[$1] = $2
- elsif /^ENC_ALIAS\(\s*"([^"]+)"\s*,\s*"([^"]+)"/o =~ line
- aliases[$1] = $2
- end
- end
- end
-end
-p aliases
-open('encdb.h', 'wb') do |f|
- f.puts 'static const char *enc_name_list[] = {'
- encodings.each {|name| f.puts' "%s",' % name}
- replicas.each_key {|name| f.puts' "%s",' % name}
- aliases.each_key {|name| f.puts' "%s",' % name}
- f.puts(<<"_TEXT_")
- NULL
-};
-static const int enc_name_list_size = #{encodings.length + replicas.length + aliases.length};
-static const int enc_aliases_size = #{aliases.length};
-static st_table *enc_table_replica_name;
-static st_table *enc_table_alias_name;
-
-static void enc_init_db(void)
-{
- if (!enc_table_replica_name) {
- enc_table_replica_name = st_init_strcasetable();
- }
- if (!enc_table_alias_name) {
- enc_table_alias_name = st_init_strcasetable();
- }
-_TEXT_
- replicas.each_pair {|name, orig|
- f.puts' st_insert(enc_table_replica_name, (st_data_t)"%s", (st_data_t)"%s");' % [name, orig]}
- aliases.each_pair {|name, orig|
- f.puts' st_insert(enc_table_alias_name, (st_data_t)"%s", (st_data_t)"%s");' % [name, orig]}
- f.puts '}'
-end
+# +# OnigEncodingDefine(foo, Foo) = { +# .. +# "Shift_JIS", /* Canonical Name */ +# .. +# }; +# ENC_ALIAS("SJIS", "Shift_JIS") +# ENC_REPLICATE("Windows-31J", "Shift_JIS") +# ENC_ALIAS("CP932", "Windows-31J") +# + +encodings = [] +replicas = {} +aliases = {} +encdir = ARGV[0] +Dir.open(encdir) {|d| d.grep(/.+\.c\z/)}.each do |fn| + open(File.join(encdir,fn)) do |f| + orig = nil + name = nil + f.each_line do |line| + break if /^OnigEncodingDefine/o =~ line + end + f.each_line do |line| + break if /"(.*?)"/ =~ line + end + encodings << $1 if $1 + f.each_line do |line| + if /^ENC_REPLICATE\(\s*"([^"]+)"\s*,\s*"([^"]+)"/o =~ line + replicas[$1] = $2 + elsif /^ENC_ALIAS\(\s*"([^"]+)"\s*,\s*"([^"]+)"/o =~ line + aliases[$1] = $2 + end + end + end +end +p aliases +open('encdb.h', 'wb') do |f| + f.puts 'static const char *enc_name_list[] = {' + encodings.each {|name| f.puts' "%s",' % name} + replicas.each_key {|name| f.puts' "%s",' % name} + aliases.each_key {|name| f.puts' "%s",' % name} + f.puts(<<"_TEXT_") + NULL +}; +static const int enc_name_list_size = #{encodings.length + replicas.length + aliases.length}; +static const int enc_aliases_size = #{aliases.length}; +static st_table *enc_table_replica_name; +static st_table *enc_table_alias_name; + +static void enc_init_db(void) +{ + if (!enc_table_replica_name) { + enc_table_replica_name = st_init_strcasetable(); + } + if (!enc_table_alias_name) { + enc_table_alias_name = st_init_strcasetable(); + } +_TEXT_ + replicas.each_pair {|name, orig| + f.puts' st_insert(enc_table_replica_name, (st_data_t)"%s", (st_data_t)"%s");' % [name, orig]} + aliases.each_pair {|name, orig| + f.puts' st_insert(enc_table_alias_name, (st_data_t)"%s", (st_data_t)"%s");' % [name, orig]} + f.puts '}' +end |