Sha256: caaed5da05330e4a76e2e6450a94a49faa7286bedf27fcbea8e98280734dc637

Contents?: true

Size: 1.72 KB

Versions: 16

Compression:

Stored size: 1.72 KB

Contents

o:$YARD::CodeObjects::MethodObject:
@name:initialize_copy:@docstringIC:YARD::Docstring":nodoc:
:@objectu:YARD::StubProxyIO#initialize_copy:
@summary0:	@all":nodoc::@ref_tags[:
@tags[:@current_file_has_commentsF:@scope:
instance:@parameters[:@docstring_extra0:@files[["	io.c0:@namespaceu;IO:
@path"IO#initialize_copy;[:@visibility:public:@source"Y/* :nodoc: */
static VALUE
rb_io_init_copy(dest, io)
    VALUE dest, io;
{
    rb_io_t *fptr, *orig;
    int fd;
    const char *mode;

    io = rb_io_get_io(io);
    if (dest == io) return dest;
    GetOpenFile(io, orig);
    MakeOpenFile(dest, fptr);

    if (orig->f2) {
    io_fflush(orig->f2, orig);
    fseeko(orig->f, 0L, SEEK_CUR);
    }
    else if (orig->mode & FMODE_WRITABLE) {
    io_fflush(orig->f, orig);
    }
    else {
    fseeko(orig->f, 0L, SEEK_CUR);
    }

    /* copy rb_io_t structure */
    fptr->mode = orig->mode;
    fptr->pid = orig->pid;
    fptr->lineno = orig->lineno;
    if (orig->path) fptr->path = strdup(orig->path);
    fptr->finalize = orig->finalize;

    switch (fptr->mode & FMODE_READWRITE) {
      case FMODE_READABLE:
      default:
    mode = "r"; break;
      case FMODE_WRITABLE:
    mode = "w"; break;
      case FMODE_READWRITE:
    if (orig->f2) mode = "r";
    else          mode = "r+";
    break;
    }
    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);
    }

    return dest;
}:@source_type:c

Version data entries

16 entries across 16 versions & 2 rubygems

Version Path
pry-doc-0.5.1 lib/pry-doc/core_docs_18/objects/IO/initialize_copy_i.dat
pry-doc-0.5.0 lib/pry-doc/core_docs_18/objects/IO/initialize_copy_i.dat
pry-doc-0.4.6 lib/pry-doc/core_docs_18/objects/IO/initialize_copy_i.dat
pry-doc-0.4.5 lib/pry-doc/core_docs_18/objects/IO/initialize_copy_i.dat
pry-doc-0.4.4 lib/pry-doc/core_docs_18/objects/IO/initialize_copy_i.dat
pry-doc-0.4.3 lib/pry-doc/core_docs_18/objects/IO/initialize_copy_i.dat
pry-doc-0.4.2 lib/pry-doc/core_docs_18/objects/IO/initialize_copy_i.dat
pry-doc-0.4.1 lib/pry-doc/core_docs_18/objects/IO/initialize_copy_i.dat
pry-doc-0.4.0 lib/pry-doc/core_docs_18/objects/IO/initialize_copy_i.dat
pry-doc-0.3.0 lib/pry-doc/core_docs_18/objects/IO/initialize_copy_i.dat
pry-doc-0.2.4pre1 lib/pry-doc/core_docs_18/objects/IO/initialize_copy_i.dat
pry-doc-0.2.3pre1 lib/pry-doc/core_docs_18/objects/IO/initialize_copy_i.dat
pry-doc-0.2.1 lib/pry-doc/core_docs_18/objects/IO/initialize_copy_i.dat
pry-doc-0.2.0 lib/pry-doc/core_docs_18/objects/IO/initialize_copy_i.dat
pry-doc-0.1.5pre1 lib/pry-doc/core_docs_18/objects/IO/initialize_copy_i.dat
pry-0.6.9pre1-i386-mingw32 lib/pry/core_docs_18/objects/IO/initialize_copy_i.dat