aboutsummaryrefslogtreecommitdiffstats
path: root/libwc/wtf.h
diff options
context:
space:
mode:
Diffstat (limited to 'libwc/wtf.h')
-rw-r--r--libwc/wtf.h80
1 files changed, 80 insertions, 0 deletions
diff --git a/libwc/wtf.h b/libwc/wtf.h
new file mode 100644
index 0000000..ad47973
--- /dev/null
+++ b/libwc/wtf.h
@@ -0,0 +1,80 @@
+
+#ifndef _WC_WTF_H
+#define _WC_WTF_H
+
+#define WTF_C_CS94 0x80
+#define WTF_C_CS94W 0x81
+#define WTF_C_CS96 0x82
+#define WTF_C_CS96W 0x83 /* reserved */
+#define WTF_C_CS942 0x84
+#define WTF_C_UNKNOWN 0x85
+#define WTF_C_PCS 0x86
+#define WTF_C_PCSW 0x87
+#define WTF_C_WCS16 0x88
+#define WTF_C_WCS16W 0x89
+#define WTF_C_WCS32 0x8A
+#define WTF_C_WCS32W 0x8B
+
+#define WTF_C_COMB 0x10
+#define WTF_C_CS94_C (WTF_C_CS94|WTF_C_COMB) /* reserved */
+#define WTF_C_CS94W_C (WTF_C_CS94W|WTF_C_COMB) /* reserved */
+#define WTF_C_CS96_C (WTF_C_CS96|WTF_C_COMB) /* reserved */
+#define WTF_C_CS96W_C (WTF_C_CS96W|WTF_C_COMB) /* reserved */
+#define WTF_C_CS942_C (WTF_C_CS942|WTF_C_COMB) /* reserved */
+#define WTF_C_PCS_C (WTF_C_PCS|WTF_C_COMB)
+#define WTF_C_PCSW_C (WTF_C_PCSW|WTF_C_COMB) /* reserved */
+#define WTF_C_WCS16_C (WTF_C_WCS16|WTF_C_COMB)
+#define WTF_C_WCS16W_C (WTF_C_WCS16W|WTF_C_COMB) /* reserved */
+#define WTF_C_WCS32_C (WTF_C_WCS32|WTF_C_COMB) /* reserved */
+#define WTF_C_WCS32W_C (WTF_C_WCS32W|WTF_C_COMB) /* reserved */
+
+#define WTF_C_UNDEF0 0x8C
+#define WTF_C_UNDEF1 0x8D
+#define WTF_C_UNDEF2 0x8E
+#define WTF_C_UNDEF3 0x8F
+#define WTF_C_UNDEF4 0x9C
+#define WTF_C_UNDEF5 0x9D
+#define WTF_C_UNDEF6 0x9E
+#define WTF_C_UNDEF7 0x9F
+#define WTF_C_NBSP 0xA0
+
+#define WTF_TYPE_ASCII 0x0
+#define WTF_TYPE_CTRL 0x1
+#define WTF_TYPE_WCHAR1 0x2
+#define WTF_TYPE_WCHAR2 0x4
+#define WTF_TYPE_WIDE 0x8
+#define WTF_TYPE_UNKNOWN 0x10
+#define WTF_TYPE_UNDEF 0x20
+#define WTF_TYPE_WCHAR1W (WTF_TYPE_WCHAR1|WTF_TYPE_WIDE)
+#define WTF_TYPE_WCHAR2W (WTF_TYPE_WCHAR2|WTF_TYPE_WIDE)
+
+extern wc_uint8 WTF_WIDTH_MAP[];
+extern wc_uint8 WTF_LEN_MAP[];
+extern wc_uint8 WTF_TYPE_MAP[];
+extern wc_ccs wtf_gr_ccs;
+
+extern void wtf_init(wc_ces ces1, wc_ces ces2);
+
+/* extern int wtf_width(wc_uchar *p); */
+#define wtf_width(p) (WcOption.use_wide ? (int)WTF_WIDTH_MAP[(wc_uchar)*(p)] \
+ : ((int)WTF_WIDTH_MAP[(wc_uchar)*(p)] ? 1 : 0))
+extern int wtf_strwidth(wc_uchar *p);
+/* extern size_t wtf_len1(wc_uchar *p); */
+#define wtf_len1(p) ((int)WTF_LEN_MAP[(wc_uchar)*(p)])
+extern size_t wtf_len(wc_uchar *p);
+/* extern int wtf_type(wc_uchar *p); */
+#define wtf_type(p) WTF_TYPE_MAP[(wc_uchar)*(p)]
+
+extern void wtf_push(Str os, wc_ccs ccs, wc_uint32 code);
+extern void wtf_push_unknown(Str os, wc_uchar *p, size_t len);
+extern wc_wchar_t wtf_parse(wc_uchar **p);
+extern wc_wchar_t wtf_parse1(wc_uchar **p);
+
+extern wc_ccs wtf_get_ccs(wc_uchar *p);
+extern wc_uint32 wtf_get_code(wc_uchar *p);
+
+extern wc_bool wtf_is_hangul(wc_uchar *p);
+
+extern char *wtf_conv_fit(char *s, wc_ces ces);
+
+#endif