From c4af4b2a024636d43a499b0cbfe7e33fa5b77592 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6nke=20Ludwig?= Date: Mon, 1 Oct 2018 21:54:29 +0200 Subject: [PATCH] Fix WindowsPath.bySegment of an empty path returning a bogus empty segment. --- source/vibe/core/path.d | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/source/vibe/core/path.d b/source/vibe/core/path.d index b98b89b..43e91ab 100644 --- a/source/vibe/core/path.d +++ b/source/vibe/core/path.d @@ -332,7 +332,7 @@ struct GenericPath(F) { m_path = m_path[ap.length .. $]; assert(!m_fronts.empty); } else readFront(); - } + } else assert(m_fronts.empty); } @property bool empty() const nothrow @nogc { return m_path.length == 0 && m_fronts.empty; } @@ -897,7 +897,7 @@ struct WindowsPathFormat { { static struct R { S[2] items; - size_t i; + size_t i = items.length; this(S s) { i = 1; items[i] = s; } this(S a, S b) { i = 0; items[0] = a; items[1] = b; } @property ref S front() { return items[i]; } @@ -1320,3 +1320,7 @@ struct InetPathFormat { assert(decodeSegment!Segment("foo%20").equal([Segment("foo ")])); } } + +unittest { // regression tests + assert(NativePath("").bySegment.empty); +}