2 * KANJI Code conversion routines.
5 #ifndef PTEXENC_PTEXENC_H
6 #define PTEXENC_PTEXENC_H
8 #include <kpathsea/types.h>
10 #if defined (WIN32) && !defined (__MINGW32__) && !defined (NO_PTENC_DLL)
12 #endif /* WIN32 && !__MINGW32__ && !NO_PTENC_DLL */
14 #if defined (PTENC_DLL) && (defined (WIN32) || defined (__CYGWIN__))
16 #define PTENCDLL __declspec(dllexport)
17 #else /* ! MAKE_PTENC_DLL */
18 #define PTENCDLL __declspec(dllimport)
20 #else /* ! (PTENC_DLL && (WIN32 || __CYGWIN__)) */
24 extern PTENCDLL const char *ptexenc_version_string;
26 extern PTENCDLL int sjisterminal;
27 extern PTENCDLL FILE *Poptr;
28 extern PTENCDLL int infile_enc_auto;
31 #define KANJI_OPTS "{jis|euc|sjis|utf8}"
33 /* enable/disable UPTEX */
34 extern PTENCDLL void enable_UPTEX (boolean enable);
35 extern PTENCDLL void set_prior_file_enc(void);
37 /* get/set Kanji encoding by string */
38 extern PTENCDLL const_string get_enc_string(void);
39 extern PTENCDLL boolean set_enc_string(const_string file, const_string inter);
40 #define getencstring get_enc_string
41 #define setencstring set_enc_string
43 /* decide if internal Kanji encode is SJIS/UPTEX or not */
44 extern PTENCDLL boolean is_internalSJIS(void);
45 extern PTENCDLL boolean is_internalEUC(void);
46 extern PTENCDLL boolean is_internalUPTEX(void);
47 #define isinternalSJIS is_internalSJIS
48 #define isinternalEUC is_internalEUC
49 #define isinternalUPTEX is_internalUPTEX
51 /* check char range */
52 extern PTENCDLL boolean ismultichr (int length, int nth, int c);
53 extern PTENCDLL boolean iskanji1(int c);
54 extern PTENCDLL boolean iskanji2(int c);
56 /* internal (EUC/SJIS/UPTEX) from/to buffer (EUC/SJIS/UTF-8) code conversion */
57 extern PTENCDLL int multistrlen(unsigned char *s, int len, int pos);
58 extern PTENCDLL int multibytelen (int first_byte);
59 extern PTENCDLL long fromBUFF(unsigned char *s, int len, int pos);
60 extern PTENCDLL long toBUFF(long inter);
62 /* internal (EUC/SJIS/UPTEX) from/to DVI (JIS/UCS) code conversion */
63 extern PTENCDLL long toDVI (long kcode);
64 extern PTENCDLL long fromDVI (long kcode);
66 /* JIS/EUC/SJIS/KUTN/UCS to internal (EUC/SJIS/UPTEX) code conversion */
67 /* (only for \euc primitive, etc.) */
68 extern PTENCDLL long toJIS(long kcode);
69 extern PTENCDLL long fromJIS(long jis);
70 extern PTENCDLL long fromEUC(long euc);
71 extern PTENCDLL long fromSJIS(long sjis);
72 extern PTENCDLL long fromKUTEN(long kuten);
73 extern PTENCDLL long fromUCS (long ucs);
74 extern PTENCDLL long toUCS(long kcode);
76 /* fputs/putc with encoding conversion */
77 extern PTENCDLL int putc2(int c, FILE *fp);
78 extern PTENCDLL int fputs2(const char *s, FILE *fp);
80 /* input line with encoding conversion */
81 extern PTENCDLL long input_line2(FILE *fp, unsigned char *buff, long pos,
82 const long buffsize, int *lastchar);
85 extern PTENCDLL void clear_infile_enc(FILE *fp);
87 /* open/close through nkf */
88 extern PTENCDLL void nkf_disable(void);
89 extern PTENCDLL FILE *nkf_open(const char *path, const char *mode);
90 extern PTENCDLL int nkf_close(FILE *fp);
93 #endif /* PTEXENC_PTEXENC_H */