X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=gedcom%2Fencoding.h;h=93f69863562cedba392b94916e5673b0af810e37;hb=246182eba8a18f8d644d0a3ef9556000fae12aa1;hp=d4bd632d9aaeef6800f51da8321429bf63f61b84;hpb=fffe9618ff8a5cfcac207f231b531615dfb0e38f;p=gedcom-parse.git diff --git a/gedcom/encoding.h b/gedcom/encoding.h index d4bd632..93f6986 100644 --- a/gedcom/encoding.h +++ b/gedcom/encoding.h @@ -25,18 +25,31 @@ #ifndef __ENCODING_H #define __ENCODING_H -typedef enum _ENC { - ONE_BYTE = 0, - TWO_BYTE_HILO = 1, - TWO_BYTE_LOHI = 2 -} ENCODING; +#include "gedcom.h" +#include "utf8tools.h" + +#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; -int open_conv_to_internal(const char* fromcode); -void close_conv_to_internal(); -char* to_internal(const char* str, size_t len, - char* output_buffer, size_t out_len); void init_encodings(); -void set_encoding_width(ENCODING enc); +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 set_encoding_width(Encoding enc); +void set_encoding_bom(Enc_bom bom); +void set_encoding_terminator(char* term); + #endif /* __ENCODING_H */