use iconv for non-codeset fileencodings
[nvi.git] / common / conv.h
blobedfe3b5333f023b0be87a01b3975cd7da4876d0d
1 #define F_GB 'A'
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))
6 #define INTUCS(c) (c)
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 KEY_COL(sp, ch) \
13 (INTISWIDE(ch) ? CHAR_WIDTH(sp, ch) : KEY_LEN(sp,ch))
15 struct _conv_win {
16 void *bp1;
17 size_t blen1;
18 void *bp2;
19 size_t blen2;
22 struct _conv {
23 int (*char2int) (SCR *, const char *, ssize_t, struct _conv_win *, size_t *);
24 int (*int2char) (SCR *, const CHAR_T *, ssize_t, struct _conv_win *, size_t *);
25 int (*file2int) (SCR *, const char *, ssize_t, struct _conv_win *, size_t *);
26 int (*int2file) (SCR *, const CHAR_T *, ssize_t, struct _conv_win *, size_t *);
27 int (*int2disp) (SCR *, const CHAR_T *, ssize_t, struct _conv_win *, size_t *);