#include "mbfilter.h"
#include "mbfilter_ucs2.h"
+static int mbfl_filt_ident_ucs2(int c, mbfl_identify_filter *filter);
+
static const char *mbfl_encoding_ucs2_aliases[] = {"ISO-10646-UCS-2", "UCS2" , "UNICODE", NULL};
const mbfl_encoding mbfl_encoding_ucs2 = {
&vtbl_wchar_ucs2le
};
+const struct mbfl_identify_vtbl vtbl_identify_ucs2 = {
+ mbfl_no_encoding_ucs2,
+ mbfl_filt_ident_common_ctor,
+ mbfl_filt_ident_ucs2
+};
+
+const struct mbfl_identify_vtbl vtbl_identify_ucs2be = {
+ mbfl_no_encoding_ucs2be,
+ mbfl_filt_ident_common_ctor,
+ mbfl_filt_ident_ucs2
+};
+
+const struct mbfl_identify_vtbl vtbl_identify_ucs2le = {
+ mbfl_no_encoding_ucs2le,
+ mbfl_filt_ident_common_ctor,
+ mbfl_filt_ident_ucs2
+};
+
const struct mbfl_convert_vtbl vtbl_ucs2_wchar = {
mbfl_no_encoding_ucs2,
mbfl_no_encoding_wchar,
return c;
}
+
+static int mbfl_filt_ident_ucs2(int c, mbfl_identify_filter *filter)
+{
+ /* Input string must be a multiple of 2 bytes */
+ filter->status = (filter->status + 1) % 2;
+ return c;
+}
extern const mbfl_encoding mbfl_encoding_ucs2;
extern const mbfl_encoding mbfl_encoding_ucs2be;
extern const mbfl_encoding mbfl_encoding_ucs2le;
+extern const struct mbfl_identify_vtbl vtbl_identify_ucs2;
+extern const struct mbfl_identify_vtbl vtbl_identify_ucs2be;
+extern const struct mbfl_identify_vtbl vtbl_identify_ucs2le;
extern const struct mbfl_convert_vtbl vtbl_ucs2_wchar;
extern const struct mbfl_convert_vtbl vtbl_wchar_ucs2;
extern const struct mbfl_convert_vtbl vtbl_ucs2be_wchar;