From: nagachika00@...
Date: 2014-06-17T13:18:21+00:00
Subject: [ruby-core:63210] [ruby-trunk - Bug #9949] Net::FTP#gettextfile truncates last line when missing newline before EOF
Issue #9949 has been updated by Tomoyuki Chikanaga.
Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN to 2.0.0: REQUIRED, 2.1: REQUIRED
----------------------------------------
Bug #9949: Net::FTP#gettextfile truncates last line when missing newline before EOF
https://bugs.ruby-lang.org/issues/9949#change-47259
* Author: Andrew Vit
* Status: Closed
* Priority: Normal
* Assignee: Shugo Maeda
* Category: lib
* Target version:
* ruby -v: ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]
* Backport: 2.0.0: REQUIRED, 2.1: REQUIRED
----------------------------------------
Capturing a file from FTP using the default ftp.get (assuming binary is false) causes text files to get truncated before the last occurrence of "\n". This means that files missing a newline before EOF are corrupted.
~~~
Net::FTP.open(host, username, password) do |ftp|
puts ftp.gettextfile(filename, nil)
end
~~~
Tested with "\n" in different positions to characterize the incorrect behaviour:
~~~
file: "" output: ""
file: "\n" output: ""
file: "\n" output: ""
~~~
Behaviour looks correct in 1.9.3, returns full file content in all cases. Regression exists in ruby 2.0 and 2.1. Tested with:
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin13.0]
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]
ruby 2.0.0p451 (2014-02-24 revision 45167) [universal.x86_64-darwin13]
ruby 1.9.3p545 (2014-02-24 revision 45159) [x86_64-darwin13.1.0]
--
https://bugs.ruby-lang.org/