From cfafaf0df95238fa65bd8b5aafca2582c703f338 Mon Sep 17 00:00:00 2001 From: JesseBrault0709 <62299747+JesseBrault0709@users.noreply.github.com> Date: Fri, 31 May 2024 10:17:49 +0200 Subject: [PATCH] Bug fix with wildcard. --- .../com/jessebrault/ssg/util/Glob.groovy | 22 +++++++------------ 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/api/src/main/groovy/com/jessebrault/ssg/util/Glob.groovy b/api/src/main/groovy/com/jessebrault/ssg/util/Glob.groovy index f587294..c3f666f 100644 --- a/api/src/main/groovy/com/jessebrault/ssg/util/Glob.groovy +++ b/api/src/main/groovy/com/jessebrault/ssg/util/Glob.groovy @@ -39,7 +39,7 @@ final class Glob { new AnyDirectoryHierarchy() } else if (it.contains('*')) { def replaced = it.replace([ - '*': '.', + '*': '.*', '.': '\\.' ]) new GlobFileOrDirectory(it, ~replaced) @@ -73,35 +73,29 @@ final class Glob { subjectParts = subject.split('/') as List } - def subjectPartIter = subjectParts.iterator() - def subjectPartStack = new LinkedList() - while (subjectPartIter.hasNext()) { - subjectPartStack.push(subjectPartIter.next()) - } - boolean result = true parts: for (def part : this.parts) { if (part instanceof Literal) { - if (subjectPartStack.isEmpty()) { + if (subjectParts.isEmpty()) { result = false break } - def subjectPart = subjectPartStack.pop() + def subjectPart = subjectParts.removeFirst() if (part.literal != subjectPart) { result = false break } } else if (part instanceof AnyDirectoryHierarchy) { - while (!subjectPartStack.isEmpty()) { - def current = subjectPartStack.pop() - if (subjectPartStack.isEmpty()) { - subjectPartStack.push(current) + while (!subjectParts.isEmpty()) { + def current = subjectParts.removeFirst() + if (subjectParts.isEmpty()) { + subjectParts.push(current) continue parts } } } else if (part instanceof GlobFileOrDirectory) { - def subjectPart = subjectPartStack.pop() + def subjectPart = subjectParts.removeFirst() def m = part.regexPattern.matcher(subjectPart) if (!m.matches()) { result = false