blob: ccd912ea0d4fffbcc4dc0b71ccddfc5935f774f6 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001/* vi:set ts=8 sts=4 sw=4:
2 *
3 * VIM - Vi IMproved by Bram Moolenaar
4 *
5 * Do ":help uganda" in Vim to read copying and usage conditions.
6 * Do ":help credits" in Vim to see a list of people who contributed.
7 */
8
9/*
Bram Moolenaar25394022007-05-10 19:06:20 +000010 * Farsi characters are categorized into following types:
Bram Moolenaar071d4272004-06-13 20:20:40 +000011 *
12 * TyA (for capital letter representation)
13 * TyB (for types that look like _X e.g. AYN)
14 * TyC (for types that look like X_ e.g. YE_)
15 * TyD (for types that look like _X_ e.g. _AYN_)
16 * TyE (for types that look like X e.g. RE)
17 */
18
19/*
20 * Farsi character set definition
21 */
22
23/*
24 * Begin of the non-standard part
25 */
26
27#define TEE_ 0x80
28#define ALEF_U_H_ 0x81
29#define ALEF_ 0x82
30#define _BE 0x83
31#define _PE 0x84
32#define _TE 0x85
33#define _SE 0x86
34#define _JIM 0x87
35#define _CHE 0x88
36#define _HE_J 0x89
37#define _XE 0x8a
38#define _SIN 0x8b
39#define _SHIN 0x8c
40#define _SAD 0x8d
41#define _ZAD 0x8e
42#define _AYN 0x8f
43#define _AYN_ 0x90
44#define AYN_ 0x91
45#define _GHAYN 0x92
46#define _GHAYN_ 0x93
47#define GHAYN_ 0x94
48#define _FE 0x95
49#define _GHAF 0x96
50#define _KAF 0x97
51#define _GAF 0x98
52#define _LAM 0x99
53#define LA 0x9a
54#define _MIM 0x9b
55#define _NOON 0x9c
56#define _HE 0x9d
57#define _HE_ 0x9e
58#define _YE 0x9f
59#define _IE 0xec
60#define IE_ 0xed
61#define IE 0xfb
62#define _YEE 0xee
63#define YEE_ 0xef
64#define YE_ 0xff
65
66/*
67 * End of the non-standard part
68 */
69
70/*
71 * Standard part
72 */
73
74#define F_BLANK 0xa0 /* Farsi ' ' (SP) character */
75#define F_PSP 0xa1 /* PSP for capitalizing of a character */
76#define F_PCN 0xa2 /* PCN for redefining of the hamye meaning */
77#define F_EXCL 0xa3 /* Farsi ! character */
78#define F_CURRENCY 0xa4 /* Farsi Rial character */
79#define F_PERCENT 0xa5 /* Farsi % character */
80#define F_PERIOD 0xa6 /* Farsi '.' character */
81#define F_COMMA 0xa7 /* Farsi ',' character */
82#define F_LPARENT 0xa8 /* Farsi '(' character */
83#define F_RPARENT 0xa9 /* Farsi ')' character */
84#define F_MUL 0xaa /* Farsi 'x' character */
85#define F_PLUS 0xab /* Farsi '+' character */
86#define F_BCOMMA 0xac /* Farsi comma character */
87#define F_MINUS 0xad /* Farsi '-' character */
88#define F_DIVIDE 0xae /* Farsi divide (/) character */
89#define F_SLASH 0xaf /* Farsi '/' character */
90
91#define FARSI_0 0xb0
92#define FARSI_1 0xb1
93#define FARSI_2 0xb2
94#define FARSI_3 0xb3
95#define FARSI_4 0xb4
96#define FARSI_5 0xb5
97#define FARSI_6 0xb6
98#define FARSI_7 0xb7
99#define FARSI_8 0xb8
100#define FARSI_9 0xb9
101
102#define F_DCOLON 0xba /* Farsi ':' character */
103#define F_SEMICOLON 0xbb /* Farsi ';' character */
104#define F_GREATER 0xbc /* Farsi '>' character */
105#define F_EQUALS 0xbd /* Farsi '=' character */
106#define F_LESS 0xbe /* Farsi '<' character */
107#define F_QUESTION 0xbf /* Farsi ? character */
108
109#define ALEF_A 0xc0
110#define ALEF 0xc1
111#define HAMZE 0xc2
112#define BE 0xc3
113#define PE 0xc4
114#define TE 0xc5
115#define SE 0xc6
116#define JIM 0xc7
117#define CHE 0xc8
118#define HE_J 0xc9
119#define XE 0xca
120#define DAL 0xcb
121#define ZAL 0xcc
122#define RE 0xcd
123#define ZE 0xce
124#define JE 0xcf
125#define SIN 0xd0
126#define SHIN 0xd1
127#define SAD 0xd2
128#define ZAD 0xd3
129#define _TA 0xd4
130#define _ZA 0xd5
131#define AYN 0xd6
132#define GHAYN 0xd7
133#define FE 0xd8
134#define GHAF 0xd9
135#define KAF 0xda
136#define GAF 0xdb
137#define LAM 0xdc
138#define MIM 0xdd
139#define NOON 0xde
140#define WAW 0xdf
141#define F_HE 0xe0 /* F_ added for name clash with Perl */
142#define YE 0xe1
143#define TEE 0xfc
144#define _KAF_H 0xfd
145#define YEE 0xfe
146
147#define F_LBRACK 0xe2 /* Farsi '[' character */
148#define F_RBRACK 0xe3 /* Farsi ']' character */
149#define F_LBRACE 0xe4 /* Farsi '{' character */
150#define F_RBRACE 0xe5 /* Farsi '}' character */
151#define F_LQUOT 0xe6 /* Farsi left quotation character */
152#define F_RQUOT 0xe7 /* Farsi right quotation character */
153#define F_STAR 0xe8 /* Farsi '*' character */
154#define F_UNDERLINE 0xe9 /* Farsi '_' character */
155#define F_PIPE 0xea /* Farsi '|' character */
156#define F_BSLASH 0xeb /* Farsi '\' character */
157
158#define MAD 0xf0
159#define JAZR 0xf1
160#define OW 0xf2
161#define MAD_N 0xf3
162#define JAZR_N 0xf4
163#define OW_OW 0xf5
164#define TASH 0xf6
165#define OO 0xf7
166#define ALEF_U_H 0xf8
167#define WAW_H 0xf9
168#define ALEF_D_H 0xfa
169
170/*
171 * global definitions
172 * ==================
173 */
174
175#define SRC_EDT 0
176#define SRC_CMD 1
177
178#define AT_CURSOR 0
179
180/*
181 * definitions for the window dependent functions (w_farsi).
182 */
183#define W_CONV 0x1
184#define W_R_L 0x2
185
186
187/* special Farsi text messages */
188
189EXTERN char_u farsi_text_1[]
190#ifdef DO_INIT
191 = { YE_, _SIN, RE, ALEF_, _FE, ' ', 'V', 'I', 'M',
192 ' ', F_HE, _BE, ' ', SHIN, RE, _GAF, DAL,' ', NOON,
193 ALEF_, _YE, ALEF_, _PE, '\0'}
194#endif
195 ;
196
197EXTERN char_u farsi_text_2[]
198#ifdef DO_INIT
199 = { YE_, _SIN, RE, ALEF_, _FE, ' ', FARSI_3, FARSI_3,
200 FARSI_4, FARSI_2, ' ', DAL, RE, ALEF, DAL, _NOON,
201 ALEF_, _TE, _SIN, ALEF, ' ', F_HE, _BE, ' ', SHIN,
202 RE, _GAF, DAL, ' ', NOON, ALEF_, _YE, ALEF_, _PE, '\0'}
203#endif
204 ;
205
206EXTERN char_u farsi_text_3[]
207#ifdef DO_INIT
208 = { DAL, WAW, _SHIN, _YE, _MIM, _NOON, ' ', YE_, _NOON,
209 ALEF_,_BE, _YE, _TE, _SHIN, _PE, ' ', 'R','E','P','L',
210 'A','C','E', ' ', NOON, ALEF_, _MIM, RE, _FE, ZE, ALEF,
211 ' ', 'R', 'E', 'V', 'E', 'R', 'S', 'E', ' ', 'I', 'N',
212 'S', 'E', 'R', 'T', ' ', SHIN, WAW, RE, ' ', ALEF_, _BE,
213 ' ', YE_, _SIN, RE, ALEF_, _FE, ' ', RE, DAL, ' ', RE,
214 ALEF_, _KAF,' ', MIM, ALEF_, _GAF, _NOON, _HE, '\0'}
215#endif
216 ;
217
218#if 0 /* not used */
219EXTERN char_u farsi_text_4[]
220#ifdef DO_INIT
221 = { DAL, WAW, _SHIN, _YE, _MIM, _NOON, ' ', YE_, _NOON,
222 ALEF_, _BE, _YE, _TE, _SHIN, _PE, ' ', '<', 'C','T','R',
223 'L','-','B','>', ' ', NOON, ALEF_, _MIM, RE, _FE, ZE,
224 ALEF, ' ', YE_, _SIN, RE, ALEF_, _FE, ' ', RE, DAL, ' ',
225 RE, ALEF_, _KAF,' ', MIM, ALEF_, _GAF, _NOON, _HE, '\0'}
226#endif
227 ;
228#endif
229
230EXTERN char_u farsi_text_5[]
231#ifdef DO_INIT
232 = { ' ', YE_, _SIN, RE, ALEF_, _FE, '\0'}
233#endif
234 ;