std/pathnorm

Source   Edit  

OS-Path normalization. Used by os.nim but also generally useful for dealing with paths.

Unstable API.

Types

PathIter = object
Source   Edit  

Procs

proc addNormalizePath(x: string; result: var string; state: var int;
                      dirSep = DirSep) {....raises: [], tags: [], forbids: [].}
Low level proc. Undocumented. Source   Edit  
proc hasNext(it: PathIter; x: string): bool {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc next(it: var PathIter; x: string): (int, int) {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc normalizePath(path: string; dirSep = DirSep): string {....raises: [],
    tags: [], forbids: [].}

Example:

when defined(posix):
  doAssert normalizePath("./foo//bar/../baz") == "foo/baz"
  • Turns multiple slashes into single slashes.
  • Resolves '/foo/../bar' to '/bar'.
  • Removes './' from the path, but "foo/.." becomes ".".
Source   Edit