From: "phasis68 (Heesob Park)" Date: 2013-05-20T10:16:07+09:00 Subject: [ruby-core:55067] [ruby-trunk - Bug #8427] gets method truncates strings longer than 255 characters in Windows 7 Issue #8427 has been updated by phasis68 (Heesob Park). This bug is caused by changesets r28035, r29980 and r30280. Here is a possible workaround patch: diff --git a/win32.c b/win32.c.new index 318af2f..b821cd4 100644 --- a/win32.c +++ b/win32.c.new @@ -6058,6 +6058,10 @@ rb_w32_read(int fd, void *buf, size_t size) DWORD mode; GetConsoleMode((HANDLE)_osfhnd(fd),&mode); islineinput = (mode & ENABLE_LINE_INPUT) != 0; + if(size > 20480) { + size = 20480; + isconsole = FALSE; + } } retry: /* get rid of console reading bug */ ---------------------------------------- Bug #8427: gets method truncates strings longer than 255 characters in Windows 7 https://bugs.ruby-lang.org/issues/8427#change-39442 Author: jen (Jen Marsh) Status: Open Priority: Normal Assignee: Category: Target version: ruby -v: ruby 2.0.0p195 (2013-05-14) [x64-mingw32] Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN When using the gets method from a Windows 7 command line (or XP according to other users), long input strings are truncated to 255 characters. Here is an example of code: puts "Enter long string" long_string = gets puts "size of string : #{long_string.length}" puts "string: #{long_string}" For input strings of length exceeding 255 characters, the entered string is always truncated to 255 characters. -- http://bugs.ruby-lang.org/