diff --git a/ChangeLog b/ChangeLog index 66487c43c3..56ccec56fe 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Wed May 26 13:14:52 2004 Nobuyoshi Nakada + + * io.c (rb_io_init_copy): copy also positions. [ruby-talk:100910] + Wed May 26 00:00:00 2004 why the lucky stiff * ext/syck/syck.c (syck_new_parser): clear parser on init. diff --git a/io.c b/io.c index f2f46a64fc..5072366832 100644 --- a/io.c +++ b/io.c @@ -3331,11 +3331,13 @@ rb_io_init_copy(dest, io) } fd = ruby_dup(fileno(orig->f)); fptr->f = rb_fdopen(fd, mode); + fseeko(fptr->f, ftello(orig->f), SEEK_SET); if (orig->f2) { if (fileno(orig->f) != fileno(orig->f2)) { fd = ruby_dup(fileno(orig->f2)); } fptr->f2 = rb_fdopen(fd, "w"); + fseeko(fptr->f2, ftello(orig->f2), SEEK_SET); } if (fptr->mode & FMODE_BINMODE) { rb_io_binmode(dest);