7
|
1 /* 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 /*
|
1224
|
10 * Farsi characters are categorized into following types:
|
7
|
11 *
|
|
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
|
|
189 EXTERN 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
|
|
197 EXTERN 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
|
|
206 EXTERN 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 */
|
|
219 EXTERN 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
|
|
230 EXTERN char_u farsi_text_5[]
|
|
231 #ifdef DO_INIT
|
|
232 = { ' ', YE_, _SIN, RE, ALEF_, _FE, '\0'}
|
|
233 #endif
|
|
234 ;
|