aboutsummaryrefslogtreecommitdiff
path: root/src/common.cpp
diff options
context:
space:
mode:
authorgingerBill <gingerBill@users.noreply.github.com>2020-10-24 09:41:26 +0100
committerGitHub <noreply@github.com>2020-10-24 09:41:26 +0100
commit71ef27fef92a926059183f0cda927b29aaf74793 (patch)
treeee0eb40c6cb6486fdd4d0b295f4795a250999995 /src/common.cpp
parent6ea000b648d3900fd6de6434a29ae51b81e953cb (diff)
parentdfac45942c488ee59b2b9a40fd682ead818465ba (diff)
Merge pull request #753 from Tetralux/fix-dirnoexist-error
Fix error message when importing package that does not exist
Diffstat (limited to 'src/common.cpp')
-rw-r--r--src/common.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/common.cpp b/src/common.cpp
index 8d2802b1f..350127e1e 100644
--- a/src/common.cpp
+++ b/src/common.cpp
@@ -968,7 +968,20 @@ ReadDirectoryError read_directory(String path, Array<FileInfo> *fi) {
DIR *dir = opendir(c_path);
if (!dir) {
- return ReadDirectory_NotDir;
+ switch (errno) {
+ case ENOENT:
+ return ReadDirectory_NotExists;
+ case EACCES:
+ return ReadDirectory_Permission;
+ case ENOTDIR:
+ return ReadDirectory_NotDir;
+ default:
+ // ENOMEM: out of memory
+ // EMFILE: per-process limit on open fds reached
+ // ENFILE: system-wide limit on total open files reached
+ return ReadDirectory_Unknown;
+ }
+ GB_PANIC("unreachable");
}
array_init(fi, a, 0, 100);