現状は以下な感じ。
typedef struct imode_emoji_t imode_emoji_t;
struct imode_emoji_t {
char hex1byte;
char hex2byte;
char *string;
char *description;
};
typedef struct ezweb_emoji_t ezweb_emoji_t;
struct ezweb_emoji_t {
char *typeA;
char *typeB;
char *typeC;
char *typeD;
};
typedef struct jphone_emoji_t jphone_emoji_t;
struct jphone_emoji_t {
char *string;
};
typedef struct emoji_t emoji_t;
struct emoji_t {
struct emoji_t *next;
int no;
imode_emoji_t *imode;
ezweb_emoji_t *ezweb;
jphone_emoji_t *jphone;
};
で、imode_tはSJIS、EUC-JP、UTF-8に対応したいので、それぞれの文字コードを記憶しておくために、SJIS用データ、EUC-JP用データ、UTF-8用データ記憶領域を追加。
typedef struct imode_emoji_t {後に比較しやすいように文字列でも持っておく。
char *sjis_hex_string;
char *sjis_dec_string;
char sjis_hex[2];
char *euc_hex_string;
char *euc_dec_string;
char euc_hex[3];
char *utf8_hex_string;
char *utf8_dec_string;
char utf8_hex[2];
char *description;
} imode_emoji_t;
EzWeb用は、SJISとUTF-8用記憶領域があればよいので、
typedef struct ezweb_type_t {
char *sjis_hex_string;
char *sjis_dec_string;
char sjis_hex[2];
char *utf8_hex_string;
char *utf8_dec_string;
char utf8_hex[2];
} ezweb_type_t;
typedef struct ezweb_emoji_t {
ezweb_type_t typeA;
ezweb_type_t typeB;
ezweb_type_t typeC;
ezweb_type_t typeD;
} ezweb_emoji_t;
といった感じかな。
SoftBankも同様にSJISとUTF8を保持するので、
typedef struct softbank_emoji_t {
char *sjis_hex_string;
char *sjis_dec_string;
char sjis_hex[6];
char *utf8_hex_string;
char *utf8_dec_string;
char utf8_hex[2];
} softbank_emoji_t;
といった感じ。この機会にjphoneはsoftbankに変えとこう。
で、何か似た感じなので共通化して、念のためにそれぞれの絵文字番号も入れて最終的には以下の感じ。
typedef struct emoji_data_t {
char *hex_string;
char *dec_string;
char hex[6];
} emoji_data_t;
typedef struct imode_emoji_t {
emoji_data_t sjis;
emoji_data_t euc;
emoji_data_t utf8;
char *description;
} imode_emoji_t;
typedef struct ezweb_type_t {
int no;
emoji_data_t sjis;
emoji_data_t utf8;
} ezweb_type_t;
typedef struct ezweb_emoji_t {
ezweb_type_t typeA;
ezweb_type_t typeB;
ezweb_type_t typeC;
ezweb_type_t typeD;
} ezweb_emoji_t;
typedef struct softbank_emoji_t {
int no;
emoji_data_t sjis;
emoji_data_t utf8;
} softbank_emoji_t;
typedef struct emoji_t {
struct emoji_t *next;
int no;
imode_emoji_t imode;
ezweb_emoji_t ezweb;
softbank_emoji_t softbank;
} emoji_t;
で完成。
0 コメント:
コメントを投稿