changeset 7042:dcbf6afdf931 HEAD

Define unichars array type and use it for uni_utf8_to_ucs4() output.
author Timo Sirainen <tss@iki.fi>
date Thu, 27 Dec 2007 22:56:25 +0200
parents cc70ab74f4f3
children 7708a8c166d6
files src/lib/unichar.c src/lib/unichar.h
diffstat 2 files changed, 5 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib/unichar.c	Thu Dec 27 22:51:28 2007 +0200
+++ b/src/lib/unichar.c	Thu Dec 27 22:56:25 2007 +0200
@@ -1,7 +1,7 @@
 /* Copyright (c) 2005-2007 Dovecot authors, see the included COPYING file */
 
 #include "lib.h"
-#include "buffer.h"
+#include "array.h"
 #include "bsearch-insert-pos.h"
 #include "unichar.h"
 
@@ -93,7 +93,7 @@
 	return ret;
 }
 
-int uni_utf8_to_ucs4(const char *input, buffer_t *output)
+int uni_utf8_to_ucs4(const char *input, ARRAY_TYPE(unichars) *output)
 {
 	unichar_t chr;
 
@@ -104,7 +104,7 @@
 		}
                 input += uni_utf8_char_bytes(*input);
 
-		buffer_append(output, &chr, sizeof(chr));
+		array_append(output, &chr, 1);
 	}
 	return 0;
 }
--- a/src/lib/unichar.h	Thu Dec 27 22:51:28 2007 +0200
+++ b/src/lib/unichar.h	Thu Dec 27 22:56:25 2007 +0200
@@ -2,6 +2,7 @@
 #define UNICHAR_H
 
 typedef uint32_t unichar_t;
+ARRAY_DEFINE_TYPE(unichars, unichar_t);
 
 extern const uint8_t *const uni_utf8_non1_bytes;
 
@@ -9,7 +10,7 @@
 unsigned int uni_strlen(const unichar_t *str);
 /* Translates UTF-8 input to UCS-4 output. Returns 0 if ok, -1 if input was
    invalid */
-int uni_utf8_to_ucs4(const char *input, buffer_t *output);
+int uni_utf8_to_ucs4(const char *input, ARRAY_TYPE(unichars) *output);
 /* Translates UCS-4 input to UTF-8 output. */
 void uni_ucs4_to_utf8(const unichar_t *input, size_t len, buffer_t *output);
 void uni_ucs4_to_utf8_c(unichar_t chr, buffer_t *output);