summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Power <noel.power@suse.com>2013-10-11 17:15:42 +0100
committerNoel Power <noel.power@suse.com>2013-10-11 17:15:42 +0100
commit944df93d70bd0b60d9c299cd2f3ca2d45b5f7658 (patch)
treec0635d37f5d705af72f0657c856e7389823cd330
parent77e73a40bbaf5273ba775e70026c4494bdfbe30f (diff)
fix oletool.py -l we were missing quite a few files in the listingfeature/writeable-oletool
-rwxr-xr-xsrc/oletool.py26
1 files changed, 14 insertions, 12 deletions
diff --git a/src/oletool.py b/src/oletool.py
index 768f91c..4e3c3e4 100755
--- a/src/oletool.py
+++ b/src/oletool.py
@@ -82,9 +82,9 @@ class OleContainer:
nextLeft = child.Entry.DirIDLeft
if ( nextLeft > 0 ):
newEntry = DirNode( entries[ nextLeft ], nextLeft )
- newEntry.HierachicalName = newEntry.Entry.Name
- if len( parent.HierachicalName ):
- newEntry.HierachicalName = parent.HierachicalName + '/' + newEntry.HierachicalName
+ newEntry.HierachicalName = parent.HierachicalName + newEntry.Entry.Name
+ if newEntry.Entry.DirIDRoot > 0:
+ newEntry.HierachicalName = newEntry.HierachicalName + '/'
self.__addSiblings( entries, parent, newEntry )
parent.Nodes.insert( 0, newEntry )
@@ -93,9 +93,9 @@ class OleContainer:
# add children to the right
if ( nextRight > 0 ):
newEntry = DirNode( entries[ nextRight ], nextRight )
- newEntry.HierachicalName = newEntry.Entry.Name
- if len( parent.HierachicalName ):
- newEntry.HierachicalName = parent.HierachicalName + '/' + newEntry.HierachicalName
+ newEntry.HierachicalName = parent.HierachicalName + newEntry.Entry.Name
+ if newEntry.Entry.DirIDRoot > 0:
+ newEntry.HierachicalName = newEntry.HierachicalName + '/'
self.__addSiblings( entries, parent, newEntry )
parent.Nodes.append( newEntry )
@@ -103,11 +103,13 @@ class OleContainer:
if ( parent.Entry.DirIDRoot > 0 ):
newEntry = DirNode( entries[ parent.Entry.DirIDRoot ], parent.Entry.DirIDRoot )
- if len( parent.HierachicalName ):
- newEntry.HierachicalName = parent.HierachicalName + '/' + newEntry.HierachicalName
+ newEntry.HierachicalName = parent.HierachicalName + newEntry.Entry.Name
+ if ( newEntry.Entry.DirIDRoot > 0 ):
+ newEntry.HierachicalName = newEntry.HierachicalName + '/'
+
self.__addSiblings( entries, parent, newEntry )
- parent.Nodes.append( newEntry )
-
+ parent.Nodes.append( newEntry )
+
for child in parent.Nodes:
if child.Entry.DirIDRoot > 0:
self.__buildTreeImpl( entries, child )
@@ -152,7 +154,7 @@ class OleContainer:
obj.parseDirEntries()
count = 0
for entry in obj.entries:
- print("Entry [0x%x] Name %s Root 0x%x Left 0x%x Right %x")%( count, entry.Name, entry.DirIDRoot, entry.DirIDLeft, entry.DirIDRight )
+ print("Entry [%i] Name %s Root %i Left %i Right %i")%( count, entry.Name, entry.DirIDRoot, entry.DirIDLeft, entry.DirIDRight )
count = count + 1
def list(self, directory):
if directory != None:
@@ -162,7 +164,7 @@ class OleContainer:
self.__printHeader()
self.__printListReport( rootNode, directory.entries )
# need to print a footer ( total bytes, total files like unzip )
-
+
def extract(self, name, directory):
if ( directory == None ):
print "failed to extract %s"%name