/[emacs]/emacs/lisp/language/devan-util.el
ViewVC logotype

Diff of /emacs/lisp/language/devan-util.el

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.26 by rms, Sun Nov 25 02:40:11 2001 UTC revision 1.27 by rms, Sun Nov 25 10:09:09 2001 UTC
# Line 154  PATTERN regexp." Line 154  PATTERN regexp."
154  ;; Problem::  ;; Problem::
155  ;;  Can we generalize this methods to other Indian scripts?  ;;  Can we generalize this methods to other Indian scripts?
156    
157  (defvar dev-char-glyph  ;;; (defvar dev-char-glyph
158    '(("$,15E(B" . "$,4 K(B")  ;;;   '(("$,15E(B" . "$,4 K(B")
159      ("$,15F(B" . "$,4 K")(B")  ;;;     ("$,15F(B" . "$,4 K")(B")
160      ("$,15~(B" . "$,4")(B")  ;;;     ("$,15~(B" . "$,4")(B")
161      ("$,15G(B" . "$,4 \(B")  ;;;     ("$,15G(B" . "$,4 \(B")
162      ("$,15(B" . "$,4"*(B")  ;;;     ("$,15(B" . "$,4"*(B")
163      ("$,155A(B" . "$,4"*(B\$,4"&(B")  ;;;     ("$,155A(B" . "$,4"*(B\$,4"&(B")
164      ("$,15H(B" . "$,4 \"'(B")  ;;;     ("$,15H(B" . "$,4 \"'(B")
165      ("$,15H5A(B" . "$,4 \"'"&(B")  ;;;     ("$,15H5A(B" . "$,4 \"'"&(B")
166      ("$,16 (B" . "$,4"2(B")  ;;;     ("$,16 (B" . "$,4"2(B")
167      ("$,16 5A(B" . "$,4"2"&(B")  ;;;     ("$,16 5A(B" . "$,4"2"&(B")
168      ("$,15I(B" . "$,4 ](B")  ;;;     ("$,15I(B" . "$,4 ](B")
169      ("$,16!(B" . "$,4"6(B")  ;;;     ("$,16!(B" . "$,4"6(B")
170      ("$,15J(B" . "$,4 ^"P(B")  ;;;     ("$,15J(B" . "$,4 ^"P(B")
171      ("$,16"(B" . "$,4":(B")  ;;;     ("$,16"(B" . "$,4":(B")
172      ("$,15K(B" . "$,4 `"Q(B")  ;;;     ("$,15K(B" . "$,4 `"Q(B")
173      ("$,16#(B" . "$,4">(B")  ;;;     ("$,16#(B" . "$,4">(B")
174      ;;("$,15L(B" . nil) ; not implemented.  ;;;     ;;("$,15L(B" . nil) ; not implemented.
175      ("$,16$(B" . "$,4"?(B")  ;;;     ("$,16$(B" . "$,4"?(B")
176      ("$,15M(B" . "$,4 b"L(B")  ;;;     ("$,15M(B" . "$,4 b"L(B")
177      ("$,15M5A(B" . "$,4 b"$(B")  ;;;     ("$,15M5A(B" . "$,4 b"$(B")
178      ("$,15M5B(B" . "$,4 b"$(B")  ;;;     ("$,15M5B(B" . "$,4 b"$(B")
179      ("$,16%(B" . "\$,4"L(B")  ;;;     ("$,16%(B" . "\$,4"L(B")
180      ("$,15N(B" . "$,4 b"@(B")  ;;;     ("$,15N(B" . "$,4 b"@(B")
181      ("$,15N5A(B" . "$,4 b"@"&(B")  ;;;     ("$,15N5A(B" . "$,4 b"@"&(B")
182      ("$,16&(B" . "\$,4"@(B")  ;;;     ("$,16&(B" . "\$,4"@(B")
183      ("$,16&5A(B" . "\$,4"@(B\$,4"&(B")  ;;;     ("$,16&5A(B" . "\$,4"@(B\$,4"&(B")
184      ("$,15O(B" . "$,4 b(B")  ;;;     ("$,15O(B" . "$,4 b(B")
185      ("$,16'(B" . "\$,4"D(B")  ;;;     ("$,16'(B" . "\$,4"D(B")
186      ("$,16'5A(B" . "\$,4"D(B\$,4"&(B")  ;;;     ("$,16'5A(B" . "\$,4"D(B\$,4"&(B")
187      ("$,15P(B" . "$,4 b"D(B")  ;;;     ("$,15P(B" . "$,4 b"D(B")
188      ("$,15P5A(B" . "$,4 b"D"&(B")  ;;;     ("$,15P5A(B" . "$,4 b"D"&(B")
189      ("$,16((B" . "\$,4"H(B")  ;;;     ("$,16((B" . "\$,4"H(B")
190      ("$,16(5A(B" . "\$,4"H(B\$,4"&(B")  ;;;     ("$,16(5A(B" . "\$,4"H(B\$,4"&(B")
191      ("$,15Q(B" . "$,4 K")"L(B") ;; special rule for reodering.  ;;;     ("$,15Q(B" . "$,4 K")"L(B") ;; special rule for reodering.
192      ("$,15Q5A(B" . "$,4 K")"$(B")  ;;;     ("$,15Q5A(B" . "$,4 K")"$(B")
193      ("$,15Q5B(B" . "$,4 K")"$(B")  ;;;     ("$,15Q5B(B" . "$,4 K")"$(B")
194      ("$,16)(B" . "\$,4")"L(B")  ;;;     ("$,16)(B" . "\$,4")"L(B")
195      ("$,16)5A(B" . "\$,4")"$(B")  ;;;     ("$,16)5A(B" . "\$,4")"$(B")
196      ("$,16)5B(B" . "\$,4")"$(B")  ;;;     ("$,16)5B(B" . "\$,4")"$(B")
197      ("$,15R(B" . "$,4 K")"@(B")  ;;;     ("$,15R(B" . "$,4 K")"@(B")
198      ("$,15R5A(B" . "$,4 K")"@"&(B")  ;;;     ("$,15R5A(B" . "$,4 K")"@"&(B")
199      ("$,16*(B" . "\$,4")"@(B")  ;;;     ("$,16*(B" . "\$,4")"@(B")
200      ("$,16*5A(B" . "\$,4")"@"&(B")  ;;;     ("$,16*5A(B" . "\$,4")"@"&(B")
201      ("$,15S(B" . "$,4 K")"D(B")  ;;;     ("$,15S(B" . "$,4 K")"D(B")
202      ("$,15S5A(B" . "$,4 K")"D"&(B")  ;;;     ("$,15S5A(B" . "$,4 K")"D"&(B")
203      ("$,16+(B" . "\$,4")"D(B")  ;;;     ("$,16+(B" . "\$,4")"D(B")
204      ("$,16+5A(B" . "\$,4")"D"&(B")  ;;;     ("$,16+5A(B" . "\$,4")"D"&(B")
205      ("$,15T(B" . "$,4 K")"H(B")  ;;;     ("$,15T(B" . "$,4 K")"H(B")
206      ("$,15T5A(B" . "$,4 K")"H"&(B")  ;;;     ("$,15T5A(B" . "$,4 K")"H"&(B")
207      ("$,16,(B" . "\$,4")"H(B")  ;;;     ("$,16,(B" . "\$,4")"H(B")
208      ("$,16,5A(B" . "\$,4")"H"&(B")  ;;;     ("$,16,5A(B" . "\$,4")"H"&(B")
209      ("$,16@(B" . "$,4 a"Q(B")  ;;;     ("$,16@(B" . "$,4 a"Q(B")
210      ;;("$,16B(B" . nil)  ;;;     ;;("$,16B(B" . nil)
211      ;;("$,16A(B" . nil)  ;;;     ;;("$,16A(B" . nil)
212      ;;("$,16C(B" . nil)  ;;;     ;;("$,16C(B" . nil)
213    
214      ;; GRUTTALS  ;;;     ;; GRUTTALS
215      ("$,15U(B" . "$,4 e"R(B")  ;;;     ("$,15U(B" . "$,4 e"R(B")
216      ("$,15U6-(B" . "$,4 c(B")  ;;;     ("$,15U6-(B" . "$,4 c(B")
217      ("$,15U6-5p(B" . "$,4 g"R(B")  ;;;     ("$,15U6-5p(B" . "$,4 g"R(B")
218      ("$,15U6-5d(B" . "$,4 h"R(B")  ;;;     ("$,15U6-5d(B" . "$,4 h"R(B")
219      ("$,15U6-5w(B" . "$,4 i")(B")  ;;;     ("$,15U6-5w(B" . "$,4 i")(B")
220      ("$,15U6-5w6-(B" . "$,4 i(B")  ;;;     ("$,15U6-5w6-(B" . "$,4 i(B")
221    
222      ("$,15V(B" . "$,4 j")(B")  ;;;     ("$,15V(B" . "$,4 j")(B")
223      ("$,15V6-(B" . "$,4 j(B")  ;;;     ("$,15V6-(B" . "$,4 j(B")
224      ("$,15V6-5p(B" . "$,4 l")(B")  ;;;     ("$,15V6-5p(B" . "$,4 l")(B")
225      ("$,15V6-5p6-(B" . "$,4 l(B")  ;;;     ("$,15V6-5p6-(B" . "$,4 l(B")
226    
227      ("$,15W(B" . "$,4 m")(B")  ;;;     ("$,15W(B" . "$,4 m")(B")
228      ("$,15W6-(B" . "$,4 m(B")  ;;;     ("$,15W6-(B" . "$,4 m(B")
229      ("$,15W6-5p(B" . "$,4 o")(B")  ;;;     ("$,15W6-5p(B" . "$,4 o")(B")
230      ("$,15W6-5p6-(B" . "$,4 o(B")  ;;;     ("$,15W6-5p6-(B" . "$,4 o(B")
231    
232      ("$,15X(B" . "$,4 p")(B")  ;;;     ("$,15X(B" . "$,4 p")(B")
233      ("$,15X6-(B" . "$,4 p(B")  ;;;     ("$,15X6-(B" . "$,4 p(B")
234      ("$,15X6-5p(B" . "$,4 q")(B")  ;;;     ("$,15X6-5p(B" . "$,4 q")(B")
235      ("$,15X6-5p6-(B" . "$,4 q(B")  ;;;     ("$,15X6-5p6-(B" . "$,4 q(B")
236    
237      ("$,15Y(B" . "$,4 r"S(B")  ;;;     ("$,15Y(B" . "$,4 r"S(B")
238      ;; PALATALS    ;;;     ;; PALATALS  
239      ("$,15Z(B" . "$,4 s")(B")  ;;;     ("$,15Z(B" . "$,4 s")(B")
240      ("$,15Z6-(B" . "$,4 s(B")  ;;;     ("$,15Z6-(B" . "$,4 s(B")
241      ("$,15Z6-5p(B" . "$,4 t")(B")  ;;;     ("$,15Z6-5p(B" . "$,4 t")(B")
242      ("$,15Z6-5p6-(B" . "$,4 t(B")  ;;;     ("$,15Z6-5p6-(B" . "$,4 t(B")
243    
244      ("$,15[(B" . "$,4 u"T(B")  ;;;     ("$,15[(B" . "$,4 u"T(B")
245    
246      ("$,15\(B" . "$,4 v")(B")  ;;;     ("$,15\(B" . "$,4 v")(B")
247      ("$,15\6-(B" . "$,4 v(B")  ;;;     ("$,15\6-(B" . "$,4 v(B")
248      ("$,15\6-5p(B" . "$,4 x")(B")  ;;;     ("$,15\6-5p(B" . "$,4 x")(B")
249      ("$,15\6-5p6-(B" . "$,4 x(B")  ;;;     ("$,15\6-5p6-(B" . "$,4 x(B")
250      ("$,15\6-5^(B" . "$,4 y")(B")  ;;;     ("$,15\6-5^(B" . "$,4 y")(B")
251      ("$,15\6-5^6-(B" . "$,4 y(B")  ;;;     ("$,15\6-5^6-(B" . "$,4 y(B")
252    
253      ("$,15](B" . "$,4 z")(B")  ;;;     ("$,15](B" . "$,4 z")(B")
254      ("$,15]6-(B" . "$,4 z(B")  ;;;     ("$,15]6-(B" . "$,4 z(B")
255      ("$,15]6-5p(B" . "$,4 {")(B")  ;;;     ("$,15]6-5p(B" . "$,4 {")(B")
256      ("$,15]6-5p6-(B" . "$,4 {(B")  ;;;     ("$,15]6-5p6-(B" . "$,4 {(B")
257    
258      ("$,15^(B" . "$,4 |")(B")  ;;;     ("$,15^(B" . "$,4 |")(B")
259      ("$,15^6-(B" . "$,4 |(B")  ;;;     ("$,15^6-(B" . "$,4 |(B")
260      ;; CEREBRALS  ;;;     ;; CEREBRALS
261      ("$,15_(B" . "$,4 }"U(B")  ;;;     ("$,15_(B" . "$,4 }"U(B")
262      ("$,15_6-5_(B" . "$,4 ~"U(B")  ;;;     ("$,15_6-5_(B" . "$,4 ~"U(B")
263      ("$,15_6-5`(B" . "$,4 "U(B")  ;;;     ("$,15_6-5`(B" . "$,4 "U(B")
264    
265      ("$,15`(B" . "$,4! "V(B")  ;;;     ("$,15`(B" . "$,4! "V(B")
266      ("$,15`6-5`(B" . "$,4!!"V(B")  ;;;     ("$,15`6-5`(B" . "$,4!!"V(B")
267    
268      ("$,15a(B" . "$,4!""W(B")  ;;;     ("$,15a(B" . "$,4!""W(B")
269      ("$,15a6-5a(B" . "$,4!$"W(B")  ;;;     ("$,15a6-5a(B" . "$,4!$"W(B")
270      ("$,15a6-5b(B" . "$,4!%"W(B")  ;;;     ("$,15a6-5b(B" . "$,4!%"W(B")
271    
272      ("$,15b(B" . "$,4!&"X(B")  ;;;     ("$,15b(B" . "$,4!&"X(B")
273    
274      ("$,15c(B" . "$,4!(")(B")  ;;;     ("$,15c(B" . "$,4!(")(B")
275      ("$,15c6-(B" . "$,4!((B")  ;;;     ("$,15c6-(B" . "$,4!((B")
276      ;; DENTALS    ;;;     ;; DENTALS  
277      ("$,15d(B" . "$,4!)")(B")  ;;;     ("$,15d(B" . "$,4!)")(B")
278      ("$,15d6-(B" . "$,4!)(B")  ;;;     ("$,15d6-(B" . "$,4!)(B")
279      ("$,15d6-5p(B" . "$,4!*")(B")  ;;;     ("$,15d6-5p(B" . "$,4!*")(B")
280      ("$,15d6-5p6-(B" . "$,4!*(B")  ;;;     ("$,15d6-5p6-(B" . "$,4!*(B")
281      ("$,15d6-5d(B" . "$,4!+")(B")  ;;;     ("$,15d6-5d(B" . "$,4!+")(B")
282      ("$,15d6-5d6-(B" . "$,4!+(B")  ;;;     ("$,15d6-5d6-(B" . "$,4!+(B")
283    
284      ("$,15e(B" . "$,4!,")(B")  ;;;     ("$,15e(B" . "$,4!,")(B")
285      ("$,15e6-(B" . "$,4!,(B")  ;;;     ("$,15e6-(B" . "$,4!,(B")
286      ("$,15e6-5p(B" . "$,4!-")(B")  ;;;     ("$,15e6-5p(B" . "$,4!-")(B")
287      ("$,15e6-5p6-(B" . "$,4!-(B")  ;;;     ("$,15e6-5p6-(B" . "$,4!-(B")
288    
289      ("$,15f(B" . "$,4!."Y(B")  ;;;     ("$,15f(B" . "$,4!."Y(B")
290      ("$,15f6#(B" . "$,4!/"Y(B")  ;;;     ("$,15f6#(B" . "$,4!/"Y(B")
291      ("$,15f6-5p(B" . "$,4!0"Y(B")  ;;;     ("$,15f6-5p(B" . "$,4!0"Y(B")
292      ("$,15f6-5f(B" . "$,4!1"Y(B")  ;;;     ("$,15f6-5f(B" . "$,4!1"Y(B")
293      ("$,15f6-5g(B" . "$,4!2"Y(B")  ;;;     ("$,15f6-5g(B" . "$,4!2"Y(B")
294      ("$,15f6-5n(B" . "$,4!3(B")  ;;;     ("$,15f6-5n(B" . "$,4!3(B")
295      ("$,15f6-5o(B" . "$,4!4(B")  ;;;     ("$,15f6-5o(B" . "$,4!4(B")
296      ("$,15f6-5u(B" . "$,4!5"Y(B")  ;;;     ("$,15f6-5u(B" . "$,4!5"Y(B")
297    
298      ("$,15g(B" . "$,4!6")(B")  ;;;     ("$,15g(B" . "$,4!6")(B")
299      ("$,15g6-(B" . "$,4!6(B")  ;;;     ("$,15g6-(B" . "$,4!6(B")
300      ("$,15g6-5p(B" . "$,4!7")(B")  ;;;     ("$,15g6-5p(B" . "$,4!7")(B")
301      ("$,15g6-5p6-(B" . "$,4!7(B")  ;;;     ("$,15g6-5p6-(B" . "$,4!7(B")
302    
303      ("$,15h(B" . "$,4!8")(B")  ;;;     ("$,15h(B" . "$,4!8")(B")
304      ("$,15h6-(B" . "$,4!8(B")  ;;;     ("$,15h6-(B" . "$,4!8(B")
305      ("$,15h6-5p(B" . "$,4!9")(B")  ;;;     ("$,15h6-5p(B" . "$,4!9")(B")
306      ("$,15h6-5p6-(B" . "$,4!9")(B")  ;;;     ("$,15h6-5p6-(B" . "$,4!9")(B")
307      ("$,15h6-5h(B" . "$,4!:")(B")  ;;;     ("$,15h6-5h(B" . "$,4!:")(B")
308      ("$,15h6-5h6-(B" . "$,4!:(B")  ;;;     ("$,15h6-5h6-(B" . "$,4!:(B")
309    
310      ("$,15i(B" . "$,4!8"#")(B")  ;;;     ("$,15i(B" . "$,4!8"#")(B")
311      ;; LABIALS    ;;;     ;; LABIALS  
312      ("$,15j(B" . "$,4!;")(B")  ;;;     ("$,15j(B" . "$,4!;")(B")
313      ("$,15j6-(B" . "$,4!;(B")  ;;;     ("$,15j6-(B" . "$,4!;(B")
314      ("$,15j6-5p(B" . "$,4!<")(B")  ;;;     ("$,15j6-5p(B" . "$,4!<")(B")
315      ("$,15j6-5p6-(B" . "$,4!<(B")  ;;;     ("$,15j6-5p6-(B" . "$,4!<(B")
316    
317      ("$,15k(B" . "$,4!a"[(B")  ;;;     ("$,15k(B" . "$,4!a"[(B")
318      ("$,15k6-(B" . "$,4!=(B")  ;;;     ("$,15k6-(B" . "$,4!=(B")
319      ("$,15k6-5p(B" . "$,4!c"[(B")  ;;;     ("$,15k6-5p(B" . "$,4!c"[(B")
320    
321      ("$,15l(B" . "$,4!d")(B")  ;;;     ("$,15l(B" . "$,4!d")(B")
322      ("$,15l6-(B" . "$,4!d(B")  ;;;     ("$,15l6-(B" . "$,4!d(B")
323      ("$,15l6-5p(B" . "$,4!e")(B")  ;;;     ("$,15l6-5p(B" . "$,4!e")(B")
324      ("$,15l6-5p6-(B" . "$,4!e(B")  ;;;     ("$,15l6-5p6-(B" . "$,4!e(B")
325    
326      ("$,15m(B" . "$,4!f")(B")  ;;;     ("$,15m(B" . "$,4!f")(B")
327      ("$,15m6-(B" . "$,4!f(B")  ;;;     ("$,15m6-(B" . "$,4!f(B")
328      ("$,15m6-5p(B" . "$,4!g")(B")  ;;;     ("$,15m6-5p(B" . "$,4!g")(B")
329      ("$,15m6-5p6-(B" . "$,4!g(B")  ;;;     ("$,15m6-5p6-(B" . "$,4!g(B")
330    
331      ("$,15n(B" . "$,4!h")(B")  ;;;     ("$,15n(B" . "$,4!h")(B")
332      ("$,15n6-(B" . "$,4!h(B")  ;;;     ("$,15n6-(B" . "$,4!h(B")
333      ("$,15n6-5p(B" . "$,4!i")(B")  ;;;     ("$,15n6-5p(B" . "$,4!i")(B")
334      ("$,15n6-5p6-(B" . "$,4!i(B")  ;;;     ("$,15n6-5p6-(B" . "$,4!i(B")
335      ;; SEMIVOWELS  ;;;     ;; SEMIVOWELS
336      ("$,15o(B" . "$,4!j")(B")  ;;;     ("$,15o(B" . "$,4!j")(B")
337      ("$,15o6-(B" . "$,4!j(B")  ;;;     ("$,15o6-(B" . "$,4!j(B")
338      ("$,15o6-5p(B" . "$,4!k")(B")  ;;;     ("$,15o6-5p(B" . "$,4!k")(B")
339      ("$,15o6-5p6-(B" . "$,4!k(B")  ;;;     ("$,15o6-5p6-(B" . "$,4!k(B")
340      ("$,16-5o(B" . "$,4!l(B") ;; when every ohter lig. fails.  ;;;     ("$,16-5o(B" . "$,4!l(B") ;; when every ohter lig. fails.
341    
342      ("$,15p(B" . "$,4!n"W(B")  ;;;     ("$,15p(B" . "$,4!n"W(B")
343      ;; ("$,15p6-(B" . "\$,4"'(B") ;; special case.  only the topmost pos.  ;;;     ;; ("$,15p6-(B" . "\$,4"'(B") ;; special case.  only the topmost pos.
344      ("$,15q(B" . "$,4!n"#"W(B")  ;;;     ("$,15q(B" . "$,4!n"#"W(B")
345      ("$,15q6-(B" . "$,4!m(B") ;; IS 13194 speical rule.  ;;;     ("$,15q6-(B" . "$,4!m(B") ;; IS 13194 speical rule.
346      ("$,15p6!(B" . "$,4!o"[(B")  ;;;     ("$,15p6!(B" . "$,4!o"[(B")
347      ("$,15p6"(B" . "$,4!p"\(B")  ;;;     ("$,15p6"(B" . "$,4!p"\(B")
348    
349      ("$,15r(B" . "$,4!q")(B")  ;;;     ("$,15r(B" . "$,4!q")(B")
350      ("$,15r6-(B" . "$,4!q(B")  ;;;     ("$,15r6-(B" . "$,4!q(B")
351      ("$,15s(B" . "$,4!s(B")  ;;;     ("$,15s(B" . "$,4!s(B")
352      ("$,15s6-(B" . "$,4!r(B")  ;;;     ("$,15s6-(B" . "$,4!r(B")
353      ("$,15t(B" . "$,4!s"#(B")  ;;;     ("$,15t(B" . "$,4!s"#(B")
354      ("$,15t6-(B" . "$,4!r"#(B")  ;;;     ("$,15t6-(B" . "$,4!r"#(B")
355    
356      ("$,15u(B" . "$,4!t")(B")  ;;;     ("$,15u(B" . "$,4!t")(B")
357      ("$,15u6-(B" . "$,4!t(B")  ;;;     ("$,15u6-(B" . "$,4!t(B")
358      ("$,15u6-5p(B" . "$,4!u")(B")  ;;;     ("$,15u6-5p(B" . "$,4!u")(B")
359      ("$,15u6-5p6-(B" . "$,4!u(B")  ;;;     ("$,15u6-5p6-(B" . "$,4!u(B")
360      ;; SIBILANTS  ;;;     ;; SIBILANTS
361      ("$,15v(B" . "$,4!v")(B")  ;;;     ("$,15v(B" . "$,4!v")(B")
362      ("$,15v6-(B" . "$,4!v(B")  ;;;     ("$,15v6-(B" . "$,4!v(B")
363      ("$,15v6-5u(B" . "$,4!w")(B")  ;;;     ("$,15v6-5u(B" . "$,4!w")(B")
364      ("$,15v6-5u6-(B" . "$,4!w(B")  ;;;     ("$,15v6-5u6-(B" . "$,4!w(B")
365      ("$,15v6-5p(B" . "$,4!x")(B")  ;;;     ("$,15v6-5p(B" . "$,4!x")(B")
366      ("$,15v6-5p6-(B" . "$,4!x(B")  ;;;     ("$,15v6-5p6-(B" . "$,4!x(B")
367    
368      ("$,15w(B" . "$,4!y")(B")  ;;;     ("$,15w(B" . "$,4!y")(B")
369      ("$,15w6-(B" . "$,4!y(B")  ;;;     ("$,15w6-(B" . "$,4!y(B")
370      ("$,15x(B" . "$,4!z")(B")  ;;;     ("$,15x(B" . "$,4!z")(B")
371      ("$,15x6-(B" . "$,4!z(B")  ;;;     ("$,15x6-(B" . "$,4!z(B")
372      ("$,15x6-5p(B" . "$,4!{")(B")  ;;;     ("$,15x6-5p(B" . "$,4!{")(B")
373      ("$,15x6-5p6-(B" . "$,4!{(B")  ;;;     ("$,15x6-5p6-(B" . "$,4!{(B")
374    
375      ("$,15y(B" . "$,4!}(B")  ;;;     ("$,15y(B" . "$,4!}(B")
376      ("$,15y6-(B" . "$,4!|(B")  ;;;     ("$,15y6-(B" . "$,4!|(B")
377      ("$,15y6#(B" . "$,4!~(B")  ;;;     ("$,15y6#(B" . "$,4!~(B")
378      ("$,15y6-5p(B" . "$,4!(B")  ;;;     ("$,15y6-5p(B" . "$,4!(B")
379      ("$,15y6-5n(B" . "$,4" (B")  ;;;     ("$,15y6-5n(B" . "$,4" (B")
380      ("$,15y6-5o(B" . "$,4"!(B")  ;;;     ("$,15y6-5o(B" . "$,4"!(B")
381      ;; NUKTAS      ;;;     ;; NUKTAS    
382      ("$,168(B" . "$,4 f"R"S(B")  ;;;     ("$,168(B" . "$,4 f"R"S(B")
383      ("$,1686-(B" . "$,4 d(B")  ;;;     ("$,1686-(B" . "$,4 d(B")
384      ("$,169(B" . "$,4 k")(B")  ;;;     ("$,169(B" . "$,4 k")(B")
385      ("$,1696-(B" . "$,4 k(B")  ;;;     ("$,1696-(B" . "$,4 k(B")
386      ("$,16:(B" . "$,4 n")(B")  ;;;     ("$,16:(B" . "$,4 n")(B")
387      ("$,16:6-(B" . "$,4 n(B")  ;;;     ("$,16:6-(B" . "$,4 n(B")
388      ("$,16;(B" . "$,4 w")(B")  ;;;     ("$,16;(B" . "$,4 w")(B")
389      ("$,16;6-(B" . "$,4 w(B")  ;;;     ("$,16;6-(B" . "$,4 w(B")
390      ("$,16<(B" . "$,4!#"W(B")  ;;;     ("$,16<(B" . "$,4!#"W(B")
391      ("$,16=(B" . "$,4!'"X(B")  ;;;     ("$,16=(B" . "$,4!'"X(B")
392      ("$,16>(B" . "$,4!b"[(B")  ;;;     ("$,16>(B" . "$,4!b"[(B")
393      ("$,16>6-(B" . "$,4!>(B")  ;;;     ("$,16>6-(B" . "$,4!>(B")
394      ("$,16?(B" . "$,4!j"#")(B")  ;;;     ("$,16?(B" . "$,4!j"#")(B")
395      ;; misc modifiers.  ;;;     ;; misc modifiers.
396      ("$,15A(B" . "\$,4"$(B")  ;;;     ("$,15A(B" . "\$,4"$(B")
397      ("$,15B(B" . "\$,4"&(B")  ;;;     ("$,15B(B" . "\$,4"&(B")
398      ("$,15C(B" . "$,4 F(B")  ;;;     ("$,15C(B" . "$,4 F(B")
399      ("$,15|(B" . "$,4"#(B")  ;;;     ("$,15|(B" . "$,4"#(B")
400      ("$,15}(B" . "$,4 E(B")  ;;;     ("$,15}(B" . "$,4 E(B")
401      ("$,16-(B" . "$,4""(B")  ;;;     ("$,16-(B" . "$,4""(B")
402      ("$,16-5p(B" . "$,4"%(B") ;; following "r"  ;;;     ("$,16-5p(B" . "$,4"%(B") ;; following "r"
403      ;; ("$,160(B" . "$,4 D(B")  ;;;     ;; ("$,160(B" . "$,4 D(B")
404      ;; ("$,16D(B" . "$,4 J(B")  ;;;     ;; ("$,16D(B" . "$,4 J(B")
405      ;; ("$,16F(B" . "")  ;;;     ;; ("$,16F(B" . "")
406      ;; ("$,16G(B" . "")  ;;;     ;; ("$,16G(B" . "")
407      ;; ("$,16H(B" . "")  ;;;     ;; ("$,16H(B" . "")
408      ;; ("$,16I(B" . "")  ;;;     ;; ("$,16I(B" . "")
409      ;; ("$,16J(B" . "")  ;;;     ;; ("$,16J(B" . "")
410      ;; ("$,16K(B" . "")  ;;;     ;; ("$,16K(B" . "")
411      ;; ("$,16L(B" . "")  ;;;     ;; ("$,16L(B" . "")
412      ;; ("$,16M(B" . "")  ;;;     ;; ("$,16M(B" . "")
413      ;; ("$,16N(B" . "")  ;;;     ;; ("$,16N(B" . "")
414      ;; ("$,16O(B" . "")  ;;;     ;; ("$,16O(B" . "")
415      )  ;;;     )
416    "Devanagari characters to glyphs conversion table.    ;;;   "Devanagari characters to glyphs conversion table.  
417  Default value contains only the basic rules.  You may add your own  ;;; Default value contains only the basic rules.  You may add your own
418  preferred rule from the sanskrit fonts."  )  ;;; preferred rule from the sanskrit fonts."  )
419    
420  (defvar dev-char-glyph-hash  (defvar dev-char-glyph-hash
421    (let* ((hash (makehash 'equal)))    (let* ((hash (makehash 'equal)))
# Line 430  preferred rule from the sanskrit fonts." Line 430  preferred rule from the sanskrit fonts."
430  ;; it is supposed that glyphs are ordered in  ;; it is supposed that glyphs are ordered in
431  ;;   [consonant/nukta] - [matra/halant] - [preceding-r] - [anuswar].  ;;   [consonant/nukta] - [matra/halant] - [preceding-r] - [anuswar].
432    
433  (defvar dev-glyph-glyph  ;;; (defvar dev-glyph-glyph
434    '(("\$,4"'(B\$,4"&(B" . "\$,4"((B")  ;;;   '(("\$,4"'(B\$,4"&(B" . "\$,4"((B")
435      ("\$,4"'(B\$,4"$(B" . "\$,4"((B")  ;;;     ("\$,4"'(B\$,4"$(B" . "\$,4"((B")
436      ("$,4"*(B\$,4"&(B" . "$,4"+(B")  ;;;     ("$,4"*(B\$,4"&(B" . "$,4"+(B")
437      ("$,4"*(B\$,4"'(B" . "$,4",(B")  ;;;     ("$,4"*(B\$,4"'(B" . "$,4",(B")
438      ("$,4"*(B\$,4"'(B\$,4"&(B" . "$,4"-(B")  ;;;     ("$,4"*(B\$,4"'(B\$,4"&(B" . "$,4"-(B")
439      ("$,4"2(B\$,4"&(B" . "$,4"3(B")  ;;;     ("$,4"2(B\$,4"&(B" . "$,4"3(B")
440      ("$,4"2(B\$,4"'(B" . "$,4"4(B")  ;;;     ("$,4"2(B\$,4"'(B" . "$,4"4(B")
441      ("$,4"2(B\$,4"'(B\$,4"&(B" . "$,4"5(B")  ;;;     ("$,4"2(B\$,4"'(B\$,4"&(B" . "$,4"5(B")
442      ("$,4"#(B\$,4"6(B" . "$,4"7(B")  ;;;     ("$,4"#(B\$,4"6(B" . "$,4"7(B")
443      ("$,4"%(B\$,4"6(B" . "$,4"8(B")  ;;;     ("$,4"%(B\$,4"6(B" . "$,4"8(B")
444      ;;("$,4"6(B" . "$,4"9(B")  ;;;     ;;("$,4"6(B" . "$,4"9(B")
445      ("$,4"#(B\$,4":(B" . "$,4";(B")  ;;;     ("$,4"#(B\$,4":(B" . "$,4";(B")
446      ("$,4"%(B\$,4":(B" . "$,4"<(B")  ;;;     ("$,4"%(B\$,4":(B" . "$,4"<(B")
447      ;;("$,4":(B" . "$,4"=(B")  ;;;     ;;("$,4":(B" . "$,4"=(B")
448      ("\$,4"@(B\$,4"&(B" . "\$,4"A(B")  ;;;     ("\$,4"@(B\$,4"&(B" . "\$,4"A(B")
449      ("\$,4"@(B\$,4"'(B" . "\$,4"B(B")  ;;;     ("\$,4"@(B\$,4"'(B" . "\$,4"B(B")
450      ("\$,4"@(B\$,4"'(B\$,4"&(B" . "\$,4"C(B")  ;;;     ("\$,4"@(B\$,4"'(B\$,4"&(B" . "\$,4"C(B")
451      ("\$,4"D(B\$,4"&(B" . "\$,4"E(B")  ;;;     ("\$,4"D(B\$,4"&(B" . "\$,4"E(B")
452      ("\$,4"D(B\$,4"'(B" . "\$,4"F(B")  ;;;     ("\$,4"D(B\$,4"'(B" . "\$,4"F(B")
453      ("\$,4"D(B\$,4"'(B\$,4"&(B" . "\$,4"G(B")  ;;;     ("\$,4"D(B\$,4"'(B\$,4"&(B" . "\$,4"G(B")
454      ("\$,4"H(B\$,4"&(B" . "\$,4"I(B")  ;;;     ("\$,4"H(B\$,4"&(B" . "\$,4"I(B")
455      ("\$,4"H(B\$,4"'(B" . "\$,4"J(B")  ;;;     ("\$,4"H(B\$,4"'(B" . "\$,4"J(B")
456      ("\$,4"H(B\$,4"'(B\$,4"&(B" . "\$,4"K(B")  ;;;     ("\$,4"H(B\$,4"'(B\$,4"&(B" . "\$,4"K(B")
457      ("\$,4"L(B\$,4"&(B" . "\$,4"M(B")  ;;;     ("\$,4"L(B\$,4"&(B" . "\$,4"M(B")
458      ("\$,4"L(B\$,4"'(B" . "\$,4"N(B")  ;;;     ("\$,4"L(B\$,4"'(B" . "\$,4"N(B")
459      ("\$,4"L(B\$,4"'(B\$,4"&(B" . "\$,4"O(B")  ;;;     ("\$,4"L(B\$,4"'(B\$,4"&(B" . "\$,4"O(B")
460      ))  ;;;     ))
461  (defvar dev-glyph-glyph-hash  (defvar dev-glyph-glyph-hash
462    (let* ((hash (makehash 'equal)))    (let* ((hash (makehash 'equal)))
463      (mapc (function (lambda (x) (puthash (car x) (cdr x) hash)))      (mapc (function (lambda (x) (puthash (car x) (cdr x) hash)))
# Line 468  preferred rule from the sanskrit fonts." Line 468  preferred rule from the sanskrit fonts."
468    
469    
470  ;; yet another glyph-to-glyph conversions.  ;; yet another glyph-to-glyph conversions.
471  (defvar dev-glyph-glyph-2  ;;; (defvar dev-glyph-glyph-2
472    '(("$,4"*(B" . "$,4".(B")  ;;;   '(("$,4"*(B" . "$,4".(B")
473      ("$,4"+(B" . "$,4"/(B")  ;;;     ("$,4"+(B" . "$,4"/(B")
474      ("$,4",(B" . "$,4"0(B")  ;;;     ("$,4",(B" . "$,4"0(B")
475      ("$,4"-(B" . "$,4"1(B")))  ;;;     ("$,4"-(B" . "$,4"1(B")))
476  (defvar dev-glyph-glyph-2-hash  (defvar dev-glyph-glyph-2-hash
477    (let* ((hash (makehash 'equal)))    (let* ((hash (makehash 'equal)))
478      (mapc (function (lambda (x) (puthash (car x) (cdr x) hash)))      (mapc (function (lambda (x) (puthash (car x) (cdr x) hash)))
# Line 551  preferred rule from the sanskrit fonts." Line 551  preferred rule from the sanskrit fonts."
551      (devanagari-compose-syllable-region (point-min) (point-max))      (devanagari-compose-syllable-region (point-min) (point-max))
552      (buffer-string)))      (buffer-string)))
553    
554  (defun devanagari-compose-syllable-region (from to)  ;;; (defun devanagari-compose-syllable-region (from to)
555    "Compose devanagari syllable in region FROM to TO."  ;;;   "Compose devanagari syllable in region FROM to TO."
556    (let ((glyph-str nil) (cons-num 0) glyph-str-list  ;;;   (let ((glyph-str nil) (cons-num 0) glyph-str-list
557          (last-halant nil) (preceding-r nil) (last-modifier nil)  ;;;         (last-halant nil) (preceding-r nil) (last-modifier nil)
558          (last-char (char-before to)) match-str  ;;;         (last-char (char-before to)) match-str
559          glyph-block split-pos)  ;;;         glyph-block split-pos)
560      (save-excursion  ;;;     (save-excursion
561        (save-restriction  ;;;       (save-restriction
562            ;;; *** char-to-glyph conversion ***  ;;;           ;;; *** char-to-glyph conversion ***
563          ;; Special rule 1. -- Last halant must be preserved.  ;;;         ;; Special rule 1. -- Last halant must be preserved.
564          (if (eq last-char ?$,16-(B)  ;;;         (if (eq last-char ?$,16-(B)
565              (progn  ;;;             (progn
566                (setq last-halant t)  ;;;               (setq last-halant t)
567                (narrow-to-region from (1- to)))  ;;;               (narrow-to-region from (1- to)))
568            (narrow-to-region from to)  ;;;           (narrow-to-region from to)
569            ;; note if the last char is modifier.  ;;;           ;; note if the last char is modifier.
570            (if (or (eq last-char ?$,15A(B) (eq last-char ?$,15B(B))  ;;;           (if (or (eq last-char ?$,15A(B) (eq last-char ?$,15B(B))
571                (setq last-modifier t)))  ;;;               (setq last-modifier t)))
572          (goto-char (point-min))  ;;;         (goto-char (point-min))
573          ;; Special rule 2. -- preceding "r halant" must be modifier.  ;;;         ;; Special rule 2. -- preceding "r halant" must be modifier.
574          (when (looking-at "$,15p6-(B.")  ;;;         (when (looking-at "$,15p6-(B.")
575            (setq preceding-r t)  ;;;           (setq preceding-r t)
576            (goto-char (+ 2 (point))))  ;;;           (goto-char (+ 2 (point))))
577          ;; translate the rest characters into glyphs  ;;;         ;; translate the rest characters into glyphs
578          (while (re-search-forward dev-char-glyph-regexp nil t)  ;;;         (while (re-search-forward dev-char-glyph-regexp nil t)
579            (setq match-str (match-string 0))  ;;;           (setq match-str (match-string 0))
580            (setq glyph-str  ;;;           (setq glyph-str
581                  (concat glyph-str  ;;;                 (concat glyph-str
582                          (gethash match-str dev-char-glyph-hash)))  ;;;                         (gethash match-str dev-char-glyph-hash)))
583            ;; count the number of consonant-glyhs.  ;;;           ;; count the number of consonant-glyhs.
584            (if (string-match devanagari-consonant match-str)  ;;;           (if (string-match devanagari-consonant match-str)
585                (setq cons-num (1+ cons-num))))  ;;;               (setq cons-num (1+ cons-num))))
586          ;; preceding-r must be attached before the anuswar if exists.  ;;;         ;; preceding-r must be attached before the anuswar if exists.
587          (if preceding-r  ;;;         (if preceding-r
588              (if last-modifier  ;;;             (if last-modifier
589                  (setq glyph-str (concat (substring glyph-str 0 -1)  ;;;                 (setq glyph-str (concat (substring glyph-str 0 -1)
590                                          "$,4"'(B" (substring glyph-str -1)))  ;;;                                         "$,4"'(B" (substring glyph-str -1)))
591                (setq glyph-str (concat glyph-str "$,4"'(B"))))  ;;;               (setq glyph-str (concat glyph-str "$,4"'(B"))))
592          (if last-halant (setq glyph-str (concat glyph-str "$,4""(B")))  ;;;         (if last-halant (setq glyph-str (concat glyph-str "$,4""(B")))
593            ;;; *** glyph-to-glyph conversion ***  ;;;           ;;; *** glyph-to-glyph conversion ***
594          (when (string-match dev-glyph-glyph-regexp glyph-str)  ;;;         (when (string-match dev-glyph-glyph-regexp glyph-str)
595            (setq glyph-str  ;;;           (setq glyph-str
596                  (replace-match (gethash (match-string 0 glyph-str)  ;;;                 (replace-match (gethash (match-string 0 glyph-str)
597                                          dev-glyph-glyph-hash)  ;;;                                         dev-glyph-glyph-hash)
598                                 nil t glyph-str))  ;;;                                nil t glyph-str))
599            (if (and (> cons-num 1)  ;;;           (if (and (> cons-num 1)
600                     (string-match dev-glyph-glyph-2-regexp glyph-str))  ;;;                    (string-match dev-glyph-glyph-2-regexp glyph-str))
601                (setq glyph-str  ;;;               (setq glyph-str
602                      (replace-match (gethash (match-string 0 glyph-str)  ;;;                     (replace-match (gethash (match-string 0 glyph-str)
603                                              dev-glyph-glyph-2-hash)  ;;;                                             dev-glyph-glyph-2-hash)
604                                     nil t glyph-str))))  ;;;                                    nil t glyph-str))))
605            ;;; *** glyph reordering ***  ;;;           ;;; *** glyph reordering ***
606          (while (setq split-pos (string-match "$,4""(B\\|.$" glyph-str))  ;;;         (while (setq split-pos (string-match "$,4""(B\\|.$" glyph-str))
607            (setq glyph-block (substring glyph-str 0 (1+ split-pos)))  ;;;           (setq glyph-block (substring glyph-str 0 (1+ split-pos)))
608            (setq glyph-str (substring glyph-str (1+ split-pos)))  ;;;           (setq glyph-str (substring glyph-str (1+ split-pos)))
609            (setq  ;;;           (setq
610             glyph-block  ;;;            glyph-block
611             (if (string-match dev-glyph-right-modifier-regexp glyph-block)  ;;;            (if (string-match dev-glyph-right-modifier-regexp glyph-block)
612                 (sort (string-to-list glyph-block)  ;;;                (sort (string-to-list glyph-block)
613                       (function (lambda (x y)  ;;;                      (function (lambda (x y)
614                          (< (get-char-code-property x 'composition-order)  ;;;                         (< (get-char-code-property x 'composition-order)
615                             (get-char-code-property y 'composition-order)))))  ;;;                            (get-char-code-property y 'composition-order)))))
616               (sort (string-to-list glyph-block)  ;;;              (sort (string-to-list glyph-block)
617                     (function (lambda (x y)  ;;;                    (function (lambda (x y)
618                        (let ((xo (get-char-code-property x 'composition-order))  ;;;                       (let ((xo (get-char-code-property x 'composition-order))
619                              (yo (get-char-code-property y 'composition-order)))  ;;;                             (yo (get-char-code-property y 'composition-order)))
620                          (if (= xo 2) nil (if (= yo 2) t (< xo yo)))))))))  ;;;                         (if (= xo 2) nil (if (= yo 2) t (< xo yo)))))))))
621            (setq glyph-str-list (nconc glyph-str-list glyph-block)))  ;;;           (setq glyph-str-list (nconc glyph-str-list glyph-block)))
622            ;; concatenate and attach reference-points.  ;;;           ;; concatenate and attach reference-points.
623          (setq glyph-str  ;;;         (setq glyph-str
624                (cdr  ;;;               (cdr
625                 (apply  ;;;                (apply
626                  'nconc  ;;;                 'nconc
627                  (mapcar  ;;;                 (mapcar
628                   (function (lambda (x)  ;;;                  (function (lambda (x)
629                     (list  ;;;                    (list
630                      (or (get-char-code-property x 'reference-point)  ;;;                     (or (get-char-code-property x 'reference-point)
631                      '(5 . 3) ;; default reference point.  ;;;                     '(5 . 3) ;; default reference point.
632                       )  ;;;                      )
633                      x)))  ;;;                     x)))
634                   glyph-str-list))))))  ;;;                  glyph-str-list))))))
635        (compose-region from to glyph-str)))  ;;;       (compose-region from to glyph-str)))
636    
637  (provide 'devan-util)  (provide 'devan-util)

Legend:
Removed from v.1.26  
changed lines
  Added in v.1.27

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26