diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2015-08-23 14:13:46 +0100 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2015-08-23 14:13:46 +0100 |
| commit | 71e362e2f96392cff4779200e687cd1dc541a7c8 (patch) | |
| tree | 59bf01790aa47c266763b2fc0942ce041822e3a8 /src/file.cc | |
| parent | ae839fc4713dafd887f0f872191924742a3c8832 (diff) | |
Move session socket to /tmp/kakoune/<user name>/<session>
Diffstat (limited to 'src/file.cc')
| -rw-r--r-- | src/file.cc | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/file.cc b/src/file.cc index bea46dbb..2c8afeb5 100644 --- a/src/file.cc +++ b/src/file.cc @@ -291,6 +291,24 @@ String find_file(StringView filename, ConstArrayView<String> paths) return ""; } +void make_directory(StringView dir) +{ + auto it = dir.begin(), end = dir.end(); + while(it != end) + { + it = std::find(it+1, end, '/'); + struct stat st; + StringView dirname{dir.begin(), it}; + if (stat(dirname.zstr(), &st) == 0) + { + if (not S_ISDIR(st.st_mode)) + throw runtime_error(format("Cannot make directory, '{}' exists but is not a directory", dirname)); + } + else if (mkdir(dirname.zstr(), S_IRWXU) != 0) + throw runtime_error(format("mkdir failed for directory '{}' errno {}", dirname, errno)); + } +} + template<typename Filter> Vector<String> list_files(StringView prefix, StringView dirname, Filter filter) |
