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

ruby-changes:13533

From: shugo <ko1@a...>
Date: Mon, 12 Oct 2009 22:52:58 +0900 (JST)
Subject: [ruby-changes:13533] Ruby:r25310 (trunk): * lib/net/ftp.rb (retrlines): added a new block parameter.

shugo	2009-10-12 22:52:37 +0900 (Mon, 12 Oct 2009)

  New Revision: 25310

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=25310

  Log:
    * lib/net/ftp.rb (retrlines): added a new block parameter.
    * lib/net/ftp.rb (gettextfile): preserve missing end-of-line at end
      of files.  [ruby-core:24590]

  Modified files:
    trunk/ChangeLog
    trunk/lib/net/ftp.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 25309)
+++ ChangeLog	(revision 25310)
@@ -1,3 +1,10 @@
+Mon Oct 12 22:48:25 2009  Shugo Maeda  <shugo@r...>
+
+	* lib/net/ftp.rb (retrlines): added a new block parameter.
+
+	* lib/net/ftp.rb (gettextfile): preserve missing end-of-line at end
+	  of files.  [ruby-core:24590]
+
 Mon Oct 12 19:48:33 2009  Nobuyoshi Nakada  <nobu@r...>
 
 	* eval.c (ruby_run_node): if an exception occurred in ruby_option,
Index: lib/net/ftp.rb
===================================================================
--- lib/net/ftp.rb	(revision 25309)
+++ lib/net/ftp.rb	(revision 25310)
@@ -445,12 +445,7 @@
           loop do
             line = conn.gets
             break if line == nil
-            if line[-2, 2] == CRLF
-              line = line[0 .. -3]
-            elsif line[-1] == ?\n
-              line = line[0 .. -2]
-            end
-            yield(line)
+            yield(line.sub(/\r?\n\z/, ""), !line.match(/\n\z/).nil?)
           end
           conn.close
           voidresp
@@ -570,10 +565,11 @@
         result = ""
       end
       begin
-	retrlines("RETR " + remotefile) do |line|
-	  f.puts(line) if localfile
-	  yield(line) if block_given?
-          result.concat(line + "\n") if result
+	retrlines("RETR " + remotefile) do |line, newline|
+          l = newline ? line + "\n" : line
+	  f.print(l) if localfile
+	  yield(line, newline) if block_given?
+          result.concat(l) if result
 	end
         return result
       ensure

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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