From: Zeev Suraski Date: Wed, 28 Apr 1999 23:18:57 +0000 (+0000) Subject: Make the C++ scanner support interactive input X-Git-Tag: BEFORE_PHP4_APACHE_MODULE_CHANGE~124 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d90ea1a1365200356febd45f07702e58c2040ac5;p=php Make the C++ scanner support interactive input --- diff --git a/Zend/zend-scanner.l b/Zend/zend-scanner.l index aa50dd62e4..ce76c75e50 100644 --- a/Zend/zend-scanner.l +++ b/Zend/zend-scanner.l @@ -170,8 +170,24 @@ ZEND_API inline int open_file_for_scanning(zend_file_handle *file_handle CLS_DC) yyin = tmp; yy_switch_to_buffer(yy_create_buffer(yyin, YY_BUF_SIZE)); BEGIN(INITIAL); - #else - ifstream *input_file = new ifstream(file_handle->filename); +#else + ifstream *input_file; + + switch (file_handle->type) { + case ZEND_HANDLE_FD: + input_file = new ifstream(file_handle->handle.fd); + break; + case ZEND_HANDLE_FILENAME: + input_file = new ifstream(file_handle->filename); + break; + case ZEND_HANDLE_FP: + if (file_handle->handle.fp==stdin) { + input_file = (ifstream *) &cin; + } else { + input_file = new ifstream(file_handle->filename); + } + break; + } CG(ZFL) = new ZendFlexLexer; CG(ZFL)->switch_streams(input_file, &cout);