about summary refs log tree commit diff stats
path: root/WWW/Library/Implementation/UCAux.h
blob: 3e574a1d5dbd6748e47bc92252214628845b27e3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
/*
 * $LynxId: UCAux.h,v 1.22 2014/12/10 09:48:41 tom Exp $
 */
#ifndef UCAUX_H
#define UCAUX_H

#ifndef HTUTILS_H
#include <HTUtils.h>
#endif

#ifndef UCDEFS_H
#include <UCDefs.h>
#endif /* UCDEFS_H */

#ifndef HTSTREAM_H
#include <HTStream.h>
#endif /* HTSTREAM_H */

#ifndef UCMAP_H
#include <UCMap.h>
#endif /* UCMAP_H */

#ifdef __cplusplus
extern "C" {
#endif
    extern BOOL UCCanUniTranslateFrom(int from);
    extern BOOL UCCanTranslateUniTo(int to);
    extern BOOL UCCanTranslateFromTo(int from, int to);
    extern BOOL UCNeedNotTranslate(int from,
				   int to);

    struct _UCTransParams {
	BOOL transp;
	BOOL do_cjk;
	BOOL decode_utf8;
	BOOL output_utf8;
	BOOL use_raw_char_in;
	BOOL strip_raw_char_in;
	BOOL pass_160_173_raw;
	BOOL do_8bitraw;
	BOOL trans_to_uni;
	BOOL trans_C0_to_uni;
	BOOL repl_translated_C0;
	BOOL trans_from_uni;
	int ucs_mode;
    };
    typedef struct _UCTransParams UCTransParams;

    typedef struct {
	char utf_count;
	UCode_t utf_char;
	char utf_buf[8];
	char *utf_buf_p;
    } UTFDecodeState;

    typedef enum {
	dUTF8_ok,
	dUTF8_err,
	dUTF8_more
    } dUTF8;

    extern dUTF8 HTDecodeUTF8(UTFDecodeState * me, int *c_in_out, UCode_t *result);

    extern void UCSetTransParams(UCTransParams * pT, int cs_in,
				 const LYUCcharset *p_in,
				 int cs_out,
				 const LYUCcharset *p_out);

    extern void UCTransParams_clear(UCTransParams * pT);

    extern void UCSetBoxChars(int cset,
			      int *pvert_out,
			      int *phori_out,
			      int vert_in,
			      int hori_in);

    typedef void putc_func_t (HTStream *me,
			      int ch);

    extern BOOL UCPutUtf8_charstring(HTStream *target,
				     putc_func_t *actions,
				     UCode_t code);

    extern BOOL UCConvertUniToUtf8(UCode_t code,
				   char *buffer);

    extern UCode_t UCGetUniFromUtf8String(const char **ppuni);

#ifdef __cplusplus
}
#endif
#endif				/* UCAUX_H */