ruby-changes:2770
From: ko1@a...
Date: 17 Dec 2007 16:06:33 +0900
Subject: [ruby-changes:2770] gotoyuzo - Ruby:r14261 (trunk): * ext/openssl/lib/openssl/buffering.rb (Buffering#gets): added second
gotoyuzo 2007-12-17 16:06:16 +0900 (Mon, 17 Dec 2007) New Revision: 14261 Modified files: trunk/ChangeLog trunk/ext/openssl/lib/openssl/buffering.rb trunk/test/openssl/test_ssl.rb Log: * ext/openssl/lib/openssl/buffering.rb (Buffering#gets): added second optional argument to specify maximum length limit. http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/openssl/lib/openssl/buffering.rb?r1=14261&r2=14260 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=14261&r2=14260 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/test/openssl/test_ssl.rb?r1=14261&r2=14260 Index: ChangeLog =================================================================== --- ChangeLog (revision 14260) +++ ChangeLog (revision 14261) @@ -1,3 +1,8 @@ +Mon Dec 17 16:04:16 2007 GOTOU Yuuzou <gotoyuzo@n...> + + * ext/openssl/lib/openssl/buffering.rb (Buffering#gets): added second + optional argument to specify maximum length limit. + Mon Dec 17 16:02:30 2007 GOTOU Yuuzou <gotoyuzo@n...> * lib/webrick/httprequest.rb, lib/webrick/cgi.rb: Request-Line or Index: ext/openssl/lib/openssl/buffering.rb =================================================================== --- ext/openssl/lib/openssl/buffering.rb (revision 14260) +++ ext/openssl/lib/openssl/buffering.rb (revision 14261) @@ -99,7 +99,7 @@ ret end - def gets(eol=$/) + def gets(eol=$/, limit=nil) idx = @rbuffer.index(eol) until @eof break if idx @@ -111,6 +111,9 @@ else size = idx ? idx+eol.size : nil end + if limit and limit >= 0 + size = [size, limit].min + end consume_rbuff(size) end Index: test/openssl/test_ssl.rb =================================================================== --- test/openssl/test_ssl.rb (revision 14260) +++ test/openssl/test_ssl.rb (revision 14261) @@ -136,6 +136,11 @@ str = "x" * 100 + "\n" ssl.puts(str) assert_equal(str, ssl.gets) + + str = "x" * 100 + ssl.puts(str) + assert_equal(str, ssl.gets("\n", 100)) + assert_equal("\n", ssl.gets) } # read and write -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml