3 #define INT9494(f,r,c) ((f) << 16) | ((r) << 8) | (c)
4 #define INTIS9494(c) !!(((c) >> 16) & 0x7F)
5 #define INTISUCS(c) ((c & ~0x7F) && !(((c) >> 16) & 0x7F))
7 #define INT9494F(c) ((c) >> 16) & 0x7F
8 #define INT9494R(c) ((c) >> 8) & 0x7F
9 #define INT9494C(c) (c) & 0x7F
10 #define INTILL(c) (1 << 23) | (c)
12 #define INTISWIDE(c) (!!(c >> 8))
13 #define CHAR_WIDTH(sp, ch) \
14 (INTISUCS(ch) && ucswidth(ch) > 0 ? ucswidth(ch) : INTISWIDE(ch) ? 2 : 1)
16 #define INTISWIDE(c) 0
17 #define CHAR_WIDTH(sp, ch) 1
20 #define KEY_COL(sp, ch) \
21 (INTISWIDE(ch) ? CHAR_WIDTH(sp, ch) : KEY_LEN(sp,ch))
27 int (*char2int
) (struct _conv
*, const char *, ssize_t
, CHAR_T
**, size_t *, size_t *);
28 int (*int2char
) (struct _conv
*, const CHAR_T
*, ssize_t
, char **, size_t *, size_t *);
29 int (*file2int
) (struct _conv
*, const char *, ssize_t
, CHAR_T
**, size_t *, size_t *);
30 int (*int2file
) (struct _conv
*, const CHAR_T
*, ssize_t
, char **, size_t *, size_t *);
31 int (*int2disp
) (struct _conv
*, const CHAR_T
*, ssize_t
, char **, size_t *, size_t *);