#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)
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;