1 ;;; vietnamese.el --- support for Vietnamese -*- coding: iso-2022-7bit; -*-
3 ;; Copyright (C) 1998, 2002 Free Software Foundation, Inc.
4 ;; Copyright (C) 1995, 1997, 1998, 2000
5 ;; National Institute of Advanced Industrial Science and Technology (AIST)
6 ;; Registration Number H14PRO021
8 ;; Keywords: multilingual, Vietnamese
10 ;; This file is part of GNU Emacs.
12 ;; GNU Emacs is free software; you can redistribute it and/or modify
13 ;; it under the terms of the GNU General Public License as published by
14 ;; the Free Software Foundation; either version 2, or (at your option)
17 ;; GNU Emacs is distributed in the hope that it will be useful,
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 ;; GNU General Public License for more details.
22 ;; You should have received a copy of the GNU General Public License
23 ;; along with GNU Emacs; see the file COPYING. If not, write to the
24 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
25 ;; Boston, MA 02110-1301, USA.
29 ;; For Vietnames, the character sets VISCII, VSCII and TCVN-5712 are
34 (defvar viet-viscii-decode-table
35 [;; VISCII is a full 8-bit code.
36 0 1 ?
\e,2F
\e(B 3 4 ?
\e,2G
\e(B ?
\e,2g
\e(B 7 8 9 10 11 12 13 14 15
37 16 17 18 19 ?
\e,2V
\e(B 21 22 23 24 ?
\e,2[\e(B 26 27 28 29 ?
\e,2\
\e(B 31
38 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
39 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
40 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
41 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
42 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
43 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
44 ?
\e,2U\e(B ?
\e,2!\e(B ?
\e,2"\e(B ?\e,2#\e(B ?\e,2$\e(B ?\e,2%\e(B ?\e,2&\e(B ?\e,2'\e(B ?\e,2(\e(B ?\e,2)\e(B ?\e,2*\e(B ?\e,2+\e(B ?\e,2,\e(B ?\e,2-\e(B ?\e,2.\e(B ?\e,2/\e(B
45 ?\e,20\e(B ?\e,21\e(B ?\e,22\e(B ?\e,25\e(B ?\e,2~\e(B ?\e,2>\e(B ?\e,26\e(B ?\e,27\e(B ?\e,28\e(B ?\e,2v\e(B ?\e,2w\e(B ?\e,2o\e(B ?\e,2|\e(B ?\e,2{\e(B ?\e,2x\e(B ?\e,2O\e(B
46 ?\e,2u\e(B ?\e,1!\e(B ?\e,1"\e(B ?
\e,1#\e(B ?
\e,1$
\e(B ?
\e,1%
\e(B ?
\e,1&\e(B ?
\e,1'\e(B ?
\e,1(\e(B ?
\e,1)\e(B ?
\e,1*\e(B ?
\e,1+\e(B ?
\e,1,\e(B ?
\e,1-
\e(B ?
\e,1.
\e(B ?
\e,1/\e(B
47 ?
\e,10\e(B ?
\e,11\e(B ?
\e,12\e(B ?
\e,2^
\e(B ?
\e,2=\e(B ?
\e,15\e(B ?
\e,16\e(B ?
\e,17\e(B ?
\e,18\e(B ?
\e,2q
\e(B ?
\e,2Q
\e(B ?
\e,2W
\e(B ?
\e,2X
\e(B ?
\e,1=\e(B ?
\e,1>\e(B ?
\e,2_
\e(B
48 ?
\e,2`\e(B ?
\e,2a
\e(B ?
\e,2b
\e(B ?
\e,2c
\e(B ?
\e,2d
\e(B ?
\e,2e
\e(B ?
\e,1F
\e(B ?
\e,1G
\e(B ?
\e,2h
\e(B ?
\e,2i
\e(B ?
\e,2j
\e(B ?
\e,2k
\e(B ?
\e,2l\e(B ?
\e,2m
\e(B ?
\e,2n
\e(B ?
\e,1O
\e(B
49 ?
\e,2p
\e(B ?
\e,1Q
\e(B ?
\e,2r
\e(B ?
\e,2s
\e(B ?
\e,2t
\e(B ?
\e,1U\e(B ?
\e,1V
\e(B ?
\e,1W
\e(B ?
\e,1X
\e(B ?
\e,2y
\e(B ?
\e,2z
\e(B ?
\e,1[\e(B ?
\e,1\
\e(B ?
\e,2}\e(B ?
\e,1^
\e(B ?
\e,1_
\e(B
50 ?
\e,1`\e(B ?
\e,1a
\e(B ?
\e,1b
\e(B ?
\e,1c
\e(B ?
\e,1d
\e(B ?
\e,1e
\e(B ?
\e,1f
\e(B ?
\e,1g
\e(B ?
\e,1h
\e(B ?
\e,1i
\e(B ?
\e,1j
\e(B ?
\e,1k
\e(B ?
\e,1l\e(B ?
\e,1m
\e(B ?
\e,1n
\e(B ?
\e,1o
\e(B
51 ?
\e,1p
\e(B ?
\e,1q
\e(B ?
\e,1r
\e(B ?
\e,1s
\e(B ?
\e,1t
\e(B ?
\e,1u\e(B ?
\e,1v
\e(B ?
\e,1w
\e(B ?
\e,1x
\e(B ?
\e,1y
\e(B ?
\e,1z
\e(B ?
\e,1{\e(B ?
\e,1|
\e(B ?
\e,1}\e(B ?
\e,1~
\e(B ?
\e,2f
\e(B ]
52 "Vietnamese VISCII decoding table.")
54 (let ((table (make-translation-table-from-vector viet-viscii-decode-table
)))
55 (define-translation-table 'viet-viscii-nonascii-translation-table table
)
56 (define-translation-table 'viet-viscii-encode-table
57 (char-table-extra-slot table
0)))
60 ;;; VSCII is a pre-version of TCVN-5712 and deprecated
62 (defvar viet-vscii-decode-table
63 [;; VSCII is a full 8-bit code.
64 0 ?
\e,2z
\e(B ?
\e,2x
\e(B 3 ?
\e,2W
\e(B ?
\e,2X
\e(B ?
\e,2f
\e(B 7 8 9 10 11 12 13 14 15
65 16 ?
\e,2Q
\e(B ?
\e,2_
\e(B ?
\e,2O
\e(B ?
\e,2V
\e(B ?
\e,2[\e(B ?
\e,2}\e(B ?
\e,2\
\e(B 24 25 26 27 28 29 30 31
66 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
67 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
68 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
69 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
70 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
71 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
72 ?
\e,2`\e(B ?
\e,2d
\e(B ?
\e,2c
\e(B ?
\e,2a
\e(B ?
\e,2U\e(B ?
\e,2#\e(B ?
\e,2'\e(B ?
\e,2h
\e(B ?
\e,2k
\e(B ?
\e,2(\e(B ?
\e,2i
\e(B ?
\e,2)\e(B ?
\e,2.
\e(B ?
\e,2l\e(B ?
\e,2o
\e(B ?
\e,2n
\e(B
73 ?
\e,2m
\e(B ?
\e,28\e(B ?
\e,2r
\e(B ?
\e,2v
\e(B ?
\e,2u\e(B ?
\e,2s
\e(B ?
\e,2w
\e(B ?
\e,25\e(B ?
\e,26\e(B ?
\e,27\e(B ?
\e,2^
\e(B ?
\e,2>\e(B ?
\e,2~
\e(B ?
\e,2y
\e(B ?
\e,2|
\e(B ?
\e,2{\e(B
74 160 ?
\e,2e
\e(B ?
\e,2b
\e(B ?
\e,2j
\e(B ?
\e,2t
\e(B ?
\e,2=\e(B ?
\e,2_
\e(B ?
\e,2p
\e(B ?
\e,1e
\e(B ?
\e,1b
\e(B ?
\e,1j
\e(B ?
\e,1t
\e(B ?
\e,1=\e(B ?
\e,1y
\e(B ?
\e,1p
\e(B ?
\e,2"\e(B
75 192 193 194 195 196 ?\e,1`\e(B ?\e,1d\e(B ?\e,1c\e(B ?\e,1a\e(B ?\e,1U\e(B ?\e,2F\e(B ?\e,1"\e(B ?
\e,1F
\e(B ?
\e,1G
\e(B ?
\e,1!\e(B ?
\e,2G
\e(B
76 ?
\e,2!\e(B ?
\e,2%
\e(B ?
\e,2&\e(B ?
\e,2g
\e(B ?
\e,2%
\e(B ?
\e,2+\e(B ?
\e,1#\e(B ?
\e,1%
\e(B ?
\e,1&\e(B ?
\e,1g
\e(B ?
\e,1$
\e(B ?
\e,1'\e(B ?
\e,1h
\e(B ?
\e,2,\e(B ?
\e,1k
\e(B ?
\e,1(\e(B
77 ?
\e,1i
\e(B ?
\e,1)\e(B ?
\e,1+\e(B ?
\e,1,\e(B ?
\e,1-
\e(B ?
\e,1*\e(B ?
\e,1.
\e(B ?
\e,1l\e(B ?
\e,1o
\e(B ?
\e,2-
\e(B ?
\e,2*\e(B ?
\e,20\e(B ?
\e,1n
\e(B ?
\e,1m
\e(B ?
\e,18\e(B ?
\e,1r
\e(B
78 ?
\e,21\e(B ?
\e,1v
\e(B ?
\e,1u\e(B ?
\e,1s
\e(B ?
\e,1w
\e(B ?
\e,10\e(B ?
\e,11\e(B ?
\e,12\e(B ?
\e,1/\e(B ?
\e,15\e(B ?
\e,16\e(B ?
\e,17\e(B ?
\e,1^
\e(B ?
\e,1>\e(B ?
\e,1~
\e(B ?
\e,1y
\e(B
79 ?
\e,22\e(B ?
\e,1|
\e(B ?
\e,1{\e(B ?
\e,1z
\e(B ?
\e,1x
\e(B ?
\e,1W
\e(B ?
\e,1X
\e(B ?
\e,1f
\e(B ?
\e,1Q
\e(B ?
\e,1q
\e(B ?
\e,1O
\e(B ?
\e,1V
\e(B ?
\e,1[\e(B ?
\e,1}\e(B ?
\e,1\
\e(B ?
\e,2/\e(B]
80 "Vietnamese VSCII decoding table.")
82 (let ((table (make-translation-table-from-vector viet-vscii-decode-table
)))
83 (define-translation-table 'viet-vscii-nonascii-translation-table table
)
84 (define-translation-table 'viet-vscii-encode-table
85 (char-table-extra-slot table
0)))
87 ;; Does not support combining characters in the range [176, 180]
88 (defvar viet-tcvn-decode-table
89 [;; TCVN is a full 8-bit code.
90 0 ?
\e,2z
\e(B ?
\e,2x
\e(B 3 ?
\e,2W
\e(B ?
\e,2X
\e(B ?
\e,2f
\e(B 7 8 9 10 11 12 13 14 15
91 16 ?
\e,2Q
\e(B ?
\e,2q
\e(B ?
\e,2O
\e(B ?
\e,2V
\e(B ?
\e,2[\e(B ?
\e,2}\e(B ?
\e,2\
\e(B 24 25 26 27 28 29 30 31
92 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
93 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
94 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
95 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
96 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
97 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
98 ?
\e,2`\e(B ?
\e,2d
\e(B ?
\e,2c
\e(B ?
\e,2a
\e(B ?
\e,2U\e(B ?
\e,2#\e(B ?
\e,2'\e(B ?
\e,2h
\e(B ?
\e,2k
\e(B ?
\e,2(\e(B ?
\e,2i
\e(B ?
\e,2)\e(B ?
\e,2.
\e(B ?
\e,2l\e(B ?
\e,2o
\e(B ?
\e,2n
\e(B
99 ?
\e,2m
\e(B ?
\e,28\e(B ?
\e,2r
\e(B ?
\e,2v
\e(B ?
\e,2u\e(B ?
\e,2s
\e(B ?
\e,2w
\e(B ?
\e,25\e(B ?
\e,26\e(B ?
\e,27\e(B ?
\e,2^
\e(B ?
\e,2>\e(B ?
\e,2~
\e(B ?
\e,2y
\e(B ?
\e,2|
\e(B ?
\e,2{\e(B
100 160 ?
\e,2e
\e(B ?
\e,2b
\e(B ?
\e,2j
\e(B ?
\e,2t
\e(B ?
\e,2=\e(B ?
\e,2_
\e(B ?
\e,2p
\e(B ?
\e,1e
\e(B ?
\e,1b
\e(B ?
\e,1j
\e(B ?
\e,1t
\e(B ?
\e,1=\e(B ?
\e,1_
\e(B ?
\e,1p
\e(B ?
\e,2"\e(B
101 176 177 178 179 180 ?\e,1`\e(B ?\e,1d\e(B ?\e,1c\e(B ?\e,1a\e(B ?\e,1U\e(B ?\e,2F\e(B ?\e,1"\e(B ?
\e,1F
\e(B ?
\e,1G
\e(B ?
\e,1!\e(B ?
\e,2G
\e(B
102 ?
\e,2!\e(B ?
\e,2%
\e(B ?
\e,2&\e(B ?
\e,2g
\e(B ?
\e,2$
\e(B ?
\e,2+\e(B ?
\e,1#\e(B ?
\e,1%
\e(B ?
\e,1&\e(B ?
\e,1g
\e(B ?
\e,1$
\e(B ?
\e,1'\e(B ?
\e,1h
\e(B ?
\e,2,\e(B ?
\e,1k
\e(B ?
\e,1(\e(B
103 ?
\e,1i
\e(B ?
\e,1)\e(B ?
\e,1+\e(B ?
\e,1,\e(B ?
\e,1-
\e(B ?
\e,1*\e(B ?
\e,1.
\e(B ?
\e,1l\e(B ?
\e,1o
\e(B ?
\e,2-
\e(B ?
\e,2*\e(B ?
\e,20\e(B ?
\e,1n
\e(B ?
\e,1m
\e(B ?
\e,18\e(B ?
\e,1r
\e(B
104 ?
\e,21\e(B ?
\e,1v
\e(B ?
\e,1u\e(B ?
\e,1s
\e(B ?
\e,1w
\e(B ?
\e,10\e(B ?
\e,11\e(B ?
\e,12\e(B ?
\e,1/\e(B ?
\e,15\e(B ?
\e,16\e(B ?
\e,17\e(B ?
\e,1^
\e(B ?
\e,1>\e(B ?
\e,1~
\e(B ?
\e,1y
\e(B
105 ?
\e,22\e(B ?
\e,1|
\e(B ?
\e,1{\e(B ?
\e,1z
\e(B ?
\e,1x
\e(B ?
\e,1W
\e(B ?
\e,1X
\e(B ?
\e,1f
\e(B ?
\e,1Q
\e(B ?
\e,1q
\e(B ?
\e,1O
\e(B ?
\e,1V
\e(B ?
\e,1[\e(B ?
\e,1}\e(B ?
\e,1\
\e(B ?
\e,2/\e(B]
106 "Vietnamese TCVN-5712 decoding table.")
108 (let ((table (make-translation-table-from-vector viet-tcvn-decode-table
)))
109 (define-translation-table 'viet-tcvn-nonascii-translation-table table
)
110 (define-translation-table 'viet-tcvn-encode-table
111 (char-table-extra-slot table
0)))
113 ;; (defvar viet-vps-decode-table
114 ;; [;; VPS is a full 8-bit code.
115 ;; 0 1 ?\e,2U\e(B ?\e,2'\e(B ?\e,2#\e(B ?\e,2)\e(B ?\e,2.\e(B 7 8 9 10 11 12 13 14 15
116 ;; ?\e,28\e(B ?\e,2w\e(B ?\e,25\e(B ?\e,2~\e(B ?\e,2x\e(B ?\e,2q\e(B 22 23 24 ?\e,2\\e(B 26 27 ?\e,2g\e(B ?\e,2f\e(B 30 31
117 ;; 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
118 ;; 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
119 ;; 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
120 ;; 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
121 ;; 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
122 ;; 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
123 ;; ?\e,2`\e(B ?\e,2d\e(B ?\e,2c\e(B ?\e,2$\e(B ?\e,2%\e(B ?\e,2&\e(B ?\e,1w\e(B ?\e,12\e(B ?\e,2e\e(B ?\e,1*\e(B ?\e,1+\e(B ?\e,1,\e(B ?\e,1.\e(B ?\e,2!\e(B ?\e,2"\e(B ?\e,2F\e(B
124 ;; ?\e,2*\e(B 145 146 ?\e,2+\e(B ?\e,2,\e(B ?\e,2-\e(B ?\e,2/\e(B ?\e,20\e(B ?\e,21\e(B ?\e,22\e(B ?\e,1}\e(B ?\e,1V\e(B ?\e,1\\e(B ?\e,2>\e(B ?\e,26\e(B ?\e,27\e(B
125 ;; 160 ?\e,1!\e(B ?\e,1"\e(B ?\e,1F\e(B ?\e,1G\e(B ?\e,1#\e(B ?\e,2^\e(B ?\e,1>\e(B ?\e,2y\e(B ?\e,16\e(B ?\e,17\e(B ?\e,1^\e(B ?\e,2{\e(B ?\e,2Q\e(B ?\e,1~\e(B ?\e,2W\e(B
126 ;; ?\e,11\e(B ?\e,2X\e(B ?\e,2O\e(B ?\e,2[\e(B ?\e,2m\e(B ?\e,2l\e(B ?\e,15\e(B ?\e,2o\e(B ?\e,2n\e(B ?\e,2s\e(B ?\e,1X\e(B ?\e,1f\e(B ?\e,2r\e(B ?\e,2v\e(B ?\e,2u\e(B ?\e,1q\e(B
127 ;; ?\e,1%\e(B ?\e,2a\e(B ?\e,2b\e(B ?\e,1$\e(B ?\e,1&\e(B ?\e,1g\e(B ?\e,1'\e(B ?\e,1p\e(B ?\e,1k\e(B ?\e,2i\e(B ?\e,2j\e(B ?\e,1)\e(B ?\e,1o\e(B ?\e,1-\e(B ?\e,18\e(B ?\e,1[\e(B
128 ;; ?\e,2_\e(B ?\e,2|\e(B ?\e,10\e(B ?\e,1/\e(B ?\e,2t\e(B ?\e,1v\e(B ?\e,1=\e(B ?\e,2h\e(B ?\e,1W\e(B ?\e,1Q\e(B ?\e,2z\e(B ?\e,1{\e(B ?\e,1_\e(B ?\e,2}\e(B ?\e,2k\e(B 223
129 ;; ?\e,1`\e(B ?\e,1a\e(B ?\e,1b\e(B ?\e,1c\e(B ?\e,1d\e(B ?\e,1U\e(B ?\e,1e\e(B 231 ?\e,1h\e(B ?\e,1i\e(B ?\e,1j\e(B ?\e,1(\e(B ?\e,1l\e(B ?\e,1m\e(B 238 ?\e,1n\e(B
130 ;; ?\e,2G\e(B ?\e,2p\e(B ?\e,1r\e(B ?\e,1s\e(B ?\e,1t\e(B ?\e,1u\e(B 246 ?\e,2=\e(B ?\e,1x\e(B ?\e,1y\e(B ?\e,1z\e(B ?\e,1|\e(B 252 ?\e,2V\e(B ?\e,2(\e(B ?\e,1O\e(B]
131 ;; "Vietnamese VPS decoding table.")
133 ;; (let ((table (make-translation-table-from-vector viet-vps-decode-table)))
134 ;; (define-translation-table 'viet-vps-nonascii-translation-table table)
135 ;; (define-translation-table 'viet-vps-encode-table
136 ;; (char-table-extra-slot table 0)))
138 (define-ccl-program ccl-decode-viscii
143 (translate-character viet-viscii-nonascii-translation-table r0 r1
)
144 (write-multibyte-character r0 r1
)
146 "CCL program to decode VISCII 1.1")
148 (define-ccl-program ccl-encode-viscii
151 (read-multibyte-character r0 r1
)
152 (translate-character viet-viscii-encode-table r0 r1
)
154 "CCL program to encode VISCII 1.1")
156 (define-ccl-program ccl-encode-viscii-font
158 ;; In: R0:vietnamese-viscii-lower/vietnamese-viscii-upper
160 ;; Out: R1:font code point
161 (translate-character viet-viscii-encode-table r0 r1
))
162 "CCL program to encode Vietnamese chars to VISCII 1.1 font")
164 (define-ccl-program ccl-decode-vscii
169 (translate-character viet-vscii-nonascii-translation-table r0 r1
)
170 (write-multibyte-character r0 r1
)
172 "CCL program to decode VSCII-1.")
174 (define-ccl-program ccl-encode-vscii
177 (read-multibyte-character r0 r1
)
178 (translate-character viet-vscii-encode-table r0 r1
)
180 "CCL program to encode VSCII-1.")
182 (define-ccl-program ccl-encode-vscii-font
184 ;; In: R0:vietnamese-viscii-lower/vietnamese-viscii-upper
186 ;; Out: R1:font code point
187 (translate-character viet-vscii-encode-table r0 r1
))
188 "CCL program to encode Vietnamese chars to VSCII-1 font.")
190 (define-ccl-program ccl-decode-tcvn
195 (translate-character viet-tcvn-nonascii-translation-table r0 r1
)
196 (write-multibyte-character r0 r1
)
198 "CCL program to decode TCVN-5712.")
200 (define-ccl-program ccl-encode-tcvn
203 (read-multibyte-character r0 r1
)
204 (translate-character viet-tcvn-encode-table r0 r1
)
206 "CCL program to encode TCVN-5712.")
208 (define-ccl-program ccl-encode-tcvn-font
210 ;; In: R0:vietnamese-viscii-lower/vietnamese-viscii-upper
212 ;; Out: R1:font code point
213 (translate-character viet-tcvn-encode-table r0 r1
))
214 "CCL program to encode Vietnamese chars to TCVN-5712 font.")
216 ;; (define-ccl-program ccl-decode-vps
221 ;; (translate-character viet-vps-nonascii-translation-table r0 r1)
222 ;; (write-multibyte-character r0 r1)
224 ;; "CCL program to decode VPS.")
226 ;; (define-ccl-program ccl-encode-vps
229 ;; (read-multibyte-character r0 r1)
230 ;; (translate-character viet-vps-encode-table r0 r1)
231 ;; (write-repeat r1))))
232 ;; "CCL program to encode VPS.")
234 ;; (define-ccl-program ccl-encode-vps-font
236 ;; ;; In: R0:vietnamese-viscii-lower/vietnamese-viscii-upper
237 ;; ;; R1:position code
238 ;; ;; Out: R1:font code point
239 ;; (translate-character viet-vps-encode-table r0 r1))
240 ;; "CCL program to encode Vietnamese chars to VPS font.")
243 'vietnamese-viscii
4 ?V
244 "8-bit encoding for Vietnamese VISCII 1.1 (MIME:VISCII)"
245 '(ccl-decode-viscii . ccl-encode-viscii
)
246 '((safe-charsets ascii vietnamese-viscii-lower vietnamese-viscii-upper
)
247 (mime-charset . viscii
)
248 (valid-codes (0 .
255))))
250 (define-coding-system-alias 'viscii
'vietnamese-viscii
)
253 'vietnamese-vscii
4 ?v
254 "8-bit encoding for Vietnamese VSCII-1"
255 '(ccl-decode-vscii . ccl-encode-vscii
)
256 '((safe-charsets ascii vietnamese-viscii-lower vietnamese-viscii-upper
)
257 (valid-codes (0 .
255))))
259 (define-coding-system-alias 'vscii
'vietnamese-vscii
)
262 'vietnamese-tcvn
4 ?t
263 "8-bit encoding for Vietnamese TCVN-5712"
264 '(ccl-decode-tcvn . ccl-encode-tcvn
)
265 '((safe-charsets ascii vietnamese-viscii-lower vietnamese-viscii-upper
)
266 (valid-codes (0 .
255))))
268 (define-coding-system-alias 'tcvn
'vietnamese-tcvn
)
269 (define-coding-system-alias 'tcvn-5712
'vietnamese-tcvn
)
271 ;; (make-coding-system
272 ;; 'vietnamese-vps 4 ?p
273 ;; "8-bit encoding for Vietnamese VPS"
274 ;; '(ccl-decode-vps . ccl-encode-vps)
275 ;; '((safe-charsets ascii vietnamese-viscii-lower vietnamese-viscii-upper)
276 ;; (valid-codes (0 . 255))))
278 ;; (define-coding-system-alias 'vps 'vietnamese-vps)
281 'vietnamese-viqr
0 ?q
282 "Vietnamese latin transcription (VIQR)"
284 '((safe-charsets ascii vietnamese-viscii-lower vietnamese-viscii-upper
)
285 (post-read-conversion . viqr-post-read-conversion
)
286 (pre-write-conversion . viqr-pre-write-conversion
)
287 (charset-origin-alist
288 (vietnamese-viscii-lower "VISCII" viet-encode-viscii-char
)
289 (vietnamese-viscii-upper "VISCII" viet-encode-viscii-char
))))
292 (define-coding-system-alias 'viqr
'vietnamese-viqr
)
294 (setq font-ccl-encoder-alist
295 (cons '("viscii" . ccl-encode-viscii-font
) font-ccl-encoder-alist
))
297 (setq font-ccl-encoder-alist
298 (cons '("vscii" . ccl-encode-vscii-font
) font-ccl-encoder-alist
))
300 (setq font-ccl-encoder-alist
301 (cons '("tcvn" . ccl-encode-tcvn-font
) font-ccl-encoder-alist
))
303 (set-language-info-alist
304 "Vietnamese" `((charset vietnamese-viscii-lower vietnamese-viscii-upper
)
305 (nonascii-translation
306 .
,(get 'viet-viscii-nonascii-translation-table
308 (coding-system vietnamese-viscii vietnamese-vscii vietnamese-tcvn
310 (coding-priority vietnamese-viscii
)
311 (input-method .
"vietnamese-viqr")
312 (unibyte-display . vietnamese-viscii
)
314 (sample-text .
"Vietnamese (Ti\e,1*\e(Bng Vi\e,1.\e(Bt) Ch\e,1`\e(Bo b\e,1U\e(Bn")
316 For Vietnamese, Emacs uses special charsets internally.
317 They can be decoded from and encoded to VISCII, VSCII, TCVN-5712, and
318 VIQR. VSCII is deprecated in favour of TCVN-5712. Current setting
319 puts higher priority to the coding system VISCII than TCVN-5712. If
320 you prefer TCVN-5712, please do: (prefer-coding-system 'vietnamese-tcvn).
321 There are two Vietnamese input methods: VIQR and Telex, VIQR is the
325 (provide 'vietnamese
)
327 ;;; arch-tag: 5bd4f1aa-2d4e-4f33-b7d8-0679c6a19ee6
328 ;;; vietnamese.el ends here