Mercurial > emacs
view lisp/language/lao.el @ 110504:0fdd992ff057
Fix more uses of int instead of EMACS_INT.
xdisp.c (check_point_in_composition, reconsider_clip_changes):
Use EMACS_INT for buffer position variables and arguments.
composite.c (get_composition_id, find_composition)
(run_composition_function, compose_text)
(composition_gstring_width, autocmp_chars)
(composition_update_it, Ffind_composition_internal): Use EMACS_INT
for buffer positions and string length variables and arguments.
composite.h (get_composition_id, find_composition, compose_text)
(composition_gstring_width): Adjust prototypes.
editfns.c (Fformat): Use EMACS_INT for string size variables.
xdisp.c (store_mode_line_noprop, display_mode_element): Use
EMACS_INT for string positions.
intervals.c (get_property_and_range): Use EMACS_INT for buffer
position arguments.
intervals.h (get_property_and_range): Adjust prototype.
character.c (parse_str_as_multibyte, str_as_multibyte)
(parse_str_to_multibyte, str_to_multibyte, str_as_unibyte)
(string_count_byte8, string_escape_byte8, c_string_width)
(strwidth, lisp_string_width, multibyte_chars_in_text): Use
EMACS_INT for string length variables and arguments.
(string_escape_byte8): Protect against too long strings.
character.h (parse_str_as_multibyte, str_as_multibyte)
(parse_str_to_multibyte, str_to_multibyte, str_as_unibyte)
(c_string_width, strwidth, lisp_string_width): Adjust
prototypes.
lisp.h (check_point_in_composition): Adjust prototype.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Thu, 23 Sep 2010 10:32:38 -0400 |
parents | 1d1d5d9bd884 |
children | 376148b31b5e |
line wrap: on
line source
;;; lao.el --- support for Lao -*- coding: utf-8; no-byte-compile: t -*- ;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 ;; Free Software Foundation, Inc. ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, ;; 2007, 2008, 2009, 2010 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 ;; Copyright (C) 2003 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H13PRO009 ;; Keywords: multilingual, Lao ;; This file is part of GNU Emacs. ;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; 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 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. ;;; Commentary: ;;; Code: (define-coding-system 'lao "8-bit encoding for ASCII (MSB=0) and LAO (MSB=1)." :coding-type 'charset :mnemonic ?L :charset-list '(lao)) (set-language-info-alist "Lao" '((charset lao) (coding-system lao) (coding-priority lao) (input-method . "lao") (unibyte-display . lao) (features lao-util) (documentation . t))) (let ((consonant "ກ-ຮໜໝ") (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) ;; arch-tag: ba540fd9-6352-4449-a9cd-669afd21fa57 ;;; lao.el ends here