-;;; viet-util.el --- utilities for Vietnamese -*- coding: iso-2022-7bit; -*-
+;;; viet-util.el --- utilities for Vietnamese -*- coding: utf-8; -*-
-;; Copyright (C) 1998, 2001-2011 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2001-2016 Free Software Foundation, Inc.
;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
;; 2005, 2006, 2007, 2008, 2009, 2010, 2011
;; National Institute of Advanced Industrial Science and Technology (AIST)
;; for representing these characters: VISCII, TCVN-5712, VPS, VIQR,
;; and Unicode. VISCII, TCVN-5712 and VPS are simple 1-byte code
;; which assigns 134 unique characters in control-code area
-;; (0x00..0x1F) and right half area (0x80..0xFF). VIQR is a menmonic
+;; (0x00..0x1F) and right half area (0x80..0xFF). VIQR is a mnemonic
;; encoding specification representing diacritical marks by following
;; ASCII characters.
"Return VISCII character code of CHAR if appropriate."
(encode-char char 'viscii))
-;; VIQR is a menmonic encoding specification for Vietnamese.
+;; VIQR is a mnemonic encoding specification for Vietnamese.
;; It represents diacritical marks by ASCII characters as follows:
;; ------------+----------+--------
;; mark | mnemonic | example
;; ------------+----------+---------
-;; breve | ( | a( -> \e,1e\e(B
-;; circumflex | ^ | a^ -> \e,1b\e(B
-;; horn | + | o+ -> \e,1=\e(B
+;; breve | ( | a( -> ă
+;; circumflex | ^ | a^ -> â
+;; horn | + | o+ -> ơ
;; ------------+----------+---------
-;; acute | ' | a' -> \e,1a\e(B
-;; grave | ` | a` -> \e,1`\e(B
-;; hook above | ? | a? -> \e,1d\e(B
-;; tilde | ~ | a~ -> \e,1c\e(B
-;; dot below | . | a. -> \e,1U\e(B
+;; acute | ' | a' -> á
+;; grave | ` | a` -> à
+;; hook above | ? | a? -> ả
+;; tilde | ~ | a~ -> ã
+;; dot below | . | a. -> ạ
;; ------------+----------+---------
-;; d bar | dd | dd -> \e,1p\e(B
+;; d bar | dd | dd -> đ
;; ------------+----------+---------
(defvar viet-viqr-alist
'(;; lowercase
- (?\e,1!\e(B . "a('") ; 161
- (?\e,1"\e(B . "a(`") ; 162
- (?\e,1#\e(B . "a(.") ; 163
- (?\e,1$\e(B . "a^'") ; 164
- (?\e,1%\e(B . "a^`") ; 165
- (?\e,1&\e(B . "a^?") ; 166
- (?\e,1'\e(B . "a^.") ; 167
- (?\e,1(\e(B . "e~") ; 168
- (?\e,1)\e(B . "e.") ; 169
- (?\e,1*\e(B . "e^'") ; 170
- (?\e,1+\e(B . "e^`") ; 171
- (?\e,1,\e(B . "e^?") ; 172
- (?\e,1-\e(B . "e^~") ; 173
- (?\e,1.\e(B . "e^.") ; 174
- (?\e,1/\e(B . "o^'") ; 175
- (?\e,10\e(B . "o^`") ; 176
- (?\e,11\e(B . "o^?") ; 177
- (?\e,12\e(B . "o^~") ; 178
- (?\e,15\e(B . "o^.") ; 181
- (?\e,16\e(B . "o+`") ; 182
- (?\e,17\e(B . "o+?") ; 183
- (?\e,18\e(B . "i.") ; 184
- (?\e,1=\e(B . "o+") ; 189
- (?\e,1>\e(B . "o+'") ; 190
- (?\e,1F\e(B . "a(?") ; 198
- (?\e,1G\e(B . "a(~") ; 199
- (?\e,1O\e(B . "y`") ; 207
- (?\e,1Q\e(B . "u+'") ; 209
- (?\e,1U\e(B . "a.") ; 213
- (?\e,1V\e(B . "y?") ; 214
- (?\e,1W\e(B . "u+`") ; 215
- (?\e,1X\e(B . "u+?") ; 216
- (?\e,1[\e(B . "y~") ; 219
- (?\e,1\\e(B . "y.") ; 220
- (?\e,1^\e(B . "o+~") ; 222
- (?\e,1_\e(B . "u+") ; 223
- (?\e,1`\e(B . "a`") ; 224
- (?\e,1a\e(B . "a'") ; 225
- (?\e,1b\e(B . "a^") ; 226
- (?\e,1c\e(B . "a~") ; 227
- (?\e,1d\e(B . "a?") ; 228
- (?\e,1e\e(B . "a(") ; 229
- (?\e,1f\e(B . "u+~") ; 230
- (?\e,1g\e(B . "a^~") ; 231
- (?\e,1h\e(B . "e`") ; 232
- (?\e,1i\e(B . "e'") ; 233
- (?\e,1j\e(B . "e^") ; 234
- (?\e,1k\e(B . "e?") ; 235
- (?\e,1l\e(B . "i`") ; 236
- (?\e,1m\e(B . "i'") ; 237
- (?\e,1n\e(B . "i~") ; 238
- (?\e,1o\e(B . "i?") ; 239
- (?\e,1p\e(B . "dd") ; 240
- (?\e,1q\e(B . "u+.") ; 241
- (?\e,1r\e(B . "o`") ; 242
- (?\e,1s\e(B . "o'") ; 243
- (?\e,1t\e(B . "o^") ; 244
- (?\e,1u\e(B . "o~") ; 245
- (?\e,1v\e(B . "o?") ; 246
- (?\e,1w\e(B . "o.") ; 247
- (?\e,1x\e(B . "u.") ; 248
- (?\e,1y\e(B . "u`") ; 249
- (?\e,1z\e(B . "u'") ; 250
- (?\e,1{\e(B . "u~") ; 251
- (?\e,1|\e(B . "u?") ; 252
- (?\e,1}\e(B . "y'") ; 253
- (?\e,1~\e(B . "o+.") ; 254
+ (?ắ . "a('") ; 161
+ (?ằ . "a(`") ; 162
+ (?ặ . "a(.") ; 163
+ (?ấ . "a^'") ; 164
+ (?ầ . "a^`") ; 165
+ (?ẩ . "a^?") ; 166
+ (?ậ . "a^.") ; 167
+ (?ẽ . "e~") ; 168
+ (?ẹ . "e.") ; 169
+ (?ế . "e^'") ; 170
+ (?ề . "e^`") ; 171
+ (?ể . "e^?") ; 172
+ (?ễ . "e^~") ; 173
+ (?ệ . "e^.") ; 174
+ (?ố . "o^'") ; 175
+ (?ồ . "o^`") ; 176
+ (?ổ . "o^?") ; 177
+ (?ỗ . "o^~") ; 178
+ (?ộ . "o^.") ; 181
+ (?ờ . "o+`") ; 182
+ (?ở . "o+?") ; 183
+ (?ị . "i.") ; 184
+ (?ơ . "o+") ; 189
+ (?ớ . "o+'") ; 190
+ (?ẳ . "a(?") ; 198
+ (?ẵ . "a(~") ; 199
+ (?ỳ . "y`") ; 207
+ (?ứ . "u+'") ; 209
+ (?ạ . "a.") ; 213
+ (?ỷ . "y?") ; 214
+ (?ừ . "u+`") ; 215
+ (?ử . "u+?") ; 216
+ (?ỹ . "y~") ; 219
+ (?ỵ . "y.") ; 220
+ (?ỡ . "o+~") ; 222
+ (?ư . "u+") ; 223
+ (?à . "a`") ; 224
+ (?á . "a'") ; 225
+ (?â . "a^") ; 226
+ (?ã . "a~") ; 227
+ (?ả . "a?") ; 228
+ (?ă . "a(") ; 229
+ (?ữ . "u+~") ; 230
+ (?ẫ . "a^~") ; 231
+ (?è . "e`") ; 232
+ (?é . "e'") ; 233
+ (?ê . "e^") ; 234
+ (?ẻ . "e?") ; 235
+ (?ì . "i`") ; 236
+ (?í . "i'") ; 237
+ (?ĩ . "i~") ; 238
+ (?ỉ . "i?") ; 239
+ (?đ . "dd") ; 240
+ (?ự . "u+.") ; 241
+ (?ò . "o`") ; 242
+ (?ó . "o'") ; 243
+ (?ô . "o^") ; 244
+ (?õ . "o~") ; 245
+ (?ỏ . "o?") ; 246
+ (?ọ . "o.") ; 247
+ (?ụ . "u.") ; 248
+ (?ù . "u`") ; 249
+ (?ú . "u'") ; 250
+ (?ũ . "u~") ; 251
+ (?ủ . "u?") ; 252
+ (?ý . "y'") ; 253
+ (?ợ . "o+.") ; 254
;; upper case
- (?\e,2!\e(B . "A('") ; 161
- (?\e,2"\e(B . "A(`") ; 162
- (?\e,2#\e(B . "A(.") ; 163
- (?\e,2$\e(B . "A^'") ; 164
- (?\e,2%\e(B . "A^`") ; 165
- (?\e,2&\e(B . "A^?") ; 166
- (?\e,2'\e(B . "A^.") ; 167
- (?\e,2(\e(B . "E~") ; 168
- (?\e,2)\e(B . "E.") ; 169
- (?\e,2*\e(B . "E^'") ; 170
- (?\e,2+\e(B . "E^`") ; 171
- (?\e,2,\e(B . "E^?") ; 172
- (?\e,2-\e(B . "E^~") ; 173
- (?\e,2.\e(B . "E^.") ; 174
- (?\e,2/\e(B . "O^'") ; 175
- (?\e,20\e(B . "O^`") ; 176
- (?\e,21\e(B . "O^?") ; 177
- (?\e,22\e(B . "O^~") ; 178
- (?\e,25\e(B . "O^.") ; 181
- (?\e,26\e(B . "O+`") ; 182
- (?\e,27\e(B . "O+?") ; 183
- (?\e,28\e(B . "I.") ; 184
- (?\e,2=\e(B . "O+") ; 189
- (?\e,2>\e(B . "O+'") ; 190
- (?\e,2F\e(B . "A(?") ; 198
- (?\e,2G\e(B . "A(~") ; 199
- (?\e,2O\e(B . "Y`") ; 207
- (?\e,2Q\e(B . "U+'") ; 209
- (?\e,2U\e(B . "A.") ; 213
- (?\e,2V\e(B . "Y?") ; 214
- (?\e,2W\e(B . "U+`") ; 215
- (?\e,2X\e(B . "U+?") ; 216
- (?\e,2[\e(B . "Y~") ; 219
- (?\e,2\\e(B . "Y.") ; 220
- (?\e,2^\e(B . "O+~") ; 222
- (?\e,2_\e(B . "U+") ; 223
- (?\e,2`\e(B . "A`") ; 224
- (?\e,2a\e(B . "A'") ; 225
- (?\e,2b\e(B . "A^") ; 226
- (?\e,2c\e(B . "A~") ; 227
- (?\e,2d\e(B . "A?") ; 228
- (?\e,2e\e(B . "A(") ; 229
- (?\e,2f\e(B . "U+~") ; 230
- (?\e,2g\e(B . "A^~") ; 231
- (?\e,2h\e(B . "E`") ; 232
- (?\e,2i\e(B . "E'") ; 233
- (?\e,2j\e(B . "E^") ; 234
- (?\e,2k\e(B . "E?") ; 235
- (?\e,2l\e(B . "I`") ; 236
- (?\e,2m\e(B . "I'") ; 237
- (?\e,2n\e(B . "I~") ; 238
- (?\e,2o\e(B . "I?") ; 239
- (?\e,2p\e(B . "DD") ; 240
- (?\e,2p\e(B . "dD") ; 240
- (?\e,2p\e(B . "Dd") ; 240
- (?\e,2q\e(B . "U+.") ; 241
- (?\e,2r\e(B . "O`") ; 242
- (?\e,2s\e(B . "O'") ; 243
- (?\e,2t\e(B . "O^") ; 244
- (?\e,2u\e(B . "O~") ; 245
- (?\e,2v\e(B . "O?") ; 246
- (?\e,2w\e(B . "O.") ; 247
- (?\e,2x\e(B . "U.") ; 248
- (?\e,2y\e(B . "U`") ; 249
- (?\e,2z\e(B . "U'") ; 250
- (?\e,2{\e(B . "U~") ; 251
- (?\e,2|\e(B . "U?") ; 252
- (?\e,2}\e(B . "Y'") ; 253
- (?\e,2~\e(B . "O+.") ; 254
+ (?Ắ . "A('") ; 161
+ (?Ằ . "A(`") ; 162
+ (?Ặ . "A(.") ; 163
+ (?Ấ . "A^'") ; 164
+ (?Ầ . "A^`") ; 165
+ (?Ẩ . "A^?") ; 166
+ (?Ậ . "A^.") ; 167
+ (?Ẽ . "E~") ; 168
+ (?Ẹ . "E.") ; 169
+ (?Ế . "E^'") ; 170
+ (?Ề . "E^`") ; 171
+ (?Ể . "E^?") ; 172
+ (?Ễ . "E^~") ; 173
+ (?Ệ . "E^.") ; 174
+ (?Ố . "O^'") ; 175
+ (?Ồ . "O^`") ; 176
+ (?Ổ . "O^?") ; 177
+ (?Ỗ . "O^~") ; 178
+ (?Ộ . "O^.") ; 181
+ (?Ờ . "O+`") ; 182
+ (?Ở . "O+?") ; 183
+ (?Ị . "I.") ; 184
+ (?Ơ . "O+") ; 189
+ (?Ớ . "O+'") ; 190
+ (?Ẳ . "A(?") ; 198
+ (?Ẵ . "A(~") ; 199
+ (?Ỳ . "Y`") ; 207
+ (?Ứ . "U+'") ; 209
+ (?Ạ . "A.") ; 213
+ (?Ỷ . "Y?") ; 214
+ (?Ừ . "U+`") ; 215
+ (?Ử . "U+?") ; 216
+ (?Ỹ . "Y~") ; 219
+ (?Ỵ . "Y.") ; 220
+ (?Ỡ . "O+~") ; 222
+ (?Ư . "U+") ; 223
+ (?À . "A`") ; 224
+ (?Á . "A'") ; 225
+ (? . "A^") ; 226
+ (?Ã . "A~") ; 227
+ (?Ả . "A?") ; 228
+ (?Ă . "A(") ; 229
+ (?Ữ . "U+~") ; 230
+ (?Ẫ . "A^~") ; 231
+ (?È . "E`") ; 232
+ (?É . "E'") ; 233
+ (?Ê . "E^") ; 234
+ (?Ẻ . "E?") ; 235
+ (?Ì . "I`") ; 236
+ (?Í . "I'") ; 237
+ (?Ĩ . "I~") ; 238
+ (?Ỉ . "I?") ; 239
+ (?Đ . "DD") ; 240
+ (?Đ . "dD") ; 240
+ (?Đ . "Dd") ; 240
+ (?Ự . "U+.") ; 241
+ (?Ò . "O`") ; 242
+ (?Ó . "O'") ; 243
+ (?Ô . "O^") ; 244
+ (?Õ . "O~") ; 245
+ (?Ỏ . "O?") ; 246
+ (?Ọ . "O.") ; 247
+ (?Ụ . "U.") ; 248
+ (?Ù . "U`") ; 249
+ (?Ú . "U'") ; 250
+ (?Ũ . "U~") ; 251
+ (?Ủ . "U?") ; 252
+ (?Ý . "Y'") ; 253
+ (?Ợ . "O+.") ; 254
;; escape from composition
(?\( . "\\(") ; breve (left parenthesis)