[#37248] [Feature:1.9] Enumerator#inspect — "Yusuke ENDOH" <mame@...>

遠藤です。

12 messages 2008/12/02

[#37337] [Feature #841] Object#self — "rubikitch ." <redmine@...>

Feature #841: Object#self

13 messages 2008/12/09

[#37513] Current status of 1.9.1 RC1's issues — "Yugui (Yuki Sonoda)" <yugui@...>

Hi, folks

14 messages 2008/12/20
[#37516] Re: Current status of 1.9.1 RC1's issues — Masatoshi SEKI <m_seki@...> 2008/12/20

咳といいます。

[#37576] [BUG:trunk] encoding for stdio's — "Yugui (Yuki Sonoda)" <yugui@...>

Yuguiです。

11 messages 2008/12/24

[ruby-dev:37286] Re: encoding of strings that pack format 'm' and 'M' generates

From: "NARUSE, Yui" <naruse@...>
Date: 2008-12-06 05:20:20 UTC
List: ruby-dev #37286
成瀬です。

Yugui (Yuki Sonoda) wrote:
> Array#packにおいて、quoted-printable ('M')とbase64 ('m')でpackされた文字
> 列のエンコーディングがASCII-8BITなのは意図された挙動でしょうか?
> 
> これらのフォーマットの性質上、US-ASCIIでも良いと思います。

ついでに CODERANGE も設定して、こんな感じですかねぇ。

Index: pack.c
===================================================================
--- pack.c      (revision 20562)
+++ pack.c      (working copy)
@@ -921,6 +921,7 @@ pack_pack(VALUE ary, VALUE fmt)
                plen -= todo;
                ptr += todo;
            }
+           ENCODING_CODERANGE_SET(res, rb_usascii_encindex(), ENC_CODERANGE_7BIT);
            break;

          case 'M':             /* quoted-printable encoded string */
@@ -928,6 +929,7 @@ pack_pack(VALUE ary, VALUE fmt)
            if (len <= 1)
                len = 72;
            qpencode(res, from, len);
+           ENCODING_CODERANGE_SET(res, rb_usascii_encindex(), ENC_CODERANGE_7BIT);
            break;

          case 'P':             /* pointer to packed byte string */
@@ -1886,6 +1888,7 @@ pack_unpack(VALUE str, VALUE fmt)
                    }
                }
                rb_str_set_len(buf, ptr - RSTRING_PTR(buf));
+               ENCODING_CODERANGE_SET(buf, rb_usascii_encindex(), ENC_CODERANGE_7BIT);
                UNPACK_PUSH(buf);
            }
            break;
@@ -1914,6 +1917,7 @@ pack_unpack(VALUE str, VALUE fmt)
                    s++;
                }
                rb_str_set_len(buf, ptr - RSTRING_PTR(buf));
+               ENCODING_CODERANGE_SET(buf, rb_usascii_encindex(), ENC_CODERANGE_7BIT);
                UNPACK_PUSH(buf);
            }
            break;


-- 
NARUSE, Yui  <naruse@airemix.jp>

In This Thread