home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / unix / vim-6.2.tar.bz2 / vim-6.2.tar / vim62 / src / arabic.h < prev    next >
Encoding:
C/C++ Source or Header  |  2003-05-03  |  6.6 KB  |  259 lines

  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. /*
  10.  * Arabic characters are catagorized into following types:
  11.  *
  12.  * Isolated    - iso-8859-6 form      char denoted with    a_*
  13.  * Initial    - unicode form-B start      char denoted with    a_i_*
  14.  * Medial    - unicode form-B middle   char denoted with    a_m_*
  15.  * Final    - unicode form-B final      char denoted with    a_f_*
  16.  * Stand-Alone    - unicode form-B isolated char denoted with    a_s_* (NOT USED)
  17.  *
  18.  * --
  19.  *
  20.  * Author: Nadim Shaikli & Isam Bayazidi
  21.  * - (based on Unicode)
  22.  *
  23.  */
  24.  
  25. /*
  26.  * Arabic ISO-10646-1 character set definition
  27.  */
  28.  
  29. /*
  30.  * Arabic ISO-8859-6 (subset of 10646; 0600 - 06FF)
  31.  */
  32. #define a_COMMA                0x060C
  33. #define a_SEMICOLON            0x061B
  34. #define a_QUESTION            0x061F
  35. #define a_HAMZA                0x0621
  36. #define a_ALEF_MADDA            0x0622
  37. #define a_ALEF_HAMZA_ABOVE        0x0623
  38. #define a_WAW_HAMZA            0x0624
  39. #define a_ALEF_HAMZA_BELOW        0x0625
  40. #define a_YEH_HAMZA            0x0626
  41. #define a_ALEF                0x0627
  42. #define a_BEH                0x0628
  43. #define a_TEH_MARBUTA            0x0629
  44. #define a_TEH                0x062a
  45. #define a_THEH                0x062b
  46. #define a_JEEM                0x062c
  47. #define a_HAH                0x062d
  48. #define a_KHAH                0x062e
  49. #define a_DAL                0x062f
  50. #define a_THAL                0x0630
  51. #define a_REH                0x0631
  52. #define a_ZAIN                0x0632
  53. #define a_SEEN                0x0633
  54. #define a_SHEEN                0x0634
  55. #define a_SAD                0x0635
  56. #define a_DAD                0x0636
  57. #define a_TAH                0x0637
  58. #define a_ZAH                0x0638
  59. #define a_AIN                0x0639
  60. #define a_GHAIN                0x063a
  61. #define a_TATWEEL            0x0640
  62. #define a_FEH                0x0641
  63. #define a_QAF                0x0642
  64. #define a_KAF                0x0643
  65. #define a_LAM                0x0644
  66. #define a_MEEM                0x0645
  67. #define a_NOON                0x0646
  68. #define a_HEH                0x0647
  69. #define a_WAW                0x0648
  70. #define a_ALEF_MAKSURA            0x0649
  71. #define a_YEH                0x064a
  72.  
  73. #define a_FATHATAN            0x064b
  74. #define a_DAMMATAN            0x064c
  75. #define a_KASRATAN            0x064d
  76. #define a_FATHA                0x064e
  77. #define a_DAMMA                0x064f
  78. #define a_KASRA                0x0650
  79. #define a_SHADDA            0x0651
  80. #define a_SUKUN                0x0652
  81.  
  82. #define a_MADDA_ABOVE            0x0653
  83. #define a_HAMZA_ABOVE            0x0654
  84. #define a_HAMZA_BELOW            0x0655
  85.  
  86. #define a_ZERO                0x0660
  87. #define a_ONE                0x0661
  88. #define a_TWO                0x0662
  89. #define a_THREE                0x0663
  90. #define a_FOUR                0x0664
  91. #define a_FIVE                0x0665
  92. #define a_SIX                0x0666
  93. #define a_SEVEN                0x0667
  94. #define a_EIGHT                0x0668
  95. #define a_NINE                0x0669
  96. #define a_PERCENT            0x066a
  97. #define a_DECIMAL            0x066b
  98. #define a_THOUSANDS            0x066c
  99. #define a_STAR                0x066d
  100. #define a_MINI_ALEF            0x0670
  101. /* Rest of 8859-6 does not relate to Arabic */
  102.  
  103. /*
  104.  * Arabic Presentation Form-B (subset of 10646; FE70 - FEFF)
  105.  *
  106.  *  s -> isolated
  107.  *  i -> initial
  108.  *  m -> medial
  109.  *  f -> final
  110.  *
  111.  */
  112. #define a_s_FATHATAN            0xfe70
  113. #define a_m_TATWEEL_FATHATAN        0xfe71
  114. #define a_s_DAMMATAN            0xfe72
  115.  
  116. #define a_s_KASRATAN            0xfe74
  117.  
  118. #define a_s_FATHA            0xfe76
  119. #define a_m_FATHA            0xfe77
  120. #define a_s_DAMMA            0xfe78
  121. #define a_m_DAMMA            0xfe79
  122. #define a_s_KASRA            0xfe7a
  123. #define a_m_KASRA            0xfe7b
  124. #define a_s_SHADDA            0xfe7c
  125. #define a_m_SHADDA            0xfe7d
  126. #define a_s_SUKUN            0xfe7e
  127. #define a_m_SUKUN            0xfe7f
  128.  
  129. #define a_s_HAMZA            0xfe80
  130. #define a_s_ALEF_MADDA            0xfe81
  131. #define a_f_ALEF_MADDA            0xfe82
  132. #define a_s_ALEF_HAMZA_ABOVE        0xfe83
  133. #define a_f_ALEF_HAMZA_ABOVE        0xfe84
  134. #define a_s_WAW_HAMZA            0xfe85
  135. #define a_f_WAW_HAMZA            0xfe86
  136. #define a_s_ALEF_HAMZA_BELOW        0xfe87
  137. #define a_f_ALEF_HAMZA_BELOW        0xfe88
  138. #define a_s_YEH_HAMZA            0xfe89
  139. #define a_f_YEH_HAMZA            0xfe8a
  140. #define a_i_YEH_HAMZA            0xfe8b
  141. #define a_m_YEH_HAMZA            0xfe8c
  142. #define a_s_ALEF            0xfe8d
  143. #define a_f_ALEF            0xfe8e
  144. #define a_s_BEH                0xfe8f
  145. #define a_f_BEH                0xfe90
  146. #define a_i_BEH                0xfe91
  147. #define a_m_BEH                0xfe92
  148. #define a_s_TEH_MARBUTA            0xfe93
  149. #define a_f_TEH_MARBUTA            0xfe94
  150. #define a_s_TEH                0xfe95
  151. #define a_f_TEH                0xfe96
  152. #define a_i_TEH                0xfe97
  153. #define a_m_TEH                0xfe98
  154. #define a_s_THEH            0xfe99
  155. #define a_f_THEH            0xfe9a
  156. #define a_i_THEH            0xfe9b
  157. #define a_m_THEH            0xfe9c
  158. #define a_s_JEEM            0xfe9d
  159. #define a_f_JEEM            0xfe9e
  160. #define a_i_JEEM            0xfe9f
  161. #define a_m_JEEM            0xfea0
  162. #define a_s_HAH                0xfea1
  163. #define a_f_HAH                0xfea2
  164. #define a_i_HAH                0xfea3
  165. #define a_m_HAH                0xfea4
  166. #define a_s_KHAH            0xfea5
  167. #define a_f_KHAH            0xfea6
  168. #define a_i_KHAH            0xfea7
  169. #define a_m_KHAH            0xfea8
  170. #define a_s_DAL                0xfea9
  171. #define a_f_DAL                0xfeaa
  172. #define a_s_THAL            0xfeab
  173. #define a_f_THAL            0xfeac
  174. #define a_s_REH                0xfead
  175. #define a_f_REH                0xfeae
  176. #define a_s_ZAIN            0xfeaf
  177. #define a_f_ZAIN            0xfeb0
  178. #define a_s_SEEN            0xfeb1
  179. #define a_f_SEEN            0xfeb2
  180. #define a_i_SEEN            0xfeb3
  181. #define a_m_SEEN            0xfeb4
  182. #define a_s_SHEEN            0xfeb5
  183. #define a_f_SHEEN            0xfeb6
  184. #define a_i_SHEEN            0xfeb7
  185. #define a_m_SHEEN            0xfeb8
  186. #define a_s_SAD                0xfeb9
  187. #define a_f_SAD                0xfeba
  188. #define a_i_SAD                0xfebb
  189. #define a_m_SAD                0xfebc
  190. #define a_s_DAD                0xfebd
  191. #define a_f_DAD                0xfebe
  192. #define a_i_DAD                0xfebf
  193. #define a_m_DAD                0xfec0
  194. #define a_s_TAH                0xfec1
  195. #define a_f_TAH                0xfec2
  196. #define a_i_TAH                0xfec3
  197. #define a_m_TAH                0xfec4
  198. #define a_s_ZAH                0xfec5
  199. #define a_f_ZAH                0xfec6
  200. #define a_i_ZAH                0xfec7
  201. #define a_m_ZAH                0xfec8
  202. #define a_s_AIN                0xfec9
  203. #define a_f_AIN                0xfeca
  204. #define a_i_AIN                0xfecb
  205. #define a_m_AIN                0xfecc
  206. #define a_s_GHAIN            0xfecd
  207. #define a_f_GHAIN            0xfece
  208. #define a_i_GHAIN            0xfecf
  209. #define a_m_GHAIN            0xfed0
  210. #define a_s_FEH                0xfed1
  211. #define a_f_FEH                0xfed2
  212. #define a_i_FEH                0xfed3
  213. #define a_m_FEH                0xfed4
  214. #define a_s_QAF                0xfed5
  215. #define a_f_QAF                0xfed6
  216. #define a_i_QAF                0xfed7
  217. #define a_m_QAF                0xfed8
  218. #define a_s_KAF                0xfed9
  219. #define a_f_KAF                0xfeda
  220. #define a_i_KAF                0xfedb
  221. #define a_m_KAF                0xfedc
  222. #define a_s_LAM                0xfedd
  223. #define a_f_LAM                0xfede
  224. #define a_i_LAM                0xfedf
  225. #define a_m_LAM                0xfee0
  226. #define a_s_MEEM            0xfee1
  227. #define a_f_MEEM            0xfee2
  228. #define a_i_MEEM            0xfee3
  229. #define a_m_MEEM            0xfee4
  230. #define a_s_NOON            0xfee5
  231. #define a_f_NOON            0xfee6
  232. #define a_i_NOON            0xfee7
  233. #define a_m_NOON            0xfee8
  234. #define a_s_HEH                0xfee9
  235. #define a_f_HEH                0xfeea
  236. #define a_i_HEH                0xfeeb
  237. #define a_m_HEH                0xfeec
  238. #define a_s_WAW                0xfeed
  239. #define a_f_WAW                0xfeee
  240. #define a_s_ALEF_MAKSURA        0xfeef
  241. #define a_f_ALEF_MAKSURA        0xfef0
  242. #define a_s_YEH                0xfef1
  243. #define a_f_YEH                0xfef2
  244. #define a_i_YEH                0xfef3
  245. #define a_m_YEH                0xfef4
  246. #define a_s_LAM_ALEF_MADDA_ABOVE    0xfef5
  247. #define a_f_LAM_ALEF_MADDA_ABOVE    0xfef6
  248. #define a_s_LAM_ALEF_HAMZA_ABOVE    0xfef7
  249. #define a_f_LAM_ALEF_HAMZA_ABOVE    0xfef8
  250. #define a_s_LAM_ALEF_HAMZA_BELOW    0xfef9
  251. #define a_f_LAM_ALEF_HAMZA_BELOW    0xfefa
  252. #define a_s_LAM_ALEF            0xfefb
  253. #define a_f_LAM_ALEF            0xfefc
  254.  
  255. #define a_BYTE_ORDER_MARK        0xfeff
  256.  
  257. /* Range of Arabic characters that might be shaped. */
  258. #define ARABIC_CHAR(c)        ((c) >= a_HAMZA && (c) <= a_MINI_ALEF)
  259.