summaryrefslogtreecommitdiff
path: root/language/japanese/ptex/kanji.h.in
blob: 922761c048569aad99ec73cc27e3073d78b6ea9c (plain)
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
/*
   kanji.h: Handling 2byte char, and so on.
*/
#ifndef KANJI_H
#define KANJI_H
#include "cpascal.h"
#include "ptexhelp.h"

#define KANJI
#define JIS   0
#define EUC   1
#define SJIS  2

/* 端末に出力する漢字コードを EUC, JIS, SJIS のいずれかで指定する。*/
#define TERM_CODE @TERMCODE@

/* OUTJIS, OUTSJIS, OUTEUC は端末とログファイルへの出力コードを示す。*/
#if TERM_CODE == JIS
#define OUTJIS
#elif TERM_CODE == SJIS
#define OUTSJIS
#else
#define OUTEUC
#endif

/* functions */
#define Hi(X) ((X >> 8) & 0xff)
#define Lo(X) (X & 0xff)
#define PutHi(X,Y) X &= 0xff; (X |= (Y << 8))
#define PutLo(X,Y) X &= 0xff00; (X |= (Y & 0xff))

extern char prockanjicode;
extern boolean iskanji1(unsigned char);
extern boolean iskanji2(unsigned char);
extern boolean checkkanji(integer);
extern integer calcpos(integer);

extern integer EUCtoJIS(integer);
extern integer JIStoEUC(integer);
extern integer SJIStoJIS(integer);
extern integer JIStoSJIS(integer);
extern integer SJIStoEUC(integer);
extern integer EUCtoSJIS(integer);
extern integer KUTENtoEUC(integer);
extern integer KUTENtoSJIS(integer);

/* kanji.c *以外* をコンパイルするとき、putc の定義を変える */
#if !defined(KANJI_C)
#undef putc
#define putc(c,fp) putc2(c,fp)
#endif /* *not* KANJI_C */

#ifdef TeX
#undef TEXMFPOOLNAME
#undef TEXMFENGINENAME
#define TEXMFPOOLNAME   "ptex.pool"
#define TEXMFENGINENAME "ptex"
#endif /* TeX */

#ifdef MP
#undef TEXMFPOOLNAME
#undef TEXMFENGINENAME
#define TEXMFPOOLNAME   "jmp.pool"
#define TEXMFENGINENAME "jmpost"
#endif /* MP */

#ifdef HAVE_SYS_PARAM_H
#  include <sys/param.h>
#else
#  include <limits.h>
#endif
#ifndef NOFILE
#  define NOFILE OPEN_MAX
#endif

#endif /* not KANJI_H */