summaryrefslogtreecommitdiff
path: root/src/file.cc
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2021-07-20 22:06:57 +1000
committerMaxime Coste <mawww@kakoune.org>2021-07-20 22:30:41 +1000
commit40e3614cf458a982c783e899143bef81736faa27 (patch)
tree6cf74d1fa2043b7a0a2419c449cec49189f3b41f /src/file.cc
parent4d99434ddd9aa0acec91ea9790daf1b0610b087f (diff)
Prevent overwriting existing file in :write <explicit filename>
Add a -force (equivalent to w!) switch that enables overwriting.
Diffstat (limited to 'src/file.cc')
-rw-r--r--src/file.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/file.cc b/src/file.cc
index 89dee9a3..4c7658be 100644
--- a/src/file.cc
+++ b/src/file.cc
@@ -247,6 +247,13 @@ bool file_exists(StringView filename)
return stat(filename.zstr(), &st) == 0;
}
+bool regular_file_exists(StringView filename)
+{
+ struct stat st;
+ return stat(filename.zstr(), &st) == 0 and
+ (st.st_mode & S_IFMT) == S_IFREG;
+}
+
void write(int fd, StringView data)
{
const char* ptr = data.data();