int find_file(const char *filename) { Buffer *bp; char *s; for (bp = head_bp; bp != NULL; bp = bp->next) if (bp->filename != NULL && !strcmp(bp->filename, filename)) { switch_to_buffer(bp); return TRUE; } s = make_buffer_name(filename); if (strlen(s) < 1) { free(s); return FALSE; } if (!is_regular_file(filename)) { minibuf_error("%s is not a regular file", filename); waitkey(WAITKEY_DEFAULT); return FALSE; } bp = create_buffer(s); free(s); bp->filename = zstrdup(filename); switch_to_buffer(bp); read_from_disk(filename); thisflag |= FLAG_NEED_RESYNC; return TRUE; }
Buffer::Buffer(Type t, const std::vector<int32_t> &sizes, uint8_t* data, const std::string &name) : contents(new Internal::BufferContents(t, size_or_zero(sizes, 0), size_or_zero(sizes, 1), size_or_zero(sizes, 2), size_or_zero(sizes, 3), data, make_buffer_name(name, this))) { user_assert(sizes.size() <= 4) << "Buffer dimensions greater than 4 are not supported."; }
BufferPtr::BufferPtr(Type t, const std::vector<int> &size, std::string name) : contents(new Internal::BufferContents) { contents->image = Image<>(t, size); contents->name = make_buffer_name(name, contents->image); }
BufferPtr::BufferPtr(Type t, const buffer_t &buf, std::string name) : contents(new Internal::BufferContents) { contents->image = Image<>(t, buf); contents->name = make_buffer_name(name, contents->image); }
Buffer::Buffer(Type t, const buffer_t *buf, const std::string &name) : contents(new Internal::BufferContents(t, buf, make_buffer_name(name, this))) { }
Buffer::Buffer(Type t, int x_size, int y_size, int z_size, int w_size, uint8_t* data, const std::string &name) : contents(new Internal::BufferContents(t, x_size, y_size, z_size, w_size, data, make_buffer_name(name, this))) { }