]> code.delx.au - gnu-emacs/blobdiff - lisp/language/burmese.el
Add a new function `svg-embed'
[gnu-emacs] / lisp / language / burmese.el
index 2cc1c89a0bbc1cc11d28341e3822a0a6dbd3a7d6..420e8d74919a1b556313db12a802bbca17dea5df 100644 (file)
@@ -1,6 +1,6 @@
-;;; burmese.el --- support for Burmese -*- coding: utf-8; no-byte-compile: t -*-
+;;; burmese.el --- support for Burmese -*- coding: utf-8 -*-
 
-;; Copyright (C) 2008
+;; Copyright (C) 2008, 2009, 2010, 2011
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H13PRO009
 
             (sample-text . "Burmese (မ္ရန္‌မာ) မင္‍ဂလာပာ")
             (documentation . t)))
 
-(set-char-table-range composition-function-table '(#x1000 . #x107F)
-                     '(("[\x1000-\x107F\x200C\x200D]+" . font-shape-text)))
+(defvar burmese-composable-pattern
+  (let ((table
+        '(("K" . "[\u1004\u105A]\u103A\u1039") ; KINZI sequence
+          ("C" . "[\u1000-\u102A\u103F\u1041-\u1049\u104E\u105A-\u105D\u1061\u1065-\u1066\u106E\u1071\u1075\u1081\u108E\uAA60-\uAA6F\uAA71-\uAA76]") ; consonant and vowel letter
+          ("V" . "\u1039")                                        ; VIRAMA
+          ("A" . "\u103A")                                        ; ASAT
+          ("S" . "[\u1000-\u1019\u101C\u101E\u1020\u1021\u105A]") ; subscript
+          ("M" . "[\u103B-\u103E\105E-\1060]") ; medial
+          ("v" . "[\u102B-\u103A\u103C-\u103E\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A\u109C\uAA70]"))) ; vowel sign, etc.
+       (regexp "\\(K\\)?C\\(VS\\)?\\(VS\\)?A?M*v*"))
+    (let ((case-fold-search nil))
+      (dolist (elt table)
+       (setq regexp (replace-regexp-in-string (car elt) (cdr elt)
+                                              regexp t t))))
+    regexp))
+
+(let ((elt (list (vector burmese-composable-pattern 0 'font-shape-gstring)
+                (vector "." 0 'font-shape-gstring))))
+  (set-char-table-range composition-function-table '(#x1000 . #x107F) elt)
+  (set-char-table-range composition-function-table '(#xAA60 . #xAA7B) elt))
 
-;; arch-tag: 8ba5f4cd-ef89-4008-b784-397edd0cb32e