X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/9899d01a0ccec166e04caa60657a44e614be50cd..5f7bcac78eca614233388922d0500c255e12d803:/lisp/language/tibet-util.el diff --git a/lisp/language/tibet-util.el b/lisp/language/tibet-util.el index b0c38d40c2..88f970e570 100644 --- a/lisp/language/tibet-util.el +++ b/lisp/language/tibet-util.el @@ -1,9 +1,9 @@ ;;; tibet-util.el --- utilities for Tibetan -*- coding: iso-2022-7bit; -*- -;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007 +;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ;; Free Software Foundation, Inc. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -;; 2005, 2006, 2007 +;; 2005, 2006, 2007, 2008 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 @@ -40,13 +40,13 @@ ;;; Code: (defconst tibetan-obsolete-glyphs - `(("$(7!=(B" . "$(8!=(B") ; 2 col <-> 1 col - ("$(7!?(B" . "$(8!?(B") - ("$(7!@(B" . "$(8!@(B") - ("$(7!A(B" . "$(8!A(B") - ("$(7"`(B" . "$(8"`(B") - ("$(7!;(B" . "$(8!;(B") - ("$(7!D(B" . "$(8!D(B") + `(("$(7!=(B" . "$(7!=(B") ; 2 col <-> 1 col + ("$(7!?(B" . "$(7!?(B") + ("$(7!@(B" . "$(7!@(B") + ("$(7!A(B" . "$(7!A(B") + ("$(7"`(B" . "$(7"`(B") + ("$(7!;(B" . "$(7!;(B") + ("$(7!D(B" . "$(7!D(B") ;; Yes these are dirty. But ... ("$(7!>(B $(7!>(B" . ,(compose-string "$(7!>(B $(7!>(B" 0 3 [?$(7!>(B (Br . Bl) ? (Br . Bl) ?$(7!>(B])) ("$(7!4!5!5(B" . ,(compose-string @@ -141,7 +141,7 @@ The returned string has no composition information." ;;; ;;; Here are examples of the words "bsgrubs" and "hfauM" ;;; -;;; 4$(7"70"714%qx!"U0"G###C"U14"70"714"G0"G1(B 4$(7"Hx!"Rx!"Ur'"_0"H"R"U"_1(B +;;; $(7"7"G###C"U"7"G(B $(7"H"R"U"_(B ;;; ;;; M ;;; b s b s h @@ -167,7 +167,7 @@ The returned string has no composition information." ;; If 'a follows a consonant, turn it into the subjoined form. ;; * Disabled by Tomabechi 2000/06/09 * ;; Because in Unicode, $(7"A(B may follow directly a consonant without - ;; any intervening vowel, as in 4$(7"90"914""0"""Q14"A0"A1!;(B=4$(7"90"91(B 4$(7""0""1(B 4$(7"A0"A1(B not 4$(7"90"91(B 4$(7""0""1(B $(7"Q(B 4$(7"A0"A1(B + ;; any intervening vowel, as in $(7"9"""Q"A!;(B=$(7"9(B $(7""(B $(7"A(B not $(7"9(B $(7""(B $(7"Q(B $(7"A(B ;;(if (and (= char ?$(7"A(B) ;; (aref (char-category-set (car last)) ?0)) ;; (setq char ?$(7"R(B)) ;; modified for new font by Tomabechi 1999/12/10 @@ -189,7 +189,8 @@ The returned string has no composition information." ;; Compose lower vowel sign vertically under. ((aref (char-category-set char) ?3) - (if (eq char ?$(7"Q(B) ;; `$(7"Q(B' should not visible when composed. + (if (or (eq char ?$(7"Q(B) ;; `$(7"Q(B' and `$,1FP(B' should not visible when composed. + (eq char #xF70)) (setq rule nil) (setq rule stack-under))) ;; Transform ra-mgo (superscribed r) if followed by a subjoined @@ -315,11 +316,21 @@ are decomposed into normal Tibetan character sequences." new)) ;;;###autoload -(defun tibetan-composition-function (from to pattern &optional string) +(defun tibetan-composition-function (pos &optional string) (if string - (tibetan-compose-string string) - (tibetan-compose-region from to)) - (- to from)) + (if auto-compose-current-font + (if (eq (string-match "[$(7!0(B-$,1GQ(B]+" pos) pos) + (or (font-shape-text 0 (match-end 0) auto-compose-current-font + string) + pos))) + (goto-char pos) + (if auto-compose-current-font + (if (looking-at "[$(7!0(B-$,1GQ(B]+") + (or (font-shape-text pos (match-end 0) auto-compose-current-font) + pos) + (if (looking-at tibetan-composable-pattern) + (prog1 (match-end 0) + (tibetan-compose-region pos (match-end 0)))))))) ;;; ;;; This variable is used to avoid repeated decomposition.