ruby-changes:3539
From: ko1@a...
Date: Mon, 14 Jan 2008 05:46:19 +0900 (JST)
Subject: [ruby-changes:3539] naruse - Ruby:r15028 (trunk): * enc/*.c: add replicas and aliases.
naruse 2008-01-14 05:46:00 +0900 (Mon, 14 Jan 2008) New Revision: 15028 Modified files: trunk/ChangeLog trunk/enc/ascii.c trunk/enc/big5.c trunk/enc/iso_8859_11.c trunk/enc/make_encdb.rb trunk/enc/shift_jis.c trunk/enc/windows_1251.c Log: * enc/*.c: add replicas and aliases. * enc/make_encdb.h: add duplicate and undefined check. http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enc/make_encdb.rb?r1=15028&r2=15027&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=15028&r2=15027&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enc/ascii.c?r1=15028&r2=15027&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enc/windows_1251.c?r1=15028&r2=15027&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enc/big5.c?r1=15028&r2=15027&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enc/shift_jis.c?r1=15028&r2=15027&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/enc/iso_8859_11.c?r1=15028&r2=15027&diff_format=u Index: ChangeLog =================================================================== --- ChangeLog (revision 15027) +++ ChangeLog (revision 15028) @@ -1,3 +1,9 @@ +Mon Jan 14 05:44:44 2008 NARUSE, Yui <naruse@r...> + + * enc/*.c: add replicas and aliases. + + * enc/make_encdb.h: add duplicate and undefined check. + Mon Jan 14 02:03:05 2008 NARUSE, Yui <naruse@r...> * include/ruby/oniguruma.h: remove ONIG_ENCODING_* and OnigEncoding* Index: enc/shift_jis.c =================================================================== --- enc/shift_jis.c (revision 15027) +++ enc/shift_jis.c (revision 15028) @@ -376,3 +376,5 @@ ENC_REPLICATE("Windows-31J", "Shift_JIS"); ENC_ALIAS("CP932", "Windows-31J"); ENC_ALIAS("csWindows31J", "Windows-31J"); /* IANA. IE6 don't accept Windows-31J but csWindows31J. */ +ENC_REPLICATE("MacJapanese", "Shift_JIS"); +ENC_ALIAS("MacJapan", "MacJapanese"); \ No newline at end of file Index: enc/big5.c =================================================================== --- enc/big5.c (revision 15027) +++ enc/big5.c (revision 15028) @@ -162,3 +162,4 @@ big5_left_adjust_char_head, big5_is_allowed_reverse_match }; +ENC_ALIAS("CP950", "BIG5"); Index: enc/ascii.c =================================================================== --- enc/ascii.c (revision 15027) +++ enc/ascii.c (revision 15028) @@ -48,3 +48,47 @@ onigenc_always_true_is_allowed_reverse_match }; ENC_ALIAS("BINARY", "ASCII-8BIT"); +ENC_REPLICATE("IBM437", "ASCII-8BIT"); +ENC_ALIAS("CP437", "IBM437"); +ENC_REPLICATE("IBM737", "ASCII-8BIT"); +ENC_ALIAS("CP737", "IBM737"); +ENC_REPLICATE("IBM775", "ASCII-8BIT"); +ENC_ALIAS("CP775", "IBM775"); +ENC_REPLICATE("CP850", "ASCII-8BIT"); +ENC_ALIAS("CP850", "IBM850"); +ENC_REPLICATE("IBM852", "ASCII-8BIT"); +ENC_REPLICATE("CP852", "IBM852"); +ENC_REPLICATE("IBM855", "ASCII-8BIT"); +ENC_REPLICATE("CP855", "IBM855"); +ENC_REPLICATE("IBM857", "ASCII-8BIT"); +ENC_ALIAS("CP857", "IBM857"); +ENC_REPLICATE("IBM860", "ASCII-8BIT"); +ENC_ALIAS("CP860", "IBM860"); +ENC_REPLICATE("IBM861", "ASCII-8BIT"); +ENC_ALIAS("CP861", "IBM861"); +ENC_REPLICATE("IBM862", "ASCII-8BIT"); +ENC_ALIAS("CP862", "IBM862"); +ENC_REPLICATE("IBM863", "ASCII-8BIT"); +ENC_ALIAS("CP863", "IBM863"); +ENC_REPLICATE("IBM864", "ASCII-8BIT"); +ENC_ALIAS("CP864", "IBM864"); +ENC_REPLICATE("IBM865", "ASCII-8BIT"); +ENC_ALIAS("CP865", "IBM865"); +ENC_REPLICATE("IBM866", "ASCII-8BIT"); +ENC_ALIAS("CP866", "IBM866"); +ENC_REPLICATE("IBM869", "ASCII-8BIT"); +ENC_ALIAS("CP869", "IBM869"); +ENC_REPLICATE("Windows-1258", "ASCII-8BIT"); +ENC_ALIAS("CP1258", "Windows-1258"); +ENC_REPLICATE("gb1988", "ASCII-8BIT"); +ENC_REPLICATE("koi8-u", "ASCII-8BIT"); +ENC_REPLICATE("macCentEuro", "ASCII-8BIT"); +ENC_REPLICATE("macCroatian", "ASCII-8BIT"); +ENC_REPLICATE("macCyrillic", "ASCII-8BIT"); +ENC_REPLICATE("macGreek", "ASCII-8BIT"); +ENC_REPLICATE("macIceland", "ASCII-8BIT"); +ENC_REPLICATE("macRoman", "ASCII-8BIT"); +ENC_REPLICATE("macRomania", "ASCII-8BIT"); +ENC_REPLICATE("macThai", "ASCII-8BIT"); +ENC_REPLICATE("macTurkish", "ASCII-8BIT"); +ENC_REPLICATE("macUkraine", "ASCII-8BIT"); Index: enc/iso_8859_11.c =================================================================== --- enc/iso_8859_11.c (revision 15027) +++ enc/iso_8859_11.c (revision 15028) @@ -95,5 +95,6 @@ onigenc_always_true_is_allowed_reverse_match }; ENC_ALIAS("ISO8859-11", "ISO-8859-11"); +ENC_REPLICATE("TIS-620", "ISO-8859-11"); ENC_REPLICATE("Windows-874", "ISO-8859-11"); -ENC_ALIAS("CP874", "ISO-8859-11"); +ENC_ALIAS("CP874", "Windows-874"); Index: enc/windows_1251.c =================================================================== --- enc/windows_1251.c (revision 15027) +++ enc/windows_1251.c (revision 15028) @@ -180,7 +180,7 @@ flag, p, end, items); } -OnigEncodingType OnigEncodingCP1251 = { +OnigEncodingDefine(windows_1251, Windows_1251) = { onigenc_single_byte_mbc_enc_len, "Windows-1251", /* name */ 1, /* max enc length */ Index: enc/make_encdb.rb =================================================================== --- enc/make_encdb.rb (revision 15027) +++ enc/make_encdb.rb (revision 15028) @@ -9,6 +9,12 @@ # ENC_ALIAS("CP932", "Windows-31J") # +def check_duplication(encs, name, fn, line) + if encs.include?(name) + raise ArgumentError, "%s:%d: encoding %s is already registered" % [fn, line, name] + end +end + encodings = [] replicas = {} aliases = {} @@ -17,20 +23,34 @@ open(File.join(encdir,fn)) do |f| orig = nil name = nil + encs = [] 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 - encodings << $1 - replicas[$1] = $2 - elsif /^ENC_ALIAS\(\s*"([^"]+)"\s*,\s*"([^"]+)"/o =~ line - encodings << $1 - aliases[$1] = $2 + if $1 + check_duplication(encs, $1, fn, $.) + encs << $1.upcase + encodings << $1 + f.each_line do |line| + if /^ENC_REPLICATE\(\s*"([^"]+)"\s*,\s*"([^"]+)"/o =~ line + raise ArgumentError, + '%s:%d: ENC_REPLICATE: %s is not defined yet. (replica %s)' % + [fn, $., $2, $1] unless encs.include?($2.upcase) + check_duplication(encs, $1, fn, $.) + encs << $1.upcase + encodings << $1 + replicas[$1] = $2 + elsif /^ENC_ALIAS\(\s*"([^"]+)"\s*,\s*"([^"]+)"/o =~ line + raise ArgumentError, + '%s:%d: ENC_ALIAS: %s is not defined yet. (alias %s)' % + [fn, $., $2, $1] unless encs.include?($2.upcase) + check_duplication(encs, $1, fn, $.) + encodings << $1 + aliases[$1] = $2 + end end end end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/