ruby-changes:24399
From: nobu <ko1@a...>
Date: Wed, 18 Jul 2012 23:57:51 +0900 (JST)
Subject: [ruby-changes:24399] nobu:r36450 (trunk): pack.c: round down too long uuencode width
nobu 2012-07-18 23:57:40 +0900 (Wed, 18 Jul 2012) New Revision: 36450 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=36450 Log: pack.c: round down too long uuencode width * pack.c (pack_pack): round down too long uuencode width. folding width in uuencode format cannot be longer than 63 bytes. Modified files: trunk/ChangeLog trunk/pack.c trunk/test/ruby/test_pack.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 36449) +++ ChangeLog (revision 36450) @@ -1,3 +1,8 @@ +Wed Jul 18 23:57:38 2012 Nobuyoshi Nakada <nobu@r...> + + * pack.c (pack_pack): round down too long uuencode width. folding + width in uuencode format cannot be longer than 63 bytes. + Wed Jul 18 23:04:18 2012 NARUSE, Yui <naruse@r...> * ext/dbm/dbm.c (fdbm_empty_p): fix wrong condtion introduced in r36438. Index: pack.c =================================================================== --- pack.c (revision 36449) +++ pack.c (revision 36450) @@ -927,6 +927,8 @@ } if (len <= 2) len = 45; + else if (len > 63 && type == 'u') + len = 63; else len = len / 3 * 3; while (plen > 0) { Index: test/ruby/test_pack.rb =================================================================== --- test/ruby/test_pack.rb (revision 36449) +++ test/ruby/test_pack.rb (revision 36450) @@ -496,6 +496,10 @@ assert_equal("M86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A\n!80``\n", ["a"*46].pack("u0")) assert_equal("M86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A\n!80``\n", ["a"*46].pack("u1")) assert_equal("M86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A\n!80``\n", ["a"*46].pack("u2")) + assert_equal(<<EXPECTED, ["a"*80].pack("u68")) +_86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A86%A +186%A86%A86%A86%A86%A86$` +EXPECTED assert_equal([""], "".unpack("u")) assert_equal(["a"], "!80``\n".unpack("u")) -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/