summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoratravita-mods <94934860+atravita-mods@users.noreply.github.com>2022-10-18 18:58:41 -0400
committeratravita-mods <94934860+atravita-mods@users.noreply.github.com>2022-10-18 18:58:41 -0400
commitb99dbf53bda9dc1178a3b6e8cbafea609f3ee6dc (patch)
tree87fea0572f25ac019295e4e9688c2cf92ab5208a
parent4dcc6904b9e72ac3567dfafe3824c2de48218b58 (diff)
downloadSMAPI-b99dbf53bda9dc1178a3b6e8cbafea609f3ee6dc.tar.gz
SMAPI-b99dbf53bda9dc1178a3b6e8cbafea609f3ee6dc.tar.bz2
SMAPI-b99dbf53bda9dc1178a3b6e8cbafea609f3ee6dc.zip
fix this case.
-rw-r--r--src/SMAPI.Tests/Core/AssetNameTests.cs2
-rw-r--r--src/SMAPI/Framework/Content/AssetName.cs4
2 files changed, 6 insertions, 0 deletions
diff --git a/src/SMAPI.Tests/Core/AssetNameTests.cs b/src/SMAPI.Tests/Core/AssetNameTests.cs
index fe70e330..fbc94e95 100644
--- a/src/SMAPI.Tests/Core/AssetNameTests.cs
+++ b/src/SMAPI.Tests/Core/AssetNameTests.cs
@@ -245,6 +245,8 @@ namespace SMAPI.Tests.Core
[TestCase("Mods/SomeMod/SomeSubdirectory", "Mods/Some", true, ExpectedResult = true)]
[TestCase("Mods/SomeMod/SomeSubdirectory", "Mods/Some", false, ExpectedResult = false)]
+ [TestCase("Mods/Jasper/Data", "Mods/Jas/Image", true, ExpectedResult = false)]
+ [TestCase("Mods/Jasper/Data", "Mods/Jas/Image", true, ExpectedResult = false)]
public bool StartsWith_SubfolderWithPartial(string mainAssetName, string otherAssetName, bool allowSubfolder)
{
// arrange
diff --git a/src/SMAPI/Framework/Content/AssetName.cs b/src/SMAPI/Framework/Content/AssetName.cs
index 9d59f222..7b87c0c5 100644
--- a/src/SMAPI/Framework/Content/AssetName.cs
+++ b/src/SMAPI/Framework/Content/AssetName.cs
@@ -179,6 +179,10 @@ namespace StardewModdingAPI.Framework.Content
}
else
{
+ // mismatch: prefix has more beyond this, and this segment isn't an exact match
+ if (prefixParts.Remainder.Length != 0)
+ return false;
+
// mismatch: cur segment doesn't start with prefix
if (!curParts.Current.StartsWith(prefixParts.Current, StringComparison.OrdinalIgnoreCase))
return false;