summaryrefslogtreecommitdiff
path: root/Zend/zend_language_scanner.l
diff options
context:
space:
mode:
authorAndi Gutmans <andi@php.net>2001-03-12 15:42:18 +0000
committerAndi Gutmans <andi@php.net>2001-03-12 15:42:18 +0000
commit714d083cb8e12a9afc9b5396105d5b74668f6227 (patch)
tree9d60e015e54a086e09bec2f71f049c68de533eac /Zend/zend_language_scanner.l
parent48caa74c2049448c8f98e29dc57194927d5a463f (diff)
downloadphp-git-714d083cb8e12a9afc9b5396105d5b74668f6227.tar.gz
- Fix by Jani Taskinen <sniper@iki.fi> for whole path also to work
with include_once()/require_once().
Diffstat (limited to 'Zend/zend_language_scanner.l')
-rw-r--r--Zend/zend_language_scanner.l18
1 files changed, 8 insertions, 10 deletions
diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l
index 76c3249ff1..71c2a2d0e6 100644
--- a/Zend/zend_language_scanner.l
+++ b/Zend/zend_language_scanner.l
@@ -243,23 +243,18 @@ ZEND_API int open_file_for_scanning(zend_file_handle *file_handle CLS_DC)
switch (file_handle->type) {
case ZEND_HANDLE_FILENAME:
file_handle->handle.fp = zend_fopen(file_handle->filename, &file_handle->opened_path);
- file_path = file_handle->opened_path;
break;
case ZEND_HANDLE_FD:
- /* file_handle->opened_path = NULL; */
file_handle->handle.fp = fdopen(file_handle->handle.fd, "r");
break;
case ZEND_HANDLE_FP:
- /* file_handle->opened_path = NULL; */
file_handle->handle.fp = file_handle->handle.fp;
break;
}
if (!file_handle->handle.fp) {
return FAILURE;
}
- if (!file_path) {
- file_path = file_handle->filename;
- }
+
file_handle->type = ZEND_HANDLE_FP;
if (file_handle->handle.fp != stdin) {
zend_llist_add_element(&CG(open_files), file_handle);
@@ -271,7 +266,6 @@ ZEND_API int open_file_for_scanning(zend_file_handle *file_handle CLS_DC)
#else
switch (file_handle->type) {
case ZEND_HANDLE_FD:
- /* file_handle->opened_path = NULL; */
file_handle->handle.is = new ifstream(file_handle->handle.fd);
file_handle->type = ZEND_HANDLE_FSTREAM;
break;
@@ -286,7 +280,6 @@ ZEND_API int open_file_for_scanning(zend_file_handle *file_handle CLS_DC)
break;
}
case ZEND_HANDLE_FP:
- /* file_handle->opened_path = NULL; */
if (file_handle->handle.fp==stdin) {
file_handle->handle.is = &cin;
} else {
@@ -299,8 +292,6 @@ ZEND_API int open_file_for_scanning(zend_file_handle *file_handle CLS_DC)
break;
}
- file_path = file_handle->filename;
-
if (file_handle->handle.is->fail()) {
delete file_handle->handle.is;
return FAILURE;
@@ -312,6 +303,13 @@ ZEND_API int open_file_for_scanning(zend_file_handle *file_handle CLS_DC)
CG(ZFL) = new ZendFlexLexer;
CG(ZFL)->switch_streams(file_handle->handle.is, &cout);
#endif
+
+ if(file_handle->opened_path) {
+ file_path = file_handle->opened_path;
+ } else {
+ file_path = file_handle->filename;
+ }
+
zend_set_compiled_filename(file_path);
CG(zend_lineno) = 1;
return SUCCESS;