int dummy = 1;
zend_file_handle file_handle;
if(SUCCESS == zend_stream_open(inc_filename->value.str.val, &file_handle)) {
if(!file_handle.opened_path) {
file_handle.opened_path = estrndup(inc_filename->value.str.val,
inc_filename->value.str.len);
}
if(zend_hash_add(&EG(included_files),
file_handle.opened_path,
strlen(file_handle.opened_path)+1,
(void *)&dummy, sizeof(int), NULL)==SUCCESS) {
op_array = zend_compile_file(&file_handle, ZEND_INCLUDE);
zend_destroy_file_handle(&file_handle);
} else {
zend_file_handle_dtor(&file_handle);
failure_retval=1;
}
} else {
if(opline->op2.u.constant.value.lval==ZEND_INCLUDE_ONCE) {
zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, inc_filename->value.str.val);
} else {
zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, inc_filename->value.str.val);
}
}?>