mirror of
https://github.com/SabreTools/MPF.git
synced 2026-07-02 17:24:48 +00:00
Simplify flag validation
Instead of trying to determine if something is a flag, just check if it's one of the supported flags. This should reduce the amount of potential issues that come along with making assumptions about what a parameter could look like.
This commit is contained in:
@@ -365,30 +365,6 @@ namespace MPF.Data
|
||||
return string.Join("\n", File.ReadAllLines(filename));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns whether a string is a flag (starts with '/')
|
||||
/// </summary>
|
||||
/// <param name="parameter">String value to check</param>
|
||||
/// <returns>True if it's a flag, false otherwise</returns>
|
||||
/// <remarks>
|
||||
/// TODO: Can we just check if it's in the list of supported flags?
|
||||
/// </remarks>
|
||||
protected static bool IsFlag(string parameter)
|
||||
{
|
||||
// Remove quotes to avoid any issues
|
||||
parameter = parameter.Trim('\"');
|
||||
|
||||
// Forward slashes are nothing but flags
|
||||
if (parameter.StartsWith("/"))
|
||||
return true;
|
||||
|
||||
// Dashes *might* be parameters, unless it's purely numeric
|
||||
else if (parameter.StartsWith("-") && !Int64.TryParse(parameter, out long _))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns whether a string is a valid drive letter
|
||||
/// </summary>
|
||||
@@ -573,7 +549,7 @@ namespace MPF.Data
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (IsFlag(parts[i + 1]))
|
||||
else if (IsFlagSupported(parts[i + 1]))
|
||||
{
|
||||
if (missingAllowed)
|
||||
{
|
||||
@@ -645,7 +621,7 @@ namespace MPF.Data
|
||||
|
||||
return null;
|
||||
}
|
||||
else if (IsFlag(parts[i + 1]))
|
||||
else if (IsFlagSupported(parts[i + 1]))
|
||||
{
|
||||
if (missingAllowed)
|
||||
this[longFlagString] = true;
|
||||
@@ -724,7 +700,7 @@ namespace MPF.Data
|
||||
|
||||
return null;
|
||||
}
|
||||
else if (IsFlag(parts[i + 1]))
|
||||
else if (IsFlagSupported(parts[i + 1]))
|
||||
{
|
||||
if (missingAllowed)
|
||||
this[longFlagString] = true;
|
||||
@@ -802,7 +778,7 @@ namespace MPF.Data
|
||||
|
||||
return null;
|
||||
}
|
||||
else if (IsFlag(parts[i + 1]))
|
||||
else if (IsFlagSupported(parts[i + 1]))
|
||||
{
|
||||
if (missingAllowed)
|
||||
this[longFlagString] = true;
|
||||
@@ -880,7 +856,7 @@ namespace MPF.Data
|
||||
|
||||
return null;
|
||||
}
|
||||
else if (IsFlag(parts[i + 1]))
|
||||
else if (IsFlagSupported(parts[i + 1]))
|
||||
{
|
||||
if (missingAllowed)
|
||||
this[longFlagString] = true;
|
||||
@@ -958,7 +934,7 @@ namespace MPF.Data
|
||||
|
||||
return null;
|
||||
}
|
||||
else if (IsFlag(parts[i + 1]))
|
||||
else if (IsFlagSupported(parts[i + 1]))
|
||||
{
|
||||
if (missingAllowed)
|
||||
this[longFlagString] = true;
|
||||
|
||||
@@ -1715,7 +1715,7 @@ namespace MPF.DiscImageCreator
|
||||
else
|
||||
DriveLetter = parts[1];
|
||||
|
||||
if (IsFlag(parts[2]))
|
||||
if (IsFlagSupported(parts[2]))
|
||||
return false;
|
||||
else
|
||||
Filename = parts[2];
|
||||
@@ -1747,7 +1747,7 @@ namespace MPF.DiscImageCreator
|
||||
else
|
||||
DriveLetter = parts[1];
|
||||
|
||||
if (IsFlag(parts[2]))
|
||||
if (IsFlagSupported(parts[2]))
|
||||
return false;
|
||||
else
|
||||
Filename = parts[2];
|
||||
@@ -1780,7 +1780,7 @@ namespace MPF.DiscImageCreator
|
||||
else
|
||||
DriveLetter = parts[1];
|
||||
|
||||
if (IsFlag(parts[2]))
|
||||
if (IsFlagSupported(parts[2]))
|
||||
return false;
|
||||
else
|
||||
Filename = parts[2];
|
||||
@@ -1802,7 +1802,7 @@ namespace MPF.DiscImageCreator
|
||||
else
|
||||
DriveLetter = parts[1];
|
||||
|
||||
if (IsFlag(parts[2]))
|
||||
if (IsFlagSupported(parts[2]))
|
||||
return false;
|
||||
else
|
||||
Filename = parts[2];
|
||||
@@ -1834,7 +1834,7 @@ namespace MPF.DiscImageCreator
|
||||
else
|
||||
DriveLetter = parts[1];
|
||||
|
||||
if (IsFlag(parts[2]))
|
||||
if (IsFlagSupported(parts[2]))
|
||||
return false;
|
||||
else
|
||||
Filename = parts[2];
|
||||
@@ -1856,7 +1856,7 @@ namespace MPF.DiscImageCreator
|
||||
else
|
||||
DriveLetter = parts[1];
|
||||
|
||||
if (IsFlag(parts[2]))
|
||||
if (IsFlagSupported(parts[2]))
|
||||
return false;
|
||||
else
|
||||
Filename = parts[2];
|
||||
@@ -1894,7 +1894,7 @@ namespace MPF.DiscImageCreator
|
||||
else
|
||||
DriveLetter = parts[1];
|
||||
|
||||
if (IsFlag(parts[2]))
|
||||
if (IsFlagSupported(parts[2]))
|
||||
return false;
|
||||
else
|
||||
Filename = parts[2];
|
||||
@@ -1910,7 +1910,7 @@ namespace MPF.DiscImageCreator
|
||||
else
|
||||
DriveLetter = parts[1];
|
||||
|
||||
if (IsFlag(parts[2]))
|
||||
if (IsFlagSupported(parts[2]))
|
||||
return false;
|
||||
else
|
||||
Filename = parts[2];
|
||||
@@ -1927,7 +1927,7 @@ namespace MPF.DiscImageCreator
|
||||
if (parts.Count != 2)
|
||||
return false;
|
||||
|
||||
if (IsFlag(parts[1]) || !File.Exists(parts[1]))
|
||||
if (IsFlagSupported(parts[1]) || !File.Exists(parts[1]))
|
||||
return false;
|
||||
else
|
||||
Filename = parts[1];
|
||||
@@ -1938,12 +1938,12 @@ namespace MPF.DiscImageCreator
|
||||
if (parts.Count != 3)
|
||||
return false;
|
||||
|
||||
if (IsFlag(parts[1]) || !File.Exists(parts[1]))
|
||||
if (IsFlagSupported(parts[1]) || !File.Exists(parts[1]))
|
||||
return false;
|
||||
else
|
||||
Filename = parts[1];
|
||||
|
||||
if (IsFlag(parts[2]) || !File.Exists(parts[2]))
|
||||
if (IsFlagSupported(parts[2]) || !File.Exists(parts[2]))
|
||||
return false;
|
||||
else
|
||||
OptiarcFilename = parts[2];
|
||||
@@ -1970,7 +1970,7 @@ namespace MPF.DiscImageCreator
|
||||
else
|
||||
DriveLetter = parts[1];
|
||||
|
||||
if (IsFlag(parts[2]))
|
||||
if (IsFlagSupported(parts[2]))
|
||||
return false;
|
||||
else
|
||||
Filename = parts[2];
|
||||
@@ -2009,7 +2009,7 @@ namespace MPF.DiscImageCreator
|
||||
if (parts.Count != 2)
|
||||
return false;
|
||||
|
||||
if (IsFlag(parts[1]) || !File.Exists(parts[1]))
|
||||
if (IsFlagSupported(parts[1]) || !File.Exists(parts[1]))
|
||||
return false;
|
||||
else
|
||||
Filename = parts[1];
|
||||
@@ -2025,7 +2025,7 @@ namespace MPF.DiscImageCreator
|
||||
else
|
||||
DriveLetter = parts[1];
|
||||
|
||||
if (IsFlag(parts[2]))
|
||||
if (IsFlagSupported(parts[2]))
|
||||
return false;
|
||||
else
|
||||
Filename = parts[2];
|
||||
@@ -2042,7 +2042,7 @@ namespace MPF.DiscImageCreator
|
||||
if (parts.Count != 2)
|
||||
return false;
|
||||
|
||||
if (IsFlag(parts[1]) || !File.Exists(parts[1]))
|
||||
if (IsFlagSupported(parts[1]) || !File.Exists(parts[1]))
|
||||
return false;
|
||||
else
|
||||
Filename = parts[1];
|
||||
@@ -2058,7 +2058,7 @@ namespace MPF.DiscImageCreator
|
||||
else
|
||||
DriveLetter = parts[1];
|
||||
|
||||
if (IsFlag(parts[2]))
|
||||
if (IsFlagSupported(parts[2]))
|
||||
return false;
|
||||
else
|
||||
Filename = parts[2];
|
||||
@@ -2082,7 +2082,7 @@ namespace MPF.DiscImageCreator
|
||||
else
|
||||
DriveLetter = parts[1];
|
||||
|
||||
if (IsFlag(parts[2]))
|
||||
if (IsFlagSupported(parts[2]))
|
||||
return false;
|
||||
else
|
||||
Filename = parts[2];
|
||||
@@ -2143,7 +2143,7 @@ namespace MPF.DiscImageCreator
|
||||
{
|
||||
break;
|
||||
}
|
||||
else if (IsFlag(parts[i + 1]))
|
||||
else if (IsFlagSupported(parts[i + 1]))
|
||||
{
|
||||
break;
|
||||
}
|
||||
@@ -2261,7 +2261,7 @@ namespace MPF.DiscImageCreator
|
||||
{
|
||||
break;
|
||||
}
|
||||
else if (IsFlag(parts[i + 1]))
|
||||
else if (IsFlagSupported(parts[i + 1]))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user