Commit 0fbd9496 authored by Kenichi Handa's avatar Kenichi Handa
Browse files

Fix setting of composition-function-table.

parent 2de7397f
2008-09-06 Kenichi Handa <handa@m17n.org>
* language/lao.el: Fix setting of composition-function-table.
2008-09-06 Eli Zaretskii <eliz@gnu.org> 2008-09-06 Eli Zaretskii <eliz@gnu.org>
* term/pc-win.el (msdos-show-help): Don't truncate lines while * term/pc-win.el (msdos-show-help): Don't truncate lines while
......
;;; lao.el --- support for Lao -*- coding: iso-2022-7bit; no-byte-compile: t -*- ;;; lao.el --- support for Lao -*- coding: utf-8; no-byte-compile: t -*-
;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
;; Free Software Foundation, Inc. ;; Free Software Foundation, Inc.
...@@ -46,8 +46,40 @@ ...@@ -46,8 +46,40 @@
(features lao-util) (features lao-util)
(documentation . t))) (documentation . t)))
(set-char-table-range composition-function-table '(#xE80 . #xEDF) (let ((consonant "ກ-ຮໜໝ")
'(("[\xE80-\xEDF]+" . lao-composition-function))) (tone "່-໌")
(vowel-upper-lower "ັິ-ົໍ")
(semivowel-lower "ຼ")
(fallback-rule [nil 0 compose-gstring-for-graphic]))
;; target characters regexp
;; ----------------- ------
(dolist (l `((,vowel-upper-lower . "[c].[t]?")
(,tone . "[c].")
(,semivowel-lower . "[c].[v][t]?")
(,semivowel-lower . "[c].[t]")))
(let* ((chars (car l))
(len (length chars))
;; Replace `c', `t', `v' to consonant, tone, and vowel.
(regexp (mapconcat #'(lambda (c)
(cond ((= c ?c) consonant)
((= c ?t) tone)
((= c ?v) vowel-upper-lower)
(t (string c))))
(cdr l) ""))
;; Element of composition-function-table.
(elt (list (vector regexp 1 'lao-composition-function)
fallback-rule))
ch)
(dotimes (i len)
(setq ch (aref chars i))
(if (and (> i 1) (= (aref chars (1- i)) ?-))
;; End of character range.
(set-char-table-range composition-function-table
(cons (aref chars (- i 2)) ch) elt)
(if (or (= (1+ i) len)
(and (/= ch ?-) (/= (aref chars (1+ i)) ?-)))
;; A character not forming a range.
(set-char-table-range composition-function-table ch elt)))))))
(provide 'lao) (provide 'lao)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment