From 3e1becfa688f2cba280c475caf39aec3ce14a095 Mon Sep 17 00:00:00 2001 From: nea Date: Mon, 16 Aug 2021 15:05:45 +0200 Subject: more test --- src/jsMain/kotlin/io/Path.kt | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) (limited to 'src/jsMain/kotlin/io') diff --git a/src/jsMain/kotlin/io/Path.kt b/src/jsMain/kotlin/io/Path.kt index 20e4a90..241c559 100644 --- a/src/jsMain/kotlin/io/Path.kt +++ b/src/jsMain/kotlin/io/Path.kt @@ -60,21 +60,16 @@ sealed class Path { fun relativize(path: Path): Relative = when (path) { is Relative -> path is Absolute -> { - var commonPrefix = true - val partList = mutableListOf() - var returns = 0 - for ((idx, part) in path.parts.withIndex()) { - if (idx < this.parts.size) { - if (this.parts[idx] == part && commonPrefix) { - continue - } else { - commonPrefix = false - returns++ - } - } - partList.add(part) + var idx = 0 + while (idx < path.parts.size && idx < parts.size && path.parts[idx] == parts[idx]) { + idx++ } - Relative(List(returns) { ".." } + partList) + val returns = if (idx < parts.size) { + parts.size - idx + } else { + 0 + } + Relative(List(returns) { ".." } + path.parts.subList(idx, path.parts.size)) } } } -- cgit