summaryrefslogtreecommitdiff
path: root/src/file.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2015-10-16 13:58:56 +0100
committerMaxime Coste <frrrwww@gmail.com>2015-10-17 11:33:09 +0100
commit76fadd81081d7bb762d143dfd2ecca73637328a7 (patch)
tree8619b5d6b599abd7ef7471f5ee224d89eabbd6a1 /src/file.cc
parentfe704b9b8433145602b1ec63f030ea98b378811d (diff)
More cleanups in the buffer open/reload code
Diffstat (limited to 'src/file.cc')
-rw-r--r--src/file.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/file.cc b/src/file.cc
index c84a9217..ced88614 100644
--- a/src/file.cc
+++ b/src/file.cc
@@ -165,7 +165,7 @@ MappedFile::MappedFile(StringView filename)
if (fd == -1)
{
if (errno == ENOENT)
- return;
+ throw file_not_found{real_filename};
throw file_access_error(real_filename, strerror(errno));
}
@@ -186,6 +186,13 @@ MappedFile::~MappedFile()
}
}
+bool file_exists(StringView filename)
+{
+ String real_filename = real_path(parse_filename(filename));
+ struct stat st;
+ return stat(real_filename.c_str(), &st) == 0;
+}
+
static void write(int fd, StringView data)
{
const char* ptr = data.data();