summaryrefslogtreecommitdiff
path: root/src/buffer_utils.hh
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2025-02-19 20:58:49 +1100
committerMaxime Coste <mawww@kakoune.org>2025-02-19 21:25:39 +1100
commiteb7d34333b0698e8e1a8af4f2be908ab08cb2089 (patch)
tree4b53ba24111ce88901669c3e7651b5ec4edb4f87 /src/buffer_utils.hh
parent9eda509282ebc881207c2d8278085cb53835641c (diff)
Cleanup file.cc/hh dependencies
file.cc/hh should not know about Context, Buffer, etc... It should be a pretty low level set of helper functions. Move buffer related functions to buffer_utils and extract busy indicators to callers.
Diffstat (limited to 'src/buffer_utils.hh')
-rw-r--r--src/buffer_utils.hh14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/buffer_utils.hh b/src/buffer_utils.hh
index bc0dab68..96e89743 100644
--- a/src/buffer_utils.hh
+++ b/src/buffer_utils.hh
@@ -81,6 +81,20 @@ Buffer* open_or_create_file_buffer(StringView filename,
Buffer::Flags flags = Buffer::Flags::None);
void reload_file_buffer(Buffer& buffer);
+enum class WriteFlags
+{
+ None = 0,
+ Force = 0b01,
+ Sync = 0b10
+};
+constexpr bool with_bit_ops(Meta::Type<WriteFlags>) { return true; }
+
+void write_buffer_to_file(Buffer& buffer, StringView filename,
+ WriteMethod method, WriteFlags flags);
+void write_buffer_to_fd(Buffer& buffer, int fd);
+void write_buffer_to_backup_file(Buffer& buffer);
+
+
void write_to_debug_buffer(StringView str);
Vector<String> history_as_strings(const Vector<Buffer::HistoryNode>& history);