From 763f7470729cd1946604d08e8eebfd563e18711b Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Wed, 27 Jul 2016 13:33:41 +0100 Subject: [PATCH] * DiscImageChef.Filesystems/LisaFS/LisaFS.cs: Corrected parametrized constructor. * DiscImageChef.Filesystems/LisaFS/Dir.cs: Mimic Pascal Workshop behaviour, ignore catalog entries without an ExtentsFile. --- DiscImageChef.Filesystems/LisaFS/Dir.cs | 15 ++++++++++----- DiscImageChef.Filesystems/LisaFS/LisaFS.cs | 2 ++ 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/DiscImageChef.Filesystems/LisaFS/Dir.cs b/DiscImageChef.Filesystems/LisaFS/Dir.cs index cdd61624..a8735a96 100644 --- a/DiscImageChef.Filesystems/LisaFS/Dir.cs +++ b/DiscImageChef.Filesystems/LisaFS/Dir.cs @@ -157,12 +157,17 @@ namespace DiscImageChef.Filesystems.LisaFS entry.wasted = BigEndianBitConverter.ToInt32(buf, offset + 0x34); entry.tail = new byte[8]; Array.Copy(buf, offset + 0x38, entry.tail, 0, 8); - catalog.Add(entry); - if(fileSizeCache.ContainsKey(entry.fileID)) - fileSizeCache.Remove(entry.fileID); - - fileSizeCache.Add(entry.fileID, entry.length); + // This is as Pascal Workshop does, if there is no extents file it simply ignores it. + ExtentFile ext; + if(ReadExtentsFile(entry.fileID, out ext) == Errno.NoError) + { + if(!fileSizeCache.ContainsKey(entry.fileID)) + { + catalog.Add(entry); + fileSizeCache.Add(entry.fileID, entry.length); + } + } offset += 64; } diff --git a/DiscImageChef.Filesystems/LisaFS/LisaFS.cs b/DiscImageChef.Filesystems/LisaFS/LisaFS.cs index 3b607be8..dc41abef 100644 --- a/DiscImageChef.Filesystems/LisaFS/LisaFS.cs +++ b/DiscImageChef.Filesystems/LisaFS/LisaFS.cs @@ -71,6 +71,8 @@ namespace DiscImageChef.Filesystems.LisaFS public LisaFS(ImagePlugins.ImagePlugin imagePlugin, ulong partitionStart, ulong partitionEnd) { device = imagePlugin; + Name = "Apple Lisa File System"; + PluginUUID = new Guid("7E6034D1-D823-4248-A54D-239742B28391"); } } }