Big changes, seems that 1.2.0 wasn't commited, here is 1.3.0, Daniel
diff --git a/include/libxml/encoding.h b/include/libxml/encoding.h
index 3c5cee0..227abaf 100644
--- a/include/libxml/encoding.h
+++ b/include/libxml/encoding.h
@@ -25,6 +25,9 @@
extern "C" {
#endif
+/**
+ * Predefined values for some standard encodings
+ */
typedef enum {
XML_CHAR_ENCODING_ERROR= -1, /* No char encoding detected */
XML_CHAR_ENCODING_NONE= 0, /* No char encoding detected */
@@ -51,8 +54,57 @@
XML_CHAR_ENCODING_EUC_JP= 21,/* EUC-JP */
} xmlCharEncoding;
-extern xmlCharEncoding xmlDetectCharEncoding(const unsigned char* in);
-extern xmlCharEncoding xmlParseCharEncoding(const char* name);
+/**
+ * xmlCharEncodingInputFunc:
+ * @out: a pointer ot an array of bytes to store the UTF-8 result
+ * @outlen: the lenght of @out
+ * @in: a pointer ot an array of chars in the original encoding
+ * @inlen: the lenght of @in
+ *
+ * Take a block of chars in the original encoding and try to convert
+ * it to an UTF-8 block of chars out.
+ *
+ * Returns the number of byte written, or -1 by lack of space.
+ */
+typedef int (* xmlCharEncodingInputFunc)(unsigned char* out, int outlen,
+ unsigned char* in, int inlen);
+
+
+/**
+ * xmlCharEncodingInputFunc:
+ * @out: a pointer ot an array of bytes to store the result
+ * @outlen: the lenght of @out
+ * @in: a pointer ot an array of UTF-8 chars
+ * @inlen: the lenght of @in
+ *
+ * Take a block of UTF-8 chars in and try to convert it to an other
+ * encoding.
+ *
+ * Returns the number of byte written, or -1 by lack of space, or -2
+ * if the transcoding failed.
+ */
+typedef int (* xmlCharEncodingOutputFunc)(unsigned char* out, int outlen,
+ unsigned char* in, int inlen);
+
+/*
+ * Block defining the handlers for non UTF-8 encodings.
+ */
+
+typedef struct xmlCharEncodingHandler {
+ char *name;
+ xmlCharEncodingInputFunc input;
+ xmlCharEncodingOutputFunc output;
+} xmlCharEncodingHandler;
+typedef xmlCharEncodingHandler *xmlCharEncodingHandlerPtr;
+
+void xmlRegisterCharEncodingHandler(xmlCharEncodingHandlerPtr handler);
+xmlCharEncodingHandlerPtr xmlGetCharEncodingHandler(xmlCharEncoding enc);
+xmlCharEncodingHandlerPtr xmlFindCharEncodingHandler(const char *name);
+
+xmlCharEncoding xmlDetectCharEncoding(const unsigned char* in);
+xmlCharEncoding xmlParseCharEncoding(const char* name);
+
+void xmlInitCharEncodingHandlers(void);
#ifdef __cplusplus
}