def dots.go

bend-kit-url@0.4.1.0 · url.bend:466

import bend-kit-url@0.4.1.0/url.bend as Url
import Base

466# stack is reversed; trail: the last segment was "." or "..", so a "/" ends the path.
467def dots.go(segs: List<&2, String>, stack: List<&2, String>, trail: Bool) -> String:
468  match segs:
469    case Nil{}:
470      +out = dots.join(stack, "")
471      Bool.pick(String, Bool.and(trail, Bool.not(String.is_empty(out))), out ++ "/", Bool.pick(String, String.is_empty(out), "/", out))
472    case Con{+seg, t}:
473      +dot = String.eq(seg, ".")
474      +up = String.eq(seg, "..")
475      dots.go(t, dots.push(seg, stack, dot, up), Bool.or(dot, up))

Uses (12)

Used by (1)