diff options
| author | Kenichi Handa | 2009-12-12 02:20:34 +0000 |
|---|---|---|
| committer | Kenichi Handa | 2009-12-12 02:20:34 +0000 |
| commit | 3ff3655cac0932fa5932aa2fe35f4a9b37b73a51 (patch) | |
| tree | 9df006297965db366d508821bdde040444821da4 | |
| parent | d0db2ec8c0e5e56205d17737eacb3ce8bd36b36b (diff) | |
| download | emacs-3ff3655cac0932fa5932aa2fe35f4a9b37b73a51.tar.gz emacs-3ff3655cac0932fa5932aa2fe35f4a9b37b73a51.zip | |
(indian-compose-regexp): New function.
(malayalam-composable-pattern): Fix the pattern.
(composition-function-table): Set malayalam-composable-pattern for
Malayalam characters.
| -rw-r--r-- | lisp/ChangeLog | 7 | ||||
| -rw-r--r-- | lisp/language/indian.el | 38 |
2 files changed, 38 insertions, 7 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 0afa5ecf453..c01c77b9c92 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,10 @@ | |||
| 1 | 2009-12-12 Kenichi Handa <handa@m17n.org> | ||
| 2 | |||
| 3 | * language/indian.el (indian-compose-regexp): New function. | ||
| 4 | (malayalam-composable-pattern): Fix the pattern. | ||
| 5 | (composition-function-table): Set malayalam-composable-pattern for | ||
| 6 | Malayalam characters. | ||
| 7 | |||
| 1 | 2009-12-11 Chong Yidong <cyd@stupidchicken.com> | 8 | 2009-12-11 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 9 | ||
| 3 | * progmodes/bug-reference.el (bug-reference-map): Bind mouse-2 | 10 | * progmodes/bug-reference.el (bug-reference-map): Bind mouse-2 |
diff --git a/lisp/language/indian.el b/lisp/language/indian.el index 841ec26eb9c..a4eee0643b8 100644 --- a/lisp/language/indian.el +++ b/lisp/language/indian.el | |||
| @@ -129,6 +129,15 @@ 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 | ;; Replace mnemonic characters in REGEXP according to TABLE. TABLE is | ||
| 133 | ;; an alist of (MNEMONIC-STRING . REPLACEMENT-STRING). | ||
| 134 | |||
| 135 | (defun indian-compose-regexp (regexp table) | ||
| 136 | (let ((case-fold-search nil)) | ||
| 137 | (dolist (elt table) | ||
| 138 | (setq regexp (replace-regexp-in-string (car elt) (cdr elt) regexp t t))) | ||
| 139 | regexp)) | ||
| 140 | |||
| 132 | (defconst devanagari-composable-pattern | 141 | (defconst devanagari-composable-pattern |
| 133 | (concat | 142 | (concat |
| 134 | "\\([अ-औॠॡ][ँं]?\\)\\|[ः।]" | 143 | "\\([अ-औॠॡ][ँं]?\\)\\|[ः।]" |
| @@ -156,12 +165,27 @@ South Indian language Malayalam is supported in this language environment.")) | |||
| 156 | "Regexp matching a composable sequence of Kannada characters.") | 165 | "Regexp matching a composable sequence of Kannada characters.") |
| 157 | 166 | ||
| 158 | (defconst malayalam-composable-pattern | 167 | (defconst malayalam-composable-pattern |
| 159 | (concat | 168 | (let ((table '(("V" . "[\u0D05-\u0D14\u0D60-\u0D61]") ; independent vowel |
| 160 | "\\([അ-ഔ][ം]?\\)\\|ഃ" | 169 | ("C" . "[\u0D15-\u0D39]") ; consonant |
| 161 | "\\|\\(" | 170 | ("m" . "[\u0D46-\u0D48\u0D4A-\u0D4C]") ; prebase matra |
| 162 | "\\(?:\\(?:[ക-ഹ]്\\)?\\(?:[ക-ഹ]്\\)?\\(?:[ക-ഹ]്\\)?[ക-ഹ]്\\)?" | 171 | ("p" . "[\u0D3E-\u0D44\u0D57]") ; postname matra |
| 163 | "[ക-ഹ]\\(?:്\\|[ാ-ൃെേൈൊൊോൌ]?[ം്]?\\)?" | 172 | ("b" . "[\u0D62-\u0D63]") ; belowbase matra |
| 164 | "\\)") | 173 | ("a" . "[\u0D02-\u0D03]") ; abovebase sign |
| 174 | ("H" . "്") ; virama sign | ||
| 175 | ("N" . "\u200D") ; ZWJ | ||
| 176 | ("J" . "\u200C") ; ZWNJ | ||
| 177 | ("X" . "[\u0D00-\u0D7F]")))) ; all coverage | ||
| 178 | (indian-compose-regexp | ||
| 179 | (concat | ||
| 180 | ;; consonant-based syllables | ||
| 181 | "\\(CJ?HJ?\\)*C\\(H[NJ]?\\|m?b?p?a?\\)\\|" | ||
| 182 | ;; syllables with an independent vowel | ||
| 183 | "V\\(J?HC\\)?m?b?p?n?a?\\|" | ||
| 184 | ;; special consonant form | ||
| 185 | "JHC\\|" | ||
| 186 | ;; any other singleton characters | ||
| 187 | "X") | ||
| 188 | table)) | ||
| 165 | "Regexp matching a composable sequence of Malayalam characters.") | 189 | "Regexp matching a composable sequence of Malayalam characters.") |
| 166 | 190 | ||
| 167 | (let ((script-regexp-alist | 191 | (let ((script-regexp-alist |
| @@ -173,7 +197,7 @@ South Indian language Malayalam is supported in this language environment.")) | |||
| 173 | (tamil . "[\xB80-\xBFF\x200C\x200D]+") | 197 | (tamil . "[\xB80-\xBFF\x200C\x200D]+") |
| 174 | (telugu . "[\xC00-\xC7F\x200C\x200D]+") | 198 | (telugu . "[\xC00-\xC7F\x200C\x200D]+") |
| 175 | (kannada . "[\xC80-\xCFF\x200C\x200D]+") | 199 | (kannada . "[\xC80-\xCFF\x200C\x200D]+") |
| 176 | (malayalam . "[\xD00-\xD7F\x200C\x200D]+")))) | 200 | (malayalam . ,malayalam-composable-pattern)))) |
| 177 | (map-char-table | 201 | (map-char-table |
| 178 | #'(lambda (key val) | 202 | #'(lambda (key val) |
| 179 | (let ((slot (assq val script-regexp-alist))) | 203 | (let ((slot (assq val script-regexp-alist))) |