-typedef struct chrmaptab
-{
- chr_t_entry *input; /* mapping table for input data */
- chr_t_entry *query_equiv; /* mapping table for queries */
- unsigned char *output[256]; /* return mapping - for display of registers */
- int base_uppercase; /* Start of upper-case ordinals */
-} chrmaptab, *CHRMAPTAB;
-
-chrmaptab *chr_read_maptab(char *name);
-int chr_map_chrs(chr_t_entry *t, char **from, int len, int *read, char **to,
- int max);
-char **chr_map_input(chr_t_entry *t, char **from, int len);
+typedef struct chrmaptab_info *chrmaptab;
+
+YAZ_EXPORT chrmaptab chrmaptab_create(const char *tabpath, const char *name,
+ int map_only, const char *tabroot);
+YAZ_EXPORT void chrmaptab_destroy (chrmaptab tab);
+
+YAZ_EXPORT const char **chr_map_input(chrmaptab t, const char **from, int len);
+YAZ_EXPORT const char **chr_map_input_x(chrmaptab t,
+ const char **from, int *len);
+YAZ_EXPORT const char **chr_map_input_q(chrmaptab maptab,
+ const char **from, int len,
+ const char **qmap);
+
+YAZ_EXPORT const char *chr_map_output(chrmaptab t, const char **from, int len);
+
+YAZ_EXPORT unsigned char zebra_prim(char **s);
+
+#ifdef __cplusplus
+}
+#endif