summaryrefslogtreecommitdiff
path: root/source/fitz/buffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/fitz/buffer.c')
-rw-r--r--source/fitz/buffer.c41
1 files changed, 10 insertions, 31 deletions
diff --git a/source/fitz/buffer.c b/source/fitz/buffer.c
index ab814728..d432e810 100644
--- a/source/fitz/buffer.c
+++ b/source/fitz/buffer.c
@@ -331,45 +331,24 @@ fz_append_bits_pad(fz_context *ctx, fz_buffer *buf)
buf->unused_bits = 0;
}
-size_t
+static void fz_append_emit(fz_context *ctx, void *buffer, int c)
+{
+ fz_append_byte(ctx, buffer, c);
+}
+
+void
fz_append_printf(fz_context *ctx, fz_buffer *buffer, const char *fmt, ...)
{
- size_t ret;
va_list args;
va_start(args, fmt);
- ret = fz_append_vprintf(ctx, buffer, fmt, args);
+ fz_format_string(ctx, buffer, fz_append_emit, fmt, args);
va_end(args);
- return ret;
}
-size_t
-fz_append_vprintf(fz_context *ctx, fz_buffer *buffer, const char *fmt, va_list old_args)
+void
+fz_append_vprintf(fz_context *ctx, fz_buffer *buffer, const char *fmt, va_list args)
{
- size_t slack;
- size_t len;
- va_list args;
-
- slack = buffer->cap - buffer->len;
- va_copy(args, old_args);
- len = fz_vsnprintf((char *)buffer->data + buffer->len, slack, fmt, args);
- va_copy_end(args);
-
- /* len is the number of characters in the formatted string (not including
- * the terminating zero), so if (len > slack) the string was truncated. */
- if (len > slack)
- {
- /* Grow the buffer and retry */
- fz_ensure_buffer(ctx, buffer, buffer->len + len);
- slack = buffer->cap - buffer->len;
-
- va_copy(args, old_args);
- len = fz_vsnprintf((char *)buffer->data + buffer->len, slack, fmt, args);
- va_copy_end(args);
- }
-
- buffer->len += len;
-
- return len;
+ fz_format_string(ctx, buffer, fz_append_emit, fmt, args);
}
void