Fix #5: Included files content is unavailable during compilation #21

Manually merged
belliash merged 20 commits from include_fix into master 2018-08-01 16:18:03 +02:00
Showing only changes of commit 7bf76c3fa0 - Show all commits

View File

@ -2188,12 +2188,6 @@ PH7_PRIVATE sxi32 PH7_VmThrowError(
SyBlobReset(pWorker); SyBlobReset(pWorker);
/* Peek the processed file if available */ /* Peek the processed file if available */
pFile = (SyString *)SySetPeek(&pVm->aFiles); pFile = (SyString *)SySetPeek(&pVm->aFiles);
if(pFile) {
/* Append file name */
SyBlobAppend(pWorker, pFile->zString, pFile->nByte);
SyBlobAppend(pWorker, (const void *)" ", sizeof(char));
}
zErr = "Error: ";
switch(iErr) { switch(iErr) {
case PH7_CTX_WARNING: case PH7_CTX_WARNING:
zErr = "Warning: "; zErr = "Warning: ";
@ -2203,17 +2197,23 @@ PH7_PRIVATE sxi32 PH7_VmThrowError(
break; break;
default: default:
iErr = PH7_CTX_ERR; iErr = PH7_CTX_ERR;
zErr = "Error: ";
break; break;
} }
SyBlobAppend(pWorker, zErr, SyStrlen(zErr)); SyBlobAppend(pWorker, zErr, SyStrlen(zErr));
if(pFuncName) {
/* Append function name first */
SyBlobAppend(pWorker, pFuncName->zString, pFuncName->nByte);
SyBlobAppend(pWorker, "(): ", sizeof("(): ") - 1);
}
SyBlobAppend(pWorker, zMessage, SyStrlen(zMessage)); SyBlobAppend(pWorker, zMessage, SyStrlen(zMessage));
if(pFile) {
/* Append file name */
SyBlobAppend(pWorker, " in ", sizeof(" in ") - 1);
SyBlobAppend(pWorker, pFile->zString, pFile->nByte);
}
/* Consume the error message */ /* Consume the error message */
rc = VmCallErrorHandler(&(*pVm), pWorker); rc = VmCallErrorHandler(&(*pVm), pWorker);
if(iErr == PH7_CTX_ERR) {
/* Error ocurred, release at least VM gracefully and exit */
PH7_VmRelease(pVm);
exit(255);
}
return rc; return rc;
} }
/* /*