Skip to content

Commit

Permalink
fix: Ensure case-insensitive file extension checks in decoder and enc…
Browse files Browse the repository at this point in the history
…oder interfaces (#1273)
  • Loading branch information
yuto-trd authored Feb 5, 2025
1 parent b9e67a7 commit ebcd42e
Show file tree
Hide file tree
Showing 7 changed files with 13 additions and 12 deletions.
2 changes: 1 addition & 1 deletion src/Beutl.Engine/Media/Decoding/IDecoderInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ public interface IDecoderInfo

bool IsSupported(string file)
{
return VideoExtensions().Concat(AudioExtensions()).Contains(Path.GetExtension(file));
return VideoExtensions().Concat(AudioExtensions()).Contains(Path.GetExtension(file), StringComparer.OrdinalIgnoreCase);
}

IEnumerable<string> VideoExtensions();
Expand Down
2 changes: 1 addition & 1 deletion src/Beutl.Engine/Media/Encoding/IEncoderInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ public interface IEncoderInfo

bool IsSupported(string file)
{
return SupportExtensions().Contains(Path.GetExtension(file));
return SupportExtensions().Contains(Path.GetExtension(file), StringComparer.OrdinalIgnoreCase);
}

IEnumerable<string> SupportExtensions();
Expand Down
6 changes: 3 additions & 3 deletions src/Beutl/Services/PrimitiveImpls/SceneEditorExtension.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public sealed class SceneEditorExtension : EditorExtension

public override bool TryCreateEditor(string file, [NotNullWhen(true)] out Control? editor)
{
if (file.EndsWith($".{Constants.SceneFileExtension}"))
if (file.EndsWith($".{Constants.SceneFileExtension}", StringComparison.OrdinalIgnoreCase))
{
editor = new EditView();
return true;
Expand All @@ -63,7 +63,7 @@ public override bool TryCreateEditor(string file, [NotNullWhen(true)] out Contro

public override bool TryCreateContext(string file, [NotNullWhen(true)] out IEditorContext? context)
{
if (file.EndsWith($".{Constants.SceneFileExtension}")
if (file.EndsWith($".{Constants.SceneFileExtension}", StringComparison.OrdinalIgnoreCase)
&& ProjectItemContainer.Current.TryGetOrCreateItem(file, out Scene? model))
{
context = new EditViewModel(model);
Expand All @@ -88,6 +88,6 @@ public override FilePickerFileType GetFilePickerFileType()

public override bool MatchFileExtension(string ext)
{
return ext is ".scene";
return ext.Equals(".scene", StringComparison.OrdinalIgnoreCase);
}
}
2 changes: 1 addition & 1 deletion src/Beutl/Services/PrimitiveImpls/SceneOutputExtension.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public override FilePickerFileType GetFilePickerFileType()

public override bool MatchFileExtension(string ext)
{
return ext is ".scene";
return string.Equals(ext, ".scene", StringComparison.OrdinalIgnoreCase);
}

public override bool TryCreateContext(IEditorContext editorContext, [NotNullWhen(true)] out IOutputContext? context)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,13 +46,13 @@ public override FilePickerFileType GetFilePickerFileType()

public override bool IsSupported(string file)
{
return file.EndsWith($".{Constants.SceneFileExtension}");
return file.EndsWith($".{Constants.SceneFileExtension}", StringComparison.OrdinalIgnoreCase);
}

public override bool TryCreateItem(string file, [NotNullWhen(true)] out ProjectItem? result)
{
result = null;
if (file.EndsWith($".{Constants.SceneFileExtension}"))
if (file.EndsWith($".{Constants.SceneFileExtension}", StringComparison.OrdinalIgnoreCase))
{
Scene? scene;
try
Expand Down
3 changes: 2 additions & 1 deletion src/Beutl/ViewModels/EditViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -553,6 +553,7 @@ Element CreateElementFor<T>(out T t)

private static bool MatchFileExtensions(string filePath, IEnumerable<string> extensions)
{
string ext = Path.GetExtension(filePath);
return extensions
.Select(x =>
{
Expand All @@ -562,7 +563,7 @@ private static bool MatchFileExtensions(string filePath, IEnumerable<string> ext
else
return x;
})
.Any(filePath.EndsWith);
.Contains(ext, StringComparer.OrdinalIgnoreCase);
}

private static bool MatchFileAudioOnly(string filePath)
Expand Down
6 changes: 3 additions & 3 deletions src/Beutl/Views/EditorHostFallback.axaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ private void OpenRecentFile(string fileName)

try
{
if (fileName.EndsWith($".{Constants.ProjectFileExtension}"))
if (fileName.EndsWith($".{Constants.ProjectFileExtension}", StringComparison.OrdinalIgnoreCase))
{
viewModel.MenuBar.OpenRecentProject.Execute(fileName);
}
Expand Down Expand Up @@ -220,8 +220,8 @@ private void InitRecentItems()
viewConfig.RecentFiles.ToObservableChangeSet<CoreList<string>, string>()
.Filter(filter.Select<int, Func<string, bool>>(
f => (x) => f == 0
|| (f == 1 && x.EndsWith($".{Constants.ProjectFileExtension}"))
|| (f == 2 && !x.EndsWith($".{Constants.ProjectFileExtension}"))))
|| (f == 1 && x.EndsWith($".{Constants.ProjectFileExtension}", StringComparison.OrdinalIgnoreCase))
|| (f == 2 && !x.EndsWith($".{Constants.ProjectFileExtension}", StringComparison.OrdinalIgnoreCase))))
.AddKey(x => x)
.Cast(x => new FileInfo(x))
.SortBy(x => x.LastAccessTimeUtc, sortOrder: SortDirection.Descending)
Expand Down

0 comments on commit ebcd42e

Please sign in to comment.