2012-05-08 01:50:17 +00:00
;;; burmese.el --- support for Burmese -*- coding: utf-8 -*-
2008-02-01 20:20:55 +00:00
2011-01-02 23:50:46 +00:00
;; Copyright (C) 2008, 2009, 2010, 2011
2008-02-01 20:20:55 +00:00
;; National Institute of Advanced Industrial Science and Technology (AIST)
;; Registration Number H13PRO009
;; Keywords: multilingual, Burma, i18n
;; This file is part of GNU Emacs.
2008-05-06 04:29:13 +00:00
;; GNU Emacs is free software: you can redistribute it and/or modify
2008-02-01 20:20:55 +00:00
;; it under the terms of the GNU General Public License as published by
2008-05-06 04:29:13 +00:00
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
2008-02-01 20:20:55 +00:00
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
2008-05-06 04:29:13 +00:00
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
2008-02-01 20:20:55 +00:00
;;; Commentary:
;; Aung San Suu Kyi says to call her country "Burma".
;; The murderous generals say to call it "Myanmar".
;; We will call it "Burma". -- rms, Chief GNUisance.
;;; Code:
( set-language-info-alist
" Burmese " ' ( ( charset unicode )
( coding-system utf-8 )
( coding-priority utf-8 )
2008-04-06 15:14:22 +00:00
( sample-text . " Burmese (မ္ရန္မာ) မင္ဂလာပာ " )
2008-02-01 20:20:55 +00:00
( documentation . t ) ) )
2010-03-01 11:34:11 +00:00
( defvar burmese-composable-pattern
2010-02-26 12:40:46 +00:00
( let ( ( table
' ( ( " K " . " [ \u 1004 \u 105A] \u 103A \u 1039 " ) ; KINZI sequence
( " C " . " [ \u 1000- \u 102A \u 103F \u 1041- \u 1049 \u 104E \u 105A- \u 105D \u 1061 \u 1065- \u 1066 \u 106E \u 1071 \u 1075 \u 1081 \u 108E \u AA60- \u AA6F \u AA71- \u AA76] " ) ; consonant and vowel letter
( " V " . " \u 1039 " ) ; VIRAMA
( " A " . " \u 103A " ) ; ASAT
( " S " . " [ \u 1000- \u 1019 \u 101C \u 101E \u 1020 \u 1021 \u 105A] " ) ; subscript
( " M " . " [ \u 103B- \u 103E \1 05E- \1 060] " ) ; medial
( " v " . " [ \u 102B- \u 103A \u 103C- \u 103E \u 1062- \u 1064 \u 1067- \u 106D \u 1071- \u 1074 \u 1082- \u 108D \u 108F \u 109A \u 109C \u AA70] " ) ) ) ; 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 ) )
2010-03-01 11:34:11 +00:00
( let ( ( elt ( list ( vector burmese-composable-pattern 0 'font-shape-gstring )
2010-02-26 12:40:46 +00:00
( 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 ) )
2008-02-01 20:20:55 +00:00