From 76fadd81081d7bb762d143dfd2ecca73637328a7 Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Fri, 16 Oct 2015 13:58:56 +0100 Subject: More cleanups in the buffer open/reload code --- src/buffer_utils.cc | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) (limited to 'src/buffer_utils.cc') 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) -- cgit v1.2.3