From df61a0805fa5a54896c93200832165508e5badfa Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Thu, 5 Sep 2024 15:47:00 -0400 Subject: Correctly resolve '../' paths --- builtins/files.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'builtins') diff --git a/builtins/files.c b/builtins/files.c index f506d596..dc91d0b0 100644 --- a/builtins/files.c +++ b/builtins/files.c @@ -29,7 +29,7 @@ public char *resolve_path(const char *path, const char *relative_to, const char if (streq(path, "~") || starts_with(path, "~/")) { char *resolved = realpath(heap_strf("%s%s", getenv("HOME"), path+1), buf); if (resolved) return GC_strdup(resolved); - } else if (streq(path, ".") || starts_with(path, "./")) { + } else if (streq(path, ".") || starts_with(path, "./") || starts_with(path, "../")) { char *relative_dir = dirname(GC_strdup(relative_to)); char *resolved = realpath(heap_strf("%s/%s", relative_dir, path), buf); if (resolved) return GC_strdup(resolved); -- cgit v1.2.3