mirror of
https://github.com/ruby/ruby.git
synced 2025-09-17 01:23:57 +02:00
merges r29980,r30017,r30018,r30019 and r30020 from trunk into ruby_1_9_2.
-- * win32/win32.c (rb_w32_read): read only 1 byte at once on console. workaround of Windows bug. see [ruby-core:33460]. this is not the final solution. -- * win32/win32.c (rb_w32_read): workaround for console reading troubles. fixed [ruby-core:33511] -- * win32/win32.c (rb_w32_read): rollback debug code of previous commit. -- * win32/win32.c (rb_w43_read): more fix. [ruby-core:33513] -- * ChangeLog: typo. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_2@30307 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
c9d697ab78
commit
a46abacacd
3 changed files with 27 additions and 6 deletions
15
ChangeLog
15
ChangeLog
|
@ -1,3 +1,18 @@
|
||||||
|
Thu Dec 2 15:31:14 2010 NAKAMURA Usaku <usa@ruby-lang.org>
|
||||||
|
|
||||||
|
* win32/win32.c (rb_w32_read): more fix. [ruby-core:33513]
|
||||||
|
|
||||||
|
Thu Dec 2 13:41:43 2010 NAKAMURA Usaku <usa@ruby-lang.org>
|
||||||
|
|
||||||
|
* win32/win32.c (rb_w32_read): workaround for console reading troubles.
|
||||||
|
fixed [ruby-core:33511]
|
||||||
|
|
||||||
|
Tue Nov 30 12:23:52 2010 NAKAMURA Usaku <usa@ruby-lang.org>
|
||||||
|
|
||||||
|
* win32/win32.c (rb_w32_read): read only 1 byte at once on console.
|
||||||
|
workaround of Windows bug. see [ruby-core:33460].
|
||||||
|
this is not the final solution.
|
||||||
|
|
||||||
Mon Nov 29 22:55:24 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Mon Nov 29 22:55:24 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* lib/uri/common.rb (URI::WFKV_): get rid of backtrack explosion
|
* lib/uri/common.rb (URI::WFKV_): get rid of backtrack explosion
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#define RUBY_VERSION "1.9.2"
|
#define RUBY_VERSION "1.9.2"
|
||||||
#define RUBY_PATCHLEVEL 112
|
#define RUBY_PATCHLEVEL 113
|
||||||
#define RUBY_VERSION_MAJOR 1
|
#define RUBY_VERSION_MAJOR 1
|
||||||
#define RUBY_VERSION_MINOR 9
|
#define RUBY_VERSION_MINOR 9
|
||||||
#define RUBY_VERSION_TEENY 1
|
#define RUBY_VERSION_TEENY 1
|
||||||
|
|
|
@ -5056,6 +5056,7 @@ rb_w32_read(int fd, void *buf, size_t size)
|
||||||
size_t len;
|
size_t len;
|
||||||
size_t ret;
|
size_t ret;
|
||||||
OVERLAPPED ol, *pol = NULL;
|
OVERLAPPED ol, *pol = NULL;
|
||||||
|
BOOL isconsole;
|
||||||
int start = 0;
|
int start = 0;
|
||||||
|
|
||||||
if (is_socket(sock))
|
if (is_socket(sock))
|
||||||
|
@ -5073,16 +5074,18 @@ rb_w32_read(int fd, void *buf, size_t size)
|
||||||
MTHREAD_ONLY(EnterCriticalSection(&(_pioinfo(fd)->lock)));
|
MTHREAD_ONLY(EnterCriticalSection(&(_pioinfo(fd)->lock)));
|
||||||
|
|
||||||
if (!size || _osfile(fd) & FEOFLAG) {
|
if (!size || _osfile(fd) & FEOFLAG) {
|
||||||
|
_set_osflags(fd, _osfile(fd) & ~FEOFLAG);
|
||||||
MTHREAD_ONLY(LeaveCriticalSection(&_pioinfo(fd)->lock));
|
MTHREAD_ONLY(LeaveCriticalSection(&_pioinfo(fd)->lock));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
|
isconsole = is_console(_osfhnd(fd));
|
||||||
retry:
|
retry:
|
||||||
/* get rid of console reading bug */
|
/* get rid of console reading bug */
|
||||||
if (is_console(_osfhnd(fd))) {
|
if (isconsole) {
|
||||||
if (start)
|
if (start)
|
||||||
len = min(16 * 1024, size);
|
len = 1;
|
||||||
else {
|
else {
|
||||||
len = 0;
|
len = 0;
|
||||||
start = 1;
|
start = 1;
|
||||||
|
@ -5178,11 +5181,14 @@ rb_w32_read(int fd, void *buf, size_t size)
|
||||||
}
|
}
|
||||||
|
|
||||||
ret += read;
|
ret += read;
|
||||||
if (read == len) {
|
if (read >= len) {
|
||||||
buf = (char *)buf + len;
|
buf = (char *)buf + read;
|
||||||
if (size > 0)
|
if (!(isconsole && len == 1 && *((char *)buf - 1) == '\n') && size > 0)
|
||||||
goto retry;
|
goto retry;
|
||||||
}
|
}
|
||||||
|
if (read == 0)
|
||||||
|
_set_osflags(fd, _osfile(fd) | FEOFLAG);
|
||||||
|
|
||||||
|
|
||||||
MTHREAD_ONLY(LeaveCriticalSection(&_pioinfo(fd)->lock));
|
MTHREAD_ONLY(LeaveCriticalSection(&_pioinfo(fd)->lock));
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue