-#include <yaz/yaz-util.h>
-
-unsigned long yaz_marc8_1_conv(unsigned char *inp, size_t inbytesleft,
- size_t *no_read, int *combining);
-unsigned long yaz_marc8_2_conv(unsigned char *inp, size_t inbytesleft,
- size_t *no_read, int *combining);
-unsigned long yaz_marc8_3_conv(unsigned char *inp, size_t inbytesleft,
- size_t *no_read, int *combining);
-unsigned long yaz_marc8_4_conv(unsigned char *inp, size_t inbytesleft,
- size_t *no_read, int *combining);
-unsigned long yaz_marc8_5_conv(unsigned char *inp, size_t inbytesleft,
- size_t *no_read, int *combining);
-unsigned long yaz_marc8_6_conv(unsigned char *inp, size_t inbytesleft,
- size_t *no_read, int *combining);
-unsigned long yaz_marc8_7_conv(unsigned char *inp, size_t inbytesleft,
- size_t *no_read, int *combining);
-unsigned long yaz_marc8_8_conv(unsigned char *inp, size_t inbytesleft,
- size_t *no_read, int *combining);
-unsigned long yaz_marc8_9_conv(unsigned char *inp, size_t inbytesleft,
- size_t *no_read, int *combining);
-
-
-unsigned long yaz_marc8r_1_conv(unsigned char *inp, size_t inbytesleft,
- size_t *no_read, int *combining);
-unsigned long yaz_marc8r_2_conv(unsigned char *inp, size_t inbytesleft,
- size_t *no_read, int *combining);
-unsigned long yaz_marc8r_3_conv(unsigned char *inp, size_t inbytesleft,
- size_t *no_read, int *combining);
-unsigned long yaz_marc8r_4_conv(unsigned char *inp, size_t inbytesleft,
- size_t *no_read, int *combining);
-unsigned long yaz_marc8r_5_conv(unsigned char *inp, size_t inbytesleft,
- size_t *no_read, int *combining);
-unsigned long yaz_marc8r_6_conv(unsigned char *inp, size_t inbytesleft,
- size_t *no_read, int *combining);
-unsigned long yaz_marc8r_7_conv(unsigned char *inp, size_t inbytesleft,
- size_t *no_read, int *combining);
-unsigned long yaz_marc8r_8_conv(unsigned char *inp, size_t inbytesleft,
- size_t *no_read, int *combining);
-unsigned long yaz_marc8r_9_conv(unsigned char *inp, size_t inbytesleft,
- size_t *no_read, int *combining);
+#include <yaz/xmalloc.h>
+#include <yaz/nmem.h>
+#include <yaz/snprintf.h>
+#include "iconv-p.h"
+
+typedef unsigned long yaz_conv_func_t(unsigned char *inp, size_t inbytesleft,
+ size_t *no_read, int *combining,
+ unsigned mask, int boffset);
+
+
+yaz_conv_func_t yaz_marc8_42_conv;
+yaz_conv_func_t yaz_marc8_45_conv;
+yaz_conv_func_t yaz_marc8_67_conv;
+yaz_conv_func_t yaz_marc8_62_conv;
+yaz_conv_func_t yaz_marc8_70_conv;
+yaz_conv_func_t yaz_marc8_32_conv;
+yaz_conv_func_t yaz_marc8_4E_conv;
+yaz_conv_func_t yaz_marc8_51_conv;
+yaz_conv_func_t yaz_marc8_33_conv;
+yaz_conv_func_t yaz_marc8_34_conv;
+yaz_conv_func_t yaz_marc8_53_conv;
+yaz_conv_func_t yaz_marc8_31_conv;
+
+yaz_conv_func_t yaz_marc8r_42_conv;
+yaz_conv_func_t yaz_marc8r_45_conv;
+yaz_conv_func_t yaz_marc8r_67_conv;
+yaz_conv_func_t yaz_marc8r_62_conv;
+yaz_conv_func_t yaz_marc8r_70_conv;
+yaz_conv_func_t yaz_marc8r_32_conv;
+yaz_conv_func_t yaz_marc8r_4E_conv;
+yaz_conv_func_t yaz_marc8r_51_conv;
+yaz_conv_func_t yaz_marc8r_33_conv;
+yaz_conv_func_t yaz_marc8r_34_conv;
+yaz_conv_func_t yaz_marc8r_53_conv;
+yaz_conv_func_t yaz_marc8r_31_conv;