pike.git / src / modules / _Stdio / buffer.cmod

version» Context lines:

pike.git/src/modules/_Stdio/buffer.cmod:1818:    flags ID_PROTECTED;    {    Buffer *io = THIS;    unsigned char *buf = io_read_pointer(io);    unsigned char *buf_end = buf + io_len(io);       if (end) {    INT_TYPE bytes = end->u.integer;       if (bytes < 0) { -  push_int(-1); +  push_undefined();    return;    }    if (((size_t)bytes) < io_len(io)) {    buf_end = buf + bytes + 1;    }    }       if (start) {    INT_TYPE bytes = start->u.integer;       if (bytes >= 0) {    if (((size_t)bytes) >= io_len(io)) { -  push_int(-1); +  push_undefined();    return;    }    } else if (((size_t)(-bytes)) > io->offset) {    bytes = -(ptrdiff_t)io->offset;    }    buf += bytes;    }       while (buf < buf_end) {    if (UNLIKELY(*buf == character)) {    push_int64(buf - io_read_pointer(io));    return;    }    buf++;    }    -  push_int(-1); +  push_undefined();    }       /*! @decl Buffer read_hbuffer( int n )    *! @decl Buffer read_hbuffer( int n, bool copy )    *!    *! Same as @[read_hstring], but returns the result as an Buffer.    *!    *! No data is copied unless @[copy] is specified and true, the new    *! buffer points into the old one.    *!