diff options
author | Wez Furlong <wez@php.net> | 2002-03-15 21:03:08 +0000 |
---|---|---|
committer | Wez Furlong <wez@php.net> | 2002-03-15 21:03:08 +0000 |
commit | 0f65280cb5118d8c1a85db6626f7be365f3d1b26 (patch) | |
tree | 931b09acc5041eb771017e3ebf9ecb9aa833d722 /ext/ming/ming.c | |
parent | 3a1ebd4f519facbd7ec769304857aad40e49cf1c (diff) | |
download | php-git-0f65280cb5118d8c1a85db6626f7be365f3d1b26.tar.gz |
New PHP streams...
Diffstat (limited to 'ext/ming/ming.c')
-rw-r--r-- | ext/ming/ming.c | 39 |
1 files changed, 20 insertions, 19 deletions
diff --git a/ext/ming/ming.c b/ext/ming/ming.c index 69bcb57c3a..46d0168c46 100644 --- a/ext/ming/ming.c +++ b/ext/ming/ming.c @@ -28,6 +28,7 @@ #include "ext/standard/info.h" #include "ext/standard/file.h" #include "ext/standard/fsock.h" +#include "php_streams.h" #if HAVE_MING @@ -229,18 +230,18 @@ static SWFInput newSWFInput_sock(int socket) static SWFInput getInput(zval **zfile TSRMLS_DC) { FILE *file; + void * what; int type; SWFInput input; - file = (FILE *) zend_fetch_resource(zfile TSRMLS_CC, -1, "File-Handle", &type, 3, php_file_le_fopen(), php_file_le_popen(), php_file_le_socket()); + what = zend_fetch_resource(zfile TSRMLS_CC, -1, "File-Handle", &type, 1, php_file_le_stream()); - if(type == php_file_le_socket()) - input = newSWFInput_sock(*(int *)file); - else - { - input = newSWFInput_file(file); - zend_list_addref(Z_LVAL_PP(zfile)); + if (!php_stream_cast((php_stream*)what, PHP_STREAM_AS_STDIO_FILE, (void*)&file, REPORT_ERRORS)) { + return NULL; } + + input = newSWFInput_file(file); + zend_list_addref(Z_LVAL_PP(zfile)); zend_list_addref(zend_list_insert(input, le_swfinputp)); @@ -1577,22 +1578,22 @@ PHP_FUNCTION(swfmovie_output) /* }}} */ /* {{{ swfmovie_saveToFile */ -void phpFileOutputMethod(byte b, void *data) +void phpStreamOutputMethod(byte b, void * data) { - fwrite(&b, 1, 1, (FILE *)data); + php_stream_write((php_stream*)data, &b, 1); } PHP_FUNCTION(swfmovie_saveToFile) { zval **x; SWFMovie movie = getMovie(getThis() TSRMLS_CC); - void *what; + php_stream *what; if((ZEND_NUM_ARGS() != 1) || zend_get_parameters_ex(1, &x) == FAILURE) WRONG_PARAM_COUNT; - ZEND_FETCH_RESOURCE(what, FILE *, x, -1,"File-Handle",php_file_le_fopen()); - RETURN_LONG(SWFMovie_output(movie, &phpFileOutputMethod, what)); + ZEND_FETCH_RESOURCE(what, php_stream *, x, -1,"File-Handle",php_file_le_stream()); + RETURN_LONG(SWFMovie_output(movie, &phpStreamOutputMethod, what)); } @@ -1602,29 +1603,29 @@ PHP_FUNCTION(swfmovie_saveToFile) PHP_FUNCTION(swfmovie_save) { zval **x; - FILE *file; long retval; + php_stream * stream; if((ZEND_NUM_ARGS() != 1) || zend_get_parameters_ex(1, &x) == FAILURE) WRONG_PARAM_COUNT; if(Z_TYPE_PP(x) == IS_RESOURCE) { - ZEND_FETCH_RESOURCE(file, FILE *, x, -1,"File-Handle",php_file_le_fopen()); + ZEND_FETCH_RESOURCE(stream, php_stream *, x, -1,"File-Handle",php_file_le_stream()); RETURN_LONG(SWFMovie_output(getMovie(getThis() TSRMLS_CC), - &phpFileOutputMethod, file)); + &phpStreamOutputMethod, stream)); } convert_to_string_ex(x); - file = VCWD_FOPEN(Z_STRVAL_PP(x), "wb"); + stream = php_stream_open_wrapper(Z_STRVAL_PP(x), "wb", REPORT_ERRORS|ENFORCE_SAFE_MODE, NULL, TSRMLS_CC); - if(file == NULL) - php_error(E_ERROR, "couldn't open file %s for writing", Z_STRVAL_PP(x)); + if (stream == NULL) + RETURN_FALSE; retval = SWFMovie_output(getMovie(getThis() TSRMLS_CC), - &phpFileOutputMethod, (void *)file); + &phpStreamOutputMethod, (void *)stream); fclose(file); |