// 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);
		}
	}