Hide the implementation of some types.
[gedcom-parse.git] / utf8 / utf8.h
index e2a6f3b61ff2acc75c0c019eb333d799fa179738..131dfbc3d245b6706ec23d207ec752a2fdc6b675 100644 (file)
 extern "C" {
 #endif
 
-#include "iconv.h"
-
-struct conv_buffer {
-  char*   buffer;
-  size_t  size;
-  int     type;  /* For internal use */
-};
-
-struct convert {
-  iconv_t from_utf8;
-  iconv_t to_utf8;
-  struct conv_buffer* inbuf;
-  size_t  insize;
-  struct conv_buffer* outbuf;
-  char*   unknown;
-};
+#include <sys/types.h>
 
+struct conv_buffer;
+struct convert;
+typedef struct conv_buffer *conv_buffer_t;
 typedef struct convert *convert_t;
 
   /* Returns -1 if the string is not a valid UTF-8 string, returns its
@@ -43,15 +31,15 @@ int   utf8_strlen(const char* input);
 int   is_utf8_string(const char* input);
 
   /* Functions for creating and freeing conversion buffers yourself */
-struct conv_buffer* create_conv_buffer(int size);
-void free_conv_buffer(struct conv_buffer* buf);
+conv_buffer_t create_conv_buffer(int size);
+void free_conv_buffer(conv_buffer_t buf);
   
   /* General conversion interface (is bidirectional) */
   /* Pass 0 for external_outbuf unless you want to control the
      output buffer yourself */
 convert_t initialize_utf8_conversion(const char* charset, int external_outbuf);
 int   conversion_set_unknown(convert_t conv, const char* unknown);
-int   conversion_set_output_buffer(convert_t conv, struct conv_buffer* buf);
+int   conversion_set_output_buffer(convert_t conv, conv_buffer_t buf);
 void  cleanup_utf8_conversion(convert_t conv);
 char* convert_from_utf8(convert_t conv, const char* input, int* conv_fails);
 char* convert_to_utf8(convert_t conv, const char* input);