Extract helper method `HawkFile.PathContainsPipe`
This commit is contained in:
parent
43d16473d8
commit
0067dd4b0a
|
@ -3,7 +3,6 @@ using System.IO;
|
||||||
using System.Security.Principal;
|
using System.Security.Principal;
|
||||||
|
|
||||||
using BizHawk.Common;
|
using BizHawk.Common;
|
||||||
using BizHawk.Common.StringExtensions;
|
|
||||||
|
|
||||||
namespace BizHawk.Client.EmuHawk
|
namespace BizHawk.Client.EmuHawk
|
||||||
{
|
{
|
||||||
|
@ -16,7 +15,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
/// <remarks>http://stackoverflow.com/questions/139010/how-to-resolve-a-lnk-in-c-sharp</remarks>
|
/// <remarks>http://stackoverflow.com/questions/139010/how-to-resolve-a-lnk-in-c-sharp</remarks>
|
||||||
public static string ResolveShortcut(string filename)
|
public static string ResolveShortcut(string filename)
|
||||||
{
|
{
|
||||||
if (OSTailoredCode.IsUnixHost || filename.ContainsOrdinal('|')
|
if (OSTailoredCode.IsUnixHost || HawkFile.PathContainsPipe(filename)
|
||||||
|| !".lnk".Equals(Path.GetExtension(filename), StringComparison.OrdinalIgnoreCase))
|
|| !".lnk".Equals(Path.GetExtension(filename), StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
return filename; // archive internal files are never shortcuts (and choke when analyzing any further)
|
return filename; // archive internal files are never shortcuts (and choke when analyzing any further)
|
||||||
|
|
|
@ -8,7 +8,6 @@ using System.Windows.Forms;
|
||||||
using BizHawk.Client.Common;
|
using BizHawk.Client.Common;
|
||||||
using BizHawk.Common;
|
using BizHawk.Common;
|
||||||
using BizHawk.Common.PathExtensions;
|
using BizHawk.Common.PathExtensions;
|
||||||
using BizHawk.Common.StringExtensions;
|
|
||||||
using BizHawk.Emulation.Common;
|
using BizHawk.Emulation.Common;
|
||||||
using BizHawk.Emulation.Cores.Arcades.MAME;
|
using BizHawk.Emulation.Cores.Arcades.MAME;
|
||||||
using BizHawk.Emulation.DiscSystem;
|
using BizHawk.Emulation.DiscSystem;
|
||||||
|
@ -311,7 +310,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
{
|
{
|
||||||
static string ResolvePath(string path)
|
static string ResolvePath(string path)
|
||||||
{
|
{
|
||||||
if (!path.ContainsOrdinal('|') && Disc.IsValidExtension(Path.GetExtension(path)))
|
if (!HawkFile.PathContainsPipe(path) && Disc.IsValidExtension(Path.GetExtension(path)))
|
||||||
{
|
{
|
||||||
return path; // nothing to do in this case
|
return path; // nothing to do in this case
|
||||||
}
|
}
|
||||||
|
@ -343,7 +342,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
static ConsoleID IdentifyConsole(string path)
|
static ConsoleID IdentifyConsole(string path)
|
||||||
{
|
{
|
||||||
if (!path.ContainsOrdinal('|') && Disc.IsValidExtension(Path.GetExtension(path)))
|
if (!HawkFile.PathContainsPipe(path) && Disc.IsValidExtension(Path.GetExtension(path)))
|
||||||
{
|
{
|
||||||
using var disc = DiscExtensions.CreateAnyType(path, Console.WriteLine);
|
using var disc = DiscExtensions.CreateAnyType(path, Console.WriteLine);
|
||||||
if (disc is null)
|
if (disc is null)
|
||||||
|
|
|
@ -61,7 +61,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
if (!Game.IsNullInstance())
|
if (!Game.IsNullInstance())
|
||||||
{
|
{
|
||||||
if (MainForm.CurrentlyOpenRom.ContainsOrdinal('|'))
|
if (HawkFile.PathContainsPipe(MainForm.CurrentlyOpenRom))
|
||||||
{
|
{
|
||||||
var pieces = MainForm.CurrentlyOpenRom.Split('|');
|
var pieces = MainForm.CurrentlyOpenRom.Split('|');
|
||||||
|
|
||||||
|
|
|
@ -2,8 +2,10 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
|
||||||
using BizHawk.Common.CollectionExtensions;
|
using BizHawk.Common.CollectionExtensions;
|
||||||
|
using BizHawk.Common.StringExtensions;
|
||||||
|
|
||||||
namespace BizHawk.Common
|
namespace BizHawk.Common
|
||||||
{
|
{
|
||||||
|
@ -21,6 +23,10 @@ namespace BizHawk.Common
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
public sealed class HawkFile : IDisposable
|
public sealed class HawkFile : IDisposable
|
||||||
{
|
{
|
||||||
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
|
public static bool PathContainsPipe(string s)
|
||||||
|
=> s.ContainsOrdinal('|');
|
||||||
|
|
||||||
private readonly List<HawkArchiveFileItem>? _archiveItems;
|
private readonly List<HawkArchiveFileItem>? _archiveItems;
|
||||||
|
|
||||||
private Stream? _boundStream;
|
private Stream? _boundStream;
|
||||||
|
|
|
@ -5,7 +5,6 @@ using System.IO;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
|
||||||
using BizHawk.Common;
|
using BizHawk.Common;
|
||||||
using BizHawk.Common.StringExtensions;
|
|
||||||
|
|
||||||
namespace BizHawk.Emulation.Cores.Arcades.MAME
|
namespace BizHawk.Emulation.Cores.Arcades.MAME
|
||||||
{
|
{
|
||||||
|
@ -54,7 +53,7 @@ namespace BizHawk.Emulation.Cores.Arcades.MAME
|
||||||
public static bool IsMAMEMachine(string path)
|
public static bool IsMAMEMachine(string path)
|
||||||
{
|
{
|
||||||
if (_acquire == null) throw new InvalidOperationException("MAME Machine DB not initialized. It's a client responsibility because only a client knows where the database is located.");
|
if (_acquire == null) throw new InvalidOperationException("MAME Machine DB not initialized. It's a client responsibility because only a client knows where the database is located.");
|
||||||
if (path.ContainsOrdinal('|')) return false; // binded archive, can't be a mame zip (note | is not a legal filesystem char, at least on windows)
|
if (HawkFile.PathContainsPipe(path)) return false; // binded archive, can't be a mame zip (note | is not a legal filesystem char, at least on windows)
|
||||||
if (Path.GetExtension(path).ToLowerInvariant() is not ".zip" and not ".7z") return false;
|
if (Path.GetExtension(path).ToLowerInvariant() is not ".zip" and not ".7z") return false;
|
||||||
_acquire.WaitOne();
|
_acquire.WaitOne();
|
||||||
return Instance.MachineDB.Contains(Path.GetFileNameWithoutExtension(path).ToLowerInvariant());
|
return Instance.MachineDB.Contains(Path.GetFileNameWithoutExtension(path).ToLowerInvariant());
|
||||||
|
|
|
@ -7,7 +7,6 @@ using System.Text;
|
||||||
|
|
||||||
using BizHawk.BizInvoke;
|
using BizHawk.BizInvoke;
|
||||||
using BizHawk.Common;
|
using BizHawk.Common;
|
||||||
using BizHawk.Common.StringExtensions;
|
|
||||||
using BizHawk.Emulation.Common;
|
using BizHawk.Emulation.Common;
|
||||||
|
|
||||||
namespace BizHawk.Emulation.Cores.Consoles.Nintendo.N3DS
|
namespace BizHawk.Emulation.Cores.Consoles.Nintendo.N3DS
|
||||||
|
@ -47,7 +46,7 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.N3DS
|
||||||
[CoreConstructor(VSystemID.Raw.N3DS)]
|
[CoreConstructor(VSystemID.Raw.N3DS)]
|
||||||
public Encore(CoreLoadParameters<EncoreSettings, EncoreSyncSettings> lp)
|
public Encore(CoreLoadParameters<EncoreSettings, EncoreSyncSettings> lp)
|
||||||
{
|
{
|
||||||
if (lp.Roms.Exists(static r => r.RomPath.ContainsOrdinal('|')))
|
if (lp.Roms.Exists(static r => HawkFile.PathContainsPipe(r.RomPath)))
|
||||||
{
|
{
|
||||||
throw new InvalidOperationException("3DS does not support compressed ROMs");
|
throw new InvalidOperationException("3DS does not support compressed ROMs");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue