[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]