/* vi:set ts=8 sts=4 sw=4 noet: * * 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 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 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 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 farsi_text_5[] #ifdef DO_INIT = { ' ', YE_, _SIN, RE, ALEF_, _FE, '\0'} #endif ;