From d6d0b1672eb0b283b4a90ee80f717ae06840132e Mon Sep 17 00:00:00 2001 From: Denis Molony Date: Thu, 6 May 2021 18:14:40 +1000 Subject: [PATCH] wrap print lines at 80 columns --- .../applefile/UserBasicFormatter.java | 31 +++++++++++++------ .../bytezone/diskbrowser/disk/AppleDisk.java | 1 - .../diskbrowser/disk/DiskFactory.java | 13 -------- .../diskbrowser/disk/FormattedDisk.java | 5 +-- .../diskbrowser/gui/BasicPreferences.java | 2 +- .../diskbrowser/utilities/Binary2Header.java | 5 ++- .../diskbrowser/utilities/MasterHeader.java | 2 ++ 7 files changed, 30 insertions(+), 29 deletions(-) diff --git a/src/com/bytezone/diskbrowser/applefile/UserBasicFormatter.java b/src/com/bytezone/diskbrowser/applefile/UserBasicFormatter.java index 81dda08..c152480 100644 --- a/src/com/bytezone/diskbrowser/applefile/UserBasicFormatter.java +++ b/src/com/bytezone/diskbrowser/applefile/UserBasicFormatter.java @@ -21,6 +21,8 @@ public class UserBasicFormatter extends BasicFormatter private static final int INDENT_SIZE = 2; private static final String EIGHT_SPACES = " "; private static final String FOUR_SPACES = " "; + private static boolean FORCE = true; + private static boolean NO_FORCE = false; // ---------------------------------------------------------------------------------// public UserBasicFormatter (ApplesoftBasicProgram program, @@ -112,13 +114,22 @@ public class UserBasicFormatter extends BasicFormatter int inset = Math.max (text.length (), getIndent (fullText)) + 1; if (subline.is (TOKEN_REM) && lineText.length () > basicPreferences.wrapRemAt) { - List lines = splitLine (lineText, basicPreferences.wrapRemAt, ' '); + List lines = + splitLine (lineText, basicPreferences.wrapRemAt, ' ', FORCE); addSplitLines (lines, text, inset); } else if (subline.is (TOKEN_DATA) && lineText.length () > basicPreferences.wrapDataAt) { - List lines = splitLine (lineText, basicPreferences.wrapDataAt, ','); + List lines = + splitLine (lineText, basicPreferences.wrapDataAt, ',', FORCE); + addSplitLines (lines, text, inset); + } + else if (subline.is (TOKEN_PRINT) + && lineText.length () > basicPreferences.wrapPrintAt) + { + List lines = + splitLine (lineText, basicPreferences.wrapDataAt, ';', NO_FORCE); addSplitLines (lines, text, inset); } else if (subline.is (TOKEN_DIM) && basicPreferences.splitDim) @@ -162,7 +173,8 @@ public class UserBasicFormatter extends BasicFormatter } // ---------------------------------------------------------------------------------// - private List splitLine (String line, int wrapLength, char breakChar) + private List splitLine (String line, int wrapLength, char breakChar, + boolean force) // ---------------------------------------------------------------------------------// { int spaceAt = 0; @@ -182,14 +194,15 @@ public class UserBasicFormatter extends BasicFormatter break; lines.add (line.substring (0, breakAt + 1)); // keep breakChar at end - line = indent + line.substring (breakAt + 1); + line = indent + line.substring (breakAt + 1).trim (); } - while (line.length () > wrapLength) // no breakChars found - { - lines.add (line.substring (0, wrapLength)); - line = indent + line.substring (wrapLength); - } + if (force) + while (line.length () > wrapLength) // no breakChars found + { + lines.add (line.substring (0, wrapLength)); + line = indent + line.substring (wrapLength); + } lines.add (line); return lines; diff --git a/src/com/bytezone/diskbrowser/disk/AppleDisk.java b/src/com/bytezone/diskbrowser/disk/AppleDisk.java index 3bede4a..ff4daea 100755 --- a/src/com/bytezone/diskbrowser/disk/AppleDisk.java +++ b/src/com/bytezone/diskbrowser/disk/AppleDisk.java @@ -114,7 +114,6 @@ public class AppleDisk implements Disk if ("2mg".equalsIgnoreCase (suffix) || "2IMG".equals (prefix)) { - // System.out.println ("checking 2mg"); if ("2IMG".equals (prefix)) { Prefix2mg prefix2mg = new Prefix2mg (buffer); diff --git a/src/com/bytezone/diskbrowser/disk/DiskFactory.java b/src/com/bytezone/diskbrowser/disk/DiskFactory.java index 1abb82f..a7f8ad3 100755 --- a/src/com/bytezone/diskbrowser/disk/DiskFactory.java +++ b/src/com/bytezone/diskbrowser/disk/DiskFactory.java @@ -51,19 +51,6 @@ public class DiskFactory // ---------------------------------------------------------------------------------// public static FormattedDisk createDisk (String pathName) // ---------------------------------------------------------------------------------// - { - FormattedDisk disk = create (pathName); - // if (disk.getDisk ().getInterleave () > 0) - // { - // System.out.println (disk); - // System.out.println (); - // } - return disk; - } - - // ---------------------------------------------------------------------------------// - private static FormattedDisk create (String pathName) - // ---------------------------------------------------------------------------------// { if (debug) System.out.println ("\nFactory : " + pathName); diff --git a/src/com/bytezone/diskbrowser/disk/FormattedDisk.java b/src/com/bytezone/diskbrowser/disk/FormattedDisk.java index 404b74c..a24d326 100755 --- a/src/com/bytezone/diskbrowser/disk/FormattedDisk.java +++ b/src/com/bytezone/diskbrowser/disk/FormattedDisk.java @@ -81,7 +81,4 @@ public interface FormattedDisk public int falseNegativeBlocks (); public String getName (); -} - -// getFileTypeList () -// getFiles (FileType type) \ No newline at end of file +} \ No newline at end of file diff --git a/src/com/bytezone/diskbrowser/gui/BasicPreferences.java b/src/com/bytezone/diskbrowser/gui/BasicPreferences.java index f04132e..af8dc94 100644 --- a/src/com/bytezone/diskbrowser/gui/BasicPreferences.java +++ b/src/com/bytezone/diskbrowser/gui/BasicPreferences.java @@ -26,7 +26,7 @@ public class BasicPreferences public boolean showConstants = false; public boolean showDuplicateSymbols = false; - public int wrapPrintAt = 0; + public int wrapPrintAt = 80; public int wrapRemAt = 80; public int wrapDataAt = 80; diff --git a/src/com/bytezone/diskbrowser/utilities/Binary2Header.java b/src/com/bytezone/diskbrowser/utilities/Binary2Header.java index 0770253..ddd5cc1 100644 --- a/src/com/bytezone/diskbrowser/utilities/Binary2Header.java +++ b/src/com/bytezone/diskbrowser/utilities/Binary2Header.java @@ -6,7 +6,10 @@ import java.time.LocalDateTime; public class Binary2Header // -----------------------------------------------------------------------------------// { - static String[] osTypes = { "Prodos", "DOS 3.3", "Pascal", "CPM", "MS-DOS" }; + static String[] osTypes = + { "Prodos", "DOS 3.3", "Reserved", "DOS 3.2 or 3.1", "Pascal", "Macintosh MFS", + "Macintosh HFS", "Lisa", "CPM", "Reserved", "MS-DOS", "High Sierra (CD-ROM)", + "ISO 9660 (CD-ROM)", "AppleShare" }; int accessCode; int fileType; diff --git a/src/com/bytezone/diskbrowser/utilities/MasterHeader.java b/src/com/bytezone/diskbrowser/utilities/MasterHeader.java index 60f84c5..2fdf0f1 100644 --- a/src/com/bytezone/diskbrowser/utilities/MasterHeader.java +++ b/src/com/bytezone/diskbrowser/utilities/MasterHeader.java @@ -29,6 +29,8 @@ class MasterHeader { if (Utility.isMagic (buffer, ptr, NuFile)) break; + + // internet.shk has 0x2000 bytes of text at the start // if (Utility.isMagic (buffer, 0x2000, NuFile)) // { // System.out.println ("found it");