Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions Configuration.props
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,20 @@

<!-- Fix for IDEs -->
<Target Name="CreateManifestResourceNames" />

<!-- Don't analyze code from external repos -->
<PropertyGroup Condition=" !$(MSBuildProjectDirectory.Contains ('external')) and !$(MSBuildProjectDirectory.Contains ('NUnitLite')) ">
<XAShouldAnalyzeAssembly>True</XAShouldAnalyzeAssembly>
</PropertyGroup>

<!-- The net6.0 versions of these analyzers are stricter and require overloads not available in .NET Framework, so start with just .NET Framework -->
<PropertyGroup Condition=" '$(TargetFramework)' != '' And (!$(TargetFramework.StartsWith('nets')) And !$(TargetFramework.StartsWith('net4')) And !$(TargetFramework.StartsWith('monoandroid'))) ">
<XABuildingForNetCoreApp>True</XABuildingForNetCoreApp>
</PropertyGroup>

<PropertyGroup Condition=" '$(XABuildingForNetCoreApp)' != 'True' And '$(XAShouldAnalyzeAssembly)' == 'True' ">
<WarningsAsErrors>$(WarningsAsErrors);CA1309;CA1310</WarningsAsErrors>
</PropertyGroup>

<Import Project="$(MSBuildThisFileDirectory)build-tools\scripts\Ndk.targets" />
<Import Project="$(MSBuildThisFileDirectory)build-tools\scripts\RoslynAnalyzers.projitems" Condition=" '$(EnableRoslynAnalyzers)' == 'true' " />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ public override bool Execute ()
}

TargetImplementationPath = implementationPath.FullName;
if (TargetImplementationPath.EndsWith ("\\") || TargetImplementationPath.EndsWith ("/")) {
if (TargetImplementationPath.EndsWith ("\\", StringComparison.Ordinal) || TargetImplementationPath.EndsWith ("/", StringComparison.Ordinal)) {
TargetImplementationPath = TargetImplementationPath.Substring (0, TargetImplementationPath.Length - 1);
}

Expand Down Expand Up @@ -189,7 +189,7 @@ void dataReceived (object sender, DataReceivedEventArgs args)
if (!string.IsNullOrWhiteSpace (args.Data)) {
lines.Add (args.Data.Trim ());

if (args.Data.IndexOf ("Native Crash Reporting") != -1) {
if (args.Data.IndexOf ("Native Crash Reporting", StringComparison.Ordinal) != -1) {
processHasCrashed = true;
}
}
Expand Down Expand Up @@ -245,13 +245,13 @@ void dataReceived (object sender, DataReceivedEventArgs args)
Log.LogMessage (MessageImportance.High, $"{Environment.NewLine}*** CodeGen missing items***{Environment.NewLine}");
var indent = 0;
foreach (var item in missingItems) {
if (item.StartsWith ("}")) {
if (item.StartsWith ("}", StringComparison.Ordinal)) {
indent--;
}

Log.LogMessage (MessageImportance.High, $"{(item.StartsWith ("namespace ") ? Environment.NewLine : string.Empty)}{new string (' ', indent * 2)}{item}");
Log.LogMessage (MessageImportance.High, $"{(item.StartsWith ("namespace ", StringComparison.Ordinal) ? Environment.NewLine : string.Empty)}{new string (' ', indent * 2)}{item}");

if (item.StartsWith ("{")) {
if (item.StartsWith ("{", StringComparison.Ordinal)) {
indent++;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ void dataReceived (object sender, DataReceivedEventArgs args)
return;
}

if (content.StartsWith ("namespace ") || content.IndexOf (" interface ") != -1 || content.IndexOf (" class ") != -1 || content.IndexOf (" partial struct ") != -1 || content.IndexOf (" enum ") != -1) {
if (content.StartsWith ("namespace ", StringComparison.Ordinal) || content.IndexOf (" interface ", StringComparison.Ordinal) != -1 || content.IndexOf (" class ", StringComparison.Ordinal) != -1 || content.IndexOf (" partial struct ", StringComparison.Ordinal) != -1 || content.IndexOf (" enum ", StringComparison.Ordinal) != -1) {
if (string.IsNullOrWhiteSpace (currentObject.Item)) {
currentObject.Item = content;
} else {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
using System;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
Expand Down Expand Up @@ -121,13 +122,13 @@ static void RecurseDirectory (string top_dir, XmlWriter packWriter, XmlWriter co
packWriter.WriteAttributeString ("FileSource", directory);
foreach (var child in Directory.EnumerateDirectories (directory)) {
var directoryName = Path.GetFileName (child);
if (directoryName.StartsWith (".") || directoryName.StartsWith ("_"))
if (directoryName.StartsWith (".", StringComparison.Ordinal) || directoryName.StartsWith ("_", StringComparison.Ordinal))
continue;
RecurseDirectory (top_dir, packWriter, componentWriter, child);
}
foreach (var file in Directory.EnumerateFiles (directory)) {
var fileName = Path.GetFileName (file);
if (fileName.StartsWith (".") || fileName.StartsWith ("_"))
if (fileName.StartsWith (".", StringComparison.Ordinal) || fileName.StartsWith ("_", StringComparison.Ordinal))
continue;
AddFile (top_dir, packWriter, componentWriter, file);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ static void CreateErrorResultsFile (string sourceFile, string destFile, string c
static void GetTestCaseInfo (string sourceFile, string destinationFolder, string config, string flavor, Action<string> logDebugMessage, out string testSuiteName, out string testCaseName, out string logcatPath)
{
var name = Path.GetFileNameWithoutExtension (sourceFile);
if (name.StartsWith ("TestResult-"))
if (name.StartsWith ("TestResult-", StringComparison.Ordinal))
name = name.Substring ("TestResult-".Length);
testSuiteName = name;
testCaseName = $"Possible Crash / {config}";
Expand Down
2 changes: 1 addition & 1 deletion build-tools/api-merge/ApiDescription.cs
Original file line number Diff line number Diff line change
Expand Up @@ -397,7 +397,7 @@ static string GetParameterType (string type, Dictionary<string, string> mappings
return "*";

// varargs should be normalized.
if (type.EndsWith ("..."))
if (type.EndsWith ("...", StringComparison.Ordinal))
return GetParameterType (type.Substring (0, type.Length - 3) + "[]", mappings);

int first = type.IndexOfAny (type_sep);
Expand Down
4 changes: 2 additions & 2 deletions build-tools/api-merge/Mono.Options-PCL.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1353,11 +1353,11 @@ private static string GetArgumentName (int index, int maxIndex, string descripti
for (int i = 0; i < nameStart.Length; ++i) {
int start, j = 0;
do {
start = description.IndexOf (nameStart [i], j);
start = description.IndexOf (nameStart [i], j, StringComparison.Ordinal);
} while (start >= 0 && j != 0 ? description [j++ - 1] == '{' : false);
if (start == -1)
continue;
int end = description.IndexOf ("}", start);
int end = description.IndexOf ("}", start, StringComparison.Ordinal);
if (end == -1)
continue;
return description.Substring (start + nameStart [i].Length, end - start - nameStart [i].Length);
Expand Down
4 changes: 2 additions & 2 deletions build-tools/check-boot-times/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ bool validation (string data, ManualResetEvent mre)

var activity = i % 2 == 0 ? "com.google.android.apps.photos/.home.HomeActivity" : "com.android.settings/.wifi.WifiStatusTest";
await RunProcess (adbPath, $"-e shell am start -n '{activity}'", 5000, (data, mre) => {
if (!string.IsNullOrWhiteSpace (data) && data.IndexOf ("com.android") != -1) {
if (!string.IsNullOrWhiteSpace (data) && data.IndexOf ("com.android", StringComparison.Ordinal) != -1) {
mre.Set ();
}
return true;
Expand Down Expand Up @@ -375,7 +375,7 @@ static async Task InstallSdk ()
{
bool validation (string data, ManualResetEvent mre)
{
if (!string.IsNullOrWhiteSpace (data) && data.IndexOf ("100%") != -1) {
if (!string.IsNullOrWhiteSpace (data) && data.IndexOf ("100%", StringComparison.Ordinal) != -1) {
mre.Set ();
}

Expand Down
18 changes: 9 additions & 9 deletions build-tools/jnienv-gen/Generator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ static void GenerateJniEnv (TextWriter o)

switch (entry.ApiName) {
case "NewArray":
var copyArray = JNIEnvEntries.Single (e => e.Name.StartsWith ("Get") && e.Name.EndsWith ("ArrayRegion") &&
var copyArray = JNIEnvEntries.Single (e => e.Name.StartsWith ("Get", StringComparison.Ordinal) && e.Name.EndsWith ("ArrayRegion", StringComparison.Ordinal) &&
e.Parameters [0].Type.Type == entry.ReturnType.Type);
o.Write ("\t\t{2} static {0} {1} (", entry.ReturnType.ManagedType, entry.ApiName, entry.Visibility);
o.WriteLine ("{0} array)", copyArray.Parameters [3].Type.ManagedType);
Expand All @@ -233,7 +233,7 @@ static void GenerateJniEnv (TextWriter o)
break;
case "CopyArray":
o.Write ("\t\t{2} static unsafe {0} {1} (", entry.ReturnType.ManagedType, entry.ApiName, entry.Visibility);
if (entry.Name.StartsWith ("G")) {
if (entry.Name.StartsWith ("G", StringComparison.Ordinal)) {
o.WriteLine ("IntPtr src, {0} dest)", entry.Parameters [3].Type.ManagedType);
o.WriteLine ("\t\t{");
o.WriteLine ("\t\t\tif (src == IntPtr.Zero)");
Expand Down Expand Up @@ -319,15 +319,15 @@ entry.Parameters [entry.Parameters.Length-1].IsParamArray &&
o.Write ("Env.{0} (Handle", entry.Name);
for (int i = 0; i < entry.Parameters.Length; i++) {
o.Write (", ");
if (entry.Parameters [i].Type.ManagedType.StartsWith ("out "))
if (entry.Parameters [i].Type.ManagedType.StartsWith ("out ", StringComparison.Ordinal))
o.Write ("out ");
o.Write (Escape (entry.Parameters [i].Name));
}
o.WriteLine (");");
RaiseException (o, entry);
if (is_void) {
}
else if (entry.ReturnType.ManagedType == "IntPtr" && entry.ReturnType.Type.StartsWith ("j") && !entry.ReturnType.Type.EndsWith ("ID")) {
else if (entry.ReturnType.ManagedType == "IntPtr" && entry.ReturnType.Type.StartsWith ("j", StringComparison.Ordinal) && !entry.ReturnType.Type.EndsWith ("ID", StringComparison.Ordinal)) {
o.WriteLine ("\t\t\treturn LogCreateLocalRef (tmp);");
} else {
o.WriteLine ("\t\t\treturn tmp;");
Expand Down Expand Up @@ -381,13 +381,13 @@ static bool GenerateDefaultJavaInteropForwarder (TextWriter o, JniFunction entry
if (!is_void)
o.Write ("return ");
var n = entry.Name;
if (n.StartsWith ("Call"))
if (n.StartsWith ("Call", StringComparison.Ordinal))
n = n.TrimEnd (new[]{'A'});
o.Write ("JniEnvironment.{0}.{1} (", entry.DeclaringType, n);
for (int i = 0; i < entry.Parameters.Length; i++) {
if (i > 0)
o.Write (", ");
if (entry.Parameters [i].Type.ManagedType.StartsWith ("out "))
if (entry.Parameters [i].Type.ManagedType.StartsWith ("out ", StringComparison.Ordinal))
o.Write ("out ");
if (entry.Parameters [i].Type.ManagedType == "JValue*")
o.Write ("(JniArgumentValue*) " + Escape (entry.Parameters [i].Name));
Expand Down Expand Up @@ -445,7 +445,7 @@ static bool IsObjectReferenceType (TypeInfo type)
case "jweak":
return true;
}
if (type.Type.StartsWith ("j") && type.Type.EndsWith("Array"))
if (type.Type.StartsWith ("j", StringComparison.Ordinal) && type.Type.EndsWith("Array", StringComparison.Ordinal))
return true;
return false;
}
Expand Down Expand Up @@ -643,9 +643,9 @@ public string GetManagedType (string native_type)
case "jobjectRefType":
return "int";
default:
if (native_type.EndsWith ("Array"))
if (native_type.EndsWith ("Array", StringComparison.Ordinal))
return "IntPtr";
if (native_type.EndsWith ("*"))
if (native_type.EndsWith ("*", StringComparison.Ordinal))
return "IntPtr";
return native_type;
}
Expand Down
4 changes: 2 additions & 2 deletions build-tools/jnienv-gen/Mono.Options-PCL.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1353,11 +1353,11 @@ private static string GetArgumentName (int index, int maxIndex, string descripti
for (int i = 0; i < nameStart.Length; ++i) {
int start, j = 0;
do {
start = description.IndexOf (nameStart [i], j);
start = description.IndexOf (nameStart [i], j, StringComparison.Ordinal);
} while (start >= 0 && j != 0 ? description [j++ - 1] == '{' : false);
if (start == -1)
continue;
int end = description.IndexOf ("}", start);
int end = description.IndexOf ("}", start, StringComparison.Ordinal);
if (end == -1)
continue;
return description.Substring (start + nameStart [i].Length, end - start - nameStart [i].Length);
Expand Down
4 changes: 2 additions & 2 deletions build-tools/scripts/RoslynAnalyzers.projitems
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project>
<!-- Add Roslyn analyzers NuGet to all projects (except NRefactory which has violations but is only used for running tests and XamarinManifestGenerator which uses packages.config ) -->
<ItemGroup Condition=" !$(AssemblyName.StartsWith ('ICSharpCode.NRefactory')) and !$(AssemblyName.StartsWith ('XamarinManifestGenerator')) ">

<ItemGroup Condition=" $(XAShouldAnalyzeAssembly) ">
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="3.3.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
Expand Down
2 changes: 1 addition & 1 deletion build-tools/xaprepare/xaprepare/Application/BuildInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ async Task DetermineLastVersionChangeCommit (Context context)
if (be == null || String.IsNullOrEmpty (be.Line))
continue;

if (be.Line.IndexOf ("<ProductVersion>") >= 0) {
if (be.Line.IndexOf ("<ProductVersion>", StringComparison.Ordinal) >= 0) {
Log.DebugLine ($"Last version change on {GetCommitDate (be)} by {be.Author}");
CommitOfLastVersionChange = be.Commit;
Log.StatusLine (" Commit: ", be.Commit, tailColor: ConsoleColor.Cyan);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ static bool CheckFolderForPackaging (string folderName)
return !EqualsIgnoreCase (folderName, "CVS") &&
!EqualsIgnoreCase (folderName, ".svn") &&
!EqualsIgnoreCase (folderName, "SCCS") &&
!folderName.StartsWith ("_");
!folderName.StartsWith ("_", StringComparison.Ordinal);
}

/// <summary>
Expand Down
2 changes: 1 addition & 1 deletion src/Mono.Android/Java.Interop/JavaObjectExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ static IJavaObject CastClass (IJavaObject instance, Type resultType)
if (arguments.Length == 0)
return type.Assembly.GetType (type + suffix);
Type definition = type.GetGenericTypeDefinition ();
int bt = definition.FullName!.IndexOf ("`");
int bt = definition.FullName!.IndexOf ("`", StringComparison.Ordinal);
if (bt == -1)
throw new NotSupportedException ("Generic type doesn't follow generic type naming convention! " + type.FullName);
Type? suffixDefinition = definition.Assembly.GetType (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ void ProcessMethod (MethodDefinition method)
return;
var jname = ra.ConstructorArguments.First ().Value.ToString ();
var jargs = ra.ConstructorArguments [1].Value.ToString ();
var pargs = jargs.StartsWith ("()") ? string.Empty : "***";
var pargs = jargs.StartsWith ("()", StringComparison.Ordinal) ? string.Empty : "***";
// FIXME: do not preserve all overroads.
if (jname == ".ctor")
writer.WriteLine (" <init>(...);", pargs);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ void PreserveMethod (TypeDefinition type, MethodDefinition method)

string TypeNameWithoutKey (string name)
{
var idx = name.IndexOf (", PublicKeyToken=");
var idx = name.IndexOf (", PublicKeyToken=", StringComparison.Ordinal);
if (idx > 0)
name = name.Substring (0, idx);

Expand Down Expand Up @@ -266,7 +266,7 @@ void PreserveConstructors (TypeDefinition type, TypeDefinition helper)

static bool IsImplementor (TypeDefinition type)
{
return type.Name.EndsWith ("Implementor") && type.Inherits ("Java.Lang.Object");
return type.Name.EndsWith ("Implementor", StringComparison.Ordinal) && type.Inherits ("Java.Lang.Object");
}

static bool IsUserType (TypeDefinition type)
Expand All @@ -280,7 +280,7 @@ void PreserveImplementor (TypeDefinition type)
return;

foreach (MethodDefinition method in type.Methods)
if (method.Name.EndsWith ("Handler"))
if (method.Name.EndsWith ("Handler", StringComparison.Ordinal))
PreserveMethod (type, method);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ public override bool RunTask ()
if (!string.IsNullOrEmpty (ProjectDir)) {
var fullRelPath = Path.GetFullPath (rel).Normalize (NormalizationForm.FormC);
var fullProjectPath = Path.GetFullPath (ProjectDir).Normalize (NormalizationForm.FormC);
if (fullRelPath.StartsWith (fullProjectPath)) {
if (fullRelPath.StartsWith (fullProjectPath, StringComparison.OrdinalIgnoreCase)) {
rel = fullRelPath.Replace (fullProjectPath, string.Empty);
}
}
Expand All @@ -109,7 +109,7 @@ public override bool RunTask ()

if (prefixes != null) {
foreach (var p in prefixes) {
if (rel.StartsWith (p))
if (rel.StartsWith (p, StringComparison.OrdinalIgnoreCase))
rel = rel.Substring (p.Length);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ protected override void LogEventsFromTextOutput (string singleLine, MessageImpor
if (singleLine.Length == 0)
return;

if (singleLine.StartsWith ("Warning:")) {
if (singleLine.StartsWith ("Warning:", StringComparison.Ordinal)) {
hasWarnings = true;
return;
}
Expand Down
2 changes: 1 addition & 1 deletion src/Xamarin.Android.Build.Tasks/Tasks/BuildApk.cs
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@ void ExecuteWithAbi (string [] supportedAbis, string apkInputPath, string apkOut
}
}

var jarFiles = (JavaSourceFiles != null) ? JavaSourceFiles.Where (f => f.ItemSpec.EndsWith (".jar")) : null;
var jarFiles = (JavaSourceFiles != null) ? JavaSourceFiles.Where (f => f.ItemSpec.EndsWith (".jar", StringComparison.OrdinalIgnoreCase)) : null;
if (jarFiles != null && JavaLibraries != null)
jarFiles = jarFiles.Concat (JavaLibraries);
else if (JavaLibraries != null)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -482,7 +482,7 @@ bool ParseID (string id, out string parsedId, out string name)
bool capitalize = false;
if (id.StartsWith ("@id/", StringComparison.Ordinal) || id.StartsWith ("@+id/", StringComparison.Ordinal))
ns = "Resource.Id";
else if (id.StartsWith ("@android:id/")) {
else if (id.StartsWith ("@android:id/", StringComparison.Ordinal)) {
ns = $"{GlobalIdPrefix}Android.Resource.Id";
capitalize = true;
} else
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public class CheckDuplicateJavaLibraries : AndroidTask

public override bool RunTask ()
{
var jarFiles = (JavaSourceFiles != null) ? JavaSourceFiles.Where (f => f.ItemSpec.EndsWith (".jar")) : null;
var jarFiles = (JavaSourceFiles != null) ? JavaSourceFiles.Where (f => f.ItemSpec.EndsWith (".jar", StringComparison.OrdinalIgnoreCase)) : null;
if (jarFiles != null && JavaLibraries != null)
jarFiles = jarFiles.Concat (JavaLibraries);
else if (JavaLibraries != null)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ public override bool RunTask ()
string stampFile = directory.GetMetadata ("StampFile");
string directoryHash = Files.HashString (directory.ItemSpec);
if (string.IsNullOrEmpty (stampFile)) {
if (Path.GetFullPath (directory.ItemSpec).StartsWith (libraryProjectDir)) {
if (Path.GetFullPath (directory.ItemSpec).StartsWith (libraryProjectDir, StringComparison.OrdinalIgnoreCase)) {
// If inside the `lp` directory
stampFile = Path.GetFullPath (Path.Combine (directory.ItemSpec, "..", "..")) + ".stamp";
} else {
Expand All @@ -57,7 +57,7 @@ public override bool RunTask ()
IEnumerable<string> files;
string filesCache = directory.GetMetadata ("FilesCache");
if (string.IsNullOrEmpty (filesCache)) {
if (Path.GetFullPath (directory.ItemSpec).StartsWith (libraryProjectDir)) {
if (Path.GetFullPath (directory.ItemSpec).StartsWith (libraryProjectDir, StringComparison.OrdinalIgnoreCase)) {
filesCache = Path.Combine (directory.ItemSpec, "..", "files.cache");
} else {
filesCache = Path.Combine (directory.ItemSpec, "..", $"{directoryHash}-files.cache");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ public override bool RunTask ()
}
var output = new Dictionary<string, ITaskItem> (processed.Count);
foreach (var file in processed) {
ITaskItem resdir = ResourceDirectories?.FirstOrDefault (x => file.StartsWith (x.ItemSpec)) ?? null;
ITaskItem resdir = ResourceDirectories?.FirstOrDefault (x => file.StartsWith (x.ItemSpec, StringComparison.OrdinalIgnoreCase)) ?? null;
var hash = resdir?.GetMetadata ("Hash") ?? null;
var stamp = resdir?.GetMetadata ("StampFile") ?? null;
var filename = !string.IsNullOrEmpty (hash) ? hash : "compiled";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -181,9 +181,9 @@ IEnumerable<string> ResolveLibraryProjectReferences (string singleFile, List<str
var ordered = new SortedList<int,string> ();
foreach (var line in File.ReadAllLines (singleFile)) {
var s = line.Trim ();
if (s.StartsWith ("#"))
if (s.StartsWith ("#", StringComparison.Ordinal))
continue;
if (!s.StartsWith (librefspec))
if (!s.StartsWith (librefspec, StringComparison.Ordinal))
continue;
int eqpos = s.IndexOf ('=');
if (eqpos < 0)
Expand Down
Loading