diff options
| author | Bond-009 <bond.009@outlook.com> | 2026-02-02 20:54:06 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-02-02 20:54:06 +0100 |
| commit | 909e2142d6bb4833bccb84a50360cae7f91e2fd3 (patch) | |
| tree | 880d20f5044bf0ed4656489342e31d11f71931c3 /Emby.Server.Implementations/Library/PathExtensions.cs | |
| parent | cbc0138507c0e43d7e6e9c8dd9ef7a62d038c5c6 (diff) | |
| parent | 8083ab78b558e4081caf4fd321e5ad8f74844f3e (diff) | |
Add curly brace and parentheses support for parsing attribute values
Diffstat (limited to 'Emby.Server.Implementations/Library/PathExtensions.cs')
| -rw-r--r-- | Emby.Server.Implementations/Library/PathExtensions.cs | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/Emby.Server.Implementations/Library/PathExtensions.cs b/Emby.Server.Implementations/Library/PathExtensions.cs index 21e7079d8..fc63251ad 100644 --- a/Emby.Server.Implementations/Library/PathExtensions.cs +++ b/Emby.Server.Implementations/Library/PathExtensions.cs @@ -37,15 +37,25 @@ namespace Emby.Server.Implementations.Library while (attributeIndex > -1 && attributeIndex < maxIndex) { var attributeEnd = attributeIndex + attribute.Length; - if (attributeIndex > 0 - && str[attributeIndex - 1] == '[' - && (str[attributeEnd] == '=' || str[attributeEnd] == '-')) + if (attributeIndex > 0) { - var closingIndex = str[attributeEnd..].IndexOf(']'); - // Must be at least 1 character before the closing bracket. - if (closingIndex > 1) + var attributeOpener = str[attributeIndex - 1]; + var attributeCloser = attributeOpener switch { - return str[(attributeEnd + 1)..(attributeEnd + closingIndex)].Trim().ToString(); + '[' => ']', + '(' => ')', + '{' => '}', + _ => '\0' + }; + if (attributeCloser != '\0' && (str[attributeEnd] == '=' || str[attributeEnd] == '-')) + { + var closingIndex = str[attributeEnd..].IndexOf(attributeCloser); + + // Must be at least 1 character before the closing bracket. + if (closingIndex > 1) + { + return str[(attributeEnd + 1)..(attributeEnd + closingIndex)].Trim().ToString(); + } } } |
