#
#  Copyright (C) 2011 by Peter Engström <peter.engstrom@indexbraille.com>
#
#  This file is part of liblouis.
#
#  liblouis is free software: you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as
#  published by the Free Software Foundation, either version 2.1 of the
#  License, or (at your option) any later version.
#
#  liblouis is distributed in the hope that it will be useful, but
#  WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
#  Lesser General Public License for more details.
#
#  You should have received a copy of the GNU Lesser General Public
#  License along with liblouis. If not, see
#  <http://www.gnu.org/licenses/>.
#
# -----------------------------------------------------------------------------
#
# 	SORANI (KURDISH)
#	================
# 	Author:		Peter Engström
# 	Company:	Index Braille
#
# 	Date: 		Note:
#	2011-02-08	Initial release based on _chardefs_ar.cti
#	2011-03-15	Updated
#	2011-03-22	Removing U+200C from text. New braille code for Heh.
#				Arabic letters where coded as signs.
#	2011-03-23	New handling of U+200C. Letter Heh changed again.
#
#

# ----------- define all chars ------------------------------------------------
space \t 0 tab							#  9
space \x000A 0
space \x000D 0
space \s 0 blank						# 32

#--BEGIN--------------------------------------------[Peter Engström 2011-03-23]
# Remove U+200C three-per-em space = thick space but let it be a virtual space.
space \x200C 9							# Assign x200C to virtual dot 9.
noback pass2 @9 ?								# Remove virtual dot 9 during second pass.
#--END----------------------------------------------[Peter Engström 2011-03-23]

punctuation ! 235						# 33
punctuation " 236						# 34	[Peter Engström 2011-03-15]
sign # 3456								# 35
sign $ 1246								# 36	[Peter Engström 2011-03-15]
sign % 1234								# 37	[Peter Engström 2011-03-15]
sign & 12346							# 38	[Peter Engström 2011-03-15]
punctuation ' 3							# 39 apostrophe
punctuation ) 356						# 40
punctuation ( 236						# 41
sign * 16								# 42	[Peter Engström 2011-03-15]
math + 346								# 43	[Peter Engström 2011-03-15]
punctuation , 46						# 44
punctuation - 36						# 45
punctuation \x06D4 256					# Arabic Full stop
punctuation . 256						# 46	[Peter Engström 2011-03-15]
math / 34								# 47
include loweredDigits6Dots.uti
punctuation : 5-2						# 58	[Peter Engström 2011-03-15]
punctuation ; 5							# 59	[Peter Engström 2011-03-15]
math < 0-126-0							# 60	[Peter Engström 2011-03-15]
math = 123456							# 61	[Peter Engström 2011-03-15]
letter > 0-246-0
math > 0-345-0							# 62	[Peter Engström 2011-03-15]
punctuation ? 1456						# 63
sign @ 4								# 64

include latinLetterDef6Dots.uti

punctuation [ 13456						# 91	[Peter Engström 2011-03-15]
sign \\ 1256							# 92	[Peter Engström 2011-03-15]
punctuation ] 12346						# 93	[Peter Engström 2011-03-15]
sign ^ 45								# 94 circumflex accent	[Peter Engström 2011-03-15]
sign _ 456								# 95 underscore
sign ` 4								# 96 grave accent
# a - z									# 97 - 122
punctuation { 135						# 123	[Peter Engström 2011-03-15]
sign | 1245								# 124
punctuation } 246						# 125	[Peter Engström 2011-03-15]
math ~ 45								# 126
space \X00A0 0							# 160 no-break space
sign \x00A2 4-14						# 162 ¢ cents sign
sign \x00A3 4-123						# 163 £ pounds sign
sign \x00A5 4-13456						# 165 ¥ yen sign
sign § 4-234-3							# 167 section sign \x00A7
sign \x00A9 2356-6-14-2356 				# 169 © copyright sign
sign \x00AE 16-256				 		# ® Registered mark
punctuation \x00Ad 36					# 173 soft hyphen
sign \x00B0 356							# 176 ° degrees sign
sign \x00B5 46-134						# 181 µ micro sign
sign \x00B6 4-1234-345					# 182 ¶ pilcrow sign
sign \x00BF 236							# 191 inverted question mark
math \x00D7 56-236						# 215 × multiplication sign
math \x00F7 56-256						# 247 ÷ division sign

punctuation \x2010 36					# 8208 hyphen
punctuation \x2011 23478				# 8209 non-breaking hyphen
punctuation \x2013 246					# 8211 en dash	[Peter Engström 2011-03-15]
punctuation \x2014 246					# 8212	[Peter Engström 2011-03-15]
punctuation	\x2018 3					# 8216 smart single left quotation mark
punctuation	\x2019 3					# 8217 smart single right quotation mark
punctuation	\x201C 2356					# 8220 smart opening double quote
punctuation	\x201D 2356					# 8221 smart closing double quote
punctuation	\x201E 2356					# 8222 smart double low quotation mark
punctuation	\x201F 2356					# 8223 smart double high reverse quotation mark
punctuation \x2026 3-3-3				# 8230 smart ellipsis
sign \x20AC 4-15						# 8364 Euro sign
noback sign \X25CF 16					# 9679 black circle

#-------------------------- Arabic characters ---------------------------------
sign \x060C 5							# Arabic comma
sign \x061B 56							# Arabic semicolon
sign \x061F 236							# Arabic question mark

letter \x0621 345						# Hamza	[Peter Engström 2011-03-15]
letter \x0622 345						# Alef with madda above
letter \x0623 34						# Alef with hamza above
letter \x0624 1256						# Waw with hamza above
letter \x0625 34						# Alef with hamza below	[Peter Engström 2011-03-15]
letter \x0626 345						# Yeh with hamza above 
letter \x0627 1							# Alef
letter \x0628 12						# Beh
letter \x0629 16						# Teh marbutha
letter \x062A 2345						# Teh
letter \x062B 1456						# Theh
letter \x062C 245						# Jeem
letter \x062D 156						# Hah
letter \x062E 1346						# Khah
letter \x062F 145						# Dal
letter \x0630 2346						# Thal
letter \x0631 246						# Reh	[Peter Engström 2011-03-15]
letter \x0632 1356						# Zain
letter \x0633 234						# Seen
letter \x0634 146						# Sheen
letter \x0635 12346						# Sad
letter \x0636 1246						# Dad
letter \x0637 23456						# Tah
letter \x0638 123456					# Zah
letter \x0639 12356						# Ain
letter \x063A 126						# Ghain
letter \x0640 2							# Tatweel (=kashida inserted to stretch characters).
letter \x0641 124						# Feh
letter \x0642 12345						# Qaf
letter \x0643 13						# Kaf
letter \x0644 123						# Lam
letter \x0645 134						# Meem
letter \x0646 1345						# Noon

#--BEGIN--------------------------------------------[Peter Engström 2011-02-08]
letter \x0647 15						# Heh
begword \x0647 125						
midword \x0647 125						
endword \x0647 15						
#--END----------------------------------------------[Peter Engström 2011-02-08]

letter \x0648 2456						# Waw
letter \x0649 135						# Alef maksura
letter \x064A 24						# Yeh
letter \x064B 23						# Fathatan
letter \x064C 26						# Dammatan
letter \x064D 35						# Kasratan
letter \x064E 2							# Fatha
letter \x064F 136						# Damma
letter \x0650 15						# Kasra
letter \x0651 6							# Shadda
letter \x0652 25						# Sukun

#--BEGIN--------------------------------------------[Peter Engström 2011-02-08]
sign \x02C7 456							# Caron (=hacek)
sign \x032C 56							# Combinding caron below
sign \x065A 456							# Vowel sign small v above
sign \x0660 356							# 0 Arabic numbers
sign \x0661 2							# 1
sign \x0662 23							# 2
sign \x0663 25							# 3
sign \x0664 256							# 4
sign \x0665 26							# 5
sign \x0666 235							# 6
sign \x0667 2356						# 7
sign \x0668 236							# 8
sign \x0669 35							# 9
sign \x066C 5							# Arabic thousands separator

letter \x067E 1234						# Peh
letter \x0686 14						# Tcheh
letter \x0695 1235						# Reh with small v below
letter \x0698 346						# Jeh
letter \x06A4 1236						# Veh
letter \x06A9 13						# Keheh
letter \x06AF 1245						# Gaf
letter \x06B5 123456					# Lam with small v
letter \x06BE 125						# Heh doachashmee
letter \x06C1 15						# Heh goal
letter \x06C6 135						# Oe
letter \x06CB 1236						# Ve
letter \x06CC 24						# Farsi Yeh
letter \x06CE 34						# Yeh with small v
letter \x06D5 15						# Ae
letter \xFB8A 346						# Jeh isolated form
letter \xFBA6 15						# Heh goal isolated form
letter \xFBAA 125						# Heh doachashmee isolated form
letter \xFBAB 15						# Heh doachashmee final form
letter \xFBAC 125						# Heh doachashmee initial form
letter \xFBAD 125						# Heh doachashmee medial form
letter \xFBFC 24						# Farsi yeh isolated form
letter \xFEAD 246						# Reh isolated form
letter \xFEAE 246						# Reh final form
letter \xFEDD 123						# Lam isolated form
letter \xFEDE 123						# Lam final form
letter \xFEE9 15						# Heh isolated form
letter \xFEEA 15						# Heh final form
letter \xFEEB 125						# Heh initial form
letter \xFEEC 125						# Heh medial form
letter \xFEEF 24						# Alef maksura isolated form
letter \xFEFB 123-1						# Ligature lam with alef with hamza below isolated form 
letter \xFEFC 123-1						# Ligature lam with alef with hamza below final form 

#--END----------------------------------------------[Peter Engström 2011-02-08]
