From 31f8c72ab3a6b0134db34a2007cb41c9ee6b456b Mon Sep 17 00:00:00 2001 From: Bobbi Webber-Manners Date: Sun, 14 Jun 2020 02:38:21 -0400 Subject: [PATCH] Do not trim volume directory to less than 4 blocks --- sortdir.c | 18 +++++++++++------- sortdir.po | Bin 143360 -> 143360 bytes 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/sortdir.c b/sortdir.c index b5200e8..0caa607 100644 --- a/sortdir.c +++ b/sortdir.c @@ -4,8 +4,6 @@ * Bobbi January-June 2020 * * TODO: *** When trimming dirs fix EOF in directory header *** - * TODO: Trimming unused directory blocks - * TODO: Don't trim volume directory to <4 blocks * TODO: Get both ProDOS-8 and GNO versions to build from this source * * Revision History @@ -39,7 +37,8 @@ * v0.77 Implemented zeroblock() for ProDOS-8. * v0.78 Improved error handling when too many files to sort. * v0.79 Trim unused directory blocks after sorting. Write freelist to disk. - * v0.80 Reinstated no-op sort (useful for compacting dir without reordering) + * v0.80 Reinstated no-op sort (useful for compacting dir without reordering). + * v0.81 Do not trim volume directory to <4 blocks. */ //#pragma debug 9 @@ -67,7 +66,7 @@ #define SORT /* Enable sorting code */ #define FREELIST /* Checking of free list */ #define AUXMEM /* Auxiliary memory support on //e and up */ -#undef CMDLINE /* Command line option parsing */ +#undef CMDLINE /* Command line option parsing */ #undef TRIMDIR /* Enable trimming of directory blocks */ #define NLEVELS 4 /* Number of nested sorts permitted */ @@ -1906,8 +1905,13 @@ uchar writedir(uchar device) { } #ifdef TRIMDIR } else { - puts("Trimming dir blk"); - trimdirblock(b->blocknum); + /* Standard volume directory is blocks 2-5 (4 blocks) + * We will not trim volume directory to less than 4 blocks + */ + if (b->blocknum > 5) { + puts("Trimming dir blk"); + trimdirblock(b->blocknum); + } } #else } @@ -1974,7 +1978,7 @@ void interactive(void) { revers(1); hlinechar(' '); - fputs("S O R T D I R v0.80 alpha Use ^ to return to previous question", stdout); + fputs("S O R T D I R v0.81 alpha Use ^ to return to previous question", stdout); hlinechar(' '); revers(0); diff --git a/sortdir.po b/sortdir.po index 4e4b4c05ea349dae0f695b2b0ea5c48dcd32b5c6..c63db901057e16f8fdc0ef5d12bbe99f68a0b181 100644 GIT binary patch delta 36 scmZp8z|ru4W5X^ME;XjQ|Bo3M&S|J^KEhJ;g3++q{Oxx0w~Qy902-|if&c&j delta 36 scmZp8z|ru4W5X^ME=i`k|Bo3M&S^+)KEhJ;g3+Ma{Oxx0w~Qy902p)+X8-^I