diff options
| author | Kenichi Handa | 2008-08-29 08:01:22 +0000 |
|---|---|---|
| committer | Kenichi Handa | 2008-08-29 08:01:22 +0000 |
| commit | ef19e2f3b487ad7d73233df579aae1552fd509bf (patch) | |
| tree | 0560873b789812c36c687bf054c06cd6e3a7b9c4 | |
| parent | ef90a979c4cdb4a17fcfc8ccb8271348e1755f36 (diff) | |
| download | emacs-ef19e2f3b487ad7d73233df579aae1552fd509bf.tar.gz emacs-ef19e2f3b487ad7d73233df579aae1552fd509bf.zip | |
Fix setting up of
composition-function-table.
(devanagari-composable-pattern)
(tamil-composable-pattern, kannada-composable-pattern)
(malayalam-composable-pattern): New variables.
| -rw-r--r-- | lisp/language/indian.el | 58 |
1 files changed, 47 insertions, 11 deletions
diff --git a/lisp/language/indian.el b/lisp/language/indian.el index 2d89faad6bd..d459029da45 100644 --- a/lisp/language/indian.el +++ b/lisp/language/indian.el | |||
| @@ -129,23 +129,59 @@ environment.")) | |||
| 129 | South Indian language Malayalam is supported in this language environment.")) | 129 | South Indian language Malayalam is supported in this language environment.")) |
| 130 | '("Indian")) | 130 | '("Indian")) |
| 131 | 131 | ||
| 132 | (defconst devanagari-composable-pattern | ||
| 133 | (concat | ||
| 134 | "\\([अ-औॠॡ][ँं]?\\)\\|[ः।]" | ||
| 135 | "\\|\\(" | ||
| 136 | "\\(?:\\(?:[क-हक़-य़]्\\)?\\(?:[क-हक़-य़]्\\)?\\(?:[क-हक़-य़]्\\)?[क-हक़-य़]्\\)?" | ||
| 137 | "[क-हक़-य़]\\(?:्\\|[ा-्ॢॣ]?[ंँ]?\\)?" | ||
| 138 | "\\)") | ||
| 139 | "Regexp matching a composable sequence of Devanagari characters.") | ||
| 140 | |||
| 141 | (defconst tamil-composable-pattern | ||
| 142 | (concat | ||
| 143 | "\\([அ-ஔ]\\)\\|" | ||
| 144 | "[ஂஃ]\\|" ;; vowel modifier considered independent | ||
| 145 | "\\(\\(?:\\(?:க்ஷ\\)\\|[க-ஹ]\\)[்ா-ௌ]?\\)\\|" | ||
| 146 | "\\(ஷ்ரீ\\)") | ||
| 147 | "Regexp matching a composable sequence of Tamil characters.") | ||
| 148 | |||
| 149 | (defconst kannada-composable-pattern | ||
| 150 | (concat | ||
| 151 | "\\([ಂ-ಔೠಌ]\\)\\|[ಃ]" | ||
| 152 | "\\|\\(" | ||
| 153 | "\\(?:\\(?:[ಕ-ಹ]್\\)?\\(?:[ಕ-ಹ]್\\)?\\(?:[ಕ-ಹ]್\\)?[ಕ-ಹ]್\\)?" | ||
| 154 | "[ಕ-ಹ]\\(?:್\\|[ಾ-್ೕೃ]?\\)?" | ||
| 155 | "\\)") | ||
| 156 | "Regexp matching a composable sequence of Kannada characters.") | ||
| 157 | |||
| 158 | (defconst malayalam-composable-pattern | ||
| 159 | (concat | ||
| 160 | "\\([അ-ഔ][ം]?\\)\\|ഃ" | ||
| 161 | "\\|\\(" | ||
| 162 | "\\(?:\\(?:[ക-ഹ]്\\)?\\(?:[ക-ഹ]്\\)?\\(?:[ക-ഹ]്\\)?[ക-ഹ]്\\)?" | ||
| 163 | "[ക-ഹ]\\(?:്\\|[ാ-ൃെേൈൊൊോൌ]?[ം്]?\\)?" | ||
| 164 | "\\)") | ||
| 165 | "Regexp matching a composable sequence of Malayalam characters.") | ||
| 166 | |||
| 132 | (let ((script-regexp-alist | 167 | (let ((script-regexp-alist |
| 133 | '((devanagari . "[\x900-\x9FF\x200C\x200D]+") | 168 | `((devanagari . ,devanagari-composable-pattern) |
| 134 | (bengali . "[\x980-\x9FF\x200C\x200D]+") | 169 | (bengali . "[\x980-\x9FF\x200C\x200D]+") |
| 135 | (gurmukhi . "[\xA00-\xA7F\x200C\x200D]+") | 170 | (gurmukhi . "[\xA00-\xA7F\x200C\x200D]+") |
| 136 | (gujarati . "[\xA80-\xAFF\x200C\x200D]+") | 171 | (gujarati . "[\xA80-\xAFF\x200C\x200D]+") |
| 137 | (oriya . "[\xB00-\xB7F\x200C\x200D]+") | 172 | (oriya . "[\xB00-\xB7F\x200C\x200D]+") |
| 138 | (tamil . "[\xB80-\xBFF\x200C\x200D]+") | 173 | (tamil . ,tamil-composable-pattern) |
| 139 | (telugu . "[\xC00-\xC7F\x200C\x200D]+") | 174 | (telugu . "[\xC00-\xC7F\x200C\x200D]+") |
| 140 | (kannada . "[\xC80-\xCFF\x200C\x200D]+") | 175 | (kannada . ,kannada-composable-pattern) |
| 141 | (malayalam . "[\xD00-\xD7F\x200C\x200D]+")))) | 176 | (malayalam . ,malayalam-composable-pattern)))) |
| 142 | (map-char-table #'(lambda (key val) | 177 | (map-char-table |
| 143 | (let ((slot (assq val script-regexp-alist))) | 178 | #'(lambda (key val) |
| 144 | (if slot | 179 | (let ((slot (assq val script-regexp-alist))) |
| 145 | (set-char-table-range | 180 | (if slot |
| 146 | composition-function-table key | 181 | (set-char-table-range |
| 147 | (list (cons (cdr slot) 'font-shape-text)))))) | 182 | composition-function-table key |
| 148 | char-script-table)) | 183 | (list (vector (cdr slot) 0 'font-shape-gstring)))))) |
| 184 | char-script-table)) | ||
| 149 | 185 | ||
| 150 | (provide 'indian) | 186 | (provide 'indian) |
| 151 | 187 | ||