From 3b276ac7be6e4935e771f6ac46f91c73144594dc Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Wed, 31 Oct 2012 19:01:50 +0100 Subject: Add fz_write_buffer_rune to append a utf-8 character to a buffer. --- fitz/fitz-internal.h | 2 ++ fitz/stm_buffer.c | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/fitz/fitz-internal.h b/fitz/fitz-internal.h index 76a3e774..043449db 100644 --- a/fitz/fitz-internal.h +++ b/fitz/fitz-internal.h @@ -617,6 +617,8 @@ void fz_write_buffer(fz_context *ctx, fz_buffer *buf, unsigned char *data, int l void fz_write_buffer_byte(fz_context *ctx, fz_buffer *buf, int val); +void fz_write_buffer_rune(fz_context *ctx, fz_buffer *buf, int val); + void fz_write_buffer_bits(fz_context *ctx, fz_buffer *buf, int val, int bits); void fz_write_buffer_pad(fz_context *ctx, fz_buffer *buf); diff --git a/fitz/stm_buffer.c b/fitz/stm_buffer.c index 8445ebc9..42a40584 100644 --- a/fitz/stm_buffer.c +++ b/fitz/stm_buffer.c @@ -124,6 +124,17 @@ void fz_write_buffer_byte(fz_context *ctx, fz_buffer *buf, int val) buf->unused_bits = 0; } +void fz_write_buffer_rune(fz_context *ctx, fz_buffer *buf, int c) +{ + char data[10]; + int len = fz_runetochar(data, c); + if (buf->len + len > buf->cap) + fz_ensure_buffer(ctx, buf, buf->len + len); + memcpy(buf->data + buf->len, data, len); + buf->len += len; + buf->unused_bits = 0; +} + void fz_write_buffer_bits(fz_context *ctx, fz_buffer *buf, int val, int bits) { int shift; -- cgit v1.2.3