mirror of
https://github.com/Ed94/Odin.git
synced 2026-07-17 00:11:25 -07:00
Merge branch 'master' of https://github.com/odin-lang/Odin
This commit is contained in:
@@ -241,7 +241,7 @@ rel :: proc(base_path, target_path: string, allocator := context.allocator) -> (
|
||||
for ti < tl && target[ti] != SEPARATOR {
|
||||
ti += 1;
|
||||
}
|
||||
if !strings.equal_fold(target[t0:ti], base[t0:ti]) {
|
||||
if !strings.equal_fold(target[t0:ti], base[b0:bi]) {
|
||||
break;
|
||||
}
|
||||
if bi < bl {
|
||||
@@ -284,7 +284,7 @@ rel :: proc(base_path, target_path: string, allocator := context.allocator) -> (
|
||||
dir :: proc(path: string, allocator := context.allocator) -> string {
|
||||
vol := volume_name(path);
|
||||
i := len(path) - 1;
|
||||
for i >= len(vol) && is_separator(path[i]) {
|
||||
for i >= len(vol) && !is_separator(path[i]) {
|
||||
i -= 1;
|
||||
}
|
||||
dir := clean(path[len(vol) : i+1], allocator);
|
||||
|
||||
+14
-1
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user