xref: /minix3/external/bsd/nvi/dist/common/conv.h (revision 84d9c625bfea59e274550651111ae9edfdc40fbd)
1 /*	$NetBSD: conv.h,v 1.2 2013/11/22 15:52:05 christos Exp $	*/
2 #define KEY_COL(sp, ch)							\
3 	(INTISWIDE(ch) ? 						\
4 	    (CHAR_WIDTH(sp, ch) >= 0) ?					\
5 	       (size_t)CHAR_WIDTH(sp, ch) : 1 /* extra space */		\
6 	    : KEY_LEN(sp,ch))
7 
8 struct _conv_win {
9     void    *bp1;
10     size_t   blen1;
11 };
12 
13 typedef int (*char2wchar_t)
14     (SCR *, const char *, ssize_t, struct _conv_win *, size_t *, const CHAR_T **);
15 typedef int (*wchar2char_t)
16     (SCR *, const CHAR_T *, ssize_t, struct _conv_win *, size_t *, const char **);
17 
18 struct _conv {
19 	char2wchar_t	sys2int;
20 	wchar2char_t	int2sys;
21 	char2wchar_t	file2int;
22 	wchar2char_t	int2file;
23 	char2wchar_t	input2int;
24 	wchar2char_t	int2disp;
25 };
26 void conv_init __P((SCR *, SCR *));
27 int conv_enc __P((SCR *, int, const char *));
28