internal static ArrayList CreateListFromExpressions(string[] str, bool needFullPath)
{
if (str == null)
{
throw new ArgumentNullException("str");
}
ArrayList arrayList = new ArrayList();
for (int i = 0; i < str.Length; i++)
{
if (str[i] == null)
{
throw new ArgumentNullException("str");
}
string text = StringExpressionSet.StaticProcessWholeString(str[i]);
if (text != null && text.Length != 0)
{
string text2 = StringExpressionSet.StaticProcessSingleString(text);
int num = text2.IndexOf('\0');
if (num != -1)
{
text2 = text2.Substring(0, num);
}
if (text2 != null && text2.Length != 0)
{
if (PathInternal.IsPartiallyQualified(text2))
{
throw new ArgumentException(Environment.GetResourceString("Argument_AbsolutePathRequired"));
}
text2 = StringExpressionSet.CanonicalizePath(text2, needFullPath);
arrayList.Add(text2);
}
}
}
return(arrayList);
}