// macRD.c 10/3/90 G.Garchar
#include "Resources.h"
#include "memory.h"
#include "Files.h"
#include "Types.h"
#include "dosintosh.h"
void macRD(char line[], int (*callback[])());
main(char *input, int(*callback[])(), short prefrefnum) {
unsigned char path[256];
(*callback[ParsePathCallBack])(input,path);
macRD(path, callback);
}
#include "Common.c" // done after the main() proc!!!
OSErr RemoveDir(short volNo, long dirID) {
char pString[256];
HFileInfo pBlock;
pBlock.ioNamePtr = pString; // RESERVE STRING MEMORY
pBlock.ioVRefNum = volNo;
pBlock.ioDirID = dirID;
pBlock.ioFDirIndex = -1; // USE DIRID ONLY
PBGetCatInfo((CInfoPBPtr)&pBlock, false);
pBlock.ioDirID = pBlock.ioFlParID;
return PBHDelete((HParmBlkPtr)&pBlock, false);
}
void macRD(char line[], int (*callback[])()) {
char spec[256];
char path[256];
long dirID;
short result;
short volNo;
if (*line == '\0') { // EMPTY COMMAND LINE?
print(string(invParamStr)); // INVALID NUMBER OF PARAMETERS!
return;
}
result = GetSpec(line, path, spec, &dirID, &volNo);
if (result == 1) print(string(invVolStr));
else if (result == 2) print(string(invDirStr));
else { // REMOVE DIRECTORY
result = RemoveDir(volNo, dirID);
if (result != noErr)
print(string(OSErrStr), result);
}
}