farsi.h
上传用户:gddssl
上传日期:2007-01-06
资源大小:1003k
文件大小:6k
源码类别:

编辑器/阅读器

开发平台:

DOS

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