| /* vi:set ts=8 sts=4 sw=4: |
| * |
| * VIM - Vi IMproved by Bram Moolenaar |
| * |
| * Do ":help uganda" in Vim to read copying and usage conditions. |
| * Do ":help credits" in Vim to see a list of people who contributed. |
| */ |
| |
| /* |
| * Farsi characters are categorized into following types: |
| * |
| * TyA (for capital letter representation) |
| * TyB (for types that look like _X e.g. AYN) |
| * TyC (for types that look like X_ e.g. YE_) |
| * TyD (for types that look like _X_ e.g. _AYN_) |
| * TyE (for types that look like X e.g. RE) |
| */ |
| |
| /* |
| * Farsi character set definition |
| */ |
| |
| /* |
| * Begin of the non-standard part |
| */ |
| |
| #define TEE_ 0x80 |
| #define ALEF_U_H_ 0x81 |
| #define ALEF_ 0x82 |
| #define _BE 0x83 |
| #define _PE 0x84 |
| #define _TE 0x85 |
| #define _SE 0x86 |
| #define _JIM 0x87 |
| #define _CHE 0x88 |
| #define _HE_J 0x89 |
| #define _XE 0x8a |
| #define _SIN 0x8b |
| #define _SHIN 0x8c |
| #define _SAD 0x8d |
| #define _ZAD 0x8e |
| #define _AYN 0x8f |
| #define _AYN_ 0x90 |
| #define AYN_ 0x91 |
| #define _GHAYN 0x92 |
| #define _GHAYN_ 0x93 |
| #define GHAYN_ 0x94 |
| #define _FE 0x95 |
| #define _GHAF 0x96 |
| #define _KAF 0x97 |
| #define _GAF 0x98 |
| #define _LAM 0x99 |
| #define LA 0x9a |
| #define _MIM 0x9b |
| #define _NOON 0x9c |
| #define _HE 0x9d |
| #define _HE_ 0x9e |
| #define _YE 0x9f |
| #define _IE 0xec |
| #define IE_ 0xed |
| #define IE 0xfb |
| #define _YEE 0xee |
| #define YEE_ 0xef |
| #define YE_ 0xff |
| |
| /* |
| * End of the non-standard part |
| */ |
| |
| /* |
| * Standard part |
| */ |
| |
| #define F_BLANK 0xa0 /* Farsi ' ' (SP) character */ |
| #define F_PSP 0xa1 /* PSP for capitalizing of a character */ |
| #define F_PCN 0xa2 /* PCN for redefining of the hamye meaning */ |
| #define F_EXCL 0xa3 /* Farsi ! character */ |
| #define F_CURRENCY 0xa4 /* Farsi Rial character */ |
| #define F_PERCENT 0xa5 /* Farsi % character */ |
| #define F_PERIOD 0xa6 /* Farsi '.' character */ |
| #define F_COMMA 0xa7 /* Farsi ',' character */ |
| #define F_LPARENT 0xa8 /* Farsi '(' character */ |
| #define F_RPARENT 0xa9 /* Farsi ')' character */ |
| #define F_MUL 0xaa /* Farsi 'x' character */ |
| #define F_PLUS 0xab /* Farsi '+' character */ |
| #define F_BCOMMA 0xac /* Farsi comma character */ |
| #define F_MINUS 0xad /* Farsi '-' character */ |
| #define F_DIVIDE 0xae /* Farsi divide (/) character */ |
| #define F_SLASH 0xaf /* Farsi '/' character */ |
| |
| #define FARSI_0 0xb0 |
| #define FARSI_1 0xb1 |
| #define FARSI_2 0xb2 |
| #define FARSI_3 0xb3 |
| #define FARSI_4 0xb4 |
| #define FARSI_5 0xb5 |
| #define FARSI_6 0xb6 |
| #define FARSI_7 0xb7 |
| #define FARSI_8 0xb8 |
| #define FARSI_9 0xb9 |
| |
| #define F_DCOLON 0xba /* Farsi ':' character */ |
| #define F_SEMICOLON 0xbb /* Farsi ';' character */ |
| #define F_GREATER 0xbc /* Farsi '>' character */ |
| #define F_EQUALS 0xbd /* Farsi '=' character */ |
| #define F_LESS 0xbe /* Farsi '<' character */ |
| #define F_QUESTION 0xbf /* Farsi ? character */ |
| |
| #define ALEF_A 0xc0 |
| #define ALEF 0xc1 |
| #define HAMZE 0xc2 |
| #define BE 0xc3 |
| #define PE 0xc4 |
| #define TE 0xc5 |
| #define SE 0xc6 |
| #define JIM 0xc7 |
| #define CHE 0xc8 |
| #define HE_J 0xc9 |
| #define XE 0xca |
| #define DAL 0xcb |
| #define ZAL 0xcc |
| #define RE 0xcd |
| #define ZE 0xce |
| #define JE 0xcf |
| #define SIN 0xd0 |
| #define SHIN 0xd1 |
| #define SAD 0xd2 |
| #define ZAD 0xd3 |
| #define _TA 0xd4 |
| #define _ZA 0xd5 |
| #define AYN 0xd6 |
| #define GHAYN 0xd7 |
| #define FE 0xd8 |
| #define GHAF 0xd9 |
| #define KAF 0xda |
| #define GAF 0xdb |
| #define LAM 0xdc |
| #define MIM 0xdd |
| #define NOON 0xde |
| #define WAW 0xdf |
| #define F_HE 0xe0 /* F_ added for name clash with Perl */ |
| #define YE 0xe1 |
| #define TEE 0xfc |
| #define _KAF_H 0xfd |
| #define YEE 0xfe |
| |
| #define F_LBRACK 0xe2 /* Farsi '[' character */ |
| #define F_RBRACK 0xe3 /* Farsi ']' character */ |
| #define F_LBRACE 0xe4 /* Farsi '{' character */ |
| #define F_RBRACE 0xe5 /* Farsi '}' character */ |
| #define F_LQUOT 0xe6 /* Farsi left quotation character */ |
| #define F_RQUOT 0xe7 /* Farsi right quotation character */ |
| #define F_STAR 0xe8 /* Farsi '*' character */ |
| #define F_UNDERLINE 0xe9 /* Farsi '_' character */ |
| #define F_PIPE 0xea /* Farsi '|' character */ |
| #define F_BSLASH 0xeb /* Farsi '\' character */ |
| |
| #define MAD 0xf0 |
| #define JAZR 0xf1 |
| #define OW 0xf2 |
| #define MAD_N 0xf3 |
| #define JAZR_N 0xf4 |
| #define OW_OW 0xf5 |
| #define TASH 0xf6 |
| #define OO 0xf7 |
| #define ALEF_U_H 0xf8 |
| #define WAW_H 0xf9 |
| #define ALEF_D_H 0xfa |
| |
| /* |
| * global definitions |
| * ================== |
| */ |
| |
| #define SRC_EDT 0 |
| #define SRC_CMD 1 |
| |
| #define AT_CURSOR 0 |
| |
| /* |
| * definitions for the window dependent functions (w_farsi). |
| */ |
| #define W_CONV 0x1 |
| #define W_R_L 0x2 |
| |
| |
| /* special Farsi text messages */ |
| |
| EXTERN char_u farsi_text_1[] |
| #ifdef DO_INIT |
| = { YE_, _SIN, RE, ALEF_, _FE, ' ', 'V', 'I', 'M', |
| ' ', F_HE, _BE, ' ', SHIN, RE, _GAF, DAL,' ', NOON, |
| ALEF_, _YE, ALEF_, _PE, '\0'} |
| #endif |
| ; |
| |
| EXTERN char_u farsi_text_2[] |
| #ifdef DO_INIT |
| = { YE_, _SIN, RE, ALEF_, _FE, ' ', FARSI_3, FARSI_3, |
| FARSI_4, FARSI_2, ' ', DAL, RE, ALEF, DAL, _NOON, |
| ALEF_, _TE, _SIN, ALEF, ' ', F_HE, _BE, ' ', SHIN, |
| RE, _GAF, DAL, ' ', NOON, ALEF_, _YE, ALEF_, _PE, '\0'} |
| #endif |
| ; |
| |
| EXTERN char_u farsi_text_3[] |
| #ifdef DO_INIT |
| = { DAL, WAW, _SHIN, _YE, _MIM, _NOON, ' ', YE_, _NOON, |
| ALEF_,_BE, _YE, _TE, _SHIN, _PE, ' ', 'R','E','P','L', |
| 'A','C','E', ' ', NOON, ALEF_, _MIM, RE, _FE, ZE, ALEF, |
| ' ', 'R', 'E', 'V', 'E', 'R', 'S', 'E', ' ', 'I', 'N', |
| 'S', 'E', 'R', 'T', ' ', SHIN, WAW, RE, ' ', ALEF_, _BE, |
| ' ', YE_, _SIN, RE, ALEF_, _FE, ' ', RE, DAL, ' ', RE, |
| ALEF_, _KAF,' ', MIM, ALEF_, _GAF, _NOON, _HE, '\0'} |
| #endif |
| ; |
| |
| #if 0 /* not used */ |
| EXTERN char_u farsi_text_4[] |
| #ifdef DO_INIT |
| = { DAL, WAW, _SHIN, _YE, _MIM, _NOON, ' ', YE_, _NOON, |
| ALEF_, _BE, _YE, _TE, _SHIN, _PE, ' ', '<', 'C','T','R', |
| 'L','-','B','>', ' ', NOON, ALEF_, _MIM, RE, _FE, ZE, |
| ALEF, ' ', YE_, _SIN, RE, ALEF_, _FE, ' ', RE, DAL, ' ', |
| RE, ALEF_, _KAF,' ', MIM, ALEF_, _GAF, _NOON, _HE, '\0'} |
| #endif |
| ; |
| #endif |
| |
| EXTERN char_u farsi_text_5[] |
| #ifdef DO_INIT |
| = { ' ', YE_, _SIN, RE, ALEF_, _FE, '\0'} |
| #endif |
| ; |