singrdk/base/Windows/BuildTasks/Util.cs

58 lines
1.5 KiB
C#
Raw Normal View History

2008-11-17 18:29:00 -05:00
// ----------------------------------------------------------------------------
//
// 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;
}
}
}