diff options
Diffstat (limited to 'Zend/zend_stream.c')
-rw-r--r-- | Zend/zend_stream.c | 142 |
1 files changed, 0 insertions, 142 deletions
diff --git a/Zend/zend_stream.c b/Zend/zend_stream.c deleted file mode 100644 index 1e550244e0..0000000000 --- a/Zend/zend_stream.c +++ /dev/null @@ -1,142 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) 1998-2005 Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Wez Furlong <wez@thebrainroom.com> | - +----------------------------------------------------------------------+ -*/ - -/* $Id$ */ - - -#include "zend.h" -#include "zend_compile.h" - -ZEND_DLIMPORT int isatty(int fd); - -static size_t zend_stream_stdio_reader(void *handle, char *buf, size_t len TSRMLS_DC) -{ - return fread(buf, 1, len, (FILE*)handle); -} - -static void zend_stream_stdio_closer(void *handle TSRMLS_DC) -{ - if ((FILE*)handle != stdin) - fclose((FILE*)handle); -} - -static long zend_stream_stdio_fteller(void *handle TSRMLS_DC) -{ - return ftell((FILE*) handle); -} - - -ZEND_API int zend_stream_open(const char *filename, zend_file_handle *handle TSRMLS_DC) -{ - if (zend_stream_open_function) { - return zend_stream_open_function(filename, handle TSRMLS_CC); - } - handle->type = ZEND_HANDLE_FP; - handle->opened_path = NULL; - handle->handle.fp = zend_fopen(filename, &handle->opened_path); - handle->filename = (char *)filename; - handle->free_filename = 0; - - return (handle->handle.fp) ? SUCCESS : FAILURE; -} - -ZEND_API int zend_stream_fixup(zend_file_handle *file_handle TSRMLS_DC) -{ - switch (file_handle->type) { - case ZEND_HANDLE_FILENAME: - if (FAILURE == zend_stream_open(file_handle->filename, file_handle TSRMLS_CC)) { - return FAILURE; - } - break; - - case ZEND_HANDLE_FD: - file_handle->handle.fp = fdopen(file_handle->handle.fd, "rb"); - file_handle->type = ZEND_HANDLE_FP; - break; - - case ZEND_HANDLE_FP: - file_handle->handle.fp = file_handle->handle.fp; - break; - - case ZEND_HANDLE_STREAM: - /* nothing to do */ - return SUCCESS; - - default: - return FAILURE; - } - if (file_handle->type == ZEND_HANDLE_FP) { - if (!file_handle->handle.fp) { - return FAILURE; - } - - /* make compatible with stream */ - file_handle->handle.stream.handle = file_handle->handle.fp; - file_handle->handle.stream.reader = zend_stream_stdio_reader; - file_handle->handle.stream.closer = zend_stream_stdio_closer; - file_handle->handle.stream.fteller = zend_stream_stdio_fteller; - - file_handle->handle.stream.interactive = isatty(fileno((FILE *)file_handle->handle.stream.handle)); - } - return SUCCESS; -} - -ZEND_API size_t zend_stream_read(zend_file_handle *file_handle, char *buf, size_t len TSRMLS_DC) -{ - if (file_handle->handle.stream.interactive) { - int c = '*'; - size_t n; - -#ifdef NETWARE - /* - c != 4 check is there as fread of a character in NetWare LibC gives 4 upon ^D character. - Ascii value 4 is actually EOT character which is not defined anywhere in the LibC - or else we can use instead of hardcoded 4. - */ - for ( n = 0; n < len && (c = zend_stream_getc( file_handle TSRMLS_CC)) != EOF && c != 4 && c != '\n'; ++n ) -#else - for ( n = 0; n < len && (c = zend_stream_getc( file_handle TSRMLS_CC)) != EOF && c != '\n'; ++n ) -#endif - buf[n] = (char) c; - if ( c == '\n' ) - buf[n++] = (char) c; - - return n; - } - return file_handle->handle.stream.reader(file_handle->handle.stream.handle, buf, len TSRMLS_CC); -} - -ZEND_API int zend_stream_getc(zend_file_handle *file_handle TSRMLS_DC) -{ - char buf; - - if (file_handle->handle.stream.reader(file_handle->handle.stream.handle, &buf, sizeof(buf) TSRMLS_CC)) { - return (int)buf; - } - return EOF; -} - -ZEND_API int zend_stream_ferror(zend_file_handle *file_handle TSRMLS_DC) -{ - return 0; -} - -ZEND_API long zend_stream_ftell(zend_file_handle *file_handle TSRMLS_DC) -{ - return file_handle->handle.stream.fteller(file_handle->handle.stream.handle TSRMLS_CC); -} |