Browse Source

Merge pull request #597 from pgourlain/fix-buildtools

UpdateAssemblyInfo.exe failed when there is a banner in start of cmd
pull/620/head
Daniel Grunwald 11 years ago
parent
commit
ffe13672f2
  1. 3
      BuildTools/UpdateAssemblyInfo/Main.cs
  2. 35
      ILSpy/MainWindow.xaml.cs
  3. 29
      ILSpy/TreeNodes/AssemblyListTreeNode.cs

3
BuildTools/UpdateAssemblyInfo/Main.cs

@ -224,7 +224,8 @@ namespace UpdateAssemblyInfo
string line; string line;
int revNum = BaseCommitRev; int revNum = BaseCommitRev;
while ((line = p.StandardOutput.ReadLine()) != null) { while ((line = p.StandardOutput.ReadLine()) != null) {
if (gitCommitHash == null) { //keep only line that contains git hash
if (gitCommitHash == null && line != null && line.Length == BaseCommit.Length) {
// first entry is HEAD // first entry is HEAD
gitCommitHash = line; gitCommitHash = line;
} }

35
ILSpy/MainWindow.xaml.cs

@ -572,21 +572,40 @@ namespace ICSharpCode.ILSpy
public ILSpyTreeNode FindTreeNode(object reference) public ILSpyTreeNode FindTreeNode(object reference)
{ {
if (reference is TypeReference) { if (reference is TypeReference)
{
return assemblyListTreeNode.FindTypeNode(((TypeReference)reference).Resolve()); return assemblyListTreeNode.FindTypeNode(((TypeReference)reference).Resolve());
} else if (reference is MethodReference) { }
else if (reference is MethodReference)
{
return assemblyListTreeNode.FindMethodNode(((MethodReference)reference).Resolve()); return assemblyListTreeNode.FindMethodNode(((MethodReference)reference).Resolve());
} else if (reference is FieldReference) { }
else if (reference is FieldReference)
{
return assemblyListTreeNode.FindFieldNode(((FieldReference)reference).Resolve()); return assemblyListTreeNode.FindFieldNode(((FieldReference)reference).Resolve());
} else if (reference is PropertyReference) { }
else if (reference is PropertyReference)
{
return assemblyListTreeNode.FindPropertyNode(((PropertyReference)reference).Resolve()); return assemblyListTreeNode.FindPropertyNode(((PropertyReference)reference).Resolve());
} else if (reference is EventReference) { }
else if (reference is EventReference)
{
return assemblyListTreeNode.FindEventNode(((EventReference)reference).Resolve()); return assemblyListTreeNode.FindEventNode(((EventReference)reference).Resolve());
} else if (reference is AssemblyDefinition) { }
else if (reference is AssemblyDefinition)
{
return assemblyListTreeNode.FindAssemblyNode((AssemblyDefinition)reference); return assemblyListTreeNode.FindAssemblyNode((AssemblyDefinition)reference);
} else if (reference is ModuleDefinition) { }
else if (reference is ModuleDefinition)
{
return assemblyListTreeNode.FindAssemblyNode((ModuleDefinition)reference); return assemblyListTreeNode.FindAssemblyNode((ModuleDefinition)reference);
} else { }
else if (reference is Resource)
{
return assemblyListTreeNode.FindResourceNode((Resource)reference);
}
else
{
return null; return null;
} }
} }

29
ILSpy/TreeNodes/AssemblyListTreeNode.cs

@ -130,9 +130,34 @@ namespace ICSharpCode.ILSpy.TreeNodes
} }
} }
#region Find*Node #region Find*Node
public AssemblyTreeNode FindAssemblyNode(ModuleDefinition module) public ILSpyTreeNode FindResourceNode(Resource resource)
{
if (resource == null)
return null;
foreach (AssemblyTreeNode node in this.Children)
{
if (node.LoadedAssembly.IsLoaded)
{
node.EnsureLazyChildren();
foreach (var item in node.Children.OfType<ResourceListTreeNode>())
{
var founded = item.Children.OfType<ResourceTreeNode>().Where(x => x.Resource == resource).FirstOrDefault();
if (founded != null)
return founded;
var foundedResEntry = item.Children.OfType<ResourceEntryNode>().Where(x => resource.Name.Equals(x.Text)).FirstOrDefault();
if (foundedResEntry != null)
return foundedResEntry;
}
}
}
return null;
}
public AssemblyTreeNode FindAssemblyNode(ModuleDefinition module)
{ {
if (module == null) if (module == null)
return null; return null;

Loading…
Cancel
Save