diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2015-10-16 13:58:56 +0100 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2015-10-17 11:33:09 +0100 |
| commit | 76fadd81081d7bb762d143dfd2ecca73637328a7 (patch) | |
| tree | 8619b5d6b599abd7ef7471f5ee224d89eabbd6a1 /src/buffer_utils.cc | |
| parent | fe704b9b8433145602b1ec63f030ea98b378811d (diff) | |
More cleanups in the buffer open/reload code
Diffstat (limited to 'src/buffer_utils.cc')
| -rw-r--r-- | src/buffer_utils.cc | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/src/buffer_utils.cc b/src/buffer_utils.cc index 045e4364..7220470b 100644 --- a/src/buffer_utils.cc +++ b/src/buffer_utils.cc @@ -47,24 +47,30 @@ ByteCount get_byte_to_column(const Buffer& buffer, CharCount tabstop, CharCoord return (int)(it - line.begin()); } -Buffer* create_file_buffer(StringView filename) +Buffer* open_file_buffer(StringView filename) { - if (MappedFile file_data{filename}) - return new Buffer(filename.str(), Buffer::Flags::File, - { file_data.data, (int)file_data.st.st_size }, - file_data.st.st_mtim); - return nullptr; + MappedFile file_data{filename}; + return new Buffer(filename.str(), Buffer::Flags::File, + file_data, file_data.st.st_mtim); } -bool reload_file_buffer(Buffer& buffer) +Buffer* open_or_create_file_buffer(StringView filename) { - kak_assert(buffer.flags() & Buffer::Flags::File); - if (MappedFile file_data{buffer.name()}) + if (file_exists(filename)) { - buffer.reload({ file_data.data, (int)file_data.st.st_size }, file_data.st.st_mtim); - return true; + MappedFile file_data{filename}; + return new Buffer(filename.str(), Buffer::Flags::File, + file_data, file_data.st.st_mtim); } - return false; + return new Buffer(filename.str(), Buffer::Flags::File | Buffer::Flags::New, + {}, InvalidTime); +} + +void reload_file_buffer(Buffer& buffer) +{ + kak_assert(buffer.flags() & Buffer::Flags::File); + MappedFile file_data{buffer.name()}; + buffer.reload(file_data, file_data.st.st_mtim); } Buffer* create_fifo_buffer(String name, int fd, bool scroll) |
