Mercurial > hg > xemacs-beta
comparison lisp/language/arabic-util.el @ 167:85ec50267440 r20-3b10
Import from CVS: tag r20-3b10
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:45:46 +0200 |
parents | 5a88923fcbfe |
children |
comparison
equal
deleted
inserted
replaced
166:7a77eb660975 | 167:85ec50267440 |
---|---|
29 | 29 |
30 ;;; 94.6.13 created for Mule Ver.1.1 by Takahashi N. <ntakahas@etl.go.jp> | 30 ;;; 94.6.13 created for Mule Ver.1.1 by Takahashi N. <ntakahas@etl.go.jp> |
31 | 31 |
32 (require 'visual-mode) | 32 (require 'visual-mode) |
33 | 33 |
34 (defvar arabic-mode-indicator " [2](3=a:GJ[0](B" | 34 (defvar arabic-mode-indicator " 2](3=a:GJ0](B" |
35 "String displayed in mode-line. | 35 "String displayed in mode-line. |
36 \" Arabic\" for Arabic keyboard input, \" [2](3=a:GJ[0](B\".") | 36 \" Arabic\" for Arabic keyboard input, \" 2](3=a:GJ0](B\".") |
37 | 37 |
38 (make-variable-buffer-local 'arabic-mode-indicator) | 38 (make-variable-buffer-local 'arabic-mode-indicator) |
39 | 39 |
40 ;;;###autoload | 40 ;;;###autoload |
41 (defvar arabic-mode nil | 41 (defvar arabic-mode nil |
61 arabic-keymap-2 (Microsoft Arabic).") | 61 arabic-keymap-2 (Microsoft Arabic).") |
62 | 62 |
63 (defvar arabic-translate-table | 63 (defvar arabic-translate-table |
64 (cond | 64 (cond |
65 ((eq arabic-input-keymap 'arabic-keymap-0) | 65 ((eq arabic-input-keymap 'arabic-keymap-0) |
66 [?[2](3![0](B ?[2](3"[0](B ?[2](3-[0](B nil nil nil nil ?' ?[2](3#[0](B ?[2](3$[0](B nil nil ?[2](3%[0](B nil ?[2](3&[0](B ?[2](49[0](B | 66 [?2](3!0](B ?2](3"0](B ?2](3-0](B nil nil nil nil ?' ?2](3#0](B ?2](3$0](B nil nil ?2](3%0](B nil ?2](3&0](B ?2](490](B |
67 ?(2![0](B ?(2"[0](B ?(2#[0](B ?(2$[0](B ?(2%[0](B ?(2&[0](B ?(2'[0](B ?(2([0](B ?(2)[0](B ?(2*[0](B ?[2](3'[0](B ?[2](3([0](B ?[2](3*[0](B nil ?[2](3+[0](B ?[2](3)[0](B | 67 ?(2!(B ?(2"(B ?(2#(B ?(2$(B ?(2%(B ?(2&(B ?(2'(B ?(2((B ?(2)(B ?(2*(B ?2](3'0](B ?2](3(0](B ?2](3*0](B nil ?2](3+0](B ?2](3)0](B |
68 nil ?[2](4][0](B nil ?[2](4g[0](B ?[2](4A[0](B nil nil ?[2](4O[0](B ?[2](4-[0](B nil nil ?[2](41[0](B nil nil nil nil | 68 nil ?2](4]0](B nil ?2](4g0](B ?2](4A0](B nil nil ?2](4O0](B ?2](4-0](B nil nil ?2](410](B nil nil nil nil |
69 nil nil nil ?[2](4=[0](B ?[2](4E[0](B nil nil nil ?[2](3h[0](B nil ?[2](4I[0](B nil nil nil nil nil | 69 nil nil nil ?2](4=0](B ?2](4E0](B nil nil nil ?2](3h0](B nil ?2](4I0](B nil nil nil nil nil |
70 ?[2](4M[0](B ?[2](38[0](B ?[2](4#[0](B ?[2](4'[0](B ?[2](3B[0](B nil ?[2](4Q[0](B ?[2](4k[0](B ?[2](3Z[0](B nil ?[2](4)[0](B ?[2](4U[0](B ?[2](4Y[0](B ?[2](3T[0](B ?[2](4[[0](B ?[2](3<[0](B | 70 ?2](4M0](B ?2](380](B ?2](4#0](B ?2](4'0](B ?2](3B0](B nil ?2](4Q0](B ?2](4k0](B ?2](3Z0](B nil ?2](4)0](B ?2](4U0](B ?2](4Y0](B ?2](3T0](B ?2](4[0](B ?2](3<0](B |
71 ?[2](4e[0](B ?[2](4S[0](B ?[2](3F[0](B ?[2](45[0](B ?[2](4%[0](B nil nil ?[2](3^[0](B ?[2](3D[0](B ?[2](4_[0](B ?[2](3H[0](B nil ?| nil nil]) | 71 ?2](4e0](B ?2](4S0](B ?2](3F0](B ?2](450](B ?2](4%0](B nil nil ?2](3^0](B ?2](3D0](B ?2](4_0](B ?2](3H0](B nil ?| nil nil]) |
72 ((eq arabic-input-keymap 'arabic-keymap-1) | 72 ((eq arabic-input-keymap 'arabic-keymap-1) |
73 [?[2](3![0](B ?[2](3"[0](B nil nil nil nil nil nil ?[2](3#[0](B ?[2](3$[0](B nil nil ?[2](3%[0](B nil ?[2](3&[0](B nil | 73 [?2](3!0](B ?2](3"0](B nil nil nil nil nil nil ?2](3#0](B ?2](3$0](B nil nil ?2](3%0](B nil ?2](3&0](B nil |
74 ?(2![0](B ?(2"[0](B ?(2#[0](B ?(2$[0](B ?(2%[0](B ?(2&[0](B ?(2'[0](B ?(2([0](B ?(2)[0](B ?(2*[0](B ?[2](3'[0](B ?[2](4U[0](B ?[2](3*[0](B nil ?[2](3+[0](B ?[2](3)[0](B | 74 ?(2!(B ?(2"(B ?(2#(B ?(2$(B ?(2%(B ?(2&(B ?(2'(B ?(2((B ?(2)(B ?(2*(B ?2](3'0](B ?2](4U0](B ?2](3*0](B nil ?2](3+0](B ?2](3)0](B |
75 nil nil ?[2](3h[0](B nil nil nil ?[2](4e[0](B ?[2](3.[0](B nil nil nil nil nil nil nil nil | 75 nil nil ?2](3h0](B nil nil nil ?2](4e0](B ?2](3.0](B nil nil nil nil nil nil nil nil |
76 nil nil nil nil nil nil ?[2](30[0](B nil nil nil nil ?[2](4)[0](B nil ?[2](4g[0](B nil nil | 76 nil nil nil nil nil nil ?2](300](B nil nil nil nil ?2](4)0](B nil ?2](4g0](B nil nil |
77 nli ?[2](49[0](B ?[2](3H[0](B ?[2](3D[0](B ?[2](4_[0](B ?[2](4S[0](B ?[2](4#[0](B ?[2](38[0](B ?[2](4%[0](B nil ?[2](4Y[0](B ?[2](4[[0](B ?[2](3T[0](B ?[2](3^[0](B ?[2](3F[0](B ?[2](41[0](B | 77 nli ?2](490](B ?2](3H0](B ?2](3D0](B ?2](4_0](B ?2](4S0](B ?2](4#0](B ?2](380](B ?2](4%0](B nil ?2](4Y0](B ?2](4[0](B ?2](3T0](B ?2](3^0](B ?2](3F0](B ?2](410](B |
78 ?[2](4-[0](B ?[2](4A[0](B ?[2](4Q[0](B ?[2](45[0](B ?[2](4O[0](B ?[2](3Z[0](B ?[2](3B[0](B ?[2](4=[0](B ?[2](4E[0](B ?[2](4M[0](B ?[2](4I[0](B nil nli nil nil ]) | 78 ?2](4-0](B ?2](4A0](B ?2](4Q0](B ?2](450](B ?2](4O0](B ?2](3Z0](B ?2](3B0](B ?2](4=0](B ?2](4E0](B ?2](4M0](B ?2](4I0](B nil nli nil nil ]) |
79 (t | 79 (t |
80 [?[2](3![0](B ?[2](3"[0](B ?\" ?# ?$ ?% ?& ?' ?[2](3#[0](B ?[2](3$[0](B ?* ?+ ?[2](3^[0](B ?- ?[2](3H[0](B ?[2](4I[0](B | 80 [?2](3!0](B ?2](3"0](B ?\" ?# ?$ ?% ?& ?' ?2](3#0](B ?2](3$0](B ?* ?+ ?2](3^0](B ?- ?2](3H0](B ?2](4I0](B |
81 ?(2![0](B ?(2"[0](B ?(2#[0](B ?(2$[0](B ?(2%[0](B ?(2&[0](B ?(2'[0](B ?(2([0](B ?(2)[0](B ?(2*[0](B ?[2](3'[0](B ?[2](4U[0](B ?, ?= ?. ?[2](3)[0](B | 81 ?(2!(B ?(2"(B ?(2#(B ?(2$(B ?(2%(B ?(2&(B ?(2'(B ?(2((B ?(2)(B ?(2*(B ?2](3'0](B ?2](4U0](B ?, ?= ?. ?2](3)0](B |
82 ?@ nil ?[2](3b[0](B ?{ ?[ nil ?] ?[2](3c[0](B ?[2](30[0](B nil nil ?[2](3%[0](B ?/ ?` ?[2](3.[0](B nil | 82 ?@ nil ?2](3b0](B ?{ ?[ nil ?] ?2](3c0](B ?2](300](B nil nil ?2](3%0](B ?/ ?` ?2](3.0](B nil |
83 ?[2](3([0](B nil nil nil ?[2](3d[0](B ?' ?} nil nil ?[2](34[0](B ?~ ?[2](4)[0](B ?\\ ?[2](3B[0](B ?^ ?_ | 83 ?2](3(0](B nil nil nil ?2](3d0](B ?' ?} nil nil ?2](340](B ?~ ?2](4)0](B ?\\ ?2](3B0](B ?^ ?_ |
84 ?[2](3D[0](B ?[2](49[0](B ?[2](3e[0](B ?[2](32[0](B ?[2](4_[0](B ?[2](4'[0](B ?[2](4#[0](B ?[2](4Y[0](B ?[2](38[0](B ?[2](3Z[0](B ?[2](4%[0](B ?[2](4[[0](B ?[2](3T[0](B ?[2](3<[0](B ?[2](4][0](B ?[2](41[0](B | 84 ?2](3D0](B ?2](490](B ?2](3e0](B ?2](320](B ?2](4_0](B ?2](4'0](B ?2](4#0](B ?2](4Y0](B ?2](380](B ?2](3Z0](B ?2](4%0](B ?2](4[0](B ?2](3T0](B ?2](3<0](B ?2](4]0](B ?2](410](B |
85 ?[2](4-[0](B ?[2](4A[0](B ?[2](4S[0](B ?[2](45[0](B ?[2](4Q[0](B ?[2](4M[0](B ?[2](3F[0](B ?[2](4=[0](B ?[2](3-[0](B ?[2](4O[0](B ?[2](4![0](B ?< ?| ?> nil ]))) | 85 ?2](4-0](B ?2](4A0](B ?2](4S0](B ?2](450](B ?2](4Q0](B ?2](4M0](B ?2](3F0](B ?2](4=0](B ?2](3-0](B ?2](4O0](B ?2](4!0](B ?< ?| ?> nil ]))) |
86 | 86 |
87 (defvar arabic-mode-map | 87 (defvar arabic-mode-map |
88 (let ((map (make-keymap))) | 88 (let ((map (make-keymap))) |
89 (substitute-key-definition 'self-insert-command | 89 (substitute-key-definition 'self-insert-command |
90 'arabic-self-insert-command | 90 'arabic-self-insert-command |
166 ((eq arabic-input-keymap 'arabic-keymap-0) | 166 ((eq arabic-input-keymap 'arabic-keymap-0) |
167 "\ | 167 "\ |
168 Keymap in Arabic-mode | 168 Keymap in Arabic-mode |
169 | 169 |
170 +----------------------------------------------------------------+ | 170 +----------------------------------------------------------------+ |
171 |! [2](3"[0](B |@ |# |$ |% |^ |& |* |( [2](3#[0](B |) [2](3$[0](B |_ |+ |~ | | 171 |! 2](3"0](B |@ |# |$ |% |^ |& |* |( 2](3#0](B |) 2](3$0](B |_ |+ |~ | |
172 |1 (2"[0](B |2 (2#[0](B |3 (2$[0](B |4 (2%[0](B |5 (2&[0](B |6 (2'[0](B |7 (2([0](B |8 (2)[0](B |9 (2*[0](B |0 (2![0](B |- |= |` [2](4M[0](B| | 172 |1 (2"(B |2 (2#(B |3 (2$(B |4 (2%(B |5 (2&(B |6 (2'(B |7 (2((B |8 (2)(B |9 (2*(B |0 (2!(B |- |= |` 2](4M0](B| |
173 +----------------------------------------------------------------+ | 173 +----------------------------------------------------------------+ |
174 |Q |W |E |R |T [2](4E[0](B|Y |U |I |O |P | | 174 |Q |W |E |R |T 2](4E0](B|Y |U |I |O |P | |
175 |q [2](4S[0](B|w [2](3^[0](B |e |r [2](3F[0](B |t [2](4%[0](B|y [2](4_[0](B|u |i |o [2](3<[0](B |p [2](4e[0](B| | 175 |q 2](4S0](B|w 2](3^0](B |e |r 2](3F0](B |t 2](4%0](B|y 2](4_0](B|u |i |o 2](3<0](B |p 2](4e0](B| |
176 +--------------------------------------------------------+ | 176 +--------------------------------------------------------+ |
177 |A [2](4][0](B|S [2](4=[0](B|D [2](4A[0](B|F |G [2](4O[0](B|H [2](4-[0](B|J |K [2](41[0](B|L |: [2](3'[0](B |\" [2](3-[0](B | | 177 |A 2](4]0](B|S 2](4=0](B|D 2](4A0](B|F |G 2](4O0](B|H 2](4-0](B|J |K 2](410](B|L |: 2](3'0](B |\" 2](3-0](B | |
178 |a [2](38[0](B |s [2](45[0](B|d [2](3B[0](B |f [2](4Q[0](B|g [2](4k[0](B|h [2](3Z[0](B |j [2](4)[0](B|k [2](4U[0](B|l [2](4Y[0](B|; [2](3([0](B |' | | 178 |a 2](380](B |s 2](450](B|d 2](3B0](B |f 2](4Q0](B|g 2](4k0](B|h 2](3Z0](B |j 2](4)0](B|k 2](4U0](B|l 2](4Y0](B|; 2](3(0](B |' | |
179 +------------------------------------------------------+ | 179 +------------------------------------------------------+ |
180 |Z [2](4I[0](B|X [2](3h[0](B |C [2](4g[0](B|V |B |N |M |< [2](3*[0](B |> [2](3+[0](B |? [2](3)[0](B | | 180 |Z 2](4I0](B|X 2](3h0](B |C 2](4g0](B|V |B |N |M |< 2](3*0](B |> 2](3+0](B |? 2](3)0](B | |
181 |z [2](3H[0](B |x [2](3D[0](B |c [2](4'[0](B|v |b [2](4#[0](B|n [2](4[[0](B|m [2](3T[0](B |, [2](3%[0](B |. [2](3&[0](B |/ [2](49[0](B| | 181 |z 2](3H0](B |x 2](3D0](B |c 2](4'0](B|v |b 2](4#0](B|n 2](4[0](B|m 2](3T0](B |, 2](3%0](B |. 2](3&0](B |/ 2](490](B| |
182 +-------------------------------------------------+") | 182 +-------------------------------------------------+") |
183 | 183 |
184 ((eq arabic-input-keymap 'arabic-keymap-1) | 184 ((eq arabic-input-keymap 'arabic-keymap-1) |
185 "\ | 185 "\ |
186 Keymap in Arabic-mode +--------------+ | 186 Keymap in Arabic-mode +--------------+ |
187 | ALT SHIFT| | 187 | ALT SHIFT| |
188 +-------------------------------------------------+ |ASCII ARABIC| | 188 +-------------------------------------------------+ |ASCII ARABIC| |
189 | [2](3"[0](B | | | | | | | | [2](3#[0](B | [2](3$[0](B | +--------------+ | 189 | 2](3"0](B | | | | | | | | 2](3#0](B | 2](3$0](B | +--------------+ |
190 |1 (2"[0](B |2 (2#[0](B |3 (2$[0](B |4 (2%[0](B |5 (2&[0](B |6 (2'[0](B |7 (2([0](B |8 (2)[0](B |9 (2*[0](B |0 (2![0](B | | 190 |1 (2"(B |2 (2#(B |3 (2$(B |4 (2%(B |5 (2&(B |6 (2'(B |7 (2((B |8 (2)(B |9 (2*(B |0 (2!(B | |
191 +-------------------------------------------------------------+ | 191 +-------------------------------------------------------------+ |
192 | | | | | | | | | | | | | | 192 | | | | | | | | | | | | | |
193 |q [2](4A[0](B|w [2](4=[0](B|e [2](4S[0](B|r [2](4Q[0](B|t [2](4O[0](B|y [2](4M[0](B|u [2](3Z[0](B |i |o [2](41[0](B|p [2](4-[0](B|[ [2](4)[0](B|] [2](4g[0](B| | 193 |q 2](4A0](B|w 2](4=0](B|e 2](4S0](B|r 2](4Q0](B|t 2](4O0](B|y 2](4M0](B|u 2](3Z0](B |i |o 2](410](B|p 2](4-0](B|[ 2](4)0](B|] 2](4g0](B| |
194 +-----------------------------------------------------------+ | 194 +-----------------------------------------------------------+ |
195 | | | | [2](4e[0](B| [2](3.[0](B | | | | |[2](4k[0](B [2](3'[0](B| | 195 | | | | 2](4e0](B| 2](3.0](B | | | | |2](4k0](B 2](3'0](B| |
196 |a [2](49[0](B|s [2](45[0](B|d [2](4_[0](B|f [2](4#[0](B|g [2](38[0](B |h [2](4%[0](B|j [2](4Y[0](B|k [2](4[[0](B|l [2](3T[0](B |; [2](4U[0](B| | 196 |a 2](490](B|s 2](450](B|d 2](4_0](B|f 2](4#0](B|g 2](380](B |h 2](4%0](B|j 2](4Y0](B|k 2](4[0](B|l 2](3T0](B |; 2](4U0](B| |
197 +---------------------------------------------------+ | 197 +---------------------------------------------------+ |
198 | | | |[2](3-[0](B [2](30[0](B | [2](3h[0](B | | | [2](3*[0](B | [2](3+[0](B | [2](3)[0](B | | 198 | | | |2](3-0](B 2](300](B | 2](3h0](B | | | 2](3*0](B | 2](3+0](B | 2](3)0](B | |
199 |z [2](4I[0](B|x [2](4E[0](B|c [2](3D[0](B |v [2](3B[0](B |b [2](3H[0](B |n [2](3F[0](B |m [2](3^[0](B |, [2](3%[0](B |. [2](3&[0](B |/ | | 199 |z 2](4I0](B|x 2](4E0](B|c 2](3D0](B |v 2](3B0](B |b 2](3H0](B |n 2](3F0](B |m 2](3^0](B |, 2](3%0](B |. 2](3&0](B |/ | |
200 +-------------------------------------------------+") | 200 +-------------------------------------------------+") |
201 | 201 |
202 (t | 202 (t |
203 "\ | 203 "\ |
204 +-----------------+ | 204 +-----------------+ |
205 |S-ASCII S-Arabic| | 205 |S-ASCII S-Arabic| |
206 | ASCII Arabic | +----+ | 206 | ASCII Arabic | +----+ |
207 +-----------------+ || || | 207 +-----------------+ || || |
208 |\\ \\| | 208 |\\ \\| |
209 +-----------------------------------------------------------+ | 209 +-----------------------------------------------------------+ |
210 |! [2](3"[0](B|@ @|# #|$ $|% %|^ ^|& &|* *|( [2](3#[0](B|) [2](3$[0](B|_ _|+ +| | 210 |! 2](3"0](B|@ @|# #|$ $|% %|^ ^|& &|* *|( 2](3#0](B|) 2](3$0](B|_ _|+ +| |
211 |1 (2"[0](B|2 (2#[0](B|3 (2$[0](B|4 (2%[0](B|5 (2&[0](B|6 (2'[0](B|7 (2([0](B|8 (2)[0](B|9 (2*[0](B|0 (2![0](B|- -|= =| | 211 |1 (2"(B|2 (2#(B|3 (2$(B|4 (2%(B|5 (2&(B|6 (2'(B|7 (2((B|8 (2)(B|9 (2*(B|0 (2!(B|- -|= =| |
212 +-------------------------------------------------------------+ | 212 +-------------------------------------------------------------+ |
213 |Q |W |E |R |T [2](3d[0](B|Y [2](34[0](B|U '|I |O |P [2](3([0](B|{ <|} >| | 213 |Q |W |E |R |T 2](3d0](B|Y 2](340](B|U '|I |O |P 2](3(0](B|{ <|} >| |
214 | [2](4A[0](B| [2](4=[0](B| [2](4'[0](B| [2](4S[0](B| [2](4Q[0](B| [2](4O[0](B| [2](4M[0](B| [2](3Z[0](B| [2](41[0](B| [2](4-[0](B|[ [2](4)[0](B|] [2](3B[0](B| | 214 | 2](4A0](B| 2](4=0](B| 2](4'0](B| 2](4S0](B| 2](4Q0](B| 2](4O0](B| 2](4M0](B| 2](3Z0](B| 2](410](B| 2](4-0](B|[ 2](4)0](B|] 2](3B0](B| |
215 +-------------------------------------------------------------+ | 215 +-------------------------------------------------------------+ |
216 |A |S |D [|F ]|G [2](3c[0](B|H [2](30[0](B|J |K [2](3%[0](B|L /|: [2](3'[0](B|\" \" |~[2](3,[0](B | | 216 |A |S |D [|F ]|G 2](3c0](B|H 2](300](B|J |K 2](3%0](B|L /|: 2](3'0](B|\" \" |~2](3,0](B | |
217 | [2](49[0](B| [2](45[0](B| [2](4_[0](B| [2](4#[0](B| [2](4Y[0](B| [2](38[0](B| [2](4%[0](B| [2](4[[0](B| [2](3T[0](B|\; [2](4U[0](B|' [2](4E[0](B|` [2](3D[0](B| | 217 | 2](490](B| 2](450](B| 2](4_0](B| 2](4#0](B| 2](4Y0](B| 2](380](B| 2](4%0](B| 2](4[0](B| 2](3T0](B|\; 2](4U0](B|' 2](4E0](B|` 2](3D0](B| |
218 +-----------------------------------------------------------+ | 218 +-----------------------------------------------------------+ |
219 |Z ~|X |C {|V }|B [2](3b[0](B|N [2](3.[0](B|M `|< ,|> [2](3&[0](B|? [2](3)[0](B| | 219 |Z ~|X |C {|V }|B 2](3b0](B|N 2](3.0](B|M `|< ,|> 2](3&0](B|? 2](3)0](B| |
220 | [2](4![0](B| [2](3-[0](B| [2](32[0](B| [2](3F[0](B| [2](3e[0](B| [2](4][0](B| [2](3<[0](B|, [2](3^[0](B|. [2](3H[0](B|/ [2](4I[0](B| | 220 | 2](4!0](B| 2](3-0](B| 2](320](B| 2](3F0](B| 2](3e0](B| 2](4]0](B| 2](3<0](B|, 2](3^0](B|. 2](3H0](B|/ 2](4I0](B| |
221 +-------------------------------------------------+")) | 221 +-------------------------------------------------+")) |
222 | 222 |
223 "Document shown by arabic-help (M-z).") | 223 "Document shown by arabic-help (M-z).") |
224 | 224 |
225 ;;;###autoload | 225 ;;;###autoload |
237 (interactive) | 237 (interactive) |
238 (if (not arabic-mode) | 238 (if (not arabic-mode) |
239 (progn | 239 (progn |
240 (setq arabic-mode t | 240 (setq arabic-mode t |
241 arabic-input-arabic-char t | 241 arabic-input-arabic-char t |
242 arabic-mode-indicator " [2](3=a:GJ[0](B") | 242 arabic-mode-indicator " 2](3=a:GJ0](B") |
243 (redraw-modeline t) | 243 (redraw-modeline t) |
244 (message "M-z to display arabic keymap.") | 244 (message "M-z to display arabic keymap.") |
245 (run-hooks 'arabic-mode-hooks)))) | 245 (run-hooks 'arabic-mode-hooks)))) |
246 | 246 |
247 (defun exit-arabic-mode nil | 247 (defun exit-arabic-mode nil |
251 (progn | 251 (progn |
252 (setq arabic-mode nil) | 252 (setq arabic-mode nil) |
253 (redraw-modeline t)))) | 253 (redraw-modeline t)))) |
254 | 254 |
255 (defconst *arabic-adding-connection-to-right* | 255 (defconst *arabic-adding-connection-to-right* |
256 '((?[2](3.[0](B . ?[2](3/[0](B ) (?[2](3/[0](B . ?[2](3/[0](B ) | 256 '((?2](3.0](B . ?2](3/0](B ) (?2](3/0](B . ?2](3/0](B ) |
257 (?[2](30[0](B . ?[2](31[0](B ) (?[2](31[0](B . ?[2](31[0](B ) | 257 (?2](300](B . ?2](310](B ) (?2](310](B . ?2](310](B ) |
258 (?[2](32[0](B . ?[2](33[0](B ) (?[2](33[0](B . ?[2](33[0](B ) | 258 (?2](320](B . ?2](330](B ) (?2](330](B . ?2](330](B ) |
259 (?[2](34[0](B . ?[2](35[0](B ) (?[2](35[0](B . ?[2](35[0](B ) | 259 (?2](340](B . ?2](350](B ) (?2](350](B . ?2](350](B ) |
260 (?[2](4![0](B . ?[2](4"[0](B) (?[2](36[0](B . ?[2](37[0](B ) (?[2](37[0](B . ?[2](37[0](B ) (?[2](4"[0](B . ?[2](4"[0](B) | 260 (?2](4!0](B . ?2](4"0](B) (?2](360](B . ?2](370](B ) (?2](370](B . ?2](370](B ) (?2](4"0](B . ?2](4"0](B) |
261 (?[2](36[0](B . ?[2](37[0](B ) (?[2](37[0](B . ?[2](37[0](B ) | 261 (?2](360](B . ?2](370](B ) (?2](370](B . ?2](370](B ) |
262 (?[2](38[0](B . ?[2](39[0](B ) (?[2](39[0](B . ?[2](39[0](B ) | 262 (?2](380](B . ?2](390](B ) (?2](390](B . ?2](390](B ) |
263 (?[2](4#[0](B . ?[2](4$[0](B) (?[2](3:[0](B . ?[2](3;[0](B ) (?[2](3;[0](B . ?[2](3;[0](B ) (?[2](4$[0](B . ?[2](4$[0](B) | 263 (?2](4#0](B . ?2](4$0](B) (?2](3:0](B . ?2](3;0](B ) (?2](3;0](B . ?2](3;0](B ) (?2](4$0](B . ?2](4$0](B) |
264 (?[2](3<[0](B . ?[2](3=[0](B ) (?[2](3=[0](B . ?[2](3=[0](B ) | 264 (?2](3<0](B . ?2](3=0](B ) (?2](3=0](B . ?2](3=0](B ) |
265 (?[2](4%[0](B . ?[2](4&[0](B) (?[2](3>[0](B . ?[2](3?[0](B ) (?[2](3?[0](B . ?[2](3?[0](B ) (?[2](4&[0](B . ?[2](4&[0](B) | 265 (?2](4%0](B . ?2](4&0](B) (?2](3>0](B . ?2](3?0](B ) (?2](3?0](B . ?2](3?0](B ) (?2](4&0](B . ?2](4&0](B) |
266 (?[2](4'[0](B . ?[2](4([0](B) (?[2](3@[0](B . ?[2](3A[0](B ) (?[2](3A[0](B . ?[2](3A[0](B ) (?[2](4([0](B . ?[2](4([0](B) | 266 (?2](4'0](B . ?2](4(0](B) (?2](3@0](B . ?2](3A0](B ) (?2](3A0](B . ?2](3A0](B ) (?2](4(0](B . ?2](4(0](B) |
267 (?[2](4)[0](B . ?[2](4,[0](B) (?[2](4*[0](B . ?[2](4+[0](B) (?[2](4+[0](B . ?[2](4+[0](B) (?[2](4,[0](B . ?[2](4,[0](B) | 267 (?2](4)0](B . ?2](4,0](B) (?2](4*0](B . ?2](4+0](B) (?2](4+0](B . ?2](4+0](B) (?2](4,0](B . ?2](4,0](B) |
268 (?[2](4-[0](B . ?[2](40[0](B) (?[2](4.[0](B . ?[2](4/[0](B) (?[2](4/[0](B . ?[2](4/[0](B) (?[2](40[0](B . ?[2](40[0](B) | 268 (?2](4-0](B . ?2](400](B) (?2](4.0](B . ?2](4/0](B) (?2](4/0](B . ?2](4/0](B) (?2](400](B . ?2](400](B) |
269 (?[2](41[0](B . ?[2](44[0](B) (?[2](42[0](B . ?[2](43[0](B) (?[2](43[0](B . ?[2](43[0](B) (?[2](44[0](B . ?[2](44[0](B) | 269 (?2](410](B . ?2](440](B) (?2](420](B . ?2](430](B) (?2](430](B . ?2](430](B) (?2](440](B . ?2](440](B) |
270 (?[2](3B[0](B . ?[2](3C[0](B ) (?[2](3C[0](B . ?[2](3C[0](B ) | 270 (?2](3B0](B . ?2](3C0](B ) (?2](3C0](B . ?2](3C0](B ) |
271 (?[2](3D[0](B . ?[2](3E[0](B ) (?[2](3E[0](B . ?[2](3E[0](B ) | 271 (?2](3D0](B . ?2](3E0](B ) (?2](3E0](B . ?2](3E0](B ) |
272 (?[2](3F[0](B . ?[2](3G[0](B ) (?[2](3G[0](B . ?[2](3G[0](B ) | 272 (?2](3F0](B . ?2](3G0](B ) (?2](3G0](B . ?2](3G0](B ) |
273 (?[2](3H[0](B . ?[2](3I[0](B ) (?[2](3I[0](B . ?[2](3I[0](B ) | 273 (?2](3H0](B . ?2](3I0](B ) (?2](3I0](B . ?2](3I0](B ) |
274 (?[2](45[0](B . ?[2](48[0](B) (?[2](46[0](B . ?[2](47[0](B) (?[2](47[0](B . ?[2](47[0](B) (?[2](48[0](B . ?[2](48[0](B) | 274 (?2](450](B . ?2](480](B) (?2](460](B . ?2](470](B) (?2](470](B . ?2](470](B) (?2](480](B . ?2](480](B) |
275 (?[2](49[0](B . ?[2](4<[0](B) (?[2](4:[0](B . ?[2](4;[0](B) (?[2](4;[0](B . ?[2](4;[0](B) (?[2](4<[0](B . ?[2](4<[0](B) | 275 (?2](490](B . ?2](4<0](B) (?2](4:0](B . ?2](4;0](B) (?2](4;0](B . ?2](4;0](B) (?2](4<0](B . ?2](4<0](B) |
276 (?[2](4=[0](B . ?[2](4@[0](B) (?[2](4>[0](B . ?[2](4?[0](B) (?[2](4?[0](B . ?[2](4?[0](B) (?[2](4@[0](B . ?[2](4@[0](B) | 276 (?2](4=0](B . ?2](4@0](B) (?2](4>0](B . ?2](4?0](B) (?2](4?0](B . ?2](4?0](B) (?2](4@0](B . ?2](4@0](B) |
277 (?[2](4A[0](B . ?[2](4D[0](B) (?[2](4B[0](B . ?[2](4C[0](B) (?[2](4C[0](B . ?[2](4C[0](B) (?[2](4D[0](B . ?[2](4D[0](B) | 277 (?2](4A0](B . ?2](4D0](B) (?2](4B0](B . ?2](4C0](B) (?2](4C0](B . ?2](4C0](B) (?2](4D0](B . ?2](4D0](B) |
278 (?[2](4E[0](B . ?[2](4H[0](B) (?[2](4F[0](B . ?[2](4G[0](B) (?[2](4G[0](B . ?[2](4G[0](B) (?[2](4H[0](B . ?[2](4H[0](B) | 278 (?2](4E0](B . ?2](4H0](B) (?2](4F0](B . ?2](4G0](B) (?2](4G0](B . ?2](4G0](B) (?2](4H0](B . ?2](4H0](B) |
279 (?[2](4I[0](B . ?[2](4L[0](B) (?[2](4J[0](B . ?[2](4K[0](B) (?[2](4K[0](B . ?[2](4K[0](B) (?[2](4L[0](B . ?[2](4L[0](B) | 279 (?2](4I0](B . ?2](4L0](B) (?2](4J0](B . ?2](4K0](B) (?2](4K0](B . ?2](4K0](B) (?2](4L0](B . ?2](4L0](B) |
280 (?[2](4M[0](B . ?[2](4N[0](B) (?[2](3J[0](B . ?[2](3K[0](B ) (?[2](3K[0](B . ?[2](3K[0](B ) (?[2](4N[0](B . ?[2](4N[0](B) | 280 (?2](4M0](B . ?2](4N0](B) (?2](3J0](B . ?2](3K0](B ) (?2](3K0](B . ?2](3K0](B ) (?2](4N0](B . ?2](4N0](B) |
281 (?[2](4O[0](B . ?[2](4P[0](B) (?[2](3L[0](B . ?[2](3M[0](B ) (?[2](3M[0](B . ?[2](3M[0](B ) (?[2](4P[0](B . ?[2](4P[0](B) | 281 (?2](4O0](B . ?2](4P0](B) (?2](3L0](B . ?2](3M0](B ) (?2](3M0](B . ?2](3M0](B ) (?2](4P0](B . ?2](4P0](B) |
282 (?[2](4Q[0](B . ?[2](4R[0](B) (?[2](3N[0](B . ?[2](3O[0](B ) (?[2](3O[0](B . ?[2](3O[0](B ) (?[2](4R[0](B . ?[2](4R[0](B) | 282 (?2](4Q0](B . ?2](4R0](B) (?2](3N0](B . ?2](3O0](B ) (?2](3O0](B . ?2](3O0](B ) (?2](4R0](B . ?2](4R0](B) |
283 (?[2](4S[0](B . ?[2](4T[0](B) (?[2](3P[0](B . ?[2](3Q[0](B ) (?[2](3Q[0](B . ?[2](3Q[0](B ) (?[2](4T[0](B . ?[2](4T[0](B) | 283 (?2](4S0](B . ?2](4T0](B) (?2](3P0](B . ?2](3Q0](B ) (?2](3Q0](B . ?2](3Q0](B ) (?2](4T0](B . ?2](4T0](B) |
284 (?[2](4U[0](B . ?[2](4X[0](B) (?[2](4V[0](B . ?[2](4W[0](B) (?[2](4W[0](B . ?[2](4W[0](B) (?[2](4X[0](B . ?[2](4X[0](B) | 284 (?2](4U0](B . ?2](4X0](B) (?2](4V0](B . ?2](4W0](B) (?2](4W0](B . ?2](4W0](B) (?2](4X0](B . ?2](4X0](B) |
285 (?[2](4Y[0](B . ?[2](4Z[0](B) (?[2](3R[0](B . ?[2](3S[0](B ) (?[2](3S[0](B . ?[2](3S[0](B ) (?[2](4Z[0](B . ?[2](4Z[0](B) | 285 (?2](4Y0](B . ?2](4Z0](B) (?2](3R0](B . ?2](3S0](B ) (?2](3S0](B . ?2](3S0](B ) (?2](4Z0](B . ?2](4Z0](B) |
286 (?[2](3T[0](B . ?[2](3W[0](B ) (?[2](3U[0](B . ?[2](3V[0](B ) (?[2](3V[0](B . ?[2](3V[0](B ) (?[2](3W[0](B . ?[2](3W[0](B ) | 286 (?2](3T0](B . ?2](3W0](B ) (?2](3U0](B . ?2](3V0](B ) (?2](3V0](B . ?2](3V0](B ) (?2](3W0](B . ?2](3W0](B ) |
287 (?[2](4[[0](B . ?[2](4\[0](B) (?[2](3X[0](B . ?[2](3Y[0](B ) (?[2](3Y[0](B . ?[2](3Y[0](B ) (?[2](4\[0](B . ?[2](4\[0](B) | 287 (?2](4[0](B . ?2](4\0](B) (?2](3X0](B . ?2](3Y0](B ) (?2](3Y0](B . ?2](3Y0](B ) (?2](4\0](B . ?2](4\0](B) |
288 (?[2](3Z[0](B . ?[2](3][0](B ) (?[2](3[[0](B . ?[2](3\[0](B ) (?[2](3\[0](B . ?[2](3\[0](B ) (?[2](3][0](B . ?[2](3][0](B ) | 288 (?2](3Z0](B . ?2](3]0](B ) (?2](3[0](B . ?2](3\0](B ) (?2](3\0](B . ?2](3\0](B ) (?2](3]0](B . ?2](3]0](B ) |
289 (?[2](3^[0](B . ?[2](3_[0](B ) (?[2](3_[0](B . ?[2](3_[0](B ) | 289 (?2](3^0](B . ?2](3_0](B ) (?2](3_0](B . ?2](3_0](B ) |
290 (?[2](4][0](B . ?[2](4^[0](B) (?[2](4^[0](B . ?[2](4^[0](B) | 290 (?2](4]0](B . ?2](4^0](B) (?2](4^0](B . ?2](4^0](B) |
291 (?[2](4_[0](B . ?[2](4`[0](B) (?[2](3`[0](B . ?[2](3a[0](B ) (?[2](3a[0](B . ?[2](3a[0](B ) (?[2](4`[0](B . ?[2](4`[0](B) | 291 (?2](4_0](B . ?2](4`0](B) (?2](3`0](B . ?2](3a0](B ) (?2](3a0](B . ?2](3a0](B ) (?2](4`0](B . ?2](4`0](B) |
292 (?[2](3b[0](B . ?[2](4a[0](B) (?[2](4a[0](B . ?[2](4a[0](B) | 292 (?2](3b0](B . ?2](4a0](B) (?2](4a0](B . ?2](4a0](B) |
293 (?[2](3c[0](B . ?[2](4b[0](B) (?[2](4b[0](B . ?[2](4b[0](B) | 293 (?2](3c0](B . ?2](4b0](B) (?2](4b0](B . ?2](4b0](B) |
294 (?[2](3d[0](B . ?[2](4c[0](B) (?[2](4c[0](B . ?[2](4c[0](B) | 294 (?2](3d0](B . ?2](4c0](B) (?2](4c0](B . ?2](4c0](B) |
295 (?[2](3e[0](B . ?[2](4d[0](B) (?[2](4d[0](B . ?[2](4d[0](B) | 295 (?2](3e0](B . ?2](4d0](B) (?2](4d0](B . ?2](4d0](B) |
296 (?[2](4e[0](B . ?[2](4f[0](B) (?[2](3f[0](B . ?[2](3g[0](B ) (?[2](3g[0](B . ?[2](3g[0](B ) (?[2](4f[0](B . ?[2](4f[0](B) | 296 (?2](4e0](B . ?2](4f0](B) (?2](3f0](B . ?2](3g0](B ) (?2](3g0](B . ?2](3g0](B ) (?2](4f0](B . ?2](4f0](B) |
297 (?[2](4g[0](B . ?[2](4j[0](B) (?[2](4h[0](B . ?[2](4i[0](B) (?[2](4i[0](B . ?[2](4i[0](B) (?[2](4j[0](B . ?[2](4j[0](B) | 297 (?2](4g0](B . ?2](4j0](B) (?2](4h0](B . ?2](4i0](B) (?2](4i0](B . ?2](4i0](B) (?2](4j0](B . ?2](4j0](B) |
298 (?[2](3h[0](B . ?[2](3i[0](B ) (?[2](3i[0](B . ?[2](3i[0](B ) | 298 (?2](3h0](B . ?2](3i0](B ) (?2](3i0](B . ?2](3i0](B ) |
299 (?[2](4k[0](B . ?[2](4n[0](B) (?[2](4l[0](B . ?[2](4m[0](B) (?[2](4m[0](B . ?[2](4m[0](B) (?[2](4n[0](B . ?[2](4n[0](B))) | 299 (?2](4k0](B . ?2](4n0](B) (?2](4l0](B . ?2](4m0](B) (?2](4m0](B . ?2](4m0](B) (?2](4n0](B . ?2](4n0](B))) |
300 | 300 |
301 (defconst *arabic-adding-connection-to-left* | 301 (defconst *arabic-adding-connection-to-left* |
302 '((?[2](4![0](B . ?[2](36[0](B ) (?[2](36[0](B . ?[2](36[0](B ) (?[2](37[0](B . ?[2](37[0](B ) (?[2](4"[0](B . ?[2](37[0](B) | 302 '((?2](4!0](B . ?2](360](B ) (?2](360](B . ?2](360](B ) (?2](370](B . ?2](370](B ) (?2](4"0](B . ?2](370](B) |
303 (?[2](4#[0](B . ?[2](3:[0](B ) (?[2](3:[0](B . ?[2](3:[0](B ) (?[2](3;[0](B . ?[2](3;[0](B ) (?[2](4$[0](B . ?[2](3;[0](B ) | 303 (?2](4#0](B . ?2](3:0](B ) (?2](3:0](B . ?2](3:0](B ) (?2](3;0](B . ?2](3;0](B ) (?2](4$0](B . ?2](3;0](B ) |
304 (?[2](4%[0](B . ?[2](3>[0](B ) (?[2](3>[0](B . ?[2](3>[0](B ) (?[2](3?[0](B . ?[2](3?[0](B ) (?[2](4&[0](B . ?[2](3?[0](B ) | 304 (?2](4%0](B . ?2](3>0](B ) (?2](3>0](B . ?2](3>0](B ) (?2](3?0](B . ?2](3?0](B ) (?2](4&0](B . ?2](3?0](B ) |
305 (?[2](4'[0](B . ?[2](3@[0](B ) (?[2](3@[0](B . ?[2](3@[0](B ) (?[2](3A[0](B . ?[2](3A[0](B ) (?[2](4([0](B . ?[2](3A[0](B ) | 305 (?2](4'0](B . ?2](3@0](B ) (?2](3@0](B . ?2](3@0](B ) (?2](3A0](B . ?2](3A0](B ) (?2](4(0](B . ?2](3A0](B ) |
306 (?[2](4)[0](B . ?[2](4*[0](B) (?[2](4*[0](B . ?[2](4*[0](B) (?[2](4+[0](B . ?[2](4+[0](B) (?[2](4,[0](B . ?[2](4+[0](B) | 306 (?2](4)0](B . ?2](4*0](B) (?2](4*0](B . ?2](4*0](B) (?2](4+0](B . ?2](4+0](B) (?2](4,0](B . ?2](4+0](B) |
307 (?[2](4-[0](B . ?[2](4.[0](B) (?[2](4.[0](B . ?[2](4.[0](B) (?[2](4/[0](B . ?[2](4/[0](B) (?[2](40[0](B . ?[2](4/[0](B) | 307 (?2](4-0](B . ?2](4.0](B) (?2](4.0](B . ?2](4.0](B) (?2](4/0](B . ?2](4/0](B) (?2](400](B . ?2](4/0](B) |
308 (?[2](41[0](B . ?[2](42[0](B) (?[2](42[0](B . ?[2](42[0](B) (?[2](43[0](B . ?[2](43[0](B) (?[2](44[0](B . ?[2](43[0](B) | 308 (?2](410](B . ?2](420](B) (?2](420](B . ?2](420](B) (?2](430](B . ?2](430](B) (?2](440](B . ?2](430](B) |
309 (?[2](45[0](B . ?[2](46[0](B) (?[2](46[0](B . ?[2](46[0](B) (?[2](47[0](B . ?[2](47[0](B) (?[2](48[0](B . ?[2](47[0](B) | 309 (?2](450](B . ?2](460](B) (?2](460](B . ?2](460](B) (?2](470](B . ?2](470](B) (?2](480](B . ?2](470](B) |
310 (?[2](49[0](B . ?[2](4:[0](B) (?[2](4:[0](B . ?[2](4:[0](B) (?[2](4;[0](B . ?[2](4;[0](B) (?[2](4<[0](B . ?[2](4;[0](B) | 310 (?2](490](B . ?2](4:0](B) (?2](4:0](B . ?2](4:0](B) (?2](4;0](B . ?2](4;0](B) (?2](4<0](B . ?2](4;0](B) |
311 (?[2](4=[0](B . ?[2](4>[0](B) (?[2](4>[0](B . ?[2](4>[0](B) (?[2](4?[0](B . ?[2](4?[0](B) (?[2](4@[0](B . ?[2](4?[0](B) | 311 (?2](4=0](B . ?2](4>0](B) (?2](4>0](B . ?2](4>0](B) (?2](4?0](B . ?2](4?0](B) (?2](4@0](B . ?2](4?0](B) |
312 (?[2](4A[0](B . ?[2](4B[0](B) (?[2](4B[0](B . ?[2](4B[0](B) (?[2](4C[0](B . ?[2](4C[0](B) (?[2](4D[0](B . ?[2](4C[0](B) | 312 (?2](4A0](B . ?2](4B0](B) (?2](4B0](B . ?2](4B0](B) (?2](4C0](B . ?2](4C0](B) (?2](4D0](B . ?2](4C0](B) |
313 (?[2](4E[0](B . ?[2](4F[0](B) (?[2](4F[0](B . ?[2](4F[0](B) (?[2](4G[0](B . ?[2](4G[0](B) (?[2](4H[0](B . ?[2](4G[0](B) | 313 (?2](4E0](B . ?2](4F0](B) (?2](4F0](B . ?2](4F0](B) (?2](4G0](B . ?2](4G0](B) (?2](4H0](B . ?2](4G0](B) |
314 (?[2](4I[0](B . ?[2](4J[0](B) (?[2](4J[0](B . ?[2](4J[0](B) (?[2](4K[0](B . ?[2](4K[0](B) (?[2](4L[0](B . ?[2](4K[0](B) | 314 (?2](4I0](B . ?2](4J0](B) (?2](4J0](B . ?2](4J0](B) (?2](4K0](B . ?2](4K0](B) (?2](4L0](B . ?2](4K0](B) |
315 (?[2](4M[0](B . ?[2](3J[0](B ) (?[2](3J[0](B . ?[2](3J[0](B ) (?[2](3K[0](B . ?[2](3K[0](B ) (?[2](4N[0](B . ?[2](3K[0](B ) | 315 (?2](4M0](B . ?2](3J0](B ) (?2](3J0](B . ?2](3J0](B ) (?2](3K0](B . ?2](3K0](B ) (?2](4N0](B . ?2](3K0](B ) |
316 (?[2](4O[0](B . ?[2](3L[0](B ) (?[2](3L[0](B . ?[2](3L[0](B ) (?[2](3M[0](B . ?[2](3M[0](B ) (?[2](4P[0](B . ?[2](3M[0](B ) | 316 (?2](4O0](B . ?2](3L0](B ) (?2](3L0](B . ?2](3L0](B ) (?2](3M0](B . ?2](3M0](B ) (?2](4P0](B . ?2](3M0](B ) |
317 (?[2](4Q[0](B . ?[2](3N[0](B ) (?[2](3N[0](B . ?[2](3N[0](B ) (?[2](3O[0](B . ?[2](3O[0](B ) (?[2](4R[0](B . ?[2](3O[0](B ) | 317 (?2](4Q0](B . ?2](3N0](B ) (?2](3N0](B . ?2](3N0](B ) (?2](3O0](B . ?2](3O0](B ) (?2](4R0](B . ?2](3O0](B ) |
318 (?[2](4S[0](B . ?[2](3P[0](B ) (?[2](3P[0](B . ?[2](3P[0](B ) (?[2](3Q[0](B . ?[2](3Q[0](B ) (?[2](4T[0](B . ?[2](3Q[0](B ) | 318 (?2](4S0](B . ?2](3P0](B ) (?2](3P0](B . ?2](3P0](B ) (?2](3Q0](B . ?2](3Q0](B ) (?2](4T0](B . ?2](3Q0](B ) |
319 (?[2](4U[0](B . ?[2](4V[0](B) (?[2](4V[0](B . ?[2](4V[0](B) (?[2](4W[0](B . ?[2](4W[0](B) (?[2](4X[0](B . ?[2](4W[0](B) | 319 (?2](4U0](B . ?2](4V0](B) (?2](4V0](B . ?2](4V0](B) (?2](4W0](B . ?2](4W0](B) (?2](4X0](B . ?2](4W0](B) |
320 (?[2](4Y[0](B . ?[2](3R[0](B ) (?[2](3R[0](B . ?[2](3R[0](B ) (?[2](3S[0](B . ?[2](3S[0](B ) (?[2](4Z[0](B . ?[2](3S[0](B ) | 320 (?2](4Y0](B . ?2](3R0](B ) (?2](3R0](B . ?2](3R0](B ) (?2](3S0](B . ?2](3S0](B ) (?2](4Z0](B . ?2](3S0](B ) |
321 (?[2](3T[0](B . ?[2](3U[0](B ) (?[2](3U[0](B . ?[2](3U[0](B ) (?[2](3V[0](B . ?[2](3V[0](B ) (?[2](3W[0](B . ?[2](3V[0](B ) | 321 (?2](3T0](B . ?2](3U0](B ) (?2](3U0](B . ?2](3U0](B ) (?2](3V0](B . ?2](3V0](B ) (?2](3W0](B . ?2](3V0](B ) |
322 (?[2](4[[0](B . ?[2](3X[0](B ) (?[2](3X[0](B . ?[2](3X[0](B ) (?[2](3Y[0](B . ?[2](3Y[0](B ) (?[2](4\[0](B . ?[2](3Y[0](B ) | 322 (?2](4[0](B . ?2](3X0](B ) (?2](3X0](B . ?2](3X0](B ) (?2](3Y0](B . ?2](3Y0](B ) (?2](4\0](B . ?2](3Y0](B ) |
323 (?[2](3Z[0](B . ?[2](3[[0](B ) (?[2](3[[0](B . ?[2](3[[0](B ) (?[2](3\[0](B . ?[2](3\[0](B ) (?[2](3][0](B . ?[2](3\[0](B ) | 323 (?2](3Z0](B . ?2](3[0](B ) (?2](3[0](B . ?2](3[0](B ) (?2](3\0](B . ?2](3\0](B ) (?2](3]0](B . ?2](3\0](B ) |
324 (?[2](4_[0](B . ?[2](3`[0](B ) (?[2](3`[0](B . ?[2](3`[0](B ) (?[2](3a[0](B . ?[2](3a[0](B ) (?[2](4`[0](B . ?[2](3a[0](B ) | 324 (?2](4_0](B . ?2](3`0](B ) (?2](3`0](B . ?2](3`0](B ) (?2](3a0](B . ?2](3a0](B ) (?2](4`0](B . ?2](3a0](B ) |
325 (?[2](4e[0](B . ?[2](3f[0](B ) (?[2](3f[0](B . ?[2](3f[0](B ) (?[2](3g[0](B . ?[2](3g[0](B ) (?[2](4f[0](B . ?[2](3g[0](B) | 325 (?2](4e0](B . ?2](3f0](B ) (?2](3f0](B . ?2](3f0](B ) (?2](3g0](B . ?2](3g0](B ) (?2](4f0](B . ?2](3g0](B) |
326 (?[2](4g[0](B . ?[2](4h[0](B) (?[2](4h[0](B . ?[2](4h[0](B) (?[2](4i[0](B . ?[2](4i[0](B) (?[2](4j[0](B . ?[2](4i[0](B) | 326 (?2](4g0](B . ?2](4h0](B) (?2](4h0](B . ?2](4h0](B) (?2](4i0](B . ?2](4i0](B) (?2](4j0](B . ?2](4i0](B) |
327 (?[2](4k[0](B . ?[2](4l[0](B) (?[2](4l[0](B . ?[2](4l[0](B) (?[2](4m[0](B . ?[2](4m[0](B) (?[2](4n[0](B . ?[2](4m[0](B))) | 327 (?2](4k0](B . ?2](4l0](B) (?2](4l0](B . ?2](4l0](B) (?2](4m0](B . ?2](4m0](B) (?2](4n0](B . ?2](4m0](B))) |
328 | 328 |
329 (defconst *arabic-removing-connection-from-right* | 329 (defconst *arabic-removing-connection-from-right* |
330 '((?[2](3/[0](B . ?[2](3.[0](B ) | 330 '((?2](3/0](B . ?2](3.0](B ) |
331 (?[2](31[0](B . ?[2](30[0](B ) | 331 (?2](310](B . ?2](300](B ) |
332 (?[2](33[0](B . ?[2](32[0](B ) | 332 (?2](330](B . ?2](320](B ) |
333 (?[2](35[0](B . ?[2](34[0](B ) | 333 (?2](350](B . ?2](340](B ) |
334 (?[2](4"[0](B . ?[2](4![0](B) (?[2](37[0](B . ?[2](36[0](B ) | 334 (?2](4"0](B . ?2](4!0](B) (?2](370](B . ?2](360](B ) |
335 (?[2](39[0](B . ?[2](38[0](B ) | 335 (?2](390](B . ?2](380](B ) |
336 (?[2](4$[0](B . ?[2](4#[0](B) (?[2](3;[0](B . ?[2](3:[0](B ) | 336 (?2](4$0](B . ?2](4#0](B) (?2](3;0](B . ?2](3:0](B ) |
337 (?[2](3=[0](B . ?[2](3<[0](B ) | 337 (?2](3=0](B . ?2](3<0](B ) |
338 (?[2](4&[0](B . ?[2](4%[0](B) (?[2](3?[0](B . ?[2](3>[0](B ) | 338 (?2](4&0](B . ?2](4%0](B) (?2](3?0](B . ?2](3>0](B ) |
339 (?[2](4([0](B . ?[2](4'[0](B) (?[2](3A[0](B . ?[2](3@[0](B ) | 339 (?2](4(0](B . ?2](4'0](B) (?2](3A0](B . ?2](3@0](B ) |
340 (?[2](4,[0](B . ?[2](4)[0](B) (?[2](4+[0](B . ?[2](4*[0](B) | 340 (?2](4,0](B . ?2](4)0](B) (?2](4+0](B . ?2](4*0](B) |
341 (?[2](40[0](B . ?[2](4-[0](B) (?[2](4/[0](B . ?[2](4.[0](B) | 341 (?2](400](B . ?2](4-0](B) (?2](4/0](B . ?2](4.0](B) |
342 (?[2](44[0](B . ?[2](41[0](B) (?[2](43[0](B . ?[2](42[0](B) | 342 (?2](440](B . ?2](410](B) (?2](430](B . ?2](420](B) |
343 (?[2](3C[0](B . ?[2](3B[0](B ) | 343 (?2](3C0](B . ?2](3B0](B ) |
344 (?[2](3E[0](B . ?[2](3D[0](B ) | 344 (?2](3E0](B . ?2](3D0](B ) |
345 (?[2](3G[0](B . ?[2](3F[0](B ) | 345 (?2](3G0](B . ?2](3F0](B ) |
346 (?[2](3I[0](B . ?[2](3H[0](B ) | 346 (?2](3I0](B . ?2](3H0](B ) |
347 (?[2](48[0](B . ?[2](45[0](B) (?[2](47[0](B . ?[2](46[0](B) | 347 (?2](480](B . ?2](450](B) (?2](470](B . ?2](460](B) |
348 (?[2](4<[0](B . ?[2](49[0](B) (?[2](4;[0](B . ?[2](4:[0](B) | 348 (?2](4<0](B . ?2](490](B) (?2](4;0](B . ?2](4:0](B) |
349 (?[2](4@[0](B . ?[2](4=[0](B) (?[2](4?[0](B . ?[2](4>[0](B) | 349 (?2](4@0](B . ?2](4=0](B) (?2](4?0](B . ?2](4>0](B) |
350 (?[2](4D[0](B . ?[2](4A[0](B) (?[2](4C[0](B . ?[2](4B[0](B) | 350 (?2](4D0](B . ?2](4A0](B) (?2](4C0](B . ?2](4B0](B) |
351 (?[2](4H[0](B . ?[2](4E[0](B) (?[2](4G[0](B . ?[2](4F[0](B) | 351 (?2](4H0](B . ?2](4E0](B) (?2](4G0](B . ?2](4F0](B) |
352 (?[2](4L[0](B . ?[2](4I[0](B) (?[2](4K[0](B . ?[2](4J[0](B) | 352 (?2](4L0](B . ?2](4I0](B) (?2](4K0](B . ?2](4J0](B) |
353 (?[2](4N[0](B . ?[2](4M[0](B) (?[2](3K[0](B . ?[2](3J[0](B ) | 353 (?2](4N0](B . ?2](4M0](B) (?2](3K0](B . ?2](3J0](B ) |
354 (?[2](4P[0](B . ?[2](4O[0](B) (?[2](3M[0](B . ?[2](3L[0](B ) | 354 (?2](4P0](B . ?2](4O0](B) (?2](3M0](B . ?2](3L0](B ) |
355 (?[2](4R[0](B . ?[2](4Q[0](B) (?[2](3O[0](B . ?[2](3N[0](B ) | 355 (?2](4R0](B . ?2](4Q0](B) (?2](3O0](B . ?2](3N0](B ) |
356 (?[2](4T[0](B . ?[2](4S[0](B) (?[2](3Q[0](B . ?[2](3P[0](B ) | 356 (?2](4T0](B . ?2](4S0](B) (?2](3Q0](B . ?2](3P0](B ) |
357 (?[2](4X[0](B . ?[2](4U[0](B) (?[2](4W[0](B . ?[2](4V[0](B) | 357 (?2](4X0](B . ?2](4U0](B) (?2](4W0](B . ?2](4V0](B) |
358 (?[2](4Z[0](B . ?[2](4Y[0](B) (?[2](3S[0](B . ?[2](3R[0](B ) | 358 (?2](4Z0](B . ?2](4Y0](B) (?2](3S0](B . ?2](3R0](B ) |
359 (?[2](3W[0](B . ?[2](3T[0](B ) (?[2](3V[0](B . ?[2](3U[0](B ) | 359 (?2](3W0](B . ?2](3T0](B ) (?2](3V0](B . ?2](3U0](B ) |
360 (?[2](4\[0](B . ?[2](4[[0](B) (?[2](3Y[0](B . ?[2](3X[0](B ) | 360 (?2](4\0](B . ?2](4[0](B) (?2](3Y0](B . ?2](3X0](B ) |
361 (?[2](3][0](B . ?[2](3Z[0](B ) (?[2](3\[0](B . ?[2](3[[0](B ) | 361 (?2](3]0](B . ?2](3Z0](B ) (?2](3\0](B . ?2](3[0](B ) |
362 (?[2](3_[0](B . ?[2](3^[0](B ) | 362 (?2](3_0](B . ?2](3^0](B ) |
363 (?[2](4^[0](B . ?[2](4][0](B) | 363 (?2](4^0](B . ?2](4]0](B) |
364 (?[2](4`[0](B . ?[2](4_[0](B) (?[2](3a[0](B . ?[2](3`[0](B ) | 364 (?2](4`0](B . ?2](4_0](B) (?2](3a0](B . ?2](3`0](B ) |
365 (?[2](4a[0](B . ?[2](3b[0](B ) | 365 (?2](4a0](B . ?2](3b0](B ) |
366 (?[2](4b[0](B . ?[2](3c[0](B ) | 366 (?2](4b0](B . ?2](3c0](B ) |
367 (?[2](4c[0](B . ?[2](3d[0](B ) | 367 (?2](4c0](B . ?2](3d0](B ) |
368 (?[2](4d[0](B . ?[2](3e[0](B ) | 368 (?2](4d0](B . ?2](3e0](B ) |
369 (?[2](4f[0](B . ?[2](4e[0](B) (?[2](3g[0](B . ?[2](3f[0](B ) | 369 (?2](4f0](B . ?2](4e0](B) (?2](3g0](B . ?2](3f0](B ) |
370 (?[2](4j[0](B . ?[2](4g[0](B) (?[2](4i[0](B . ?[2](4h[0](B) | 370 (?2](4j0](B . ?2](4g0](B) (?2](4i0](B . ?2](4h0](B) |
371 (?[2](3i[0](B . ?[2](3h[0](B) | 371 (?2](3i0](B . ?2](3h0](B) |
372 (?[2](4n[0](B . ?[2](4k[0](B) (?[2](4m[0](B . ?[2](4l[0](B))) | 372 (?2](4n0](B . ?2](4k0](B) (?2](4m0](B . ?2](4l0](B))) |
373 | 373 |
374 (defconst *arabic-removing-connection-from-left* | 374 (defconst *arabic-removing-connection-from-left* |
375 '((?[2](36[0](B . ?[2](4![0](B) (?[2](37[0](B . ?[2](4"[0](B) | 375 '((?2](360](B . ?2](4!0](B) (?2](370](B . ?2](4"0](B) |
376 (?[2](3:[0](B . ?[2](4#[0](B) (?[2](3;[0](B . ?[2](4$[0](B) | 376 (?2](3:0](B . ?2](4#0](B) (?2](3;0](B . ?2](4$0](B) |
377 (?[2](3>[0](B . ?[2](4%[0](B) (?[2](3?[0](B . ?[2](4&[0](B) | 377 (?2](3>0](B . ?2](4%0](B) (?2](3?0](B . ?2](4&0](B) |
378 (?[2](3@[0](B . ?[2](4'[0](B) (?[2](3A[0](B . ?[2](4([0](B) | 378 (?2](3@0](B . ?2](4'0](B) (?2](3A0](B . ?2](4(0](B) |
379 (?[2](4*[0](B . ?[2](4)[0](B) (?[2](4+[0](B . ?[2](4,[0](B) | 379 (?2](4*0](B . ?2](4)0](B) (?2](4+0](B . ?2](4,0](B) |
380 (?[2](4.[0](B . ?[2](4-[0](B) (?[2](4/[0](B . ?[2](40[0](B) | 380 (?2](4.0](B . ?2](4-0](B) (?2](4/0](B . ?2](400](B) |
381 (?[2](42[0](B . ?[2](41[0](B) (?[2](43[0](B . ?[2](44[0](B) | 381 (?2](420](B . ?2](410](B) (?2](430](B . ?2](440](B) |
382 (?[2](46[0](B . ?[2](45[0](B) (?[2](47[0](B . ?[2](48[0](B) | 382 (?2](460](B . ?2](450](B) (?2](470](B . ?2](480](B) |
383 (?[2](4:[0](B . ?[2](49[0](B) (?[2](4;[0](B . ?[2](4<[0](B) | 383 (?2](4:0](B . ?2](490](B) (?2](4;0](B . ?2](4<0](B) |
384 (?[2](4>[0](B . ?[2](4=[0](B) (?[2](4?[0](B . ?[2](4@[0](B) | 384 (?2](4>0](B . ?2](4=0](B) (?2](4?0](B . ?2](4@0](B) |
385 (?[2](4D[0](B . ?[2](4A[0](B) (?[2](4C[0](B . ?[2](4A[0](B) | 385 (?2](4D0](B . ?2](4A0](B) (?2](4C0](B . ?2](4A0](B) |
386 (?[2](4F[0](B . ?[2](4E[0](B) (?[2](4G[0](B . ?[2](4H[0](B) | 386 (?2](4F0](B . ?2](4E0](B) (?2](4G0](B . ?2](4H0](B) |
387 (?[2](4J[0](B . ?[2](4I[0](B) (?[2](4K[0](B . ?[2](4L[0](B) | 387 (?2](4J0](B . ?2](4I0](B) (?2](4K0](B . ?2](4L0](B) |
388 (?[2](3J[0](B . ?[2](4M[0](B) (?[2](3K[0](B . ?[2](4N[0](B) | 388 (?2](3J0](B . ?2](4M0](B) (?2](3K0](B . ?2](4N0](B) |
389 (?[2](3L[0](B . ?[2](4O[0](B) (?[2](3M[0](B . ?[2](4P[0](B) | 389 (?2](3L0](B . ?2](4O0](B) (?2](3M0](B . ?2](4P0](B) |
390 (?[2](3N[0](B . ?[2](4Q[0](B) (?[2](3O[0](B . ?[2](4R[0](B) | 390 (?2](3N0](B . ?2](4Q0](B) (?2](3O0](B . ?2](4R0](B) |
391 (?[2](3P[0](B . ?[2](4S[0](B) (?[2](3Q[0](B . ?[2](4T[0](B) | 391 (?2](3P0](B . ?2](4S0](B) (?2](3Q0](B . ?2](4T0](B) |
392 (?[2](4V[0](B . ?[2](4U[0](B) (?[2](4W[0](B . ?[2](4X[0](B) | 392 (?2](4V0](B . ?2](4U0](B) (?2](4W0](B . ?2](4X0](B) |
393 (?[2](3R[0](B . ?[2](4Y[0](B) (?[2](3S[0](B . ?[2](4Z[0](B) | 393 (?2](3R0](B . ?2](4Y0](B) (?2](3S0](B . ?2](4Z0](B) |
394 (?[2](3U[0](B . ?[2](3T[0](B ) (?[2](3V[0](B . ?[2](3W[0](B ) | 394 (?2](3U0](B . ?2](3T0](B ) (?2](3V0](B . ?2](3W0](B ) |
395 (?[2](3X[0](B . ?[2](4[[0](B) (?[2](3Y[0](B . ?[2](4\[0](B) | 395 (?2](3X0](B . ?2](4[0](B) (?2](3Y0](B . ?2](4\0](B) |
396 (?[2](3[[0](B . ?[2](3Z[0](B ) (?[2](3\[0](B . ?[2](3][0](B ) | 396 (?2](3[0](B . ?2](3Z0](B ) (?2](3\0](B . ?2](3]0](B ) |
397 (?[2](3`[0](B . ?[2](4_[0](B) (?[2](3a[0](B . ?[2](4`[0](B) | 397 (?2](3`0](B . ?2](4_0](B) (?2](3a0](B . ?2](4`0](B) |
398 (?[2](4h[0](B . ?[2](4g[0](B) (?[2](4i[0](B . ?[2](4j[0](B) | 398 (?2](4h0](B . ?2](4g0](B) (?2](4i0](B . ?2](4j0](B) |
399 (?[2](4l[0](B . ?[2](4k[0](B) (?[2](4m[0](B . ?[2](4n[0](B))) | 399 (?2](4l0](B . ?2](4k0](B) (?2](4m0](B . ?2](4n0](B))) |
400 | 400 |
401 (defun arabic-make-connection nil | 401 (defun arabic-make-connection nil |
402 "If possible, tie the two characters around the cursor." | 402 "If possible, tie the two characters around the cursor." |
403 (interactive) | 403 (interactive) |
404 (let ((lch (assoc (visual-char-left) *arabic-adding-connection-to-right*)) | 404 (let ((lch (assoc (visual-char-left) *arabic-adding-connection-to-right*)) |
469 | 469 |
470 (defun arabic-insert-gaaf (arg) | 470 (defun arabic-insert-gaaf (arg) |
471 "Insert gaaf as if it were typed from keyboard." | 471 "Insert gaaf as if it were typed from keyboard." |
472 (interactive "*p") | 472 (interactive "*p") |
473 (while (> arg 0) | 473 (while (> arg 0) |
474 (arabic-keyboard-insert-1-char ?[2](4k[0](B) | 474 (arabic-keyboard-insert-1-char ?2](4k0](B) |
475 (setq arg (1- arg)))) | 475 (setq arg (1- arg)))) |
476 | 476 |
477 (defun arabic-insert-isolated-hamza (arg) | 477 (defun arabic-insert-isolated-hamza (arg) |
478 "Insert an isolated hamza as if it were typed from keyboard." | 478 "Insert an isolated hamza as if it were typed from keyboard." |
479 (interactive "*p") | 479 (interactive "*p") |
480 (while (> arg 0) | 480 (while (> arg 0) |
481 (arabic-keyboard-insert-1-char ?[2](3-[0](B) | 481 (arabic-keyboard-insert-1-char ?2](3-0](B) |
482 (setq arg (1- arg)))) | 482 (setq arg (1- arg)))) |
483 | 483 |
484 (defun arabic-insert-madda nil | 484 (defun arabic-insert-madda nil |
485 "Put madda on the previous alif." | 485 "Put madda on the previous alif." |
486 (interactive) | 486 (interactive) |
487 (let ((rch (visual-char-right))) | 487 (let ((rch (visual-char-right))) |
488 (cond | 488 (cond |
489 ((eq rch ?[2](38[0](B ) (visual-replace-right-1-char ?[2](3.[0](B )) | 489 ((eq rch ?2](380](B ) (visual-replace-right-1-char ?2](3.0](B )) |
490 ((eq rch ?[2](39[0](B ) (visual-replace-right-1-char ?[2](3/[0](B )) | 490 ((eq rch ?2](390](B ) (visual-replace-right-1-char ?2](3/0](B )) |
491 ((eq rch ?[2](3e[0](B ) (visual-replace-right-1-char ?[2](3b[0](B )) | 491 ((eq rch ?2](3e0](B ) (visual-replace-right-1-char ?2](3b0](B )) |
492 ((eq rch ?[2](4d[0](B) (visual-replace-right-1-char ?[2](4a[0](B)) | 492 ((eq rch ?2](4d0](B) (visual-replace-right-1-char ?2](4a0](B)) |
493 (t (beep))))) | 493 (t (beep))))) |
494 | 494 |
495 (defun arabic-insert-alif (arg) | 495 (defun arabic-insert-alif (arg) |
496 "Insert ARG number of alif's. | 496 "Insert ARG number of alif's. |
497 If the previous character is a laam, replace it with an alif+laam ligature." | 497 If the previous character is a laam, replace it with an alif+laam ligature." |
499 (let (rch) | 499 (let (rch) |
500 (while (> arg 0) | 500 (while (> arg 0) |
501 (setq rch (visual-char-right)) | 501 (setq rch (visual-char-right)) |
502 (cond | 502 (cond |
503 ((eq last-command 'arabic-cut-connection) | 503 ((eq last-command 'arabic-cut-connection) |
504 (visual-insert-right-1-char ?[2](38[0](B)) | 504 (visual-insert-right-1-char ?2](380](B)) |
505 ((or (eq rch ?[2](4Y[0](B) (eq rch ?[2](3R[0](B )) | 505 ((or (eq rch ?2](4Y0](B) (eq rch ?2](3R0](B )) |
506 (visual-replace-right-1-char ?[2](3e[0](B )) | 506 (visual-replace-right-1-char ?2](3e0](B )) |
507 ((or (eq rch ?[2](3S[0](B ) (eq rch ?[2](4Z[0](B)) | 507 ((or (eq rch ?2](3S0](B ) (eq rch ?2](4Z0](B)) |
508 (visual-replace-right-1-char ?[2](4d[0](B)) | 508 (visual-replace-right-1-char ?2](4d0](B)) |
509 (t | 509 (t |
510 (visual-insert-left-1-char ?[2](38[0](B ) | 510 (visual-insert-left-1-char ?2](380](B ) |
511 (arabic-make-connection) | 511 (arabic-make-connection) |
512 (visual-move-to-left-1-char))) | 512 (visual-move-to-left-1-char))) |
513 (setq arg (1- arg))) | 513 (setq arg (1- arg))) |
514 (arabic-cut-connection))) | 514 (arabic-cut-connection))) |
515 | 515 |
520 (let (rch) | 520 (let (rch) |
521 (while (> arg 0) | 521 (while (> arg 0) |
522 (setq rch (visual-char-right)) | 522 (setq rch (visual-char-right)) |
523 (cond | 523 (cond |
524 ((eq last-command 'arabic-cut-connection) | 524 ((eq last-command 'arabic-cut-connection) |
525 (visual-insert-right-1-char ?[2](3-[0](B)) | 525 (visual-insert-right-1-char ?2](3-0](B)) |
526 ((eq rch ?[2](38[0](B ) (visual-replace-right-1-char ?[2](30[0](B )) | 526 ((eq rch ?2](380](B ) (visual-replace-right-1-char ?2](300](B )) |
527 ((eq rch ?[2](39[0](B ) (visual-replace-right-1-char ?[2](31[0](B )) | 527 ((eq rch ?2](390](B ) (visual-replace-right-1-char ?2](310](B )) |
528 ((eq rch ?[2](30[0](B ) (visual-replace-right-1-char ?[2](34[0](B )) | 528 ((eq rch ?2](300](B ) (visual-replace-right-1-char ?2](340](B )) |
529 ((eq rch ?[2](31[0](B ) (visual-replace-right-1-char ?[2](35[0](B )) | 529 ((eq rch ?2](310](B ) (visual-replace-right-1-char ?2](350](B )) |
530 ((eq rch ?[2](3^[0](B ) (visual-replace-right-1-char ?[2](32[0](B )) | 530 ((eq rch ?2](3^0](B ) (visual-replace-right-1-char ?2](320](B )) |
531 ((eq rch ?[2](3_[0](B ) (visual-replace-right-1-char ?[2](33[0](B )) | 531 ((eq rch ?2](3_0](B ) (visual-replace-right-1-char ?2](330](B )) |
532 ((eq rch ?[2](4_[0](B) (visual-replace-right-1-char ?[2](4![0](B)) | 532 ((eq rch ?2](4_0](B) (visual-replace-right-1-char ?2](4!0](B)) |
533 ((eq rch ?[2](3`[0](B ) (visual-replace-right-1-char ?[2](36[0](B )) | 533 ((eq rch ?2](3`0](B ) (visual-replace-right-1-char ?2](360](B )) |
534 ((eq rch ?[2](3a[0](B ) (visual-replace-right-1-char ?[2](37[0](B )) | 534 ((eq rch ?2](3a0](B ) (visual-replace-right-1-char ?2](370](B )) |
535 ((eq rch ?[2](4`[0](B) (visual-replace-right-1-char ?[2](4"[0](B)) | 535 ((eq rch ?2](4`0](B) (visual-replace-right-1-char ?2](4"0](B)) |
536 ((eq rch ?[2](4][0](B) (visual-replace-right-1-char ?[2](4![0](B)) | 536 ((eq rch ?2](4]0](B) (visual-replace-right-1-char ?2](4!0](B)) |
537 ((eq rch ?[2](4^[0](B) (visual-replace-right-1-char ?[2](4"[0](B)) | 537 ((eq rch ?2](4^0](B) (visual-replace-right-1-char ?2](4"0](B)) |
538 ((eq rch ?[2](3e[0](B ) (visual-replace-right-1-char ?[2](3c[0](B )) | 538 ((eq rch ?2](3e0](B ) (visual-replace-right-1-char ?2](3c0](B )) |
539 ((eq rch ?[2](4d[0](B) (visual-replace-right-1-char ?[2](4b[0](B)) | 539 ((eq rch ?2](4d0](B) (visual-replace-right-1-char ?2](4b0](B)) |
540 ((eq rch ?[2](3c[0](B ) (visual-replace-right-1-char ?[2](3d[0](B )) | 540 ((eq rch ?2](3c0](B ) (visual-replace-right-1-char ?2](3d0](B )) |
541 ((eq rch ?[2](4b[0](B) (visual-replace-right-1-char ?[2](4c[0](B)) | 541 ((eq rch ?2](4b0](B) (visual-replace-right-1-char ?2](4c0](B)) |
542 (t (arabic-cut-connection) | 542 (t (arabic-cut-connection) |
543 (visual-insert-right-1-char ?[2](3-[0](B))) | 543 (visual-insert-right-1-char ?2](3-0](B))) |
544 (setq arg (1- arg))))) | 544 (setq arg (1- arg))))) |
545 | 545 |
546 (defun arabic-toggle-input-char nil | 546 (defun arabic-toggle-input-char nil |
547 "Toggle Arabic key input and ASCII key input." | 547 "Toggle Arabic key input and ASCII key input." |
548 (interactive) | 548 (interactive) |
549 (if arabic-input-arabic-char | 549 (if arabic-input-arabic-char |
550 (setq arabic-input-arabic-char nil | 550 (setq arabic-input-arabic-char nil |
551 arabic-mode-indicator " Arabic") | 551 arabic-mode-indicator " Arabic") |
552 (setq arabic-input-arabic-char t | 552 (setq arabic-input-arabic-char t |
553 arabic-mode-indicator " [2](3=a:GJ[0](B")) | 553 arabic-mode-indicator " 2](3=a:GJ0](B")) |
554 (redraw-modeline t)) | 554 (redraw-modeline t)) |
555 | 555 |
556 (defun arabic-newline (arg) | 556 (defun arabic-newline (arg) |
557 "Newline for arabic-mode." | 557 "Newline for arabic-mode." |
558 (interactive "*p") | 558 (interactive "*p") |
669 (if display-direction | 669 (if display-direction |
670 (arabic-backward-kill-word arg) | 670 (arabic-backward-kill-word arg) |
671 (arabic-kill-word arg))) | 671 (arabic-kill-word arg))) |
672 | 672 |
673 ;;; | 673 ;;; |
674 (provide 'arabic) | 674 (provide 'language/arabic-util) |
675 | |
675 ;;; arabic-util.el ends here | 676 ;;; arabic-util.el ends here |