X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=gedcom%2Fencoding.h;h=93f69863562cedba392b94916e5673b0af810e37;hb=246182eba8a18f8d644d0a3ef9556000fae12aa1;hp=e80616f5923333dc90cbe92bf127d43bcc05e7e7;hpb=c2279cc3a34d2af7067e771e0c0b9698602c3fab;p=gedcom-parse.git diff --git a/gedcom/encoding.h b/gedcom/encoding.h index e80616f..93f6986 100644 --- a/gedcom/encoding.h +++ b/gedcom/encoding.h @@ -25,19 +25,31 @@ #ifndef __ENCODING_H #define __ENCODING_H -#include "utf8.h" +#include "gedcom.h" +#include "utf8tools.h" -typedef enum _ENC { - ONE_BYTE = 0, - TWO_BYTE_HILO = 1, - TWO_BYTE_LOHI = 2 -} ENCODING; +#define MAX_CHARSET_LEN 32 +#define MAX_TERMINATOR_LEN 2 + +struct encoding_state { + char charset[MAX_CHARSET_LEN + 1]; + const char* encoding; + Encoding width; + Enc_bom bom; + char terminator[MAX_TERMINATOR_LEN + 1]; +}; + +struct encoding_state read_encoding; + +void init_encodings(); +char* get_encoding(const char* gedcom_n, Encoding enc); +void update_gconv_search_path(); int open_conv_to_internal(const char* fromcode); void close_conv_to_internal(); char* to_internal(const char* str, size_t len, struct conv_buffer *output_buf); -void init_encodings(); -void set_encoding_width(ENCODING enc); -void update_gconv_search_path(); +void set_encoding_width(Encoding enc); +void set_encoding_bom(Enc_bom bom); +void set_encoding_terminator(char* term); #endif /* __ENCODING_H */