This project is closed and read-only.
Bug #2575 » io.c.diff
| io.c | ||
|---|---|---|
|
r = write(fileno(f), RSTRING(str)->ptr+offset, l);
|
||
|
TRAP_END;
|
||
|
#if BSD_STDIO
|
||
|
fseeko(f, lseek(fileno(f), (off_t)0, SEEK_CUR), SEEK_SET);
|
||
|
{
|
||
|
int saved_errno;
|
||
|
off_t pos;
|
||
|
saved_errno = errno;
|
||
|
pos = lseek(fileno(f), (off_t)0, SEEK_CUR);
|
||
|
if (pos != -1)
|
||
|
fseeko(f, pos, SEEK_SET);
|
||
|
errno = saved_errno;
|
||
|
}
|
||
|
#endif
|
||
|
if (r == n) return len;
|
||
|
if (0 <= r) {
|
||
| ... | ... | |
|
goto again;
|
||
|
rb_sys_fail(fptr->path);
|
||
|
}
|
||
|
if (fptr->f) /* update pos in FILE structure [ruby-core:21561] */
|
||
|
if (fptr->f) { /* update pos in FILE structure [ruby-core:21561] */
|
||
|
fflush(fptr->f);
|
||
|
#if defined(__SOFF) && defined(__NetBSD__)
|
||
|
fptr->f->_flags &= ~__SOFF;
|
||
|
(void)io_tell(fptr);
|
||
|
#endif
|
||
|
}
|
||
|
}
|
||
|
rb_str_resize(str, n);
|
||
- « Previous
- 1
- 2
- Next »