Bug #12230 ยป win32-seek-espipe.patch
io.c | ||
---|---|---|
pos = NUM2OFFT(offset);
|
||
GetOpenFile(io, fptr);
|
||
pos = io_seek(fptr, pos, whence);
|
||
if (pos < 0 && errno) rb_sys_fail_path(fptr->pathv);
|
||
if (pos < 0 && errno) {
|
||
#ifdef _WIN32
|
||
if (errno == EINVAL &&
|
||
(RTEST(rb_funcall(rb_cFile, rb_intern("pipe?"), 1, io)) ||
|
||
RTEST(rb_funcall(rb_cFile, rb_intern("socket?"), 1, io))))
|
||
errno = ESPIPE;
|
||
#endif
|
||
rb_sys_fail_path(fptr->pathv);
|
||
}
|
||
return INT2FIX(0);
|
||
}
|