String resolveVmInclude(StringData* path, const char* currentDir, struct stat *s) { ResolveIncludeContext ctx; ctx.s = s; resolve_include(path, currentDir, findFileWrapper, (void*)&ctx); // If resolve_include() could not find the file, return NULL return ctx.path; }
String resolveVmInclude(StringData* path, const char* currentDir, struct stat* s, bool allow_dir /* = false */) { ResolveIncludeContext ctx; ctx.s = s; ctx.allow_dir = allow_dir; void* vpCtx = &ctx; resolve_include(path, currentDir, findFileWrapper, vpCtx); // If resolve_include() could not find the file, return NULL return ctx.path; }
static Variant include_impl(const String& file, bool once, const char *currentDir, bool required, bool raiseNotice) { struct IncludeImplInvokeContext ctx = {once, currentDir}; String can_path = resolve_include(file, currentDir, include_impl_invoke_context, (void*)&ctx); if (can_path.isNull()) { // Failure if (raiseNotice) { raise_notice("Tried to invoke %s but file not found.", file.data()); } if (required) { String ms = "Required file that does not exist: "; ms += file; throw FatalErrorException(ms.data()); } return false; } return ctx.returnValue; }