annotate lisp/language/indian.el @ 91697:056e52861ec3

*** empty log message ***
author Eli Zaretskii <eliz@gnu.org>
date Sat, 09 Feb 2008 10:53:10 +0000
parents 606f2d163a64
children e687db4e3832
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
41469
f091948e4d1c Completely re-written.
Richard M. Stallman <rms@gnu.org>
parents: 38436
diff changeset
1 ;;; indian.el --- Indian languages support -*- coding: iso-2022-7bit; -*-
17052
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
2
79711
b5d3fc1c4afe Add 2008 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 78309
diff changeset
3 ;; Copyright (C) 1997, 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
74544
43cc94d955c2 Update copyright years.
Glenn Morris <rgm@gnu.org>
parents: 64085
diff changeset
4 ;; Free Software Foundation, Inc.
79711
b5d3fc1c4afe Add 2008 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 78309
diff changeset
5 ;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008
62396
197607499a29 Fix copyrights.
Kenichi Handa <handa@m17n.org>
parents: 57537
diff changeset
6 ;; National Institute of Advanced Industrial Science and Technology (AIST)
197607499a29 Fix copyrights.
Kenichi Handa <handa@m17n.org>
parents: 57537
diff changeset
7 ;; Registration Number H14PRO021
17052
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
8
49704
003055ca7e13 Maintainer's mail address changed.
Kenichi Handa <handa@m17n.org>
parents: 47701
diff changeset
9 ;; Maintainer: KAWABATA, Taichi <kawabata@m17n.org>
42312
c7ffa58f9637 Add keyword.
Pavel Janík <Pavel@Janik.cz>
parents: 42152
diff changeset
10 ;; Keywords: multilingual, i18n, Indian
17052
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
11
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
12 ;; This file is part of GNU Emacs.
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
13
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
14 ;; GNU Emacs is free software; you can redistribute it and/or modify
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
15 ;; it under the terms of the GNU General Public License as published by
78309
0938de05f510 Restore comma mistakenly removed in last change.
Glenn Morris <rgm@gnu.org>
parents: 78300
diff changeset
16 ;; the Free Software Foundation; either version 3, or (at your option)
17052
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
17 ;; any later version.
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
18
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
19 ;; GNU Emacs is distributed in the hope that it will be useful,
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
20 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
21 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
22 ;; GNU General Public License for more details.
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
23
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
24 ;; You should have received a copy of the GNU General Public License
17314
f438ebf1c679 Fix FSF address in comment.
Kenichi Handa <handa@m17n.org>
parents: 17300
diff changeset
25 ;; along with GNU Emacs; see the file COPYING. If not, write to the
64085
18a818a2ee7c Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 62396
diff changeset
26 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18a818a2ee7c Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 62396
diff changeset
27 ;; Boston, MA 02110-1301, USA.
17052
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
28
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
29 ;;; Commentary:
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
30
41469
f091948e4d1c Completely re-written.
Richard M. Stallman <rms@gnu.org>
parents: 38436
diff changeset
31 ;; This file defines in-is13194 coding system and relationship between
f091948e4d1c Completely re-written.
Richard M. Stallman <rms@gnu.org>
parents: 38436
diff changeset
32 ;; indian-glyph character-set and various CDAC fonts.
17052
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
33
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
34 ;;; Code:
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
35
88414
fad0f879877f Call define-coding-system instead of make-coding-system. All CCL program deleted.
Kenichi Handa <handa@m17n.org>
parents: 42312
diff changeset
36 (define-coding-system 'in-is13194-devanagari
fad0f879877f Call define-coding-system instead of make-coding-system. All CCL program deleted.
Kenichi Handa <handa@m17n.org>
parents: 42312
diff changeset
37 "8-bit encoding for ASCII (MSB=0) and IS13194-Devanagari (MSB=1)."
fad0f879877f Call define-coding-system instead of make-coding-system. All CCL program deleted.
Kenichi Handa <handa@m17n.org>
parents: 42312
diff changeset
38 :coding-type 'iso-2022
fad0f879877f Call define-coding-system instead of make-coding-system. All CCL program deleted.
Kenichi Handa <handa@m17n.org>
parents: 42312
diff changeset
39 :mnemonic ?D
fad0f879877f Call define-coding-system instead of make-coding-system. All CCL program deleted.
Kenichi Handa <handa@m17n.org>
parents: 42312
diff changeset
40 :designation [ascii indian-is13194 nil nil]
fad0f879877f Call define-coding-system instead of make-coding-system. All CCL program deleted.
Kenichi Handa <handa@m17n.org>
parents: 42312
diff changeset
41 :charset-list '(ascii indian-is13194)
89239
976a610d28e1 (in-is13194-devanagari): Fix
Kenichi Handa <handa@m17n.org>
parents: 89095
diff changeset
42 :post-read-conversion 'in-is13194-post-read-conversion
976a610d28e1 (in-is13194-devanagari): Fix
Kenichi Handa <handa@m17n.org>
parents: 89095
diff changeset
43 :pre-write-conversion 'in-is13194-pre-write-conversion)
17052
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
44
88414
fad0f879877f Call define-coding-system instead of make-coding-system. All CCL program deleted.
Kenichi Handa <handa@m17n.org>
parents: 42312
diff changeset
45 (define-coding-system-alias 'devanagari 'in-is13194-devanagari)
46743
d341cac00baf (in-is13194): Give correct `safe-chars' property.
Kenichi Handa <handa@m17n.org>
parents: 42312
diff changeset
46
50256
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
47 (defvar indian-font-foundry 'cdac
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
48 "Font foundry for Indian characters.
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
49 Currently supported foundries are `cdac' and `akruti'.")
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
50
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
51 (defvar indian-script-language-alist
57537
b9687fdf909d (indian-script-language-alist): Swap value and doc.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
52 '((devanagari (hindi sanskrit) nil)
b9687fdf909d (indian-script-language-alist): Swap value and doc.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
53 (bengali (bengali assamese) nil)
b9687fdf909d (indian-script-language-alist): Swap value and doc.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
54 (gurmukhi (punjabi) nil)
b9687fdf909d (indian-script-language-alist): Swap value and doc.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
55 (gujarati (gujarati) nil)
b9687fdf909d (indian-script-language-alist): Swap value and doc.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
56 (oriya (oriya) nil)
b9687fdf909d (indian-script-language-alist): Swap value and doc.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
57 (tamil (tamil) nil)
b9687fdf909d (indian-script-language-alist): Swap value and doc.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
58 (telugu (telugu) nil)
b9687fdf909d (indian-script-language-alist): Swap value and doc.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
59 (kannada (kannada) nil)
b9687fdf909d (indian-script-language-alist): Swap value and doc.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
60 (malayalam (malayalam) nil))
50256
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
61 "Alist of Indian scripts vs the corresponding language list and font foundry.
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
62 Each element has this form:
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
63
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
64 (SCRIPT LANGUAGE-LIST FONT-FOUNDRY)
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
65
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
66 SCRIPT is one of Indian script names.
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
67
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
68 LANGUAGE-LIST is a list of Indian langauge names SCRIPT is used for.
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
69 The list is in the priority order.
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
70
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
71 FONT-FOUNDRY is a font foundry representing a group of Indian
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
72 fonts. If the value is nil, the value of `indian-font-foundry'
57537
b9687fdf909d (indian-script-language-alist): Swap value and doc.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
73 is used.")
50256
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
74
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
75 (defconst indian-font-char-index-table
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
76 '( ; for which language(s)
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
77 ;; CDAC fonts
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
78 (#x0000 . cdac:dv-ttsurekh) ; hindi, etc
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
79 (#x0100 . cdac:sd-ttsurekh) ; sanskrit
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
80 (#x0200 . cdac:bn-ttdurga) ; bengali
50388
40bda6ae386e (indian-font-char-index-table): Fix the
Kenichi Handa <handa@m17n.org>
parents: 50256
diff changeset
81 (#x0300 . cdac:tm-ttvalluvar) ; tamil
40bda6ae386e (indian-font-char-index-table): Fix the
Kenichi Handa <handa@m17n.org>
parents: 50256
diff changeset
82 (#x0400 . cdac:tl-tthemalatha) ; telugu
40bda6ae386e (indian-font-char-index-table): Fix the
Kenichi Handa <handa@m17n.org>
parents: 50256
diff changeset
83 (#x0500 . cdac:as-ttdurga) ; assamese
50256
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
84 (#x0600 . cdac:or-ttsarala) ; oriya
50388
40bda6ae386e (indian-font-char-index-table): Fix the
Kenichi Handa <handa@m17n.org>
parents: 50256
diff changeset
85 (#x0700 . cdac:kn-ttuma) ; kannada
40bda6ae386e (indian-font-char-index-table): Fix the
Kenichi Handa <handa@m17n.org>
parents: 50256
diff changeset
86 (#x0800 . cdac:ml-ttkarthika) ; malayalam
40bda6ae386e (indian-font-char-index-table): Fix the
Kenichi Handa <handa@m17n.org>
parents: 50256
diff changeset
87 (#x0900 . cdac:gj-ttavantika) ; gujarati
40bda6ae386e (indian-font-char-index-table): Fix the
Kenichi Handa <handa@m17n.org>
parents: 50256
diff changeset
88 (#x0A00 . cdac:pn-ttamar) ; punjabi
50256
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
89
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
90 ;; AKRUTI fonts
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
91 (#x0B00 . akruti:dev) ; hindi, etc
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
92 (#x0C00 . akruti:bng) ; bengali
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
93 (#x0D00 . akruti:pnj) ; punjabi
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
94 (#x0E00 . akruti:guj) ; gujarati
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
95 (#x0F00 . akruti:ori) ; oriya
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
96 (#x1000 . akruti:tml) ; tamil
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
97 (#x1100 . akruti:tlg) ; telugu
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
98 (#x1200 . akruti:knd) ; kannada
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
99 (#x1300 . akruti:mal) ; malayalam
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
100 )
57537
b9687fdf909d (indian-script-language-alist): Swap value and doc.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
101 "Alist of indices of `indian-glyph' character vs Indian font identifiers.
50256
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
102 Each element has this form: (INDEX . FONT-IDENTIFIER)
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
103
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
104 INDEX is an index number of the first character in the charset
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
105 `indian-glyph' assigned for glyphs in the font specified by
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
106 FONT-IDENTIFIER. Currently FONT-IDENTIFIERs are defined for CDAC
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
107 and AKRUTI font groups.")
57537
b9687fdf909d (indian-script-language-alist): Swap value and doc.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
108
50256
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
109 (defun indian-font-char (index font-identifier)
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
110 "Return character of charset `indian-glyph' made from glyph index INDEX.
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
111 FONT-IDENTIFIER is an identifier of an Indian font listed in the
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
112 variable `indian-font-char-index-table'. It specifies which
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
113 font INDEX is for."
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
114 (if (or (< index 0) (> index 255))
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
115 (error "Invalid glyph index: %d" index))
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
116 (let ((start (car (rassq font-identifier indian-font-char-index-table))))
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
117 (if (not start)
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
118 (error "Unknown font identifier: %s" font-identifier))
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
119 (setq index (+ start index))
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
120 (make-char 'indian-glyph (+ (/ index 96) 32) (+ (% index 96) 32))))
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
121
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
122 ;; Return a range of characters (cons of min and max character) of the
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
123 ;; charset `indian-glyph' for displaying SCRIPT in LANGUAGE by a font
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
124 ;; of FOUNDRY.
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
125
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
126 (defun indian-font-char-range (font-identifier)
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
127 (cons (indian-font-char 0 font-identifier)
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
128 (indian-font-char 255 font-identifier)))
57537
b9687fdf909d (indian-script-language-alist): Swap value and doc.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
129
41469
f091948e4d1c Completely re-written.
Richard M. Stallman <rms@gnu.org>
parents: 38436
diff changeset
130 (defvar indian-script-table
f091948e4d1c Completely re-written.
Richard M. Stallman <rms@gnu.org>
parents: 38436
diff changeset
131 '[
f091948e4d1c Completely re-written.
Richard M. Stallman <rms@gnu.org>
parents: 38436
diff changeset
132 devanagari
f091948e4d1c Completely re-written.
Richard M. Stallman <rms@gnu.org>
parents: 38436
diff changeset
133 sanskrit
f091948e4d1c Completely re-written.
Richard M. Stallman <rms@gnu.org>
parents: 38436
diff changeset
134 bengali
f091948e4d1c Completely re-written.
Richard M. Stallman <rms@gnu.org>
parents: 38436
diff changeset
135 tamil
f091948e4d1c Completely re-written.
Richard M. Stallman <rms@gnu.org>
parents: 38436
diff changeset
136 telugu
f091948e4d1c Completely re-written.
Richard M. Stallman <rms@gnu.org>
parents: 38436
diff changeset
137 assamese
f091948e4d1c Completely re-written.
Richard M. Stallman <rms@gnu.org>
parents: 38436
diff changeset
138 oriya
f091948e4d1c Completely re-written.
Richard M. Stallman <rms@gnu.org>
parents: 38436
diff changeset
139 kannada
f091948e4d1c Completely re-written.
Richard M. Stallman <rms@gnu.org>
parents: 38436
diff changeset
140 malayalam
f091948e4d1c Completely re-written.
Richard M. Stallman <rms@gnu.org>
parents: 38436
diff changeset
141 gujarati
f091948e4d1c Completely re-written.
Richard M. Stallman <rms@gnu.org>
parents: 38436
diff changeset
142 punjabi
f091948e4d1c Completely re-written.
Richard M. Stallman <rms@gnu.org>
parents: 38436
diff changeset
143 ]
f091948e4d1c Completely re-written.
Richard M. Stallman <rms@gnu.org>
parents: 38436
diff changeset
144 "Vector of Indian script names.")
17052
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
145
41469
f091948e4d1c Completely re-written.
Richard M. Stallman <rms@gnu.org>
parents: 38436
diff changeset
146 (let ((len (length indian-script-table))
f091948e4d1c Completely re-written.
Richard M. Stallman <rms@gnu.org>
parents: 38436
diff changeset
147 (i 0))
f091948e4d1c Completely re-written.
Richard M. Stallman <rms@gnu.org>
parents: 38436
diff changeset
148 (while (< i len)
f091948e4d1c Completely re-written.
Richard M. Stallman <rms@gnu.org>
parents: 38436
diff changeset
149 (put (aref indian-script-table i) 'indian-glyph-code-offset (* 256 i))
f091948e4d1c Completely re-written.
Richard M. Stallman <rms@gnu.org>
parents: 38436
diff changeset
150 (setq i (1+ i))))
17052
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
151
41469
f091948e4d1c Completely re-written.
Richard M. Stallman <rms@gnu.org>
parents: 38436
diff changeset
152 (defvar indian-default-script 'devanagari
f091948e4d1c Completely re-written.
Richard M. Stallman <rms@gnu.org>
parents: 38436
diff changeset
153 "Default script for Indian languages.
f091948e4d1c Completely re-written.
Richard M. Stallman <rms@gnu.org>
parents: 38436
diff changeset
154 Each Indian language environment sets this value
f091948e4d1c Completely re-written.
Richard M. Stallman <rms@gnu.org>
parents: 38436
diff changeset
155 to one of `indian-script-table' (which see).
f091948e4d1c Completely re-written.
Richard M. Stallman <rms@gnu.org>
parents: 38436
diff changeset
156 The default value is `devanagari'.")
17052
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
157
89297
4a475cc23487 (indian-composable-pattern): New variable.
Kenichi Handa <handa@m17n.org>
parents: 89239
diff changeset
158 (defvar indian-composable-pattern
4a475cc23487 (indian-composable-pattern): New variable.
Kenichi Handa <handa@m17n.org>
parents: 89239
diff changeset
159 (make-char-table nil)
4a475cc23487 (indian-composable-pattern): New variable.
Kenichi Handa <handa@m17n.org>
parents: 89239
diff changeset
160 "Char table of regexps for composable Indian character sequence.")
17052
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
161
91322
fc05151881d9 Set font-shape-text for all Indic characters
Kenichi Handa <handa@m17n.org>
parents: 90996
diff changeset
162 (let ((script-regexp-alist
fc05151881d9 Set font-shape-text for all Indic characters
Kenichi Handa <handa@m17n.org>
parents: 90996
diff changeset
163 '((devanagari . "[\x900-\x9FF\x200C\x200D]+")
fc05151881d9 Set font-shape-text for all Indic characters
Kenichi Handa <handa@m17n.org>
parents: 90996
diff changeset
164 (bengali . "[\x980-\x9FF\x200C\x200D]+")
fc05151881d9 Set font-shape-text for all Indic characters
Kenichi Handa <handa@m17n.org>
parents: 90996
diff changeset
165 (gurmukhi . "[\xA00-\xA7F\x200C\x200D]+")
fc05151881d9 Set font-shape-text for all Indic characters
Kenichi Handa <handa@m17n.org>
parents: 90996
diff changeset
166 (gujarati . "[\xA80-\xAFF\x200C\x200D]+")
fc05151881d9 Set font-shape-text for all Indic characters
Kenichi Handa <handa@m17n.org>
parents: 90996
diff changeset
167 (oriya . "[\xB00-\xB7F\x200C\x200D]+")
fc05151881d9 Set font-shape-text for all Indic characters
Kenichi Handa <handa@m17n.org>
parents: 90996
diff changeset
168 (tamil . "[\xB80-\xBFF\x200C\x200D]+")
fc05151881d9 Set font-shape-text for all Indic characters
Kenichi Handa <handa@m17n.org>
parents: 90996
diff changeset
169 (telugu . "[\xC00-\xC7F\x200C\x200D]+")
fc05151881d9 Set font-shape-text for all Indic characters
Kenichi Handa <handa@m17n.org>
parents: 90996
diff changeset
170 (kannada . "[\xC80-\xCFF\x200C\x200D]+")
fc05151881d9 Set font-shape-text for all Indic characters
Kenichi Handa <handa@m17n.org>
parents: 90996
diff changeset
171 (malayalam . "[\xD00-\xD7F\x200C\x200D]+")
fc05151881d9 Set font-shape-text for all Indic characters
Kenichi Handa <handa@m17n.org>
parents: 90996
diff changeset
172 (sinhala . "[\xD80-\xDFF\x200C\x200D]+"))))
fc05151881d9 Set font-shape-text for all Indic characters
Kenichi Handa <handa@m17n.org>
parents: 90996
diff changeset
173 (map-char-table #'(lambda (key val)
fc05151881d9 Set font-shape-text for all Indic characters
Kenichi Handa <handa@m17n.org>
parents: 90996
diff changeset
174 (let ((slot (assq val script-regexp-alist)))
fc05151881d9 Set font-shape-text for all Indic characters
Kenichi Handa <handa@m17n.org>
parents: 90996
diff changeset
175 (if slot
fc05151881d9 Set font-shape-text for all Indic characters
Kenichi Handa <handa@m17n.org>
parents: 90996
diff changeset
176 (set-char-table-range
fc05151881d9 Set font-shape-text for all Indic characters
Kenichi Handa <handa@m17n.org>
parents: 90996
diff changeset
177 composition-function-table key
fc05151881d9 Set font-shape-text for all Indic characters
Kenichi Handa <handa@m17n.org>
parents: 90996
diff changeset
178 (list (cons (cdr slot) 'font-shape-text))))))
fc05151881d9 Set font-shape-text for all Indic characters
Kenichi Handa <handa@m17n.org>
parents: 90996
diff changeset
179 char-script-table))
fc05151881d9 Set font-shape-text for all Indic characters
Kenichi Handa <handa@m17n.org>
parents: 90996
diff changeset
180
50256
104cf4fa2a8e (indian-font-foundry): New variable.
Kenichi Handa <handa@m17n.org>
parents: 49704
diff changeset
181
33778
6d966e8b4bbe Use provide.
Dave Love <fx@gnu.org>
parents: 23158
diff changeset
182 (provide 'indian)
41469
f091948e4d1c Completely re-written.
Richard M. Stallman <rms@gnu.org>
parents: 38436
diff changeset
183
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 50388
diff changeset
184 ;;; arch-tag: 83aa8fc7-7ee2-4364-a6e5-498f5e3b8c2f
17052
d0d7b244b1d0 Initial revision
Karl Heuer <kwzh@gnu.org>
parents:
diff changeset
185 ;;; indian.el ends here