This is fat_free.c in view mode; [Download] [Up]
#include <stdio.h>
#include "msdos.h"
extern int fat_error;
extern unsigned int last_fat;
/*
* Remove a string of FAT entries (delete the file). The argument is
* the beginning of the string. Does not consider the file length, so
* if FAT is corrupted, watch out!
*/
int
fat_free(fat)
unsigned int fat;
{
unsigned int next, fat_decode();
/* a zero length file? */
if (fat == 0)
return(0);
/* CONSTCOND */
while (1) {
/* get next cluster number */
next = fat_decode(fat);
/* mark current cluster as empty */
if (fat_encode(fat, 0) || next == 1) {
fprintf(stderr, "fat_free: FAT problem\n");
fat_error++;
return(-1);
}
if (next >= last_fat)
break;
fat = next;
}
return(0);
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.