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_undefined(); +  push_int(-1);    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_undefined(); +  push_int(-1);    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_undefined(); +  push_int(-1);    }       /*! @decl protected int(-1..) _search(string(8bit) substring, int|void start, @    *! int|void end)    *!    *! Search forward from the indicated @[start] position for the specified    *! @[substring].    *!    *! @param substring    *! Substring to search for.
pike.git/src/modules/_Stdio/buffer.cmod:1889:    {    Buffer *io = THIS;    unsigned char *buf = io_read_pointer(io);    unsigned char *buf_end = buf + io_len(io);    SearchMojt mojt;       if (end) {    INT_TYPE bytes = end->u.integer;       if (bytes < 0) { -  push_undefined(); +  push_int(-1);    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_undefined(); +  push_int(-1);    return;    }    } else if (((size_t)(-bytes)) > io->offset) {    bytes = -(ptrdiff_t)io->offset;    }    buf += bytes;    }       if (substring->len > (buf_end - buf)) { -  push_undefined(); +  push_int(-1);    return;    }    if (!substring->len) {    push_int64(buf - io_read_pointer(io));    return;    }       mojt = compile_memsearcher(MKPCHARP_STR(substring), substring->len,    buf_end - buf, substring);       buf = mojt.vtab->func0(mojt.data, buf, buf_end - buf);       if (mojt.container) free_object(mojt.container);       if (!buf) { -  push_undefined(); +  push_int(-1);    } else {    push_int64(buf - io_read_pointer(io));    }    }       /*! @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.    *!