diff options
| author | Eli Zaretskii | 2022-01-29 21:22:02 +0200 |
|---|---|---|
| committer | Eli Zaretskii | 2022-01-29 21:22:02 +0200 |
| commit | ed3bbeb80db07d41747f0a046446ea3d3128c4bb (patch) | |
| tree | 0cbb93713debedef3581f3bb859ed7dbb7a8d3b5 /lisp/language | |
| parent | 5ef3a523425a77276ac524f3ef2a9563805f30c0 (diff) | |
| download | emacs-ed3bbeb80db07d41747f0a046446ea3d3128c4bb.tar.gz emacs-ed3bbeb80db07d41747f0a046446ea3d3128c4bb.zip | |
Fix rendering of Malayalam script
* lisp/language/indian.el (malayalam-composable-pattern): Remove.
(script-regexp-alist): Remove 'malayalam-composable-pattern'.
Instead, pass any sequence of Malayalam codepoints to the shaping
engine. (Bug#53625)
Diffstat (limited to 'lisp/language')
| -rw-r--r-- | lisp/language/indian.el | 32 |
1 files changed, 6 insertions, 26 deletions
diff --git a/lisp/language/indian.el b/lisp/language/indian.el index 614d0767e72..971ecd7ca91 100644 --- a/lisp/language/indian.el +++ b/lisp/language/indian.el | |||
| @@ -341,30 +341,6 @@ South Indian language Malayalam is supported in this language environment.")) | |||
| 341 | table)) | 341 | table)) |
| 342 | "Regexp matching a composable sequence of Kannada characters.") | 342 | "Regexp matching a composable sequence of Kannada characters.") |
| 343 | 343 | ||
| 344 | (defconst malayalam-composable-pattern | ||
| 345 | (let ((table | ||
| 346 | '(("A" . "[\u0D02\u0D03]") ; SIGN ANUSVARA .. VISARGA | ||
| 347 | ("V" . "[\u0D05-\u0D14\u0D60\u0D61]") ; independent vowel | ||
| 348 | ("C" . "[\u0D15-\u0D39]") ; consonant | ||
| 349 | ("Y" . "[\u0D2F\u0D30\u0D32\u0D35]") ; YA, RA, LA, VA | ||
| 350 | ("v" . "[\u0D3E-\u0D4C\u0D57\u0D62\u0D63]") ; postbase matra | ||
| 351 | ("H" . "\u0D4D") ; SIGN VIRAMA | ||
| 352 | ("N" . "\u200C") ; ZWNJ | ||
| 353 | ("J" . "\u200D") ; ZWJ | ||
| 354 | ("X" . "[\u0D00-\u0D7F]")))) ; all coverage | ||
| 355 | (indian-compose-regexp | ||
| 356 | (concat | ||
| 357 | ;; consonant-based syllables, or | ||
| 358 | "C\\(?:J?HJ?C\\)*\\(?:H[NJ]?\\|v?A?\\)\\|" | ||
| 359 | ;; syllables with an independent vowel, or | ||
| 360 | "V\\(?:J?HY\\)?v*?A?\\|" | ||
| 361 | ;; special consonant form, or | ||
| 362 | "JHY\\|" | ||
| 363 | ;; any other singleton characters | ||
| 364 | "X") | ||
| 365 | table)) | ||
| 366 | "Regexp matching a composable sequence of Malayalam characters.") | ||
| 367 | |||
| 368 | (let ((script-regexp-alist | 344 | (let ((script-regexp-alist |
| 369 | `((devanagari . ,devanagari-composable-pattern) | 345 | `((devanagari . ,devanagari-composable-pattern) |
| 370 | (bengali . ,bengali-composable-pattern) | 346 | (bengali . ,bengali-composable-pattern) |
| @@ -373,8 +349,7 @@ South Indian language Malayalam is supported in this language environment.")) | |||
| 373 | (oriya . ,oriya-composable-pattern) | 349 | (oriya . ,oriya-composable-pattern) |
| 374 | (tamil . ,tamil-composable-pattern) | 350 | (tamil . ,tamil-composable-pattern) |
| 375 | (telugu . ,telugu-composable-pattern) | 351 | (telugu . ,telugu-composable-pattern) |
| 376 | (kannada . ,kannada-composable-pattern) | 352 | (kannada . ,kannada-composable-pattern)))) |
| 377 | (malayalam . ,malayalam-composable-pattern)))) | ||
| 378 | (map-char-table | 353 | (map-char-table |
| 379 | #'(lambda (key val) | 354 | #'(lambda (key val) |
| 380 | (let ((slot (assq val script-regexp-alist))) | 355 | (let ((slot (assq val script-regexp-alist))) |
| @@ -384,6 +359,11 @@ South Indian language Malayalam is supported in this language environment.")) | |||
| 384 | (list (vector (cdr slot) 0 #'font-shape-gstring)))))) | 359 | (list (vector (cdr slot) 0 #'font-shape-gstring)))))) |
| 385 | char-script-table)) | 360 | char-script-table)) |
| 386 | 361 | ||
| 362 | ;; Malayalam: pass any sequence of characters to the shaping engine. | ||
| 363 | (set-char-table-range composition-function-table '(#x0D00 . #x0D7F) | ||
| 364 | `([,(purecopy "[\u0D00-\u0D7F]+") | ||
| 365 | 0 font-shape-gstring])) | ||
| 366 | |||
| 387 | (provide 'indian) | 367 | (provide 'indian) |
| 388 | 368 | ||
| 389 | ;;; indian.el ends here | 369 | ;;; indian.el ends here |