58 lines
1.5 KiB
C#
58 lines
1.5 KiB
C#
|
// ----------------------------------------------------------------------------
|
||
|
//
|
||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
//
|
||
|
// ----------------------------------------------------------------------------
|
||
|
|
||
|
using System;
|
||
|
using System.IO;
|
||
|
using System.Text;
|
||
|
|
||
|
namespace Microsoft.Singularity.BuildTasks
|
||
|
{
|
||
|
sealed class Util
|
||
|
{
|
||
|
static readonly char[] _whitespace = { ' ', '\t' };
|
||
|
|
||
|
public static string AddQuotesIfNecessary(string text)
|
||
|
{
|
||
|
if (NeedsQuotes(text))
|
||
|
return "\"" + text + "\"";
|
||
|
else
|
||
|
return text;
|
||
|
}
|
||
|
|
||
|
public static bool NeedsQuotes(string text)
|
||
|
{
|
||
|
return text.Length != 0 && text.IndexOfAny(_whitespace) != -1 && !Char.IsWhiteSpace(text[0]);
|
||
|
}
|
||
|
|
||
|
public static void DeleteFileIgnoreErrors(string path)
|
||
|
{
|
||
|
try {
|
||
|
File.Delete(path);
|
||
|
}
|
||
|
catch (IOException) {
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public static bool ValidateCSharpIdentifier(string id, bool allowdots)
|
||
|
{
|
||
|
if (String.IsNullOrEmpty(id))
|
||
|
return false;
|
||
|
|
||
|
if (!Char.IsLetter(id[0]))
|
||
|
return false;
|
||
|
|
||
|
for (int i = 1; i < id.Length; i++) {
|
||
|
char c = id[i];
|
||
|
if (!(Char.IsLetterOrDigit(c) || c == '_' || c == '$' || (allowdots && c == '.')))
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|