From 811842ef2f46ade48bff5b4148256dbd8f791c79 Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 9 Nov 2020 11:54:14 -0500 Subject: [PATCH] wildcard matcher: quote replacement to prevent the matcher from replacing group references --- .../src/main/java/net/runelite/client/util/WildcardMatcher.java | 2 +- .../test/java/net/runelite/client/util/WildcardMatcherTest.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/util/WildcardMatcher.java b/runelite-client/src/main/java/net/runelite/client/util/WildcardMatcher.java index 354005a048..2421010fb5 100644 --- a/runelite-client/src/main/java/net/runelite/client/util/WildcardMatcher.java +++ b/runelite-client/src/main/java/net/runelite/client/util/WildcardMatcher.java @@ -45,7 +45,7 @@ public class WildcardMatcher } else { - matcher.appendReplacement(buffer, "\\\\Q" + matcher.group(0) + "\\\\E"); + matcher.appendReplacement(buffer, Matcher.quoteReplacement(Pattern.quote(matcher.group(0)))); } } diff --git a/runelite-client/src/test/java/net/runelite/client/util/WildcardMatcherTest.java b/runelite-client/src/test/java/net/runelite/client/util/WildcardMatcherTest.java index 53b48a0755..5b1d09a264 100644 --- a/runelite-client/src/test/java/net/runelite/client/util/WildcardMatcherTest.java +++ b/runelite-client/src/test/java/net/runelite/client/util/WildcardMatcherTest.java @@ -39,5 +39,6 @@ public class WildcardMatcherTest assertFalse(matches("Abyssal whip", "Adamant dagger")); assertTrue(matches("rune*", "Runeite Ore")); assertTrue(matches("Abyssal whip", "Abyssal whip")); + assertTrue(matches("string $ with special character", "string $ with special character")); } } \ No newline at end of file