ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-core:55062] [ruby-trunk - Bug #8427][Open] gets method truncates strings longer than 255 characters in Windows 7
@ 2013-05-19 22:46 jen (Jen Marsh)
  2013-05-20  1:16 ` [ruby-core:55067] [ruby-trunk - Bug #8427] " phasis68 (Heesob Park)
  2019-08-15 18:59 ` [ruby-core:94369] [Ruby master Bug#8427] " merch-redmine
  0 siblings, 2 replies; 3+ messages in thread
From: jen (Jen Marsh) @ 2013-05-19 22:46 UTC (permalink / raw)
  To: ruby-core


Issue #8427 has been reported by jen (Jen Marsh).

----------------------------------------
Bug #8427: gets method truncates strings longer than 255 characters in Windows 7
https://bugs.ruby-lang.org/issues/8427

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/

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [ruby-core:55067] [ruby-trunk - Bug #8427] gets method truncates strings longer than 255 characters in Windows 7
  2013-05-19 22:46 [ruby-core:55062] [ruby-trunk - Bug #8427][Open] gets method truncates strings longer than 255 characters in Windows 7 jen (Jen Marsh)
@ 2013-05-20  1:16 ` phasis68 (Heesob Park)
  2019-08-15 18:59 ` [ruby-core:94369] [Ruby master Bug#8427] " merch-redmine
  1 sibling, 0 replies; 3+ messages in thread
From: phasis68 (Heesob Park) @ 2013-05-20  1:16 UTC (permalink / raw)
  To: ruby-core


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/

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [ruby-core:94369] [Ruby master Bug#8427] gets method truncates strings longer than 255 characters in Windows 7
  2013-05-19 22:46 [ruby-core:55062] [ruby-trunk - Bug #8427][Open] gets method truncates strings longer than 255 characters in Windows 7 jen (Jen Marsh)
  2013-05-20  1:16 ` [ruby-core:55067] [ruby-trunk - Bug #8427] " phasis68 (Heesob Park)
@ 2019-08-15 18:59 ` merch-redmine
  1 sibling, 0 replies; 3+ messages in thread
From: merch-redmine @ 2019-08-15 18:59 UTC (permalink / raw)
  To: ruby-core

Issue #8427 has been updated by jeremyevans0 (Jeremy Evans).

Backport deleted (1.9.3: UNKNOWN, 2.0.0: UNKNOWN)
Status changed from Open to Closed

I tried using `gets` with a string with 300 characters on Windows 10, and was not able to reproduce the error (no string truncation).  I tried with various versions of Ruby as far back as 1.9.3.  I'm not sure if this is still a problem on Windows 7 or not with the master branch, but Windows 7 is almost out of support.  If anyone is still affected by this issue, please post here and we can reopen.

----------------------------------------
Bug #8427: gets method truncates strings longer than 255 characters in Windows 7
https://bugs.ruby-lang.org/issues/8427#change-80782

* Author: jen (Jen Marsh)
* Status: Closed
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.0.0p195 (2013-05-14) [x64-mingw32]
* Backport: 
----------------------------------------
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.



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-08-15 18:59 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-05-19 22:46 [ruby-core:55062] [ruby-trunk - Bug #8427][Open] gets method truncates strings longer than 255 characters in Windows 7 jen (Jen Marsh)
2013-05-20  1:16 ` [ruby-core:55067] [ruby-trunk - Bug #8427] " phasis68 (Heesob Park)
2019-08-15 18:59 ` [ruby-core:94369] [Ruby master Bug#8427] " merch-redmine

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).