From: Lasse Fabisch Date: 2009-07-29T08:00:14+09:00 Subject: [ruby-core:24590] [Bug #1829] Net::FTP gettextfile appends a newline character Bug #1829: Net::FTP gettextfile appends a newline character http://redmine.ruby-lang.org/issues/show/1829 Author: Lasse Fabisch Status: Open, Priority: Low ruby -v: ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32] It seems like Net::FTP.gettextfile appends a newline character to the retrieved textfile if it doesnt end with a newline: [code] require 'net/ftp' Net::FTP.open('yourftpserver.???') do |ftp| ftp.login("user","youpw") ftp.gettextfile("test.txt","destination/test.txt") end [/code] test.txt: [file]Line one\nline two[/file] received file: [file]Line one\nline two\n[/file] Filezilla doesnt do that. This is caused in: [code] # # Retrieves +remotefile+ in ASCII (text) mode, storing the result in # +localfile+. If a block is supplied, it is passed the retrieved data one # line at a time. # def gettextfile(remotefile, localfile = File.basename(remotefile), &block) # :yield: line f = open(localfile, "w") begin retrlines("RETR " + remotefile) do |line| f.puts(line) # <----- HERE, every line is output with a newline appended but the last line doesnt always end with a newline yield(line) if block end ensure f.close end end [/code] ---------------------------------------- http://redmine.ruby-lang.org