Changeset View
Changeset View
Standalone View
Standalone View
stand/ficl/fileaccess.c
Show First 20 Lines • Show All 61 Lines • ▼ Show 20 Lines | switch (FICL_FAM_OPEN_MODE(fam)) | ||||
} | } | ||||
strcat(mode, (fam & FICL_FAM_BINARY) ? "b" : "t"); | strcat(mode, (fam & FICL_FAM_BINARY) ? "b" : "t"); | ||||
f = fopen(filename, mode); | f = fopen(filename, mode); | ||||
if (f == NULL) | if (f == NULL) | ||||
stackPushPtr(pVM->pStack, NULL); | stackPushPtr(pVM->pStack, NULL); | ||||
else | else | ||||
#ifdef LOADER_VERIEXEC | |||||
if (*mode == 'r' && | |||||
verify_file(fileno(f), filename, 0, VE_GUESS) < 0) { | |||||
fclose(f); | |||||
stackPushPtr(pVM->pStack, NULL); | |||||
} else | |||||
#endif | |||||
{ | { | ||||
ficlFILE *ff = (ficlFILE *)malloc(sizeof(ficlFILE)); | ficlFILE *ff = (ficlFILE *)malloc(sizeof(ficlFILE)); | ||||
strcpy(ff->filename, filename); | strcpy(ff->filename, filename); | ||||
ff->f = f; | ff->f = f; | ||||
stackPushPtr(pVM->pStack, ff); | stackPushPtr(pVM->pStack, ff); | ||||
fseek(f, 0, SEEK_SET); | fseek(f, 0, SEEK_SET); | ||||
} | } | ||||
pushIor(pVM, f != NULL); | pushIor(pVM, f != NULL); | ||||
} | } | ||||
static void ficlOpenFile(FICL_VM *pVM) /* ( c-addr u fam -- fileid ior ) */ | static void ficlOpenFile(FICL_VM *pVM) /* ( c-addr u fam -- fileid ior ) */ | ||||
{ | { | ||||
ficlFopen(pVM, "a"); | ficlFopen(pVM, "a"); | ||||
▲ Show 20 Lines • Show All 340 Lines • Show Last 20 Lines |