summaryrefslogtreecommitdiff
path: root/src/file.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2014-10-13 13:38:28 +0100
committerMaxime Coste <frrrwww@gmail.com>2014-10-13 13:38:28 +0100
commit2adaa7bdfab5b62ed18a57a94fe150ca66026328 (patch)
treeec4368df7d49f0b454d1e099499cb69af03f887a /src/file.cc
parentfa85f0fc32b105bef5948585a7d7a38c2910854b (diff)
Do not assert on SIGTERM and backup modified buffers on signal induced termination
Diffstat (limited to 'src/file.cc')
-rw-r--r--src/file.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/file.cc b/src/file.cc
index 66064bbf..11159805 100644
--- a/src/file.cc
+++ b/src/file.cc
@@ -209,6 +209,19 @@ void write_buffer_to_file(Buffer& buffer, StringView filename)
buffer.run_hook_in_own_context("BufWritePost", buffer.name());
}
+void write_buffer_to_backup_file(Buffer& buffer)
+{
+ char pattern[PATH_MAX+1];
+ snprintf(pattern, PATH_MAX+1, ".%s.kak.XXXXXX",
+ real_path(buffer.name()).c_str());
+ int fd = mkstemp(pattern);
+ if (fd >= 0)
+ {
+ write_buffer_to_fd(buffer, fd);
+ close(fd);
+ }
+}
+
String find_file(StringView filename, memoryview<String> paths)
{
struct stat buf;