primitiveDirectoryDelete(void) { // FilePlugin>>#primitiveDirectoryDelete sqInt dirName; char *dirNameIndex; sqInt dirNameSize; sqInt okToDelete; dirName = stackValue(0); if (!(isBytes(dirName))) { return primitiveFail(); } dirNameIndex = firstIndexableField(dirName); /* If the security plugin can be loaded, use it to check for permission. If not, assume it's ok */ dirNameSize = byteSizeOf(dirName); if (sCDPfn != 0) { okToDelete = ((sqInt (*)(char *, sqInt))sCDPfn)(dirNameIndex, dirNameSize); if (!okToDelete) { return primitiveFail(); } } if (!(dir_Delete(dirNameIndex, dirNameSize))) { return primitiveFail(); } pop(1); }
EXPORT(sqInt) primitiveDirectoryDelete(void) { sqInt okToDelete; sqInt dirName; char * dirNameIndex; sqInt dirNameSize; dirName = interpreterProxy->stackValue(0); if (!(interpreterProxy->isBytes(dirName))) { return interpreterProxy->primitiveFail(); } dirNameIndex = interpreterProxy->firstIndexableField(dirName); /* If the security plugin can be loaded, use it to check for permission. If not, assume it's ok */ dirNameSize = interpreterProxy->byteSizeOf(dirName); if (sCDPfn != 0) { okToDelete = ((sqInt (*)(char *, sqInt))sCDPfn)(dirNameIndex, dirNameSize); if (!(okToDelete)) { return interpreterProxy->primitiveFail(); } } if (!(dir_Delete(dirNameIndex, dirNameSize))) { return interpreterProxy->primitiveFail(); } interpreterProxy->pop(1); }