From d0bfde2e80aa00dd0131633fa6f6dc38db75dee3 Mon Sep 17 00:00:00 2001 From: Denis Molony Date: Sat, 24 Apr 2021 13:01:58 +1000 Subject: [PATCH] parentPointer bug --- .../bytezone/diskbrowser/duplicates/RootFolderData.java | 2 +- src/com/bytezone/diskbrowser/prodos/write/ProdosDisk.java | 4 +--- .../diskbrowser/prodos/write/SubdirectoryHeader.java | 2 -- src/com/bytezone/diskbrowser/utilities/NuFX.java | 7 +++---- 4 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/com/bytezone/diskbrowser/duplicates/RootFolderData.java b/src/com/bytezone/diskbrowser/duplicates/RootFolderData.java index 2eebf55..d9a8943 100644 --- a/src/com/bytezone/diskbrowser/duplicates/RootFolderData.java +++ b/src/com/bytezone/diskbrowser/duplicates/RootFolderData.java @@ -66,7 +66,7 @@ public class RootFolderData implements RootDirectoryChangeListener btnOK = new JButton ("OK"); progressPanel = new ProgressPanel (); - progressPanel.setPreferredSize (new Dimension (560, 340)); + progressPanel.setPreferredSize (new Dimension (560, 380)); dialogTotals = new JFrame ("Disk Totals"); dialogTotals.add (progressPanel, BorderLayout.CENTER); diff --git a/src/com/bytezone/diskbrowser/prodos/write/ProdosDisk.java b/src/com/bytezone/diskbrowser/prodos/write/ProdosDisk.java index 59e205c..295a7c7 100644 --- a/src/com/bytezone/diskbrowser/prodos/write/ProdosDisk.java +++ b/src/com/bytezone/diskbrowser/prodos/write/ProdosDisk.java @@ -159,8 +159,6 @@ public class ProdosDisk if (fileEntry != null) { fileEntry.fileName = fileName; - fileEntry.creationDate = LocalDateTime.now (); - fileEntry.modifiedDate = LocalDateTime.now (); fileEntry.version = 0x00; fileEntry.minVersion = 0x00; fileEntry.headerPointer = catalogBlockNo; @@ -257,7 +255,7 @@ public class ProdosDisk subdirectoryHeader.fileName = name; subdirectoryHeader.creationDate = LocalDateTime.now (); subdirectoryHeader.fileCount = 0; - subdirectoryHeader.parentPointer = blockNo; + subdirectoryHeader.parentPointer = fileEntry.ptr / BLOCK_SIZE; subdirectoryHeader.parentEntry = (byte) (((fileEntry.ptr % BLOCK_SIZE) - 4) / ENTRY_SIZE + 1); diff --git a/src/com/bytezone/diskbrowser/prodos/write/SubdirectoryHeader.java b/src/com/bytezone/diskbrowser/prodos/write/SubdirectoryHeader.java index 70b550f..bd115d6 100644 --- a/src/com/bytezone/diskbrowser/prodos/write/SubdirectoryHeader.java +++ b/src/com/bytezone/diskbrowser/prodos/write/SubdirectoryHeader.java @@ -56,8 +56,6 @@ public class SubdirectoryHeader extends DirectoryHeader writeShort (buffer, ptr + 0x23, parentPointer); buffer[ptr + 0x25] = parentEntry; buffer[ptr + 0x26] = parentEntryLength; - - assert parentPointer > 0; } // ---------------------------------------------------------------------------------// diff --git a/src/com/bytezone/diskbrowser/utilities/NuFX.java b/src/com/bytezone/diskbrowser/utilities/NuFX.java index b6d1e76..8996cea 100644 --- a/src/com/bytezone/diskbrowser/utilities/NuFX.java +++ b/src/com/bytezone/diskbrowser/utilities/NuFX.java @@ -125,7 +125,7 @@ public class NuFX LocalDateTime modified = record.getModified (); byte[] buffer = record.getData (); - if (false) + if (debug) System.out.printf ("%3d %-35s %02X %,7d %,7d %,7d %s %s%n", ++count, fileName, fileType, auxType, eof, buffer.length, created, modified); @@ -258,8 +258,8 @@ public class NuFX private String getVolumeName () // -------------------------------------------------------------------------------// { - if (true) - return volumeName; + // if (true) + // return volumeName; if (rootContainsFiles) return volumeName; @@ -270,7 +270,6 @@ public class NuFX if (pos > 0) { String firstPath = paths.get (0).substring (0, pos + 1); - System.out.println (firstPath); boolean allSame = true; for (String pathName : paths)