php_stream replacement for fprintf

#Agreed by Wez - I will use this mysel soon.
This commit is contained in:
Marcus Boerger 2002-11-06 00:15:24 +00:00
parent 64f77577f0
commit 1f0b200188
2 changed files with 23 additions and 0 deletions

View file

@ -347,6 +347,10 @@ PHPAPI size_t _php_stream_write(php_stream *stream, const char *buf, size_t coun
#define php_stream_write_string(stream, str) _php_stream_write(stream, str, strlen(str) TSRMLS_CC)
#define php_stream_write(stream, buf, count) _php_stream_write(stream, (buf), (count) TSRMLS_CC)
PHPAPI size_t _php_stream_printf(php_stream *stream TSRMLS_DC, const char *fmt, ...);
/* php_stream_printf macro & function require TSRMLS_CC */
#define php_stream_printf _php_stream_printf
PHPAPI int _php_stream_eof(php_stream *stream TSRMLS_DC);
#define php_stream_eof(stream) _php_stream_eof((stream) TSRMLS_CC)

View file

@ -825,6 +825,25 @@ PHPAPI size_t _php_stream_write(php_stream *stream, const char *buf, size_t coun
return didwrite;
}
PHPAPI size_t _php_stream_printf(php_stream *stream TSRMLS_DC, const char *fmt, ...)
{
size_t count;
char *buf;
va_list ap;
va_start(ap, fmt);
count = vspprintf(&buf, 0, fmt, ap);
va_end(ap);
if (!buf)
return 0; /* error condition */
count = php_stream_write(stream, buf, count);
efree(buf);
return count;
}
PHPAPI off_t _php_stream_tell(php_stream *stream TSRMLS_DC)
{
return stream->position;