From 062ae56f255a0ea61bc9ac2596b8bcb618fa66f1 Mon Sep 17 00:00:00 2001 From: Clay Murray Date: Wed, 7 Oct 2020 16:32:00 -0600 Subject: [PATCH] Fix a few bugs in path based code. Trying to use path.dir and path.rel I found these two issues with the implementation. --- core/path/filepath/path.odin | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/path/filepath/path.odin b/core/path/filepath/path.odin index 283eb3a9e..f1e20279b 100644 --- a/core/path/filepath/path.odin +++ b/core/path/filepath/path.odin @@ -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);