ruby-changes:7653
From: akr <ko1@a...>
Date: Sat, 6 Sep 2008 12:30:11 +0900 (JST)
Subject: [ruby-changes:7653] Ruby:r19174 (trunk): * transcode.c (stateless_encoding_i): ignore supplemental conversions.
akr 2008-09-06 12:26:35 +0900 (Sat, 06 Sep 2008) New Revision: 19174 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=19174 Log: * transcode.c (stateless_encoding_i): ignore supplemental conversions. Encoding::Converter.stateless_encoding("html-attr-escaped") should be nil. Modified files: trunk/ChangeLog trunk/test/ruby/test_econv.rb trunk/transcode.c Index: ChangeLog =================================================================== --- ChangeLog (revision 19173) +++ ChangeLog (revision 19174) @@ -1,3 +1,9 @@ +Sat Sep 6 12:25:31 2008 Tanaka Akira <akr@f...> + + * transcode.c (stateless_encoding_i): ignore supplemental conversions. + Encoding::Converter.stateless_encoding("html-attr-escaped") should be + nil. + Sat Sep 6 12:19:36 2008 Tanaka Akira <akr@f...> * enc/trans/escape.trans (escape_html_attr_init): new function. Index: test/ruby/test_econv.rb =================================================================== --- test/ruby/test_econv.rb (revision 19173) +++ test/ruby/test_econv.rb (revision 19174) @@ -34,6 +34,7 @@ assert_nil(Encoding::Converter.stateless_encoding("UTF-8")) assert_nil(Encoding::Converter.stateless_encoding("UTF-16BE")) assert_nil(Encoding::Converter.stateless_encoding(Encoding::UTF_8)) + assert_nil(Encoding::Converter.stateless_encoding("html-attr-escaped")) end def test_stateless_encoding_iso2022jp Index: transcode.c =================================================================== --- transcode.c (revision 19173) +++ transcode.c (revision 19174) @@ -133,6 +133,8 @@ * Dispatch data and logic */ +#define SUPPLEMENTAL_CONVERSION(sname, dname) (*(sname) == '\0' || *(dname) == '\0') + typedef struct { const char *sname; const char *dname; @@ -1635,7 +1637,11 @@ if (st_lookup(table2, (st_data_t)data->stateful_enc, &v)) { transcoder_entry_t *entry = (transcoder_entry_t *)v; - const rb_transcoder *tr = load_transcoder_entry(entry); + const rb_transcoder *tr; + if (SUPPLEMENTAL_CONVERSION(entry->sname, entry->dname)) { + return ST_CONTINUE; + } + tr = load_transcoder_entry(entry); if (tr && tr->stateful_type == stateful_encoder) { data->stateless_enc = tr->src_encoding; return ST_STOP; -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/