mirror of
https://github.com/bobbimanners/ProDOS-Utils.git
synced 2024-09-27 02:54:23 +00:00
Improved the way TRIMDIR conditional compilation is done
This commit is contained in:
parent
31f8c72ab3
commit
96c3f0c17a
16
sortdir.c
16
sortdir.c
@ -3,7 +3,9 @@
|
|||||||
*
|
*
|
||||||
* Bobbi January-June 2020
|
* Bobbi January-June 2020
|
||||||
*
|
*
|
||||||
* TODO: *** When trimming dirs fix EOF in directory header ***
|
* TODO: EOF length for directories
|
||||||
|
* 1) Check this in readir() if I am not doing so already
|
||||||
|
* 2) When trimming a directory, need to update EOF for parent entry
|
||||||
* TODO: Get both ProDOS-8 and GNO versions to build from this source
|
* TODO: Get both ProDOS-8 and GNO versions to build from this source
|
||||||
*
|
*
|
||||||
* Revision History
|
* Revision History
|
||||||
@ -39,6 +41,7 @@
|
|||||||
* v0.79 Trim unused directory blocks after sorting. Write freelist to disk.
|
* 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.
|
* v0.81 Do not trim volume directory to <4 blocks.
|
||||||
|
* v0.82 Minor fix to TRIMDIR conditional compilation.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//#pragma debug 9
|
//#pragma debug 9
|
||||||
@ -1872,6 +1875,8 @@ uchar sortblock(uint device, uint dstblk) {
|
|||||||
if (lastlistent > numfiles - 1) {
|
if (lastlistent > numfiles - 1) {
|
||||||
|
|
||||||
lastlistent = numfiles - 1;
|
lastlistent = numfiles - 1;
|
||||||
|
|
||||||
|
#ifdef TRIMDIR
|
||||||
// TODO: Fix EOF for directory
|
// TODO: Fix EOF for directory
|
||||||
#ifdef AUXMEM
|
#ifdef AUXMEM
|
||||||
dirblkbuf[2] = dirblkbuf[3] = 0; /* Set next ptr to NULL */
|
dirblkbuf[2] = dirblkbuf[3] = 0; /* Set next ptr to NULL */
|
||||||
@ -1879,6 +1884,9 @@ uchar sortblock(uint device, uint dstblk) {
|
|||||||
p->data[2] = p->data[3] = 0; /* Set next ptr to NULL */
|
p->data[2] = p->data[3] = 0; /* Set next ptr to NULL */
|
||||||
#endif
|
#endif
|
||||||
rc = 1;
|
rc = 1;
|
||||||
|
#else
|
||||||
|
rc = 0;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = firstlistent; i <= lastlistent; ++i) {
|
for (i = firstlistent; i <= lastlistent; ++i) {
|
||||||
@ -1903,7 +1911,6 @@ uchar writedir(uchar device) {
|
|||||||
err(NONFATAL, err_wtblk1, b->blocknum);
|
err(NONFATAL, err_wtblk1, b->blocknum);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
#ifdef TRIMDIR
|
|
||||||
} else {
|
} else {
|
||||||
/* Standard volume directory is blocks 2-5 (4 blocks)
|
/* Standard volume directory is blocks 2-5 (4 blocks)
|
||||||
* We will not trim volume directory to less than 4 blocks
|
* We will not trim volume directory to less than 4 blocks
|
||||||
@ -1913,9 +1920,6 @@ uchar writedir(uchar device) {
|
|||||||
trimdirblock(b->blocknum);
|
trimdirblock(b->blocknum);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
b = b->next;
|
b = b->next;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
@ -1978,7 +1982,7 @@ void interactive(void) {
|
|||||||
|
|
||||||
revers(1);
|
revers(1);
|
||||||
hlinechar(' ');
|
hlinechar(' ');
|
||||||
fputs("S O R T D I R v0.81 alpha Use ^ to return to previous question", stdout);
|
fputs("S O R T D I R v0.82 alpha Use ^ to return to previous question", stdout);
|
||||||
hlinechar(' ');
|
hlinechar(' ');
|
||||||
revers(0);
|
revers(0);
|
||||||
|
|
||||||
|
BIN
sortdir.po
BIN
sortdir.po
Binary file not shown.
Loading…
Reference in New Issue
Block a user