diff src/farsi.h @ 0:76efa0be13f1

Initial revision
author atsuki
date Sat, 10 Nov 2007 15:07:22 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/farsi.h	Sat Nov 10 15:07:22 2007 +0900
@@ -0,0 +1,234 @@
+/* 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
+		    ;