ruby-changes:7432
From: usa <ko1@a...>
Date: Sat, 30 Aug 2008 20:07:07 +0900 (JST)
Subject: [ruby-changes:7432] Ruby:r18951 (trunk): * win32/win32.c (rb_w32_open, rb_w32_read, rb_w32_write): fallback to
usa 2008-08-30 20:06:52 +0900 (Sat, 30 Aug 2008) New Revision: 18951 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=18951 Log: * win32/win32.c (rb_w32_open, rb_w32_read, rb_w32_write): fallback to MSVCRT if text mode is specified. this case will not be used from ruby itself. Modified files: trunk/ChangeLog trunk/win32/win32.c Index: ChangeLog =================================================================== --- ChangeLog (revision 18950) +++ ChangeLog (revision 18951) @@ -1,3 +1,9 @@ +Sat Aug 30 20:05:41 2008 NAKAMURA Usaku <usa@r...> + + * win32/win32.c (rb_w32_open, rb_w32_read, rb_w32_write): fallback to + MSVCRT if text mode is specified. this case will not be used from + ruby itself. + Sat Aug 30 19:49:38 2008 NAKAMURA Usaku <usa@r...> * win32/win32.c (rb_w32_read): EOF is not error. Index: win32/win32.c =================================================================== --- win32/win32.c (revision 18950) +++ win32/win32.c (revision 18951) @@ -4007,6 +4007,15 @@ SECURITY_ATTRIBUTES sec; HANDLE h; + if ((oflag & O_TEXT) || !(oflag & ~O_BINARY)) { + va_list arg; + int pmode; + va_start(arg, oflag); + pmode = va_arg(arg, int); + va_end(arg); + return _open(file, oflag, pmode); + } + sec.nLength = sizeof(sec); sec.lpSecurityDescriptor = NULL; if (oflag & O_NOINHERIT) { @@ -4313,6 +4322,10 @@ return -1; } + if (_osfile(fd) & FTEXT) { + return _read(fd, buf, size); + } + MTHREAD_ONLY(EnterCriticalSection(&(_pioinfo(fd)->lock))); if (!size || _osfile(fd) & FEOFLAG) { @@ -4423,6 +4436,10 @@ return -1; } + if (_osfile(fd) & FTEXT) { + return _write(fd, buf, size); + } + MTHREAD_ONLY(EnterCriticalSection(&(_pioinfo(fd)->lock))); if (!size || _osfile(fd) & FEOFLAG) { -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/