Mercurial > emacs
changeset 97841:10312e057a97
Fix setting up of
composition-function-table.
(devanagari-composable-pattern)
(tamil-composable-pattern, kannada-composable-pattern)
(malayalam-composable-pattern): New variables.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Fri, 29 Aug 2008 08:01:22 +0000 |
parents | 8e246e0bdbba |
children | 8dfd5f6c48e4 |
files | lisp/language/indian.el |
diffstat | 1 files changed, 47 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/language/indian.el Fri Aug 29 08:01:03 2008 +0000 +++ b/lisp/language/indian.el Fri Aug 29 08:01:22 2008 +0000 @@ -129,23 +129,59 @@ South Indian language Malayalam is supported in this language environment.")) '("Indian")) +(defconst devanagari-composable-pattern + (concat + "\\([अ-औॠॡ][ँं]?\\)\\|[ः।]" + "\\|\\(" + "\\(?:\\(?:[क-हक़-य़]्\\)?\\(?:[क-हक़-य़]्\\)?\\(?:[क-हक़-य़]्\\)?[क-हक़-य़]्\\)?" + "[क-हक़-य़]\\(?:्\\|[ा-्ॢॣ]?[ंँ]?\\)?" + "\\)") + "Regexp matching a composable sequence of Devanagari characters.") + +(defconst tamil-composable-pattern + (concat + "\\([அ-ஔ]\\)\\|" + "[ஂஃ]\\|" ;; vowel modifier considered independent + "\\(\\(?:\\(?:க்ஷ\\)\\|[க-ஹ]\\)[்ா-ௌ]?\\)\\|" + "\\(ஷ்ரீ\\)") + "Regexp matching a composable sequence of Tamil characters.") + +(defconst kannada-composable-pattern + (concat + "\\([ಂ-ಔೠಌ]\\)\\|[ಃ]" + "\\|\\(" + "\\(?:\\(?:[ಕ-ಹ]್\\)?\\(?:[ಕ-ಹ]್\\)?\\(?:[ಕ-ಹ]್\\)?[ಕ-ಹ]್\\)?" + "[ಕ-ಹ]\\(?:್\\|[ಾ-್ೕೃ]?\\)?" + "\\)") + "Regexp matching a composable sequence of Kannada characters.") + +(defconst malayalam-composable-pattern + (concat + "\\([അ-ഔ][ം]?\\)\\|ഃ" + "\\|\\(" + "\\(?:\\(?:[ക-ഹ]്\\)?\\(?:[ക-ഹ]്\\)?\\(?:[ക-ഹ]്\\)?[ക-ഹ]്\\)?" + "[ക-ഹ]\\(?:്\\|[ാ-ൃെേൈൊൊോൌ]?[ം്]?\\)?" + "\\)") + "Regexp matching a composable sequence of Malayalam characters.") + (let ((script-regexp-alist - '((devanagari . "[\x900-\x9FF\x200C\x200D]+") + `((devanagari . ,devanagari-composable-pattern) (bengali . "[\x980-\x9FF\x200C\x200D]+") (gurmukhi . "[\xA00-\xA7F\x200C\x200D]+") (gujarati . "[\xA80-\xAFF\x200C\x200D]+") (oriya . "[\xB00-\xB7F\x200C\x200D]+") - (tamil . "[\xB80-\xBFF\x200C\x200D]+") + (tamil . ,tamil-composable-pattern) (telugu . "[\xC00-\xC7F\x200C\x200D]+") - (kannada . "[\xC80-\xCFF\x200C\x200D]+") - (malayalam . "[\xD00-\xD7F\x200C\x200D]+")))) - (map-char-table #'(lambda (key val) - (let ((slot (assq val script-regexp-alist))) - (if slot - (set-char-table-range - composition-function-table key - (list (cons (cdr slot) 'font-shape-text)))))) - char-script-table)) + (kannada . ,kannada-composable-pattern) + (malayalam . ,malayalam-composable-pattern)))) + (map-char-table + #'(lambda (key val) + (let ((slot (assq val script-regexp-alist))) + (if slot + (set-char-table-range + composition-function-table key + (list (vector (cdr slot) 0 'font-shape-gstring)))))) + char-script-table)) (provide 'indian)