From 343deb4c39747be1a373d9ab9193d9798045f8ee Mon Sep 17 00:00:00 2001 From: naruse Date: Sat, 6 Dec 2008 05:37:20 +0000 Subject: [PATCH] * pack.c (pack_pack): set US-ASCII and CODERANGE_7BIT when quoted-printable ('M') and base64 ('m'). [ruby-dev:37284] * pack.c (pack_unpack): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20563 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 8 ++++++++ pack.c | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/ChangeLog b/ChangeLog index 9d4998b476..0c09245ea7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Sat Dec 6 14:35:06 2008 NARUSE, Yui + + * pack.c (pack_pack): set US-ASCII and CODERANGE_7BIT + when quoted-printable ('M') and base64 ('m'). + [ruby-dev:37284] + + * pack.c (pack_unpack): ditto. + Fri Dec 5 21:45:45 2008 Tadayoshi Funaba * rational.c (nurat_{to_s,inspect}): performance improvement. diff --git a/pack.c b/pack.c index c4ee6dbb30..8d0a70473b 100644 --- a/pack.c +++ b/pack.c @@ -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;