diff options
Diffstat (limited to 'lib/pure/os.nim')
-rw-r--r-- | lib/pure/os.nim | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/pure/os.nim b/lib/pure/os.nim index 3b1421cb5..12170aa40 100644 --- a/lib/pure/os.nim +++ b/lib/pure/os.nim @@ -406,6 +406,18 @@ proc relativePath*(path, base: string; sep = DirSep): string {. if not f.hasNext(path): break ff = f.next(path) +proc isRelativeTo*(path: string, base: string): bool {.since: (1, 1).} = + ## Returns true if `path` is relative to `base`. + runnableExamples: + doAssert isRelativeTo("./foo//bar", "foo") + doAssert isRelativeTo("foo/bar", ".") + doAssert isRelativeTo("/foo/bar.nim", "/foo/bar.nim") + doAssert not isRelativeTo("foo/bar.nims", "foo/bar.nim") + let path = path.normalizePath + let base = base.normalizePath + let ret = relativePath(path, base) + result = path.len > 0 and not ret.startsWith ".." + proc parentDirPos(path: string): int = var q = 1 if len(path) >= 1 and path[len(path)-1] in {DirSep, AltSep}: q = 2 |