Mercurial > emacs
annotate lisp/international/mule-cmds.el @ 108830:0d7ed8742a5f
emulation/cua-base.el: Recognize `right-char', `left-char' as movement commands.
author | Juanma Barranquero <lekktu@gmail.com> |
---|---|
date | Sun, 30 May 2010 06:44:46 +0200 |
parents | c868ea5f7463 |
children | 0ed39249e8e4 |
rev | line source |
---|---|
77918
80ba9b48c547
(toggle-enable-multibyte-characters, sort-coding-systems,
Juanma Barranquero <lekktu@gmail.com>
parents:
76003
diff
changeset
|
1 ;;; mule-cmds.el --- commands for multilingual environment -*-coding: iso-2022-7bit -*- |
58055
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
2 |
95622
b4f1005a6470
Remove unnecessary eval-when-compiles.
Glenn Morris <rgm@gnu.org>
parents:
94953
diff
changeset
|
3 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, |
106815 | 4 ;; 2007, 2008, 2009, 2010 Free Software Foundation, Inc. |
74605
6ee41fdd69ff
Update AIST copyright years.
Kenichi Handa <handa@m17n.org>
parents:
74544
diff
changeset
|
5 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, |
106815 | 6 ;; 2005, 2006, 2007, 2008, 2009, 2010 |
62274 | 7 ;; National Institute of Advanced Industrial Science and Technology (AIST) |
8 ;; Registration Number H14PRO021 | |
89483 | 9 ;; Copyright (C) 2003 |
88410
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
10 ;; National Institute of Advanced Industrial Science and Technology (AIST) |
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
11 ;; Registration Number H13PRO009 |
17052 | 12 |
89092
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
13 ;; Keywords: mule, i18n |
17052 | 14 |
15 ;; This file is part of GNU Emacs. | |
16 | |
94664
889bc336b89b
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93865
diff
changeset
|
17 ;; GNU Emacs is free software: you can redistribute it and/or modify |
17052 | 18 ;; it under the terms of the GNU General Public License as published by |
94664
889bc336b89b
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93865
diff
changeset
|
19 ;; the Free Software Foundation, either version 3 of the License, or |
889bc336b89b
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93865
diff
changeset
|
20 ;; (at your option) any later version. |
17052 | 21 |
22 ;; GNU Emacs is distributed in the hope that it will be useful, | |
23 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
24 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
25 ;; GNU General Public License for more details. | |
26 | |
27 ;; You should have received a copy of the GNU General Public License | |
94664
889bc336b89b
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
93865
diff
changeset
|
28 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
17052 | 29 |
38414
67b464da13ec
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
37953
diff
changeset
|
30 ;;; Commentary: |
67b464da13ec
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
37953
diff
changeset
|
31 |
17052 | 32 ;;; Code: |
33 | |
104911
0261f99bf928
(top-level): Require cl when compiling.
Glenn Morris <rgm@gnu.org>
parents:
104823
diff
changeset
|
34 (eval-when-compile (require 'cl)) ; letf |
0261f99bf928
(top-level): Require cl when compiling.
Glenn Morris <rgm@gnu.org>
parents:
104823
diff
changeset
|
35 |
95622
b4f1005a6470
Remove unnecessary eval-when-compiles.
Glenn Morris <rgm@gnu.org>
parents:
94953
diff
changeset
|
36 (defvar dos-codepage) |
b4f1005a6470
Remove unnecessary eval-when-compiles.
Glenn Morris <rgm@gnu.org>
parents:
94953
diff
changeset
|
37 (autoload 'widget-value "wid-edit") |
28456 | 38 |
65204
89dc9fa960e2
(mac-system-coding-system, mac-system-locale): Add defvars.
Juanma Barranquero <lekktu@gmail.com>
parents:
64672
diff
changeset
|
39 (defvar mac-system-coding-system) |
89dc9fa960e2
(mac-system-coding-system, mac-system-locale): Add defvars.
Juanma Barranquero <lekktu@gmail.com>
parents:
64672
diff
changeset
|
40 |
17052 | 41 ;;; MULE related key bindings and menus. |
42 | |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
43 (defvar mule-keymap |
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
44 (let ((map (make-sparse-keymap))) |
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
45 (define-key map "f" 'set-buffer-file-coding-system) |
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
46 (define-key map "r" 'revert-buffer-with-coding-system) |
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
47 (define-key map "F" 'set-file-name-coding-system) |
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
48 (define-key map "t" 'set-terminal-coding-system) |
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
49 (define-key map "k" 'set-keyboard-coding-system) |
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
50 (define-key map "p" 'set-buffer-process-coding-system) |
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
51 (define-key map "x" 'set-selection-coding-system) |
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
52 (define-key map "X" 'set-next-selection-coding-system) |
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
53 (define-key map "\C-\\" 'set-input-method) |
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
54 (define-key map "c" 'universal-coding-system-argument) |
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
55 (define-key map "l" 'set-language-environment) |
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
56 map) |
24725
269f6a206499
Change MULE to Mule in docstrings and menus.
Kenichi Handa <handa@m17n.org>
parents:
24617
diff
changeset
|
57 "Keymap for Mule (Multilingual environment) specific commands.") |
17052 | 58 |
17294
d7ae63db9e6e
Prefix for Mule related commands is changed.
Kenichi Handa <handa@m17n.org>
parents:
17090
diff
changeset
|
59 ;; Keep "C-x C-m ..." for mule specific commands. |
19725 | 60 (define-key ctl-x-map "\C-m" mule-keymap) |
17090
8085a8690c87
(mule-keymap): Re-arranged.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
61 |
23924
e3421077c412
Use make-sparse-keymap instead of define-prefix-key when defining
Eli Zaretskii <eliz@gnu.org>
parents:
23916
diff
changeset
|
62 (defvar describe-language-environment-map |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
63 (let ((map (make-sparse-keymap "Describe Language Environment"))) |
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
64 (define-key map |
105715
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
65 [Default] `(menu-item ,(purecopy "Default") describe-specified-language-support)) |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
66 map)) |
17991
65407fdc4a33
Delete defining "i" in mule-keymap.
Kenichi Handa <handa@m17n.org>
parents:
17840
diff
changeset
|
67 |
23924
e3421077c412
Use make-sparse-keymap instead of define-prefix-key when defining
Eli Zaretskii <eliz@gnu.org>
parents:
23916
diff
changeset
|
68 (defvar setup-language-environment-map |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
69 (let ((map (make-sparse-keymap "Set Language Environment"))) |
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
70 (define-key map |
105715
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
71 [Default] `(menu-item ,(purecopy "Default") setup-specified-language-environment)) |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
72 map)) |
17991
65407fdc4a33
Delete defining "i" in mule-keymap.
Kenichi Handa <handa@m17n.org>
parents:
17840
diff
changeset
|
73 |
23924
e3421077c412
Use make-sparse-keymap instead of define-prefix-key when defining
Eli Zaretskii <eliz@gnu.org>
parents:
23916
diff
changeset
|
74 (defvar set-coding-system-map |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
75 (let ((map (make-sparse-keymap "Set Coding System"))) |
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
76 (define-key-after map [universal-coding-system-argument] |
105715
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
77 `(menu-item ,(purecopy "For Next Command") universal-coding-system-argument |
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
78 :help ,(purecopy "Coding system to be used by next command"))) |
105941
d1bb0f3aad35
* net/eudc.el (eudc-tools-menu):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105813
diff
changeset
|
79 (define-key-after map [separator-1] menu-bar-separator) |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
80 (define-key-after map [set-buffer-file-coding-system] |
105715
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
81 `(menu-item ,(purecopy "For Saving This Buffer") set-buffer-file-coding-system |
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
82 :help ,(purecopy "How to encode this buffer when saved"))) |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
83 (define-key-after map [revert-buffer-with-coding-system] |
105715
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
84 `(menu-item ,(purecopy "For Reverting This File Now") |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
85 revert-buffer-with-coding-system |
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
86 :enable buffer-file-name |
105715
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
87 :help ,(purecopy "Revisit this file immediately using specified coding system"))) |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
88 (define-key-after map [set-file-name-coding-system] |
105715
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
89 `(menu-item ,(purecopy "For File Name") set-file-name-coding-system |
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
90 :help ,(purecopy "How to decode/encode file names"))) |
105941
d1bb0f3aad35
* net/eudc.el (eudc-tools-menu):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105813
diff
changeset
|
91 (define-key-after map [separator-2] menu-bar-separator) |
17991
65407fdc4a33
Delete defining "i" in mule-keymap.
Kenichi Handa <handa@m17n.org>
parents:
17840
diff
changeset
|
92 |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
93 (define-key-after map [set-keyboard-coding-system] |
105715
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
94 `(menu-item ,(purecopy "For Keyboard") set-keyboard-coding-system |
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
95 :help ,(purecopy "How to decode keyboard input"))) |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
96 (define-key-after map [set-terminal-coding-system] |
105715
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
97 `(menu-item ,(purecopy "For Terminal") set-terminal-coding-system |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
98 :enable (null (memq initial-window-system '(x w32 ns))) |
105715
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
99 :help ,(purecopy "How to encode terminal output"))) |
105941
d1bb0f3aad35
* net/eudc.el (eudc-tools-menu):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105813
diff
changeset
|
100 (define-key-after map [separator-3] menu-bar-separator) |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
101 |
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
102 (define-key-after map [set-selection-coding-system] |
105715
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
103 `(menu-item ,(purecopy "For X Selections/Clipboard") set-selection-coding-system |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
104 :visible (display-selections-p) |
105715
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
105 :help ,(purecopy "How to en/decode data to/from selection/clipboard"))) |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
106 (define-key-after map [set-next-selection-coding-system] |
105715
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
107 `(menu-item ,(purecopy "For Next X Selection") set-next-selection-coding-system |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
108 :visible (display-selections-p) |
105715
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
109 :help ,(purecopy "How to en/decode next selection/clipboard operation"))) |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
110 (define-key-after map [set-buffer-process-coding-system] |
105715
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
111 `(menu-item ,(purecopy "For I/O with Subprocess") set-buffer-process-coding-system |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
112 :visible (fboundp 'start-process) |
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
113 :enable (get-buffer-process (current-buffer)) |
105715
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
114 :help ,(purecopy "How to en/decode I/O from/to subprocess connected to this buffer"))) |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
115 map)) |
17991
65407fdc4a33
Delete defining "i" in mule-keymap.
Kenichi Handa <handa@m17n.org>
parents:
17840
diff
changeset
|
116 |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
117 (defvar mule-menu-keymap |
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
118 (let ((map (make-sparse-keymap "Mule (Multilingual Environment)"))) |
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
119 (define-key-after map [set-language-environment] |
105715
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
120 `(menu-item ,(purecopy "Set Language Environment") ,setup-language-environment-map)) |
105941
d1bb0f3aad35
* net/eudc.el (eudc-tools-menu):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105813
diff
changeset
|
121 (define-key-after map [separator-mule] menu-bar-separator) |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
122 |
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
123 (define-key-after map [toggle-input-method] |
105715
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
124 `(menu-item ,(purecopy "Toggle Input Method") toggle-input-method)) |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
125 (define-key-after map [set-input-method] |
105715
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
126 `(menu-item ,(purecopy "Select Input Method...") set-input-method)) |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
127 (define-key-after map [describe-input-method] |
105715
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
128 `(menu-item ,(purecopy "Describe Input Method") describe-input-method)) |
105941
d1bb0f3aad35
* net/eudc.el (eudc-tools-menu):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105813
diff
changeset
|
129 (define-key-after map [separator-input-method] menu-bar-separator) |
46786
703592d3b794
(mule-keymap, set-coding-system-map):
Richard M. Stallman <rms@gnu.org>
parents:
46674
diff
changeset
|
130 |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
131 (define-key-after map [set-various-coding-system] |
105715
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
132 `(menu-item ,(purecopy "Set Coding Systems") ,set-coding-system-map |
104823
68150c643e2e
Use default-value rather than default-enable-multibyte-characters.
Glenn Morris <rgm@gnu.org>
parents:
104664
diff
changeset
|
133 :enable (default-value 'enable-multibyte-characters))) |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
134 (define-key-after map [view-hello-file] |
105715
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
135 `(menu-item ,(purecopy "Show Multi-lingual Text") view-hello-file |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
136 :enable (file-readable-p |
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
137 (expand-file-name "HELLO" data-directory)) |
105715
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
138 :help ,(purecopy "Display file which says HELLO in many languages"))) |
105941
d1bb0f3aad35
* net/eudc.el (eudc-tools-menu):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105813
diff
changeset
|
139 (define-key-after map [separator-coding-system] menu-bar-separator) |
46786
703592d3b794
(mule-keymap, set-coding-system-map):
Richard M. Stallman <rms@gnu.org>
parents:
46674
diff
changeset
|
140 |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
141 (define-key-after map [describe-language-environment] |
105715
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
142 `(menu-item ,(purecopy "Describe Language Environment") |
108599
c868ea5f7463
Prevent an error signal when clicking on Options->Mule->Describe Lang Env.
Eli Zaretskii <eliz@gnu.org>
parents:
107999
diff
changeset
|
143 ,describe-language-environment-map |
105715
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
144 :help ,(purecopy "Show multilingual settings for a specific language"))) |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
145 (define-key-after map [describe-input-method] |
105715
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
146 `(menu-item ,(purecopy "Describe Input Method...") describe-input-method |
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
147 :help ,(purecopy "Keyboard layout for a specific input method"))) |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
148 (define-key-after map [describe-coding-system] |
105715
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
149 `(menu-item ,(purecopy "Describe Coding System...") describe-coding-system)) |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
150 (define-key-after map [list-character-sets] |
105715
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
151 `(menu-item ,(purecopy "List Character Sets") list-character-sets |
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
152 :help ,(purecopy "Show table of available character sets"))) |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
153 (define-key-after map [mule-diag] |
105715
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
154 `(menu-item ,(purecopy "Show All of Mule Status") mule-diag |
6b8dce5c4461
* puresize.h (BASE_PURESIZE): Increase to 1430000.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105651
diff
changeset
|
155 :help ,(purecopy "Display multilingual environment settings"))) |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
156 map) |
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
157 "Keymap for Mule (Multilingual environment) menu specific commands.") |
28456 | 158 |
17052 | 159 ;; This should be a single character key binding because users use it |
160 ;; very frequently while editing multilingual text. Now we can use | |
161 ;; only two such keys: "\C-\\" and "\C-^", but the latter is not | |
162 ;; convenient because it requires shifting on most keyboards. An | |
163 ;; alternative is "\C-\]" which is now bound to `abort-recursive-edit' | |
164 ;; but it won't be used that frequently. | |
165 (define-key global-map "\C-\\" 'toggle-input-method) | |
166 | |
41126
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
167 ;; This is no good because people often type Shift-SPC |
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
168 ;; meaning to type SPC. -- rms. |
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
169 ;; ;; Here's an alternative key binding for X users (Shift-SPACE). |
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
170 ;; (define-key global-map [?\S- ] 'toggle-input-method) |
18801
f60dbf4f7d7c
(mule-keymap): Bind l to set-language-environment.
Kenichi Handa <handa@m17n.org>
parents:
18712
diff
changeset
|
171 |
31245
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
172 ;;; Mule related hyperlinks. |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
173 (defconst help-xref-mule-regexp-template |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
174 (purecopy (concat "\\(\\<\\(" |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
175 "\\(coding system\\)\\|" |
31423
afa66a3f39dc
(help-xref-mule-regexp-template):
Kenichi Handa <handa@m17n.org>
parents:
31245
diff
changeset
|
176 "\\(input method\\)\\|" |
afa66a3f39dc
(help-xref-mule-regexp-template):
Kenichi Handa <handa@m17n.org>
parents:
31245
diff
changeset
|
177 "\\(character set\\)\\|" |
afa66a3f39dc
(help-xref-mule-regexp-template):
Kenichi Handa <handa@m17n.org>
parents:
31245
diff
changeset
|
178 "\\(charset\\)" |
31245
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
179 "\\)\\s-+\\)?" |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
180 ;; Note starting with word-syntax character: |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
181 "`\\(\\sw\\(\\sw\\|\\s_\\)+\\)'"))) |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
182 |
24007
0e0b1cdfbfe3
(coding-system-change-eol-conversion,
Eli Zaretskii <eliz@gnu.org>
parents:
23966
diff
changeset
|
183 (defun coding-system-change-eol-conversion (coding-system eol-type) |
77918
80ba9b48c547
(toggle-enable-multibyte-characters, sort-coding-systems,
Juanma Barranquero <lekktu@gmail.com>
parents:
76003
diff
changeset
|
184 "Return a coding system which differs from CODING-SYSTEM in EOL conversion. |
24007
0e0b1cdfbfe3
(coding-system-change-eol-conversion,
Eli Zaretskii <eliz@gnu.org>
parents:
23966
diff
changeset
|
185 The returned coding system converts end-of-line by EOL-TYPE |
0e0b1cdfbfe3
(coding-system-change-eol-conversion,
Eli Zaretskii <eliz@gnu.org>
parents:
23966
diff
changeset
|
186 but text as the same way as CODING-SYSTEM. |
0e0b1cdfbfe3
(coding-system-change-eol-conversion,
Eli Zaretskii <eliz@gnu.org>
parents:
23966
diff
changeset
|
187 EOL-TYPE should be `unix', `dos', `mac', or nil. |
0e0b1cdfbfe3
(coding-system-change-eol-conversion,
Eli Zaretskii <eliz@gnu.org>
parents:
23966
diff
changeset
|
188 If EOL-TYPE is nil, the returned coding system detects |
0e0b1cdfbfe3
(coding-system-change-eol-conversion,
Eli Zaretskii <eliz@gnu.org>
parents:
23966
diff
changeset
|
189 how end-of-line is formatted automatically while decoding. |
0e0b1cdfbfe3
(coding-system-change-eol-conversion,
Eli Zaretskii <eliz@gnu.org>
parents:
23966
diff
changeset
|
190 |
0e0b1cdfbfe3
(coding-system-change-eol-conversion,
Eli Zaretskii <eliz@gnu.org>
parents:
23966
diff
changeset
|
191 EOL-TYPE can be specified by an integer 0, 1, or 2. |
0e0b1cdfbfe3
(coding-system-change-eol-conversion,
Eli Zaretskii <eliz@gnu.org>
parents:
23966
diff
changeset
|
192 They means `unix', `dos', and `mac' respectively." |
0e0b1cdfbfe3
(coding-system-change-eol-conversion,
Eli Zaretskii <eliz@gnu.org>
parents:
23966
diff
changeset
|
193 (if (symbolp eol-type) |
0e0b1cdfbfe3
(coding-system-change-eol-conversion,
Eli Zaretskii <eliz@gnu.org>
parents:
23966
diff
changeset
|
194 (setq eol-type (cond ((eq eol-type 'unix) 0) |
0e0b1cdfbfe3
(coding-system-change-eol-conversion,
Eli Zaretskii <eliz@gnu.org>
parents:
23966
diff
changeset
|
195 ((eq eol-type 'dos) 1) |
0e0b1cdfbfe3
(coding-system-change-eol-conversion,
Eli Zaretskii <eliz@gnu.org>
parents:
23966
diff
changeset
|
196 ((eq eol-type 'mac) 2) |
0e0b1cdfbfe3
(coding-system-change-eol-conversion,
Eli Zaretskii <eliz@gnu.org>
parents:
23966
diff
changeset
|
197 (t eol-type)))) |
73249
f5aa4451cada
* international/mule-cmds.el (coding-system-change-eol-conversion):
Chong Yidong <cyd@stupidchicken.com>
parents:
72032
diff
changeset
|
198 ;; We call `coding-system-base' before `coding-system-eol-type', |
f5aa4451cada
* international/mule-cmds.el (coding-system-change-eol-conversion):
Chong Yidong <cyd@stupidchicken.com>
parents:
72032
diff
changeset
|
199 ;; because the coding-system may not be initialized until then. |
f5aa4451cada
* international/mule-cmds.el (coding-system-change-eol-conversion):
Chong Yidong <cyd@stupidchicken.com>
parents:
72032
diff
changeset
|
200 (let* ((base (coding-system-base coding-system)) |
f5aa4451cada
* international/mule-cmds.el (coding-system-change-eol-conversion):
Chong Yidong <cyd@stupidchicken.com>
parents:
72032
diff
changeset
|
201 (orig-eol-type (coding-system-eol-type coding-system))) |
f5aa4451cada
* international/mule-cmds.el (coding-system-change-eol-conversion):
Chong Yidong <cyd@stupidchicken.com>
parents:
72032
diff
changeset
|
202 (cond ((vectorp orig-eol-type) |
f5aa4451cada
* international/mule-cmds.el (coding-system-change-eol-conversion):
Chong Yidong <cyd@stupidchicken.com>
parents:
72032
diff
changeset
|
203 (if (not eol-type) |
f5aa4451cada
* international/mule-cmds.el (coding-system-change-eol-conversion):
Chong Yidong <cyd@stupidchicken.com>
parents:
72032
diff
changeset
|
204 coding-system |
f5aa4451cada
* international/mule-cmds.el (coding-system-change-eol-conversion):
Chong Yidong <cyd@stupidchicken.com>
parents:
72032
diff
changeset
|
205 (aref orig-eol-type eol-type))) |
f5aa4451cada
* international/mule-cmds.el (coding-system-change-eol-conversion):
Chong Yidong <cyd@stupidchicken.com>
parents:
72032
diff
changeset
|
206 ((not eol-type) |
f5aa4451cada
* international/mule-cmds.el (coding-system-change-eol-conversion):
Chong Yidong <cyd@stupidchicken.com>
parents:
72032
diff
changeset
|
207 base) |
f5aa4451cada
* international/mule-cmds.el (coding-system-change-eol-conversion):
Chong Yidong <cyd@stupidchicken.com>
parents:
72032
diff
changeset
|
208 ((= eol-type orig-eol-type) |
f5aa4451cada
* international/mule-cmds.el (coding-system-change-eol-conversion):
Chong Yidong <cyd@stupidchicken.com>
parents:
72032
diff
changeset
|
209 coding-system) |
f5aa4451cada
* international/mule-cmds.el (coding-system-change-eol-conversion):
Chong Yidong <cyd@stupidchicken.com>
parents:
72032
diff
changeset
|
210 ((progn (setq orig-eol-type (coding-system-eol-type base)) |
f5aa4451cada
* international/mule-cmds.el (coding-system-change-eol-conversion):
Chong Yidong <cyd@stupidchicken.com>
parents:
72032
diff
changeset
|
211 (vectorp orig-eol-type)) |
f5aa4451cada
* international/mule-cmds.el (coding-system-change-eol-conversion):
Chong Yidong <cyd@stupidchicken.com>
parents:
72032
diff
changeset
|
212 (aref orig-eol-type eol-type))))) |
24007
0e0b1cdfbfe3
(coding-system-change-eol-conversion,
Eli Zaretskii <eliz@gnu.org>
parents:
23966
diff
changeset
|
213 |
0e0b1cdfbfe3
(coding-system-change-eol-conversion,
Eli Zaretskii <eliz@gnu.org>
parents:
23966
diff
changeset
|
214 (defun coding-system-change-text-conversion (coding-system coding) |
0e0b1cdfbfe3
(coding-system-change-eol-conversion,
Eli Zaretskii <eliz@gnu.org>
parents:
23966
diff
changeset
|
215 "Return a coding system which differs from CODING-SYSTEM in text conversion. |
0e0b1cdfbfe3
(coding-system-change-eol-conversion,
Eli Zaretskii <eliz@gnu.org>
parents:
23966
diff
changeset
|
216 The returned coding system converts text by CODING |
0e0b1cdfbfe3
(coding-system-change-eol-conversion,
Eli Zaretskii <eliz@gnu.org>
parents:
23966
diff
changeset
|
217 but end-of-line as the same way as CODING-SYSTEM. |
0e0b1cdfbfe3
(coding-system-change-eol-conversion,
Eli Zaretskii <eliz@gnu.org>
parents:
23966
diff
changeset
|
218 If CODING is nil, the returned coding system detects |
0e0b1cdfbfe3
(coding-system-change-eol-conversion,
Eli Zaretskii <eliz@gnu.org>
parents:
23966
diff
changeset
|
219 how text is formatted automatically while decoding." |
44425
86eccd269d36
(set-default-coding-systems, reset-language-environment): Preserve
Jason Rumney <jasonr@gnu.org>
parents:
44321
diff
changeset
|
220 (let ((eol-type (coding-system-eol-type coding-system))) |
86eccd269d36
(set-default-coding-systems, reset-language-environment): Preserve
Jason Rumney <jasonr@gnu.org>
parents:
44321
diff
changeset
|
221 (coding-system-change-eol-conversion |
86eccd269d36
(set-default-coding-systems, reset-language-environment): Preserve
Jason Rumney <jasonr@gnu.org>
parents:
44321
diff
changeset
|
222 (if coding coding 'undecided) |
86eccd269d36
(set-default-coding-systems, reset-language-environment): Preserve
Jason Rumney <jasonr@gnu.org>
parents:
44321
diff
changeset
|
223 (if (numberp eol-type) (aref [unix dos mac] eol-type))))) |
24007
0e0b1cdfbfe3
(coding-system-change-eol-conversion,
Eli Zaretskii <eliz@gnu.org>
parents:
23966
diff
changeset
|
224 |
101547
aa2338088b49
(canonicalize-coding-system-name)
Kenichi Handa <handa@m17n.org>
parents:
101435
diff
changeset
|
225 ;; Canonicalize the coding system name NAME by removing some prefixes |
aa2338088b49
(canonicalize-coding-system-name)
Kenichi Handa <handa@m17n.org>
parents:
101435
diff
changeset
|
226 ;; and delimiter characters. Support function of |
aa2338088b49
(canonicalize-coding-system-name)
Kenichi Handa <handa@m17n.org>
parents:
101435
diff
changeset
|
227 ;; coding-system-from-name. |
aa2338088b49
(canonicalize-coding-system-name)
Kenichi Handa <handa@m17n.org>
parents:
101435
diff
changeset
|
228 (defun canonicalize-coding-system-name (name) |
106827
834bde7f6c34
international/mule-cmds.el (canonicalize-coding-system-name): Convert "msXXX", "ibmXXX", "windows-XXX" to "cpXXX".
Kenichi Handa <handa@m17n.org>
parents:
106815
diff
changeset
|
229 (if (string-match "^\\(ms\\|ibm\\|windows-\\)\\([0-9]+\\)$" name) |
834bde7f6c34
international/mule-cmds.el (canonicalize-coding-system-name): Convert "msXXX", "ibmXXX", "windows-XXX" to "cpXXX".
Kenichi Handa <handa@m17n.org>
parents:
106815
diff
changeset
|
230 ;; "ms950", "ibm950", "windows-950" -> "cp950" |
834bde7f6c34
international/mule-cmds.el (canonicalize-coding-system-name): Convert "msXXX", "ibmXXX", "windows-XXX" to "cpXXX".
Kenichi Handa <handa@m17n.org>
parents:
106815
diff
changeset
|
231 (concat "cp" (match-string 2 name)) |
834bde7f6c34
international/mule-cmds.el (canonicalize-coding-system-name): Convert "msXXX", "ibmXXX", "windows-XXX" to "cpXXX".
Kenichi Handa <handa@m17n.org>
parents:
106815
diff
changeset
|
232 (if (string-match "^iso[-_ ]?[0-9]" name) |
834bde7f6c34
international/mule-cmds.el (canonicalize-coding-system-name): Convert "msXXX", "ibmXXX", "windows-XXX" to "cpXXX".
Kenichi Handa <handa@m17n.org>
parents:
106815
diff
changeset
|
233 ;; "iso-8859-1" -> "8859-1", "iso-2022-jp" ->"2022-jp" |
834bde7f6c34
international/mule-cmds.el (canonicalize-coding-system-name): Convert "msXXX", "ibmXXX", "windows-XXX" to "cpXXX".
Kenichi Handa <handa@m17n.org>
parents:
106815
diff
changeset
|
234 (setq name (substring name (1- (match-end 0))))) |
834bde7f6c34
international/mule-cmds.el (canonicalize-coding-system-name): Convert "msXXX", "ibmXXX", "windows-XXX" to "cpXXX".
Kenichi Handa <handa@m17n.org>
parents:
106815
diff
changeset
|
235 (let ((idx (string-match "[-_ /]" name))) |
834bde7f6c34
international/mule-cmds.el (canonicalize-coding-system-name): Convert "msXXX", "ibmXXX", "windows-XXX" to "cpXXX".
Kenichi Handa <handa@m17n.org>
parents:
106815
diff
changeset
|
236 ;; Delete "-", "_", " ", "/" but do distinguish "16-be" and "16be". |
834bde7f6c34
international/mule-cmds.el (canonicalize-coding-system-name): Convert "msXXX", "ibmXXX", "windows-XXX" to "cpXXX".
Kenichi Handa <handa@m17n.org>
parents:
106815
diff
changeset
|
237 (while idx |
834bde7f6c34
international/mule-cmds.el (canonicalize-coding-system-name): Convert "msXXX", "ibmXXX", "windows-XXX" to "cpXXX".
Kenichi Handa <handa@m17n.org>
parents:
106815
diff
changeset
|
238 (if (and (>= idx 2) |
834bde7f6c34
international/mule-cmds.el (canonicalize-coding-system-name): Convert "msXXX", "ibmXXX", "windows-XXX" to "cpXXX".
Kenichi Handa <handa@m17n.org>
parents:
106815
diff
changeset
|
239 (eq (string-match "16-[lb]e$" name (- idx 2)) |
834bde7f6c34
international/mule-cmds.el (canonicalize-coding-system-name): Convert "msXXX", "ibmXXX", "windows-XXX" to "cpXXX".
Kenichi Handa <handa@m17n.org>
parents:
106815
diff
changeset
|
240 (- idx 2))) |
834bde7f6c34
international/mule-cmds.el (canonicalize-coding-system-name): Convert "msXXX", "ibmXXX", "windows-XXX" to "cpXXX".
Kenichi Handa <handa@m17n.org>
parents:
106815
diff
changeset
|
241 (setq idx (string-match "[-_ /]" name (match-end 0))) |
834bde7f6c34
international/mule-cmds.el (canonicalize-coding-system-name): Convert "msXXX", "ibmXXX", "windows-XXX" to "cpXXX".
Kenichi Handa <handa@m17n.org>
parents:
106815
diff
changeset
|
242 (setq name (concat (substring name 0 idx) (substring name (1+ idx))) |
834bde7f6c34
international/mule-cmds.el (canonicalize-coding-system-name): Convert "msXXX", "ibmXXX", "windows-XXX" to "cpXXX".
Kenichi Handa <handa@m17n.org>
parents:
106815
diff
changeset
|
243 idx (string-match "[-_ /]" name idx)))) |
834bde7f6c34
international/mule-cmds.el (canonicalize-coding-system-name): Convert "msXXX", "ibmXXX", "windows-XXX" to "cpXXX".
Kenichi Handa <handa@m17n.org>
parents:
106815
diff
changeset
|
244 name))) |
101547
aa2338088b49
(canonicalize-coding-system-name)
Kenichi Handa <handa@m17n.org>
parents:
101435
diff
changeset
|
245 |
aa2338088b49
(canonicalize-coding-system-name)
Kenichi Handa <handa@m17n.org>
parents:
101435
diff
changeset
|
246 (defun coding-system-from-name (name) |
aa2338088b49
(canonicalize-coding-system-name)
Kenichi Handa <handa@m17n.org>
parents:
101435
diff
changeset
|
247 "Return a coding system whose name matches with NAME (string or symbol)." |
aa2338088b49
(canonicalize-coding-system-name)
Kenichi Handa <handa@m17n.org>
parents:
101435
diff
changeset
|
248 (let (sym) |
aa2338088b49
(canonicalize-coding-system-name)
Kenichi Handa <handa@m17n.org>
parents:
101435
diff
changeset
|
249 (if (stringp name) (setq sym (intern name)) |
aa2338088b49
(canonicalize-coding-system-name)
Kenichi Handa <handa@m17n.org>
parents:
101435
diff
changeset
|
250 (setq sym name name (symbol-name name))) |
aa2338088b49
(canonicalize-coding-system-name)
Kenichi Handa <handa@m17n.org>
parents:
101435
diff
changeset
|
251 (if (coding-system-p sym) |
aa2338088b49
(canonicalize-coding-system-name)
Kenichi Handa <handa@m17n.org>
parents:
101435
diff
changeset
|
252 sym |
aa2338088b49
(canonicalize-coding-system-name)
Kenichi Handa <handa@m17n.org>
parents:
101435
diff
changeset
|
253 (let ((eol-type |
aa2338088b49
(canonicalize-coding-system-name)
Kenichi Handa <handa@m17n.org>
parents:
101435
diff
changeset
|
254 (if (string-match "-\\(unix\\|dos\\|mac\\)$" name) |
aa2338088b49
(canonicalize-coding-system-name)
Kenichi Handa <handa@m17n.org>
parents:
101435
diff
changeset
|
255 (prog1 (intern (match-string 1 name)) |
aa2338088b49
(canonicalize-coding-system-name)
Kenichi Handa <handa@m17n.org>
parents:
101435
diff
changeset
|
256 (setq name (substring name 0 (match-beginning 0))))))) |
aa2338088b49
(canonicalize-coding-system-name)
Kenichi Handa <handa@m17n.org>
parents:
101435
diff
changeset
|
257 (setq name (canonicalize-coding-system-name (downcase name))) |
aa2338088b49
(canonicalize-coding-system-name)
Kenichi Handa <handa@m17n.org>
parents:
101435
diff
changeset
|
258 (catch 'tag |
aa2338088b49
(canonicalize-coding-system-name)
Kenichi Handa <handa@m17n.org>
parents:
101435
diff
changeset
|
259 (dolist (elt (coding-system-list)) |
aa2338088b49
(canonicalize-coding-system-name)
Kenichi Handa <handa@m17n.org>
parents:
101435
diff
changeset
|
260 (if (string= (canonicalize-coding-system-name (symbol-name elt)) |
aa2338088b49
(canonicalize-coding-system-name)
Kenichi Handa <handa@m17n.org>
parents:
101435
diff
changeset
|
261 name) |
aa2338088b49
(canonicalize-coding-system-name)
Kenichi Handa <handa@m17n.org>
parents:
101435
diff
changeset
|
262 (throw 'tag (if eol-type (coding-system-change-eol-conversion |
aa2338088b49
(canonicalize-coding-system-name)
Kenichi Handa <handa@m17n.org>
parents:
101435
diff
changeset
|
263 elt eol-type) |
aa2338088b49
(canonicalize-coding-system-name)
Kenichi Handa <handa@m17n.org>
parents:
101435
diff
changeset
|
264 elt))))))))) |
aa2338088b49
(canonicalize-coding-system-name)
Kenichi Handa <handa@m17n.org>
parents:
101435
diff
changeset
|
265 |
17052 | 266 (defun toggle-enable-multibyte-characters (&optional arg) |
20483
141c2d41d39c
(toggle-enable-multibyte-characters): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
20467
diff
changeset
|
267 "Change whether this buffer uses multibyte characters. |
99383
a5f24b6e48ef
* international/mule-cmds.el (toggle-enable-multibyte-characters)
Juanma Barranquero <lekktu@gmail.com>
parents:
99077
diff
changeset
|
268 With ARG, use multibyte characters if the ARG is positive. |
20483
141c2d41d39c
(toggle-enable-multibyte-characters): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
20467
diff
changeset
|
269 |
141c2d41d39c
(toggle-enable-multibyte-characters): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
20467
diff
changeset
|
270 Note that this command does not convert the byte contents of |
141c2d41d39c
(toggle-enable-multibyte-characters): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
20467
diff
changeset
|
271 the buffer; it only changes the way those bytes are interpreted. |
141c2d41d39c
(toggle-enable-multibyte-characters): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
20467
diff
changeset
|
272 In general, therefore, this command *changes* the sequence of |
141c2d41d39c
(toggle-enable-multibyte-characters): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
20467
diff
changeset
|
273 characters that the current buffer contains. |
141c2d41d39c
(toggle-enable-multibyte-characters): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
20467
diff
changeset
|
274 |
77918
80ba9b48c547
(toggle-enable-multibyte-characters, sort-coding-systems,
Juanma Barranquero <lekktu@gmail.com>
parents:
76003
diff
changeset
|
275 We suggest you avoid using this command unless you know what you are |
80ba9b48c547
(toggle-enable-multibyte-characters, sort-coding-systems,
Juanma Barranquero <lekktu@gmail.com>
parents:
76003
diff
changeset
|
276 doing. If you use it by mistake, and the buffer is now displayed |
20483
141c2d41d39c
(toggle-enable-multibyte-characters): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
20467
diff
changeset
|
277 wrong, use this command again to toggle back to the right mode." |
17052 | 278 (interactive "P") |
20830
237a0f70c61d
(toggle-enable-multibyte-characters): Use set-buffer-multibyte.
Richard M. Stallman <rms@gnu.org>
parents:
20733
diff
changeset
|
279 (let ((new-flag |
237a0f70c61d
(toggle-enable-multibyte-characters): Use set-buffer-multibyte.
Richard M. Stallman <rms@gnu.org>
parents:
20733
diff
changeset
|
280 (if (null arg) (null enable-multibyte-characters) |
237a0f70c61d
(toggle-enable-multibyte-characters): Use set-buffer-multibyte.
Richard M. Stallman <rms@gnu.org>
parents:
20733
diff
changeset
|
281 (> (prefix-numeric-value arg) 0)))) |
237a0f70c61d
(toggle-enable-multibyte-characters): Use set-buffer-multibyte.
Richard M. Stallman <rms@gnu.org>
parents:
20733
diff
changeset
|
282 (set-buffer-multibyte new-flag)) |
17052 | 283 (force-mode-line-update)) |
284 | |
285 (defun view-hello-file () | |
96399
c9d2dbd8e87c
robert marshall <robert at capuchin.co.uk> (tiny change)
Glenn Morris <rgm@gnu.org>
parents:
96376
diff
changeset
|
286 "Display the HELLO file, which lists many languages and characters." |
17052 | 287 (interactive) |
17294
d7ae63db9e6e
Prefix for Mule related commands is changed.
Kenichi Handa <handa@m17n.org>
parents:
17090
diff
changeset
|
288 ;; We have to decode the file in any environment. |
107999
759500121599
(view-hello-file): Don't fiddle with the default enable-multibyte-characters.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
106827
diff
changeset
|
289 (letf ((coding-system-for-read 'iso-2022-7bit)) |
104911
0261f99bf928
(top-level): Require cl when compiling.
Glenn Morris <rgm@gnu.org>
parents:
104823
diff
changeset
|
290 (view-file (expand-file-name "HELLO" data-directory)))) |
17052 | 291 |
47450
6bd30e077257
(universal-coding-system-argument):
Richard M. Stallman <rms@gnu.org>
parents:
46857
diff
changeset
|
292 (defun universal-coding-system-argument (coding-system) |
17991
65407fdc4a33
Delete defining "i" in mule-keymap.
Kenichi Handa <handa@m17n.org>
parents:
17840
diff
changeset
|
293 "Execute an I/O command using the specified coding system." |
47450
6bd30e077257
(universal-coding-system-argument):
Richard M. Stallman <rms@gnu.org>
parents:
46857
diff
changeset
|
294 (interactive |
6bd30e077257
(universal-coding-system-argument):
Richard M. Stallman <rms@gnu.org>
parents:
46857
diff
changeset
|
295 (let ((default (and buffer-file-coding-system |
21882
4fb3860a1f26
(find-coding-systems-for-charsets):
Kenichi Handa <handa@m17n.org>
parents:
21856
diff
changeset
|
296 (not (eq (coding-system-type buffer-file-coding-system) |
89472
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
297 'undecided)) |
47450
6bd30e077257
(universal-coding-system-argument):
Richard M. Stallman <rms@gnu.org>
parents:
46857
diff
changeset
|
298 buffer-file-coding-system))) |
6bd30e077257
(universal-coding-system-argument):
Richard M. Stallman <rms@gnu.org>
parents:
46857
diff
changeset
|
299 (list (read-coding-system |
6bd30e077257
(universal-coding-system-argument):
Richard M. Stallman <rms@gnu.org>
parents:
46857
diff
changeset
|
300 (if default |
65680
ed770a0a7846
2005-09-24 Emilio C. Lopes <eclig@gmx.net>
Romain Francoise <romain@orebokech.com>
parents:
65652
diff
changeset
|
301 (format "Coding system for following command (default %s): " default) |
47450
6bd30e077257
(universal-coding-system-argument):
Richard M. Stallman <rms@gnu.org>
parents:
46857
diff
changeset
|
302 "Coding system for following command: ") |
6bd30e077257
(universal-coding-system-argument):
Richard M. Stallman <rms@gnu.org>
parents:
46857
diff
changeset
|
303 default)))) |
6bd30e077257
(universal-coding-system-argument):
Richard M. Stallman <rms@gnu.org>
parents:
46857
diff
changeset
|
304 (let* ((keyseq (read-key-sequence |
19798
054497f70932
(universal-coding-system-argument): Improve prompt strings.
Richard M. Stallman <rms@gnu.org>
parents:
19784
diff
changeset
|
305 (format "Command to execute with %s:" coding-system))) |
35504
9545aa93e735
(universal-coding-system-argument):
Gerd Moellmann <gerd@gnu.org>
parents:
35254
diff
changeset
|
306 (cmd (key-binding keyseq)) |
9545aa93e735
(universal-coding-system-argument):
Gerd Moellmann <gerd@gnu.org>
parents:
35254
diff
changeset
|
307 prefix) |
99022
f4efd0ab2185
(universal-coding-system-argument): Check for C-g. (Bug#1205)
Glenn Morris <rgm@gnu.org>
parents:
98531
diff
changeset
|
308 ;; read-key-sequence ignores quit, so make an explicit check. |
f4efd0ab2185
(universal-coding-system-argument): Check for C-g. (Bug#1205)
Glenn Morris <rgm@gnu.org>
parents:
98531
diff
changeset
|
309 ;; Like many places, this assumes quit == C-g, but it need not be. |
101013
dbe70c3aa01d
Replace last-input-char with last-input-event.
Glenn Morris <rgm@gnu.org>
parents:
101008
diff
changeset
|
310 (if (equal last-input-event ?\C-g) |
99022
f4efd0ab2185
(universal-coding-system-argument): Check for C-g. (Bug#1205)
Glenn Morris <rgm@gnu.org>
parents:
98531
diff
changeset
|
311 (keyboard-quit)) |
98531
8b46bfc83346
(universal-coding-system-argument): Handle digit-argument too.
Chong Yidong <cyd@stupidchicken.com>
parents:
98447
diff
changeset
|
312 (when (memq cmd '(universal-argument digit-argument)) |
35504
9545aa93e735
(universal-coding-system-argument):
Gerd Moellmann <gerd@gnu.org>
parents:
35254
diff
changeset
|
313 (call-interactively cmd) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49435
diff
changeset
|
314 |
35504
9545aa93e735
(universal-coding-system-argument):
Gerd Moellmann <gerd@gnu.org>
parents:
35254
diff
changeset
|
315 ;; Process keys bound in `universal-argument-map'. |
9545aa93e735
(universal-coding-system-argument):
Gerd Moellmann <gerd@gnu.org>
parents:
35254
diff
changeset
|
316 (while (progn |
9545aa93e735
(universal-coding-system-argument):
Gerd Moellmann <gerd@gnu.org>
parents:
35254
diff
changeset
|
317 (setq keyseq (read-key-sequence nil t) |
9545aa93e735
(universal-coding-system-argument):
Gerd Moellmann <gerd@gnu.org>
parents:
35254
diff
changeset
|
318 cmd (key-binding keyseq t)) |
9545aa93e735
(universal-coding-system-argument):
Gerd Moellmann <gerd@gnu.org>
parents:
35254
diff
changeset
|
319 (not (eq cmd 'universal-argument-other-key))) |
9545aa93e735
(universal-coding-system-argument):
Gerd Moellmann <gerd@gnu.org>
parents:
35254
diff
changeset
|
320 (let ((current-prefix-arg prefix-arg) |
101008
5aa3a4e05089
Replace last-command-char with last-command-event.
Glenn Morris <rgm@gnu.org>
parents:
100964
diff
changeset
|
321 ;; Have to bind `last-command-event' here so that |
52856
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
322 ;; `digit-argument', for instance, can compute the |
35504
9545aa93e735
(universal-coding-system-argument):
Gerd Moellmann <gerd@gnu.org>
parents:
35254
diff
changeset
|
323 ;; prefix arg. |
101008
5aa3a4e05089
Replace last-command-char with last-command-event.
Glenn Morris <rgm@gnu.org>
parents:
100964
diff
changeset
|
324 (last-command-event (aref keyseq 0))) |
35504
9545aa93e735
(universal-coding-system-argument):
Gerd Moellmann <gerd@gnu.org>
parents:
35254
diff
changeset
|
325 (call-interactively cmd))) |
9545aa93e735
(universal-coding-system-argument):
Gerd Moellmann <gerd@gnu.org>
parents:
35254
diff
changeset
|
326 |
52856
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
327 ;; This is the final call to `universal-argument-other-key', which |
35504
9545aa93e735
(universal-coding-system-argument):
Gerd Moellmann <gerd@gnu.org>
parents:
35254
diff
changeset
|
328 ;; set's the final `prefix-arg. |
9545aa93e735
(universal-coding-system-argument):
Gerd Moellmann <gerd@gnu.org>
parents:
35254
diff
changeset
|
329 (let ((current-prefix-arg prefix-arg)) |
9545aa93e735
(universal-coding-system-argument):
Gerd Moellmann <gerd@gnu.org>
parents:
35254
diff
changeset
|
330 (call-interactively cmd)) |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49435
diff
changeset
|
331 |
35504
9545aa93e735
(universal-coding-system-argument):
Gerd Moellmann <gerd@gnu.org>
parents:
35254
diff
changeset
|
332 ;; Read the command to execute with the given prefix arg. |
9545aa93e735
(universal-coding-system-argument):
Gerd Moellmann <gerd@gnu.org>
parents:
35254
diff
changeset
|
333 (setq prefix prefix-arg |
9545aa93e735
(universal-coding-system-argument):
Gerd Moellmann <gerd@gnu.org>
parents:
35254
diff
changeset
|
334 keyseq (read-key-sequence nil t) |
9545aa93e735
(universal-coding-system-argument):
Gerd Moellmann <gerd@gnu.org>
parents:
35254
diff
changeset
|
335 cmd (key-binding keyseq))) |
9545aa93e735
(universal-coding-system-argument):
Gerd Moellmann <gerd@gnu.org>
parents:
35254
diff
changeset
|
336 |
17991
65407fdc4a33
Delete defining "i" in mule-keymap.
Kenichi Handa <handa@m17n.org>
parents:
17840
diff
changeset
|
337 (let ((coding-system-for-read coding-system) |
35504
9545aa93e735
(universal-coding-system-argument):
Gerd Moellmann <gerd@gnu.org>
parents:
35254
diff
changeset
|
338 (coding-system-for-write coding-system) |
48877
c7299043f7f4
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
48836
diff
changeset
|
339 (coding-system-require-warning t) |
35504
9545aa93e735
(universal-coding-system-argument):
Gerd Moellmann <gerd@gnu.org>
parents:
35254
diff
changeset
|
340 (current-prefix-arg prefix)) |
17991
65407fdc4a33
Delete defining "i" in mule-keymap.
Kenichi Handa <handa@m17n.org>
parents:
17840
diff
changeset
|
341 (message "") |
65407fdc4a33
Delete defining "i" in mule-keymap.
Kenichi Handa <handa@m17n.org>
parents:
17840
diff
changeset
|
342 (call-interactively cmd)))) |
65407fdc4a33
Delete defining "i" in mule-keymap.
Kenichi Handa <handa@m17n.org>
parents:
17840
diff
changeset
|
343 |
19141
9e0468e59b5f
(set-default-coding-systems): New function.
Kenichi Handa <handa@m17n.org>
parents:
19083
diff
changeset
|
344 (defun set-default-coding-systems (coding-system) |
19267
6e152439176f
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
19141
diff
changeset
|
345 "Set default value of various coding systems to CODING-SYSTEM. |
21042
b6530c2add6a
(set-default-coding-systems): Set
Kenichi Handa <handa@m17n.org>
parents:
20941
diff
changeset
|
346 This sets the following coding systems: |
19267
6e152439176f
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
19141
diff
changeset
|
347 o coding system of a newly created buffer |
20165
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
348 o default coding system for subprocess I/O |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
349 This also sets the following values: |
64124
8ee5c917c069
(set-default-coding-systems): Don't
Kenichi Handa <handa@m17n.org>
parents:
64085
diff
changeset
|
350 o default value used as `file-name-coding-system' for converting file names |
77918
80ba9b48c547
(toggle-enable-multibyte-characters, sort-coding-systems,
Juanma Barranquero <lekktu@gmail.com>
parents:
76003
diff
changeset
|
351 if CODING-SYSTEM is ASCII-compatible |
101435
b79970a15daa
(prefer-coding-system, set-default-coding-systems): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents:
101431
diff
changeset
|
352 o default value for the command `set-terminal-coding-system' |
64124
8ee5c917c069
(set-default-coding-systems): Don't
Kenichi Handa <handa@m17n.org>
parents:
64085
diff
changeset
|
353 o default value for the command `set-keyboard-coding-system' |
77918
80ba9b48c547
(toggle-enable-multibyte-characters, sort-coding-systems,
Juanma Barranquero <lekktu@gmail.com>
parents:
76003
diff
changeset
|
354 if CODING-SYSTEM is ASCII-compatible" |
19141
9e0468e59b5f
(set-default-coding-systems): New function.
Kenichi Handa <handa@m17n.org>
parents:
19083
diff
changeset
|
355 (check-coding-system coding-system) |
9e0468e59b5f
(set-default-coding-systems): New function.
Kenichi Handa <handa@m17n.org>
parents:
19083
diff
changeset
|
356 (setq-default buffer-file-coding-system coding-system) |
53262
b18fd10266de
(set-default-coding-systems): Call
Kenichi Handa <handa@m17n.org>
parents:
53168
diff
changeset
|
357 (if (fboundp 'ucs-set-table-for-input) |
b18fd10266de
(set-default-coding-systems): Call
Kenichi Handa <handa@m17n.org>
parents:
53168
diff
changeset
|
358 (dolist (buffer (buffer-list)) |
b18fd10266de
(set-default-coding-systems): Call
Kenichi Handa <handa@m17n.org>
parents:
53168
diff
changeset
|
359 (or (local-variable-p 'buffer-file-coding-system buffer) |
b18fd10266de
(set-default-coding-systems): Call
Kenichi Handa <handa@m17n.org>
parents:
53168
diff
changeset
|
360 (ucs-set-table-for-input buffer)))) |
b18fd10266de
(set-default-coding-systems): Call
Kenichi Handa <handa@m17n.org>
parents:
53168
diff
changeset
|
361 |
73819
5b1056dbe2ba
(set-default-coding-systems): Always
Kenichi Handa <handa@m17n.org>
parents:
73249
diff
changeset
|
362 (if (eq system-type 'darwin) |
59906
9c28fead9bf2
(set-locale-environment): Set file-name coding system to utf-8 on Darwin.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
59743
diff
changeset
|
363 ;; The file-name coding system on Darwin systems is always utf-8. |
73819
5b1056dbe2ba
(set-default-coding-systems): Always
Kenichi Handa <handa@m17n.org>
parents:
73249
diff
changeset
|
364 (setq default-file-name-coding-system 'utf-8) |
104823
68150c643e2e
Use default-value rather than default-enable-multibyte-characters.
Glenn Morris <rgm@gnu.org>
parents:
104664
diff
changeset
|
365 (if (and (default-value 'enable-multibyte-characters) |
73819
5b1056dbe2ba
(set-default-coding-systems): Always
Kenichi Handa <handa@m17n.org>
parents:
73249
diff
changeset
|
366 (or (not coding-system) |
90668
d677464a3fad
(set-default-coding-systems): Sync
Kenichi Handa <handa@m17n.org>
parents:
90658
diff
changeset
|
367 (coding-system-get coding-system 'ascii-compatible-p))) |
73819
5b1056dbe2ba
(set-default-coding-systems): Always
Kenichi Handa <handa@m17n.org>
parents:
73249
diff
changeset
|
368 (setq default-file-name-coding-system coding-system))) |
98447
8df3a4ab1adc
(set-language-environment-nonascii-translation): Fix nonascii value for
Eli Zaretskii <eliz@gnu.org>
parents:
97913
diff
changeset
|
369 (setq default-terminal-coding-system coding-system) |
19141
9e0468e59b5f
(set-default-coding-systems): New function.
Kenichi Handa <handa@m17n.org>
parents:
19083
diff
changeset
|
370 (setq default-keyboard-coding-system coding-system) |
44425
86eccd269d36
(set-default-coding-systems, reset-language-environment): Preserve
Jason Rumney <jasonr@gnu.org>
parents:
44321
diff
changeset
|
371 ;; Preserve eol-type from existing default-process-coding-systems. |
86eccd269d36
(set-default-coding-systems, reset-language-environment): Preserve
Jason Rumney <jasonr@gnu.org>
parents:
44321
diff
changeset
|
372 ;; On non-unix-like systems in particular, these may have been set |
86eccd269d36
(set-default-coding-systems, reset-language-environment): Preserve
Jason Rumney <jasonr@gnu.org>
parents:
44321
diff
changeset
|
373 ;; carefully by the user, or by the startup code, to deal with the |
86eccd269d36
(set-default-coding-systems, reset-language-environment): Preserve
Jason Rumney <jasonr@gnu.org>
parents:
44321
diff
changeset
|
374 ;; users shell appropriately, so should not be altered by changing |
86eccd269d36
(set-default-coding-systems, reset-language-environment): Preserve
Jason Rumney <jasonr@gnu.org>
parents:
44321
diff
changeset
|
375 ;; language environment. |
86eccd269d36
(set-default-coding-systems, reset-language-environment): Preserve
Jason Rumney <jasonr@gnu.org>
parents:
44321
diff
changeset
|
376 (let ((output-coding |
86eccd269d36
(set-default-coding-systems, reset-language-environment): Preserve
Jason Rumney <jasonr@gnu.org>
parents:
44321
diff
changeset
|
377 (coding-system-change-text-conversion |
86eccd269d36
(set-default-coding-systems, reset-language-environment): Preserve
Jason Rumney <jasonr@gnu.org>
parents:
44321
diff
changeset
|
378 (car default-process-coding-system) coding-system)) |
86eccd269d36
(set-default-coding-systems, reset-language-environment): Preserve
Jason Rumney <jasonr@gnu.org>
parents:
44321
diff
changeset
|
379 (input-coding |
86eccd269d36
(set-default-coding-systems, reset-language-environment): Preserve
Jason Rumney <jasonr@gnu.org>
parents:
44321
diff
changeset
|
380 (coding-system-change-text-conversion |
86eccd269d36
(set-default-coding-systems, reset-language-environment): Preserve
Jason Rumney <jasonr@gnu.org>
parents:
44321
diff
changeset
|
381 (cdr default-process-coding-system) coding-system))) |
86eccd269d36
(set-default-coding-systems, reset-language-environment): Preserve
Jason Rumney <jasonr@gnu.org>
parents:
44321
diff
changeset
|
382 (setq default-process-coding-system |
86eccd269d36
(set-default-coding-systems, reset-language-environment): Preserve
Jason Rumney <jasonr@gnu.org>
parents:
44321
diff
changeset
|
383 (cons output-coding input-coding)))) |
19141
9e0468e59b5f
(set-default-coding-systems): New function.
Kenichi Handa <handa@m17n.org>
parents:
19083
diff
changeset
|
384 |
19267
6e152439176f
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
19141
diff
changeset
|
385 (defun prefer-coding-system (coding-system) |
6e152439176f
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
19141
diff
changeset
|
386 "Add CODING-SYSTEM at the front of the priority list for automatic detection. |
21042
b6530c2add6a
(set-default-coding-systems): Set
Kenichi Handa <handa@m17n.org>
parents:
20941
diff
changeset
|
387 This also sets the following coding systems: |
19267
6e152439176f
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
19141
diff
changeset
|
388 o coding system of a newly created buffer |
20165
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
389 o default coding system for subprocess I/O |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
390 This also sets the following values: |
77918
80ba9b48c547
(toggle-enable-multibyte-characters, sort-coding-systems,
Juanma Barranquero <lekktu@gmail.com>
parents:
76003
diff
changeset
|
391 o default value used as `file-name-coding-system' for converting file names |
101435
b79970a15daa
(prefer-coding-system, set-default-coding-systems): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents:
101431
diff
changeset
|
392 o default value for the command `set-terminal-coding-system' |
23916
ccc00be328a1
(set-language-environment): On MS-DOS
Eli Zaretskii <eliz@gnu.org>
parents:
23889
diff
changeset
|
393 o default value for the command `set-keyboard-coding-system' |
ccc00be328a1
(set-language-environment): On MS-DOS
Eli Zaretskii <eliz@gnu.org>
parents:
23889
diff
changeset
|
394 |
23960
37905ac69d9c
(prefer-coding-system): If the argument requires specific EOL conversion
Eli Zaretskii <eliz@gnu.org>
parents:
23924
diff
changeset
|
395 If CODING-SYSTEM specifies a certain type of EOL conversion, the coding |
37905ac69d9c
(prefer-coding-system): If the argument requires specific EOL conversion
Eli Zaretskii <eliz@gnu.org>
parents:
23924
diff
changeset
|
396 systems set by this function will use that type of EOL conversion. |
37905ac69d9c
(prefer-coding-system): If the argument requires specific EOL conversion
Eli Zaretskii <eliz@gnu.org>
parents:
23924
diff
changeset
|
397 |
99682
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
398 A coding system that requires automatic detection of text+encoding |
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
399 \(e.g. undecided, unix) can't be preferred." |
19267
6e152439176f
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
19141
diff
changeset
|
400 (interactive "zPrefer coding system: ") |
6e152439176f
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
19141
diff
changeset
|
401 (if (not (and coding-system (coding-system-p coding-system))) |
6e152439176f
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
19141
diff
changeset
|
402 (error "Invalid coding system `%s'" coding-system)) |
88410
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
403 (if (memq (coding-system-type coding-system) '(raw-text undecided)) |
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
404 (error "Can't prefer the coding system `%s'" coding-system)) |
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
405 (let ((base (coding-system-base coding-system)) |
23960
37905ac69d9c
(prefer-coding-system): If the argument requires specific EOL conversion
Eli Zaretskii <eliz@gnu.org>
parents:
23924
diff
changeset
|
406 (eol-type (coding-system-eol-type coding-system))) |
88410
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
407 (set-coding-system-priority base) |
105372
bd2966850aac
Use `called-interactively-p' instead of `interactive-p'.
Juanma Barranquero <lekktu@gmail.com>
parents:
104960
diff
changeset
|
408 (and (called-interactively-p 'interactive) |
88410
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
409 (or (eq base coding-system) |
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
410 (message "Highest priority is set to %s (base of %s)" |
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
411 base coding-system))) |
23960
37905ac69d9c
(prefer-coding-system): If the argument requires specific EOL conversion
Eli Zaretskii <eliz@gnu.org>
parents:
23924
diff
changeset
|
412 ;; If they asked for specific EOL conversion, honor that. |
23966
f3102db5fde0
(prefer-coding-system): Fix previous change.
Eli Zaretskii <eliz@gnu.org>
parents:
23960
diff
changeset
|
413 (if (memq eol-type '(0 1 2)) |
88410
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
414 (setq base |
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
415 (coding-system-change-eol-conversion base eol-type))) |
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
416 (set-default-coding-systems base))) |
19267
6e152439176f
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
19141
diff
changeset
|
417 |
30492
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
418 (defvar sort-coding-systems-predicate nil |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
419 "If non-nil, a predicate function to sort coding systems. |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
420 |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
421 It is called with two coding systems, and should return t if the first |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
422 one is \"less\" than the second. |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
423 |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
424 The function `sort-coding-systems' use it.") |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
425 |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
426 (defun sort-coding-systems (codings) |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
427 "Sort coding system list CODINGS by a priority of each coding system. |
77918
80ba9b48c547
(toggle-enable-multibyte-characters, sort-coding-systems,
Juanma Barranquero <lekktu@gmail.com>
parents:
76003
diff
changeset
|
428 Return the sorted list. CODINGS is modified by side effects. |
30492
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
429 |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
430 If a coding system is most preferred, it has the highest priority. |
77918
80ba9b48c547
(toggle-enable-multibyte-characters, sort-coding-systems,
Juanma Barranquero <lekktu@gmail.com>
parents:
76003
diff
changeset
|
431 Otherwise, coding systems that correspond to MIME charsets have |
80ba9b48c547
(toggle-enable-multibyte-characters, sort-coding-systems,
Juanma Barranquero <lekktu@gmail.com>
parents:
76003
diff
changeset
|
432 higher priorities. Among them, a coding system included in the |
80ba9b48c547
(toggle-enable-multibyte-characters, sort-coding-systems,
Juanma Barranquero <lekktu@gmail.com>
parents:
76003
diff
changeset
|
433 `coding-system' key of the current language environment has higher |
80ba9b48c547
(toggle-enable-multibyte-characters, sort-coding-systems,
Juanma Barranquero <lekktu@gmail.com>
parents:
76003
diff
changeset
|
434 priority. See also the documentation of `language-info-alist'. |
30492
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
435 |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
436 If the variable `sort-coding-systems-predicate' (which see) is |
77918
80ba9b48c547
(toggle-enable-multibyte-characters, sort-coding-systems,
Juanma Barranquero <lekktu@gmail.com>
parents:
76003
diff
changeset
|
437 non-nil, it is used to sort CODINGS instead." |
30492
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
438 (if sort-coding-systems-predicate |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
439 (sort codings sort-coding-systems-predicate) |
89483 | 440 (let* ((from-priority (coding-system-priority-list)) |
441 (most-preferred (car from-priority)) | |
30492
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
442 (lang-preferred (get-language-info current-language-environment |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
443 'coding-system)) |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
444 (func (function |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
445 (lambda (x) |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
446 (let ((base (coding-system-base x))) |
50537
4eb84208a499
(sort-coding-systems): Set higher priority to a coding system listed
Kenichi Handa <handa@m17n.org>
parents:
50535
diff
changeset
|
447 ;; We calculate the priority number 0..255 by |
4eb84208a499
(sort-coding-systems): Set higher priority to a coding system listed
Kenichi Handa <handa@m17n.org>
parents:
50535
diff
changeset
|
448 ;; using the 8 bits PMMLCEII as this: |
78484
edc666d07b2c
Replace `iff' in doc-strings and comments.
Glenn Morris <rgm@gnu.org>
parents:
78310
diff
changeset
|
449 ;; P: 1 if most preferred. |
edc666d07b2c
Replace `iff' in doc-strings and comments.
Glenn Morris <rgm@gnu.org>
parents:
78310
diff
changeset
|
450 ;; MM: greater than 0 if mime-charset. |
edc666d07b2c
Replace `iff' in doc-strings and comments.
Glenn Morris <rgm@gnu.org>
parents:
78310
diff
changeset
|
451 ;; L: 1 if one of the current lang. env.'s codings. |
edc666d07b2c
Replace `iff' in doc-strings and comments.
Glenn Morris <rgm@gnu.org>
parents:
78310
diff
changeset
|
452 ;; C: 1 if one of codings listed in the category list. |
edc666d07b2c
Replace `iff' in doc-strings and comments.
Glenn Morris <rgm@gnu.org>
parents:
78310
diff
changeset
|
453 ;; E: 1 if not XXX-with-esc |
50537
4eb84208a499
(sort-coding-systems): Set higher priority to a coding system listed
Kenichi Handa <handa@m17n.org>
parents:
50535
diff
changeset
|
454 ;; II: if iso-2022 based, 0..3, else 1. |
4eb84208a499
(sort-coding-systems): Set higher priority to a coding system listed
Kenichi Handa <handa@m17n.org>
parents:
50535
diff
changeset
|
455 (logior |
4eb84208a499
(sort-coding-systems): Set higher priority to a coding system listed
Kenichi Handa <handa@m17n.org>
parents:
50535
diff
changeset
|
456 (lsh (if (eq base most-preferred) 1 0) 7) |
4eb84208a499
(sort-coding-systems): Set higher priority to a coding system listed
Kenichi Handa <handa@m17n.org>
parents:
50535
diff
changeset
|
457 (lsh |
89483 | 458 (let ((mime (coding-system-get base :mime-charset))) |
49029 | 459 ;; Prefer coding systems corresponding to a |
460 ;; MIME charset. | |
30492
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
461 (if mime |
49029 | 462 ;; Lower utf-16 priority so that we |
463 ;; normally prefer utf-8 to it, and put | |
464 ;; x-ctext below that. | |
99682
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
465 (cond ((string-match-p "utf-16" |
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
466 (symbol-name mime)) |
50537
4eb84208a499
(sort-coding-systems): Set higher priority to a coding system listed
Kenichi Handa <handa@m17n.org>
parents:
50535
diff
changeset
|
467 2) |
99682
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
468 ((string-match-p "^x-" (symbol-name mime)) |
50537
4eb84208a499
(sort-coding-systems): Set higher priority to a coding system listed
Kenichi Handa <handa@m17n.org>
parents:
50535
diff
changeset
|
469 1) |
4eb84208a499
(sort-coding-systems): Set higher priority to a coding system listed
Kenichi Handa <handa@m17n.org>
parents:
50535
diff
changeset
|
470 (t 3)) |
30492
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
471 0)) |
50537
4eb84208a499
(sort-coding-systems): Set higher priority to a coding system listed
Kenichi Handa <handa@m17n.org>
parents:
50535
diff
changeset
|
472 5) |
4eb84208a499
(sort-coding-systems): Set higher priority to a coding system listed
Kenichi Handa <handa@m17n.org>
parents:
50535
diff
changeset
|
473 (lsh (if (memq base lang-preferred) 1 0) 4) |
89483 | 474 (lsh (if (memq base from-priority) 1 0) 3) |
99682
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
475 (lsh (if (string-match-p "-with-esc\\'" |
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
476 (symbol-name base)) |
50537
4eb84208a499
(sort-coding-systems): Set higher priority to a coding system listed
Kenichi Handa <handa@m17n.org>
parents:
50535
diff
changeset
|
477 0 1) 2) |
89483 | 478 (if (eq (coding-system-type base) 'iso-2022) |
479 (let ((category (coding-system-category base))) | |
480 ;; For ISO based coding systems, prefer | |
481 ;; one that doesn't use designation nor | |
482 ;; locking/single shifting. | |
89472
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
483 (cond |
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
484 ((or (eq category 'coding-category-iso-8-1) |
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
485 (eq category 'coding-category-iso-8-2)) |
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
486 2) |
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
487 ((or (eq category 'coding-category-iso-7-tight) |
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
488 (eq category 'coding-category-iso-7)) |
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
489 1) |
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
490 (t |
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
491 0))) |
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
492 1) |
88796
d740bbf6ca68
(sort-coding-systems): Comment out
Dave Love <fx@gnu.org>
parents:
88769
diff
changeset
|
493 )))))) |
30492
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
494 (sort codings (function (lambda (x y) |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
495 (> (funcall func x) (funcall func y)))))))) |
20733
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
496 |
21377 | 497 (defun find-coding-systems-region (from to) |
20733
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
498 "Return a list of proper coding systems to encode a text between FROM and TO. |
89483 | 499 |
46674 | 500 If FROM is a string, find coding systems in that instead of the buffer. |
20733
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
501 All coding systems in the list can safely encode any multibyte characters |
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
502 in the text. |
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
503 |
23196 | 504 If the text contains no multibyte characters, return a list of a single |
21377 | 505 element `undecided'." |
30492
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
506 (let ((codings (find-coding-systems-region-internal from to))) |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
507 (if (eq codings t) |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
508 ;; The text contains only ASCII characters. Any coding |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
509 ;; systems are safe. |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
510 '(undecided) |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
511 ;; We need copy-sequence because sorting will alter the argument. |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
512 (sort-coding-systems (copy-sequence codings))))) |
21377 | 513 |
514 (defun find-coding-systems-string (string) | |
515 "Return a list of proper coding systems to encode STRING. | |
516 All coding systems in the list can safely encode any multibyte characters | |
517 in STRING. | |
518 | |
23196 | 519 If STRING contains no multibyte characters, return a list of a single |
21377 | 520 element `undecided'." |
30492
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
521 (find-coding-systems-region string nil)) |
20733
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
522 |
21377 | 523 (defun find-coding-systems-for-charsets (charsets) |
524 "Return a list of proper coding systems to encode characters of CHARSETS. | |
50183
42387e68072a
(find-coding-systems-for-charsets):
Kenichi Handa <handa@m17n.org>
parents:
50116
diff
changeset
|
525 CHARSETS is a list of character sets. |
89092
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
526 |
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
527 This only finds coding systems of type `charset', whose |
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
528 `:charset-list' property includes all of CHARSETS (plus `ascii' for |
99682
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
529 ASCII-compatible coding systems). It was used in older versions of |
89092
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
530 Emacs, but is unlikely to be what you really want now." |
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
531 ;; Deal with aliases. |
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
532 (setq charsets (mapcar (lambda (c) |
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
533 (get-charset-property c :name)) |
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
534 charsets)) |
30492
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
535 (cond ((or (null charsets) |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
536 (and (= (length charsets) 1) |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
537 (eq 'ascii (car charsets)))) |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
538 '(undecided)) |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
539 ((or (memq 'eight-bit-control charsets) |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
540 (memq 'eight-bit-graphic charsets)) |
89092
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
541 '(raw-text utf-8-emacs)) |
30492
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
542 (t |
89092
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
543 (let (codings) |
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
544 (dolist (cs (coding-system-list t)) |
89344
1c9758957aae
(find-coding-systems-for-charsets):
Dave Love <fx@gnu.org>
parents:
89241
diff
changeset
|
545 (let ((cs-charsets (and (eq (coding-system-type cs) 'charset) |
1c9758957aae
(find-coding-systems-for-charsets):
Dave Love <fx@gnu.org>
parents:
89241
diff
changeset
|
546 (coding-system-charset-list cs))) |
89092
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
547 (charsets charsets)) |
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
548 (if (coding-system-get cs :ascii-compatible-p) |
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
549 (add-to-list 'cs-charsets 'ascii)) |
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
550 (if (catch 'ok |
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
551 (when cs-charsets |
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
552 (while charsets |
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
553 (unless (memq (pop charsets) cs-charsets) |
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
554 (throw 'ok nil))) |
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
555 t)) |
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
556 (push cs codings)))) |
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
557 (nreverse codings))))) |
20733
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
558 |
22815
6af93eeeca10
(find-multibyte-characters): New
Kenichi Handa <handa@m17n.org>
parents:
22778
diff
changeset
|
559 (defun find-multibyte-characters (from to &optional maxcount excludes) |
6af93eeeca10
(find-multibyte-characters): New
Kenichi Handa <handa@m17n.org>
parents:
22778
diff
changeset
|
560 "Find multibyte characters in the region specified by FROM and TO. |
6af93eeeca10
(find-multibyte-characters): New
Kenichi Handa <handa@m17n.org>
parents:
22778
diff
changeset
|
561 If FROM is a string, find multibyte characters in the string. |
6af93eeeca10
(find-multibyte-characters): New
Kenichi Handa <handa@m17n.org>
parents:
22778
diff
changeset
|
562 The return value is an alist of the following format: |
6af93eeeca10
(find-multibyte-characters): New
Kenichi Handa <handa@m17n.org>
parents:
22778
diff
changeset
|
563 ((CHARSET COUNT CHAR ...) ...) |
6af93eeeca10
(find-multibyte-characters): New
Kenichi Handa <handa@m17n.org>
parents:
22778
diff
changeset
|
564 where |
6af93eeeca10
(find-multibyte-characters): New
Kenichi Handa <handa@m17n.org>
parents:
22778
diff
changeset
|
565 CHARSET is a character set, |
6af93eeeca10
(find-multibyte-characters): New
Kenichi Handa <handa@m17n.org>
parents:
22778
diff
changeset
|
566 COUNT is a number of characters, |
52856
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
567 CHARs are the characters found from the character set. |
22815
6af93eeeca10
(find-multibyte-characters): New
Kenichi Handa <handa@m17n.org>
parents:
22778
diff
changeset
|
568 Optional 3rd arg MAXCOUNT limits how many CHARs are put in the above list. |
90861
4f7df84e666c
(toggle-enable-multibyte-characters, sort-coding-systems,
Juanma Barranquero <lekktu@gmail.com>
parents:
90776
diff
changeset
|
569 Optional 4th arg EXCLUDES is a list of character sets to be ignored." |
22815
6af93eeeca10
(find-multibyte-characters): New
Kenichi Handa <handa@m17n.org>
parents:
22778
diff
changeset
|
570 (let ((chars nil) |
6af93eeeca10
(find-multibyte-characters): New
Kenichi Handa <handa@m17n.org>
parents:
22778
diff
changeset
|
571 charset char) |
6af93eeeca10
(find-multibyte-characters): New
Kenichi Handa <handa@m17n.org>
parents:
22778
diff
changeset
|
572 (if (stringp from) |
89472
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
573 (if (multibyte-string-p from) |
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
574 (let ((idx 0)) |
99682
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
575 (while (setq idx (string-match-p "[^\000-\177]" from idx)) |
89472
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
576 (setq char (aref from idx) |
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
577 charset (char-charset char)) |
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
578 (unless (memq charset excludes) |
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
579 (let ((slot (assq charset chars))) |
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
580 (if slot |
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
581 (if (not (memq char (nthcdr 2 slot))) |
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
582 (let ((count (nth 1 slot))) |
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
583 (setcar (cdr slot) (1+ count)) |
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
584 (if (or (not maxcount) (< count maxcount)) |
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
585 (nconc slot (list char))))) |
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
586 (setq chars (cons (list charset 1 char) chars))))) |
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
587 (setq idx (1+ idx))))) |
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
588 (if enable-multibyte-characters |
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
589 (save-excursion |
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
590 (goto-char from) |
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
591 (while (re-search-forward "[^\000-\177]" to t) |
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
592 (setq char (preceding-char) |
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
593 charset (char-charset char)) |
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
594 (unless (memq charset excludes) |
22815
6af93eeeca10
(find-multibyte-characters): New
Kenichi Handa <handa@m17n.org>
parents:
22778
diff
changeset
|
595 (let ((slot (assq charset chars))) |
6af93eeeca10
(find-multibyte-characters): New
Kenichi Handa <handa@m17n.org>
parents:
22778
diff
changeset
|
596 (if slot |
89472
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
597 (if (not (member char (nthcdr 2 slot))) |
22815
6af93eeeca10
(find-multibyte-characters): New
Kenichi Handa <handa@m17n.org>
parents:
22778
diff
changeset
|
598 (let ((count (nth 1 slot))) |
6af93eeeca10
(find-multibyte-characters): New
Kenichi Handa <handa@m17n.org>
parents:
22778
diff
changeset
|
599 (setcar (cdr slot) (1+ count)) |
6af93eeeca10
(find-multibyte-characters): New
Kenichi Handa <handa@m17n.org>
parents:
22778
diff
changeset
|
600 (if (or (not maxcount) (< count maxcount)) |
6af93eeeca10
(find-multibyte-characters): New
Kenichi Handa <handa@m17n.org>
parents:
22778
diff
changeset
|
601 (nconc slot (list char))))) |
89472
523daff56a65
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
89344
diff
changeset
|
602 (setq chars (cons (list charset 1 char) chars))))))))) |
22815
6af93eeeca10
(find-multibyte-characters): New
Kenichi Handa <handa@m17n.org>
parents:
22778
diff
changeset
|
603 (nreverse chars))) |
6af93eeeca10
(find-multibyte-characters): New
Kenichi Handa <handa@m17n.org>
parents:
22778
diff
changeset
|
604 |
46857
31feee29e69a
(search-unencodable-char): New
Kenichi Handa <handa@m17n.org>
parents:
46829
diff
changeset
|
605 (defun search-unencodable-char (coding-system) |
31feee29e69a
(search-unencodable-char): New
Kenichi Handa <handa@m17n.org>
parents:
46829
diff
changeset
|
606 "Search forward from point for a character that is not encodable. |
31feee29e69a
(search-unencodable-char): New
Kenichi Handa <handa@m17n.org>
parents:
46829
diff
changeset
|
607 It asks which coding system to check. |
31feee29e69a
(search-unencodable-char): New
Kenichi Handa <handa@m17n.org>
parents:
46829
diff
changeset
|
608 If such a character is found, set point after that character. |
31feee29e69a
(search-unencodable-char): New
Kenichi Handa <handa@m17n.org>
parents:
46829
diff
changeset
|
609 Otherwise, don't move point. |
31feee29e69a
(search-unencodable-char): New
Kenichi Handa <handa@m17n.org>
parents:
46829
diff
changeset
|
610 |
77918
80ba9b48c547
(toggle-enable-multibyte-characters, sort-coding-systems,
Juanma Barranquero <lekktu@gmail.com>
parents:
76003
diff
changeset
|
611 When called from a program, the value is the position of the unencodable |
80ba9b48c547
(toggle-enable-multibyte-characters, sort-coding-systems,
Juanma Barranquero <lekktu@gmail.com>
parents:
76003
diff
changeset
|
612 character found, or nil if all characters are encodable." |
46857
31feee29e69a
(search-unencodable-char): New
Kenichi Handa <handa@m17n.org>
parents:
46829
diff
changeset
|
613 (interactive |
31feee29e69a
(search-unencodable-char): New
Kenichi Handa <handa@m17n.org>
parents:
46829
diff
changeset
|
614 (list (let ((default (or buffer-file-coding-system 'us-ascii))) |
31feee29e69a
(search-unencodable-char): New
Kenichi Handa <handa@m17n.org>
parents:
46829
diff
changeset
|
615 (read-coding-system |
65680
ed770a0a7846
2005-09-24 Emilio C. Lopes <eclig@gmx.net>
Romain Francoise <romain@orebokech.com>
parents:
65652
diff
changeset
|
616 (format "Coding-system (default %s): " default) |
46857
31feee29e69a
(search-unencodable-char): New
Kenichi Handa <handa@m17n.org>
parents:
46829
diff
changeset
|
617 default)))) |
31feee29e69a
(search-unencodable-char): New
Kenichi Handa <handa@m17n.org>
parents:
46829
diff
changeset
|
618 (let ((pos (unencodable-char-position (point) (point-max) coding-system))) |
31feee29e69a
(search-unencodable-char): New
Kenichi Handa <handa@m17n.org>
parents:
46829
diff
changeset
|
619 (if pos |
31feee29e69a
(search-unencodable-char): New
Kenichi Handa <handa@m17n.org>
parents:
46829
diff
changeset
|
620 (goto-char (1+ pos)) |
31feee29e69a
(search-unencodable-char): New
Kenichi Handa <handa@m17n.org>
parents:
46829
diff
changeset
|
621 (message "All following characters are encodable by %s" coding-system)) |
31feee29e69a
(search-unencodable-char): New
Kenichi Handa <handa@m17n.org>
parents:
46829
diff
changeset
|
622 pos)) |
31feee29e69a
(search-unencodable-char): New
Kenichi Handa <handa@m17n.org>
parents:
46829
diff
changeset
|
623 |
22025
369ac7fae774
(last-coding-system-specified): New var.
Richard M. Stallman <rms@gnu.org>
parents:
21983
diff
changeset
|
624 (defvar last-coding-system-specified nil |
369ac7fae774
(last-coding-system-specified): New var.
Richard M. Stallman <rms@gnu.org>
parents:
21983
diff
changeset
|
625 "Most recent coding system explicitly specified by the user when asked. |
369ac7fae774
(last-coding-system-specified): New var.
Richard M. Stallman <rms@gnu.org>
parents:
21983
diff
changeset
|
626 This variable is set whenever Emacs asks the user which coding system |
369ac7fae774
(last-coding-system-specified): New var.
Richard M. Stallman <rms@gnu.org>
parents:
21983
diff
changeset
|
627 to use in order to write a file. If you set it to nil explicitly, |
369ac7fae774
(last-coding-system-specified): New var.
Richard M. Stallman <rms@gnu.org>
parents:
21983
diff
changeset
|
628 then call `write-region', then afterward this variable will be non-nil |
369ac7fae774
(last-coding-system-specified): New var.
Richard M. Stallman <rms@gnu.org>
parents:
21983
diff
changeset
|
629 only if the user was explicitly asked and specified a coding system.") |
369ac7fae774
(last-coding-system-specified): New var.
Richard M. Stallman <rms@gnu.org>
parents:
21983
diff
changeset
|
630 |
30492
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
631 (defvar select-safe-coding-system-accept-default-p nil |
63269
f5860b9ada9c
(select-safe-coding-system-accept-default-p, input-method-exit-on-invalid-key):
Juanma Barranquero <lekktu@gmail.com>
parents:
62274
diff
changeset
|
632 "If non-nil, a function to control the behavior of coding system selection. |
30492
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
633 The meaning is the same as the argument ACCEPT-DEFAULT-P of the |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
634 function `select-safe-coding-system' (which see). This variable |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
635 overrides that argument.") |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
636 |
58055
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
637 (defun select-safe-coding-system-interactively (from to codings unsafe |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
638 &optional rejected default) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
639 "Select interactively a coding system for the region FROM ... TO. |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
640 FROM can be a string, as in `write-region'. |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
641 CODINGS is the list of base coding systems known to be safe for this region, |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
642 typically obtained with `find-coding-systems-region'. |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
643 UNSAFE is a list of coding systems known to be unsafe for this region. |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
644 REJECTED is a list of coding systems which were safe but for some reason |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
645 were not recommended in the particular context. |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
646 DEFAULT is the coding system to use by default in the query." |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
647 ;; At first, if some defaults are unsafe, record at most 11 |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
648 ;; problematic characters and their positions for them by turning |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
649 ;; (CODING ...) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
650 ;; into |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
651 ;; ((CODING (POS . CHAR) (POS . CHAR) ...) ...) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
652 (if unsafe |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
653 (setq unsafe |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
654 (mapcar #'(lambda (coding) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
655 (cons coding |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
656 (if (stringp from) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
657 (mapcar #'(lambda (pos) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
658 (cons pos (aref from pos))) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
659 (unencodable-char-position |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
660 0 (length from) coding |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
661 11 from)) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
662 (mapcar #'(lambda (pos) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
663 (cons pos (char-after pos))) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
664 (unencodable-char-position |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
665 from to coding 11))))) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
666 unsafe))) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
667 |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
668 ;; Change each safe coding system to the corresponding |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
669 ;; mime-charset name if it is also a coding system. Such a name |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
670 ;; is more friendly to users. |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
671 (let ((l codings) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
672 mime-charset) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
673 (while l |
90052
197b7306b2bb
(select-safe-coding-system-interactively):
Kenichi Handa <handa@m17n.org>
parents:
90044
diff
changeset
|
674 (setq mime-charset (coding-system-get (car l) :mime-charset)) |
197b7306b2bb
(select-safe-coding-system-interactively):
Kenichi Handa <handa@m17n.org>
parents:
90044
diff
changeset
|
675 (if (and mime-charset (coding-system-p mime-charset) |
197b7306b2bb
(select-safe-coding-system-interactively):
Kenichi Handa <handa@m17n.org>
parents:
90044
diff
changeset
|
676 (coding-system-equal (car l) mime-charset)) |
58055
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
677 (setcar l mime-charset)) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
678 (setq l (cdr l)))) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
679 |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
680 ;; Don't offer variations with locking shift, which you |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
681 ;; basically never want. |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
682 (let (l) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
683 (dolist (elt codings (setq codings (nreverse l))) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
684 (unless (or (eq 'coding-category-iso-7-else |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
685 (coding-system-category elt)) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
686 (eq 'coding-category-iso-8-else |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
687 (coding-system-category elt))) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
688 (push elt l)))) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
689 |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
690 ;; Remove raw-text, emacs-mule and no-conversion unless nothing |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
691 ;; else is available. |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
692 (setq codings |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
693 (or (delq 'raw-text |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
694 (delq 'emacs-mule |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
695 (delq 'no-conversion codings))) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
696 '(raw-text emacs-mule no-conversion))) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
697 |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
698 (let ((window-configuration (current-window-configuration)) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
699 (bufname (buffer-name)) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
700 coding-system) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
701 (save-excursion |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
702 ;; If some defaults are unsafe, make sure the offending |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
703 ;; buffer is displayed. |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
704 (when (and unsafe (not (stringp from))) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
705 (pop-to-buffer bufname) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
706 (goto-char (apply 'min (mapcar #'(lambda (x) (car (cadr x))) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
707 unsafe)))) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
708 ;; Then ask users to select one from CODINGS while showing |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
709 ;; the reason why none of the defaults are not used. |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
710 (with-output-to-temp-buffer "*Warning*" |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
711 (with-current-buffer standard-output |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
712 (if (and (null rejected) (null unsafe)) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
713 (insert "No default coding systems to try for " |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
714 (if (stringp from) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
715 (format "string \"%s\"." from) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
716 (format "buffer `%s'." bufname))) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
717 (insert |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
718 "These default coding systems were tried to encode" |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
719 (if (stringp from) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
720 (concat " \"" (if (> (length from) 10) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
721 (concat (substring from 0 10) "...\"") |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
722 (concat from "\""))) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
723 (format " text\nin the buffer `%s'" bufname)) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
724 ":\n") |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
725 (let ((pos (point)) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
726 (fill-prefix " ")) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
727 (dolist (x (append rejected unsafe)) |
90947
996f89a629d7
(select-safe-coding-system-interactively): Fix printing of
Kenichi Handa <handa@m17n.org>
parents:
90861
diff
changeset
|
728 (princ " ") (princ x)) |
58055
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
729 (insert "\n") |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
730 (fill-region-as-paragraph pos (point))) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
731 (when rejected |
74934
b9d3d3b69df9
(select-safe-coding-system-interactively): Improve the message in the
Eli Zaretskii <eliz@gnu.org>
parents:
74931
diff
changeset
|
732 (insert "These safely encode the text in the buffer, |
b9d3d3b69df9
(select-safe-coding-system-interactively): Improve the message in the
Eli Zaretskii <eliz@gnu.org>
parents:
74931
diff
changeset
|
733 but are not recommended for encoding text in this context, |
58055
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
734 e.g., for sending an email message.\n ") |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
735 (dolist (x rejected) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
736 (princ " ") (princ x)) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
737 (insert "\n")) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
738 (when unsafe |
74934
b9d3d3b69df9
(select-safe-coding-system-interactively): Improve the message in the
Eli Zaretskii <eliz@gnu.org>
parents:
74931
diff
changeset
|
739 (insert (if rejected "The other coding systems" |
58055
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
740 "However, each of them") |
74934
b9d3d3b69df9
(select-safe-coding-system-interactively): Improve the message in the
Eli Zaretskii <eliz@gnu.org>
parents:
74931
diff
changeset
|
741 " encountered characters it couldn't encode:\n") |
58055
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
742 (dolist (coding unsafe) |
74934
b9d3d3b69df9
(select-safe-coding-system-interactively): Improve the message in the
Eli Zaretskii <eliz@gnu.org>
parents:
74931
diff
changeset
|
743 (insert (format " %s cannot encode these:" (car coding))) |
58055
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
744 (let ((i 0) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
745 (func1 |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
746 #'(lambda (bufname pos) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
747 (when (buffer-live-p (get-buffer bufname)) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
748 (pop-to-buffer bufname) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
749 (goto-char pos)))) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
750 (func2 |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
751 #'(lambda (bufname pos coding) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
752 (when (buffer-live-p (get-buffer bufname)) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
753 (pop-to-buffer bufname) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
754 (if (< (point) pos) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
755 (goto-char pos) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
756 (forward-char 1) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
757 (search-unencodable-char coding) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
758 (forward-char -1)))))) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
759 (dolist (elt (cdr coding)) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
760 (insert " ") |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
761 (if (stringp from) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
762 (insert (if (< i 10) (cdr elt) "...")) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
763 (if (< i 10) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
764 (insert-text-button |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
765 (cdr elt) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
766 :type 'help-xref |
74931
94fc36e46118
(select-safe-coding-system-interactively):
Kenichi Handa <handa@m17n.org>
parents:
74927
diff
changeset
|
767 'face 'link |
58055
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
768 'help-echo |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
769 "mouse-2, RET: jump to this character" |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
770 'help-function func1 |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
771 'help-args (list bufname (car elt))) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
772 (insert-text-button |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
773 "..." |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
774 :type 'help-xref |
74931
94fc36e46118
(select-safe-coding-system-interactively):
Kenichi Handa <handa@m17n.org>
parents:
74927
diff
changeset
|
775 'face 'link |
58055
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
776 'help-echo |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
777 "mouse-2, RET: next unencodable character" |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
778 'help-function func2 |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
779 'help-args (list bufname (car elt) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
780 (car coding))))) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
781 (setq i (1+ i)))) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
782 (insert "\n")) |
75150
920fbb042c18
(select-safe-coding-system-interactively): Fix message.
Kenichi Handa <handa@m17n.org>
parents:
74978
diff
changeset
|
783 (insert (substitute-command-keys "\ |
74927
a53153ed1c2b
(select-safe-coding-system-interactively):
Kenichi Handa <handa@m17n.org>
parents:
74607
diff
changeset
|
784 |
75150
920fbb042c18
(select-safe-coding-system-interactively): Fix message.
Kenichi Handa <handa@m17n.org>
parents:
74978
diff
changeset
|
785 Click on a character (or switch to this window by `\\[other-window]'\n\ |
920fbb042c18
(select-safe-coding-system-interactively): Fix message.
Kenichi Handa <handa@m17n.org>
parents:
74978
diff
changeset
|
786 and select the characters by RET) to jump to the place it appears,\n\ |
74934
b9d3d3b69df9
(select-safe-coding-system-interactively): Improve the message in the
Eli Zaretskii <eliz@gnu.org>
parents:
74931
diff
changeset
|
787 where `\\[universal-argument] \\[what-cursor-position]' will give information about it.\n")))) |
74927
a53153ed1c2b
(select-safe-coding-system-interactively):
Kenichi Handa <handa@m17n.org>
parents:
74607
diff
changeset
|
788 (insert (substitute-command-keys "\nSelect \ |
74934
b9d3d3b69df9
(select-safe-coding-system-interactively): Improve the message in the
Eli Zaretskii <eliz@gnu.org>
parents:
74931
diff
changeset
|
789 one of the safe coding systems listed below,\n\ |
b9d3d3b69df9
(select-safe-coding-system-interactively): Improve the message in the
Eli Zaretskii <eliz@gnu.org>
parents:
74931
diff
changeset
|
790 or cancel the writing with \\[keyboard-quit] and edit the buffer\n\ |
b9d3d3b69df9
(select-safe-coding-system-interactively): Improve the message in the
Eli Zaretskii <eliz@gnu.org>
parents:
74931
diff
changeset
|
791 to remove or modify the problematic characters,\n\ |
b9d3d3b69df9
(select-safe-coding-system-interactively): Improve the message in the
Eli Zaretskii <eliz@gnu.org>
parents:
74931
diff
changeset
|
792 or specify any other coding system (and risk losing\n\ |
b9d3d3b69df9
(select-safe-coding-system-interactively): Improve the message in the
Eli Zaretskii <eliz@gnu.org>
parents:
74931
diff
changeset
|
793 the problematic characters).\n\n")) |
58055
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
794 (let ((pos (point)) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
795 (fill-prefix " ")) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
796 (dolist (x codings) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
797 (princ " ") (princ x)) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
798 (insert "\n") |
74927
a53153ed1c2b
(select-safe-coding-system-interactively):
Kenichi Handa <handa@m17n.org>
parents:
74607
diff
changeset
|
799 (fill-region-as-paragraph pos (point))))) |
58055
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
800 |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
801 ;; Read a coding system. |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
802 (setq coding-system |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
803 (read-coding-system |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
804 (format "Select coding system (default %s): " default) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
805 default)) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
806 (setq last-coding-system-specified coding-system)) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
807 |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
808 (kill-buffer "*Warning*") |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
809 (set-window-configuration window-configuration) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
810 coding-system)) |
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
811 |
30492
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
812 (defun select-safe-coding-system (from to &optional default-coding-system |
45631
b01cd9b1ae08
(select-safe-coding-system): New arg FILE; use that for set-auto-coding.
Richard M. Stallman <rms@gnu.org>
parents:
45479
diff
changeset
|
813 accept-default-p file) |
20842
428831a6f4d1
(find-safe-coding-system): Return
Kenichi Handa <handa@m17n.org>
parents:
20830
diff
changeset
|
814 "Ask a user to select a safe coding system from candidates. |
428831a6f4d1
(find-safe-coding-system): Return
Kenichi Handa <handa@m17n.org>
parents:
20830
diff
changeset
|
815 The candidates of coding systems which can safely encode a text |
30492
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
816 between FROM and TO are shown in a popup window. Among them, the most |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
817 proper one is suggested as the default. |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
818 |
99682
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
819 The list of `buffer-file-coding-system' of the current buffer, the |
104664
50fdf250e26b
* mh-e/mh-comp.el (mh-send-letter):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104612
diff
changeset
|
820 default `buffer-file-coding-system', and the most preferred coding |
99682
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
821 system (if it corresponds to a MIME charset) is treated as the |
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
822 default coding system list. Among them, the first one that safely |
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
823 encodes the text is normally selected silently and returned without |
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
824 any user interaction. See also the command `prefer-coding-system'. |
46674 | 825 |
826 However, the user is queried if the chosen coding system is | |
64481
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
827 inconsistent with what would be selected by `find-auto-coding' from |
46674 | 828 coding cookies &c. if the contents of the region were read from a |
829 file. (That could lead to data corruption in a file subsequently | |
830 re-visited and edited.) | |
20733
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
831 |
30492
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
832 Optional 3rd arg DEFAULT-CODING-SYSTEM specifies a coding system or a |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
833 list of coding systems to be prepended to the default coding system |
48877
c7299043f7f4
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
48836
diff
changeset
|
834 list. However, if DEFAULT-CODING-SYSTEM is a list and the first |
72032
352a45abb3cc
(select-safe-coding-system): Fix the
Kenichi Handa <handa@m17n.org>
parents:
71606
diff
changeset
|
835 element is t, the cdr part is used as the default coding system list, |
104664
50fdf250e26b
* mh-e/mh-comp.el (mh-send-letter):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104612
diff
changeset
|
836 i.e. current `buffer-file-coding-system', default `buffer-file-coding-system', |
51134
d59b2e15c4c7
(select-safe-coding-system): Try
Kenichi Handa <handa@m17n.org>
parents:
51016
diff
changeset
|
837 and the most preferred coding system are not used. |
20733
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
838 |
30492
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
839 Optional 4th arg ACCEPT-DEFAULT-P, if non-nil, is a function to |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
840 determine the acceptability of the silently selected coding system. |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
841 It is called with that coding system, and should return nil if it |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
842 should not be silently selected and thus user interaction is required. |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
843 |
45631
b01cd9b1ae08
(select-safe-coding-system): New arg FILE; use that for set-auto-coding.
Richard M. Stallman <rms@gnu.org>
parents:
45479
diff
changeset
|
844 Optional 5th arg FILE is the file name to use for this purpose. |
b01cd9b1ae08
(select-safe-coding-system): New arg FILE; use that for set-auto-coding.
Richard M. Stallman <rms@gnu.org>
parents:
45479
diff
changeset
|
845 That is different from `buffer-file-name' when handling `write-region' |
b01cd9b1ae08
(select-safe-coding-system): New arg FILE; use that for set-auto-coding.
Richard M. Stallman <rms@gnu.org>
parents:
45479
diff
changeset
|
846 \(for example). |
b01cd9b1ae08
(select-safe-coding-system): New arg FILE; use that for set-auto-coding.
Richard M. Stallman <rms@gnu.org>
parents:
45479
diff
changeset
|
847 |
99682
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
848 The variable `select-safe-coding-system-accept-default-p', if non-nil, |
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
849 overrides ACCEPT-DEFAULT-P. |
20733
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
850 |
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
851 Kludgy feature: if FROM is a string, the string is the target text, |
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
852 and TO is ignored." |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
853 (if (not (listp default-coding-system)) |
30492
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
854 (setq default-coding-system (list default-coding-system))) |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
855 |
64481
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
856 (let ((no-other-defaults nil) |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
857 auto-cs) |
74523
d3e5cb1aa5b6
(register-input-method): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
73819
diff
changeset
|
858 (unless (or (stringp from) find-file-literally) |
105424
098f8a47a308
Fix typos in comments.
Juanma Barranquero <lekktu@gmail.com>
parents:
105372
diff
changeset
|
859 ;; Find an auto-coding that is specified for the current |
64481
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
860 ;; buffer and file from the region FROM and TO. |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
861 (save-excursion |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
862 (save-restriction |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
863 (widen) |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
864 (goto-char from) |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
865 (setq auto-cs (find-auto-coding (or file buffer-file-name "") |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
866 (- to from))) |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
867 (if auto-cs |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
868 (if (coding-system-p (car auto-cs)) |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
869 (setq auto-cs (car auto-cs)) |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
870 (display-warning |
100438
f2d8842e9574
* international/mule-cmds.el (select-safe-coding-system):
Juanma Barranquero <lekktu@gmail.com>
parents:
100092
diff
changeset
|
871 'mule |
64481
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
872 (format "\ |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
873 Invalid coding system `%s' is specified |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
874 for the current buffer/file by the %s. |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
875 It is highly recommended to fix it before writing to a file." |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
876 (car auto-cs) |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
877 (if (eq (cdr auto-cs) :coding) ":coding tag" |
100438
f2d8842e9574
* international/mule-cmds.el (select-safe-coding-system):
Juanma Barranquero <lekktu@gmail.com>
parents:
100092
diff
changeset
|
878 (format "variable `%s'" (cdr auto-cs)))) |
f2d8842e9574
* international/mule-cmds.el (select-safe-coding-system):
Juanma Barranquero <lekktu@gmail.com>
parents:
100092
diff
changeset
|
879 :warning) |
64481
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
880 (or (yes-or-no-p "Really proceed with writing? ") |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
881 (error "Save aborted")) |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
882 (setq auto-cs nil)))))) |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
883 |
48877
c7299043f7f4
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
48836
diff
changeset
|
884 (if (eq (car default-coding-system) t) |
c7299043f7f4
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
48836
diff
changeset
|
885 (setq no-other-defaults t |
c7299043f7f4
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
48836
diff
changeset
|
886 default-coding-system (cdr default-coding-system))) |
c7299043f7f4
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
48836
diff
changeset
|
887 |
c7299043f7f4
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
48836
diff
changeset
|
888 ;; Change elements of the list to (coding . base-coding). |
c7299043f7f4
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
48836
diff
changeset
|
889 (setq default-coding-system |
c7299043f7f4
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
48836
diff
changeset
|
890 (mapcar (function (lambda (x) (cons x (coding-system-base x)))) |
c7299043f7f4
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
48836
diff
changeset
|
891 default-coding-system)) |
30492
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
892 |
64481
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
893 (if (and auto-cs (not no-other-defaults)) |
105651
1bab58491dc5
(select-safe-coding-system): If the file
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
105609
diff
changeset
|
894 ;; If the file has a coding cookie, use it regardless of any |
1bab58491dc5
(select-safe-coding-system): If the file
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
105609
diff
changeset
|
895 ;; other setting. |
64481
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
896 (let ((base (coding-system-base auto-cs))) |
105651
1bab58491dc5
(select-safe-coding-system): If the file
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
105609
diff
changeset
|
897 (unless (memq base '(nil undecided)) |
1bab58491dc5
(select-safe-coding-system): If the file
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
105609
diff
changeset
|
898 (setq default-coding-system (list (cons auto-cs base))) |
1bab58491dc5
(select-safe-coding-system): If the file
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
105609
diff
changeset
|
899 (setq no-other-defaults t)))) |
64481
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
900 |
48877
c7299043f7f4
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
48836
diff
changeset
|
901 (unless no-other-defaults |
c7299043f7f4
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
48836
diff
changeset
|
902 ;; If buffer-file-coding-system is not nil nor undecided, append it |
c7299043f7f4
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
48836
diff
changeset
|
903 ;; to the defaults. |
c7299043f7f4
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
48836
diff
changeset
|
904 (if buffer-file-coding-system |
c7299043f7f4
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
48836
diff
changeset
|
905 (let ((base (coding-system-base buffer-file-coding-system))) |
c7299043f7f4
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
48836
diff
changeset
|
906 (or (eq base 'undecided) |
c7299043f7f4
(universal-coding-system-argument):
Kenichi Handa <handa@m17n.org>
parents:
48836
diff
changeset
|
907 (rassq base default-coding-system) |
72032
352a45abb3cc
(select-safe-coding-system): Fix the
Kenichi Handa <handa@m17n.org>
parents:
71606
diff
changeset
|
908 (setq default-coding-system |
352a45abb3cc
(select-safe-coding-system): Fix the
Kenichi Handa <handa@m17n.org>
parents:
71606
diff
changeset
|
909 (append default-coding-system |
352a45abb3cc
(select-safe-coding-system): Fix the
Kenichi Handa <handa@m17n.org>
parents:
71606
diff
changeset
|
910 (list (cons buffer-file-coding-system base))))))) |
51134
d59b2e15c4c7
(select-safe-coding-system): Try
Kenichi Handa <handa@m17n.org>
parents:
51016
diff
changeset
|
911 |
102363
822c5b674d12
(select-safe-coding-system): If cdr
Kenichi Handa <handa@m17n.org>
parents:
101791
diff
changeset
|
912 (unless (and buffer-file-coding-system-explicit |
822c5b674d12
(select-safe-coding-system): If cdr
Kenichi Handa <handa@m17n.org>
parents:
101791
diff
changeset
|
913 (cdr buffer-file-coding-system-explicit)) |
104664
50fdf250e26b
* mh-e/mh-comp.el (mh-send-letter):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104612
diff
changeset
|
914 ;; If default buffer-file-coding-system is not nil nor undecided, |
102363
822c5b674d12
(select-safe-coding-system): If cdr
Kenichi Handa <handa@m17n.org>
parents:
101791
diff
changeset
|
915 ;; append it to the defaults. |
104664
50fdf250e26b
* mh-e/mh-comp.el (mh-send-letter):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104612
diff
changeset
|
916 (when (default-value 'buffer-file-coding-system) |
50fdf250e26b
* mh-e/mh-comp.el (mh-send-letter):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104612
diff
changeset
|
917 (let ((base (coding-system-base |
50fdf250e26b
* mh-e/mh-comp.el (mh-send-letter):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104612
diff
changeset
|
918 (default-value 'buffer-file-coding-system)))) |
50fdf250e26b
* mh-e/mh-comp.el (mh-send-letter):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104612
diff
changeset
|
919 (or (eq base 'undecided) |
50fdf250e26b
* mh-e/mh-comp.el (mh-send-letter):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104612
diff
changeset
|
920 (rassq base default-coding-system) |
50fdf250e26b
* mh-e/mh-comp.el (mh-send-letter):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104612
diff
changeset
|
921 (setq default-coding-system |
50fdf250e26b
* mh-e/mh-comp.el (mh-send-letter):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104612
diff
changeset
|
922 (append default-coding-system |
50fdf250e26b
* mh-e/mh-comp.el (mh-send-letter):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104612
diff
changeset
|
923 (list (cons (default-value |
50fdf250e26b
* mh-e/mh-comp.el (mh-send-letter):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104612
diff
changeset
|
924 'buffer-file-coding-system) |
50fdf250e26b
* mh-e/mh-comp.el (mh-send-letter):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104612
diff
changeset
|
925 base))))))) |
29507 | 926 |
102363
822c5b674d12
(select-safe-coding-system): If cdr
Kenichi Handa <handa@m17n.org>
parents:
101791
diff
changeset
|
927 ;; If the most preferred coding system has the property mime-charset, |
822c5b674d12
(select-safe-coding-system): If cdr
Kenichi Handa <handa@m17n.org>
parents:
101791
diff
changeset
|
928 ;; append it to the defaults. |
822c5b674d12
(select-safe-coding-system): If cdr
Kenichi Handa <handa@m17n.org>
parents:
101791
diff
changeset
|
929 (let ((preferred (coding-system-priority-list t)) |
822c5b674d12
(select-safe-coding-system): If cdr
Kenichi Handa <handa@m17n.org>
parents:
101791
diff
changeset
|
930 base) |
822c5b674d12
(select-safe-coding-system): If cdr
Kenichi Handa <handa@m17n.org>
parents:
101791
diff
changeset
|
931 (and (coding-system-p preferred) |
822c5b674d12
(select-safe-coding-system): If cdr
Kenichi Handa <handa@m17n.org>
parents:
101791
diff
changeset
|
932 (setq base (coding-system-base preferred)) |
822c5b674d12
(select-safe-coding-system): If cdr
Kenichi Handa <handa@m17n.org>
parents:
101791
diff
changeset
|
933 (coding-system-get preferred :mime-charset) |
822c5b674d12
(select-safe-coding-system): If cdr
Kenichi Handa <handa@m17n.org>
parents:
101791
diff
changeset
|
934 (not (rassq base default-coding-system)) |
822c5b674d12
(select-safe-coding-system): If cdr
Kenichi Handa <handa@m17n.org>
parents:
101791
diff
changeset
|
935 (setq default-coding-system |
822c5b674d12
(select-safe-coding-system): If cdr
Kenichi Handa <handa@m17n.org>
parents:
101791
diff
changeset
|
936 (append default-coding-system |
822c5b674d12
(select-safe-coding-system): If cdr
Kenichi Handa <handa@m17n.org>
parents:
101791
diff
changeset
|
937 (list (cons preferred base)))))))) |
30492
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
938 |
64481
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
939 (if select-safe-coding-system-accept-default-p |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
940 (setq accept-default-p select-safe-coding-system-accept-default-p)) |
20733
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
941 |
72032
352a45abb3cc
(select-safe-coding-system): Fix the
Kenichi Handa <handa@m17n.org>
parents:
71606
diff
changeset
|
942 ;; Decide the eol-type from the top of the default codings, |
104664
50fdf250e26b
* mh-e/mh-comp.el (mh-send-letter):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104612
diff
changeset
|
943 ;; current buffer-file-coding-system, or default buffer-file-coding-system. |
72032
352a45abb3cc
(select-safe-coding-system): Fix the
Kenichi Handa <handa@m17n.org>
parents:
71606
diff
changeset
|
944 (if default-coding-system |
352a45abb3cc
(select-safe-coding-system): Fix the
Kenichi Handa <handa@m17n.org>
parents:
71606
diff
changeset
|
945 (let ((default-eol-type (coding-system-eol-type |
352a45abb3cc
(select-safe-coding-system): Fix the
Kenichi Handa <handa@m17n.org>
parents:
71606
diff
changeset
|
946 (caar default-coding-system)))) |
352a45abb3cc
(select-safe-coding-system): Fix the
Kenichi Handa <handa@m17n.org>
parents:
71606
diff
changeset
|
947 (if (and (vectorp default-eol-type) buffer-file-coding-system) |
74523
d3e5cb1aa5b6
(register-input-method): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
73819
diff
changeset
|
948 (setq default-eol-type (coding-system-eol-type |
72032
352a45abb3cc
(select-safe-coding-system): Fix the
Kenichi Handa <handa@m17n.org>
parents:
71606
diff
changeset
|
949 buffer-file-coding-system))) |
104664
50fdf250e26b
* mh-e/mh-comp.el (mh-send-letter):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104612
diff
changeset
|
950 (if (and (vectorp default-eol-type) |
50fdf250e26b
* mh-e/mh-comp.el (mh-send-letter):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104612
diff
changeset
|
951 (default-value 'buffer-file-coding-system)) |
50fdf250e26b
* mh-e/mh-comp.el (mh-send-letter):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104612
diff
changeset
|
952 (setq default-eol-type |
50fdf250e26b
* mh-e/mh-comp.el (mh-send-letter):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104612
diff
changeset
|
953 (coding-system-eol-type |
50fdf250e26b
* mh-e/mh-comp.el (mh-send-letter):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104612
diff
changeset
|
954 (default-value 'buffer-file-coding-system)))) |
72032
352a45abb3cc
(select-safe-coding-system): Fix the
Kenichi Handa <handa@m17n.org>
parents:
71606
diff
changeset
|
955 (if (and default-eol-type (not (vectorp default-eol-type))) |
352a45abb3cc
(select-safe-coding-system): Fix the
Kenichi Handa <handa@m17n.org>
parents:
71606
diff
changeset
|
956 (dolist (elt default-coding-system) |
352a45abb3cc
(select-safe-coding-system): Fix the
Kenichi Handa <handa@m17n.org>
parents:
71606
diff
changeset
|
957 (setcar elt (coding-system-change-eol-conversion |
352a45abb3cc
(select-safe-coding-system): Fix the
Kenichi Handa <handa@m17n.org>
parents:
71606
diff
changeset
|
958 (car elt) default-eol-type)))))) |
352a45abb3cc
(select-safe-coding-system): Fix the
Kenichi Handa <handa@m17n.org>
parents:
71606
diff
changeset
|
959 |
64481
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
960 (let ((codings (find-coding-systems-region from to)) |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
961 (coding-system nil) |
101791
b6da45c113db
(select-safe-coding-system): Use
Kenichi Handa <handa@m17n.org>
parents:
101547
diff
changeset
|
962 (tick (if (not (stringp from)) (buffer-chars-modified-tick))) |
64481
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
963 safe rejected unsafe) |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
964 (if (eq (car codings) 'undecided) |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
965 ;; Any coding system is ok. |
72032
352a45abb3cc
(select-safe-coding-system): Fix the
Kenichi Handa <handa@m17n.org>
parents:
71606
diff
changeset
|
966 (setq coding-system (caar default-coding-system)) |
352a45abb3cc
(select-safe-coding-system): Fix the
Kenichi Handa <handa@m17n.org>
parents:
71606
diff
changeset
|
967 ;; Reverse the list so that elements are accumulated in safe, |
352a45abb3cc
(select-safe-coding-system): Fix the
Kenichi Handa <handa@m17n.org>
parents:
71606
diff
changeset
|
968 ;; rejected, and unsafe in the correct order. |
352a45abb3cc
(select-safe-coding-system): Fix the
Kenichi Handa <handa@m17n.org>
parents:
71606
diff
changeset
|
969 (setq default-coding-system (nreverse default-coding-system)) |
352a45abb3cc
(select-safe-coding-system): Fix the
Kenichi Handa <handa@m17n.org>
parents:
71606
diff
changeset
|
970 |
64481
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
971 ;; Classify the defaults into safe, rejected, and unsafe. |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
972 (dolist (elt default-coding-system) |
90574
cb32f6952a5b
(select-safe-coding-system): Fix
Kenichi Handa <handa@m17n.org>
parents:
90573
diff
changeset
|
973 (if (or (eq (car codings) 'undecided) |
cb32f6952a5b
(select-safe-coding-system): Fix
Kenichi Handa <handa@m17n.org>
parents:
90573
diff
changeset
|
974 (memq (cdr elt) codings)) |
64481
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
975 (if (and (functionp accept-default-p) |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
976 (not (funcall accept-default-p (cdr elt)))) |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
977 (push (car elt) rejected) |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
978 (push (car elt) safe)) |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
979 (push (car elt) unsafe))) |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
980 (if safe |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
981 (setq coding-system (car safe)))) |
30492
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
982 |
64481
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
983 ;; If all the defaults failed, ask a user. |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
984 (when (not coding-system) |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
985 (setq coding-system (select-safe-coding-system-interactively |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
986 from to codings unsafe rejected (car codings)))) |
20733
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
987 |
64481
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
988 ;; Check we're not inconsistent with what `coding:' spec &c would |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
989 ;; give when file is re-read. |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
990 ;; But don't do this if we explicitly ignored the cookie |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
991 ;; by using `find-file-literally'. |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
992 (when (and auto-cs |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
993 (not (and |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
994 coding-system |
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
995 (memq (coding-system-type coding-system) '(0 5))))) |
54507
96c240b674ee
(select-safe-coding-system): Merge
Kenichi Handa <handa@m17n.org>
parents:
53358
diff
changeset
|
996 ;; Merge coding-system and auto-cs as far as possible. |
96c240b674ee
(select-safe-coding-system): Merge
Kenichi Handa <handa@m17n.org>
parents:
53358
diff
changeset
|
997 (if (not coding-system) |
96c240b674ee
(select-safe-coding-system): Merge
Kenichi Handa <handa@m17n.org>
parents:
53358
diff
changeset
|
998 (setq coding-system auto-cs) |
96c240b674ee
(select-safe-coding-system): Merge
Kenichi Handa <handa@m17n.org>
parents:
53358
diff
changeset
|
999 (if (not auto-cs) |
96c240b674ee
(select-safe-coding-system): Merge
Kenichi Handa <handa@m17n.org>
parents:
53358
diff
changeset
|
1000 (setq auto-cs coding-system) |
96c240b674ee
(select-safe-coding-system): Merge
Kenichi Handa <handa@m17n.org>
parents:
53358
diff
changeset
|
1001 (let ((eol-type-1 (coding-system-eol-type coding-system)) |
96c240b674ee
(select-safe-coding-system): Merge
Kenichi Handa <handa@m17n.org>
parents:
53358
diff
changeset
|
1002 (eol-type-2 (coding-system-eol-type auto-cs))) |
96c240b674ee
(select-safe-coding-system): Merge
Kenichi Handa <handa@m17n.org>
parents:
53358
diff
changeset
|
1003 (if (eq (coding-system-base coding-system) 'undecided) |
96c240b674ee
(select-safe-coding-system): Merge
Kenichi Handa <handa@m17n.org>
parents:
53358
diff
changeset
|
1004 (setq coding-system (coding-system-change-text-conversion |
96c240b674ee
(select-safe-coding-system): Merge
Kenichi Handa <handa@m17n.org>
parents:
53358
diff
changeset
|
1005 coding-system auto-cs)) |
96c240b674ee
(select-safe-coding-system): Merge
Kenichi Handa <handa@m17n.org>
parents:
53358
diff
changeset
|
1006 (if (eq (coding-system-base auto-cs) 'undecided) |
96c240b674ee
(select-safe-coding-system): Merge
Kenichi Handa <handa@m17n.org>
parents:
53358
diff
changeset
|
1007 (setq auto-cs (coding-system-change-text-conversion |
96c240b674ee
(select-safe-coding-system): Merge
Kenichi Handa <handa@m17n.org>
parents:
53358
diff
changeset
|
1008 auto-cs coding-system)))) |
96c240b674ee
(select-safe-coding-system): Merge
Kenichi Handa <handa@m17n.org>
parents:
53358
diff
changeset
|
1009 (if (vectorp eol-type-1) |
96c240b674ee
(select-safe-coding-system): Merge
Kenichi Handa <handa@m17n.org>
parents:
53358
diff
changeset
|
1010 (or (vectorp eol-type-2) |
96c240b674ee
(select-safe-coding-system): Merge
Kenichi Handa <handa@m17n.org>
parents:
53358
diff
changeset
|
1011 (setq coding-system (coding-system-change-eol-conversion |
96c240b674ee
(select-safe-coding-system): Merge
Kenichi Handa <handa@m17n.org>
parents:
53358
diff
changeset
|
1012 coding-system eol-type-2))) |
96c240b674ee
(select-safe-coding-system): Merge
Kenichi Handa <handa@m17n.org>
parents:
53358
diff
changeset
|
1013 (if (vectorp eol-type-2) |
96c240b674ee
(select-safe-coding-system): Merge
Kenichi Handa <handa@m17n.org>
parents:
53358
diff
changeset
|
1014 (setq auto-cs (coding-system-change-eol-conversion |
96c240b674ee
(select-safe-coding-system): Merge
Kenichi Handa <handa@m17n.org>
parents:
53358
diff
changeset
|
1015 auto-cs eol-type-1))))))) |
96c240b674ee
(select-safe-coding-system): Merge
Kenichi Handa <handa@m17n.org>
parents:
53358
diff
changeset
|
1016 |
96c240b674ee
(select-safe-coding-system): Merge
Kenichi Handa <handa@m17n.org>
parents:
53358
diff
changeset
|
1017 (if (and auto-cs |
46674 | 1018 ;; Don't barf if writing a compressed file, say. |
1019 ;; This check perhaps isn't ideal, but is probably | |
1020 ;; the best thing to do. | |
1021 (not (auto-coding-alist-lookup (or file buffer-file-name ""))) | |
54507
96c240b674ee
(select-safe-coding-system): Merge
Kenichi Handa <handa@m17n.org>
parents:
53358
diff
changeset
|
1022 (not (coding-system-equal coding-system auto-cs))) |
45082
5b1a8adeb602
(select-safe-coding-system): Don't offer coding systems that use locking shift.
Richard M. Stallman <rms@gnu.org>
parents:
44904
diff
changeset
|
1023 (unless (yes-or-no-p |
5b1a8adeb602
(select-safe-coding-system): Don't offer coding systems that use locking shift.
Richard M. Stallman <rms@gnu.org>
parents:
44904
diff
changeset
|
1024 (format "Selected encoding %s disagrees with \ |
5b1a8adeb602
(select-safe-coding-system): Don't offer coding systems that use locking shift.
Richard M. Stallman <rms@gnu.org>
parents:
44904
diff
changeset
|
1025 %s specified by file contents. Really save (else edit coding cookies \ |
5b1a8adeb602
(select-safe-coding-system): Don't offer coding systems that use locking shift.
Richard M. Stallman <rms@gnu.org>
parents:
44904
diff
changeset
|
1026 and try again)? " coding-system auto-cs)) |
64481
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
1027 (error "Save aborted")))) |
101791
b6da45c113db
(select-safe-coding-system): Use
Kenichi Handa <handa@m17n.org>
parents:
101547
diff
changeset
|
1028 (when (and tick (/= tick (buffer-chars-modified-tick))) |
87430
f322e8d4c5e3
(select-safe-coding-system): When a
Kenichi Handa <handa@m17n.org>
parents:
87098
diff
changeset
|
1029 (error "Cancelled because the buffer was modified")) |
64481
0626bdaeea77
(select-safe-coding-system): Try to
Kenichi Handa <handa@m17n.org>
parents:
64124
diff
changeset
|
1030 coding-system))) |
20733
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1031 |
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1032 (setq select-safe-coding-system-function 'select-safe-coding-system) |
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1033 |
23087
4ae12d3c8c30
(select-message-coding-system): New
Kenichi Handa <handa@m17n.org>
parents:
23049
diff
changeset
|
1034 (defun select-message-coding-system () |
4ae12d3c8c30
(select-message-coding-system): New
Kenichi Handa <handa@m17n.org>
parents:
23049
diff
changeset
|
1035 "Return a coding system to encode the outgoing message of the current buffer. |
4ae12d3c8c30
(select-message-coding-system): New
Kenichi Handa <handa@m17n.org>
parents:
23049
diff
changeset
|
1036 It at first tries the first coding system found in these variables |
4ae12d3c8c30
(select-message-coding-system): New
Kenichi Handa <handa@m17n.org>
parents:
23049
diff
changeset
|
1037 in this order: |
4ae12d3c8c30
(select-message-coding-system): New
Kenichi Handa <handa@m17n.org>
parents:
23049
diff
changeset
|
1038 (1) local value of `buffer-file-coding-system' |
4ae12d3c8c30
(select-message-coding-system): New
Kenichi Handa <handa@m17n.org>
parents:
23049
diff
changeset
|
1039 (2) value of `sendmail-coding-system' |
30492
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
1040 (3) value of `default-sendmail-coding-system' |
104664
50fdf250e26b
* mh-e/mh-comp.el (mh-send-letter):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104612
diff
changeset
|
1041 (4) default value of `buffer-file-coding-system' |
23087
4ae12d3c8c30
(select-message-coding-system): New
Kenichi Handa <handa@m17n.org>
parents:
23049
diff
changeset
|
1042 If the found coding system can't encode the current buffer, |
4ae12d3c8c30
(select-message-coding-system): New
Kenichi Handa <handa@m17n.org>
parents:
23049
diff
changeset
|
1043 or none of them are bound to a coding system, |
23583
e7dfcab35c8b
(select-message-coding-system): Doc
Andreas Schwab <schwab@suse.de>
parents:
23526
diff
changeset
|
1044 it asks the user to select a proper coding system." |
23087
4ae12d3c8c30
(select-message-coding-system): New
Kenichi Handa <handa@m17n.org>
parents:
23049
diff
changeset
|
1045 (let ((coding (or (and (local-variable-p 'buffer-file-coding-system) |
30492
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
1046 buffer-file-coding-system) |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
1047 sendmail-coding-system |
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
1048 default-sendmail-coding-system |
104664
50fdf250e26b
* mh-e/mh-comp.el (mh-send-letter):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104612
diff
changeset
|
1049 (default-value 'buffer-file-coding-system)))) |
23087
4ae12d3c8c30
(select-message-coding-system): New
Kenichi Handa <handa@m17n.org>
parents:
23049
diff
changeset
|
1050 (if (eq coding 'no-conversion) |
46674 | 1051 ;; We should never use no-conversion for outgoing mail. |
23087
4ae12d3c8c30
(select-message-coding-system): New
Kenichi Handa <handa@m17n.org>
parents:
23049
diff
changeset
|
1052 (setq coding nil)) |
4ae12d3c8c30
(select-message-coding-system): New
Kenichi Handa <handa@m17n.org>
parents:
23049
diff
changeset
|
1053 (if (fboundp select-safe-coding-system-function) |
4ae12d3c8c30
(select-message-coding-system): New
Kenichi Handa <handa@m17n.org>
parents:
23049
diff
changeset
|
1054 (funcall select-safe-coding-system-function |
30492
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
1055 (point-min) (point-max) coding |
88502 | 1056 (function (lambda (x) (coding-system-get x :mime-charset)))) |
23087
4ae12d3c8c30
(select-message-coding-system): New
Kenichi Handa <handa@m17n.org>
parents:
23049
diff
changeset
|
1057 coding))) |
17052 | 1058 |
23916
ccc00be328a1
(set-language-environment): On MS-DOS
Eli Zaretskii <eliz@gnu.org>
parents:
23889
diff
changeset
|
1059 ;;; Language support stuff. |
17052 | 1060 |
1061 (defvar language-info-alist nil | |
22153 | 1062 "Alist of language environment definitions. |
17052 | 1063 Each element looks like: |
1064 (LANGUAGE-NAME . ((KEY . INFO) ...)) | |
22153 | 1065 where LANGUAGE-NAME is a string, the name of the language environment, |
1066 KEY is a symbol denoting the kind of information, and | |
1067 INFO is the data associated with KEY. | |
1068 Meaningful values for KEY include | |
17052 | 1069 |
22153 | 1070 documentation value is documentation of what this language environment |
1071 is meant for, and how to use it. | |
88981
28fee7bb4dab
(reset-language-environment): Don't
Kenichi Handa <handa@m17n.org>
parents:
88837
diff
changeset
|
1072 charset value is a list of the character sets mainly used |
28fee7bb4dab
(reset-language-environment): Don't
Kenichi Handa <handa@m17n.org>
parents:
88837
diff
changeset
|
1073 by this language environment. |
46674 | 1074 sample-text value is an expression which is evalled to generate |
1075 a line of text written using characters appropriate | |
1076 for this language environment. | |
22153 | 1077 setup-function value is a function to call to switch to this |
1078 language environment. | |
1079 exit-function value is a function to call to leave this | |
1080 language environment. | |
99682
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
1081 coding-system value is a list of coding systems that are good for |
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
1082 saving text written in this language environment. |
22153 | 1083 This list serves as suggestions to the user; |
1084 in effect, as a kind of documentation. | |
1085 coding-priority value is a list of coding systems for this language | |
1086 environment, in order of decreasing priority. | |
1087 This is used to set up the coding system priority | |
22887
e24b79da83d6
(language-info-alist): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
22854
diff
changeset
|
1088 list when you switch to this language environment. |
22986
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1089 nonascii-translation |
88981
28fee7bb4dab
(reset-language-environment): Don't
Kenichi Handa <handa@m17n.org>
parents:
88837
diff
changeset
|
1090 value is a charset of dimension one to use for |
28fee7bb4dab
(reset-language-environment): Don't
Kenichi Handa <handa@m17n.org>
parents:
88837
diff
changeset
|
1091 converting a unibyte character to multibyte |
28fee7bb4dab
(reset-language-environment): Don't
Kenichi Handa <handa@m17n.org>
parents:
88837
diff
changeset
|
1092 and vice versa. |
22986
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1093 input-method value is a default input method for this language |
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1094 environment. |
23031
5e2bc240edfc
(language-info-alist): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
23021
diff
changeset
|
1095 features value is a list of features requested in this |
5e2bc240edfc
(language-info-alist): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
23021
diff
changeset
|
1096 language environment. |
53355
fea694690fc7
(reset-language-environment): Call
Kenichi Handa <handa@m17n.org>
parents:
53262
diff
changeset
|
1097 ctext-non-standard-encodings |
99682
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
1098 value is a list of non-standard encoding names used |
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
1099 in extended segments of CTEXT. See the variable |
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
1100 `ctext-non-standard-encodings' for more detail. |
22986
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1101 |
104960
ddca2477302b
(language-info-alist): Improve docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104911
diff
changeset
|
1102 The following key takes effect only when multibyte characters are |
104823
68150c643e2e
Use default-value rather than default-enable-multibyte-characters.
Glenn Morris <rgm@gnu.org>
parents:
104664
diff
changeset
|
1103 globally disabled, i.e. the default value of `enable-multibyte-characters' |
104960
ddca2477302b
(language-info-alist): Improve docstring.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104911
diff
changeset
|
1104 is nil (which is an obsolete and deprecated use): |
22986
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1105 |
99682
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
1106 unibyte-display value is a coding system to encode characters for |
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
1107 the terminal. Characters in the range of 160 to |
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
1108 255 display not as octal escapes, but as non-ASCII |
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
1109 characters in this language environment.") |
22153 | 1110 |
1111 (defun get-language-info (lang-env key) | |
1112 "Return information listed under KEY for language environment LANG-ENV. | |
1113 KEY is a symbol denoting the kind of information. | |
1114 For a list of useful values for KEY and their meanings, | |
1115 see `language-info-alist'." | |
1116 (if (symbolp lang-env) | |
1117 (setq lang-env (symbol-name lang-env))) | |
55047
428f891f9e31
Use assoc-string, not assoc-ignore-case.
Richard M. Stallman <rms@gnu.org>
parents:
54507
diff
changeset
|
1118 (let ((lang-slot (assoc-string lang-env language-info-alist t))) |
17052 | 1119 (if lang-slot |
1120 (cdr (assq key (cdr lang-slot)))))) | |
1121 | |
22200
a0d60a6c87da
(register-input-method): Rename arg ENV to LANG-ENV. Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents:
22153
diff
changeset
|
1122 (defun set-language-info (lang-env key info) |
22153 | 1123 "Modify part of the definition of language environment LANG-ENV. |
1124 Specifically, this stores the information INFO under KEY | |
1125 in the definition of this language environment. | |
17052 | 1126 KEY is a symbol denoting the kind of information. |
22153 | 1127 INFO is the value for that information. |
20733
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1128 |
22153 | 1129 For a list of useful values for KEY and their meanings, |
22200
a0d60a6c87da
(register-input-method): Rename arg ENV to LANG-ENV. Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents:
22153
diff
changeset
|
1130 see `language-info-alist'." |
22153 | 1131 (if (symbolp lang-env) |
1132 (setq lang-env (symbol-name lang-env))) | |
67320
08bc4f887f34
(set-language-info-internal): New
Kenichi Handa <handa@m17n.org>
parents:
67036
diff
changeset
|
1133 (set-language-info-internal lang-env key info) |
08bc4f887f34
(set-language-info-internal): New
Kenichi Handa <handa@m17n.org>
parents:
67036
diff
changeset
|
1134 (if (equal lang-env current-language-environment) |
71606
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
1135 (cond ((eq key 'coding-priority) |
90521
b81a8a5635a8
(set-language-info): Fix synching
Kenichi Handa <handa@m17n.org>
parents:
90519
diff
changeset
|
1136 (set-language-environment-coding-systems lang-env) |
b81a8a5635a8
(set-language-info): Fix synching
Kenichi Handa <handa@m17n.org>
parents:
90519
diff
changeset
|
1137 (set-language-environment-charset lang-env)) |
71606
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
1138 ((eq key 'input-method) |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
1139 (set-language-environment-input-method lang-env)) |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
1140 ((eq key 'nonascii-translation) |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
1141 (set-language-environment-nonascii-translation lang-env)) |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
1142 ((eq key 'charset) |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
1143 (set-language-environment-charset lang-env)) |
104823
68150c643e2e
Use default-value rather than default-enable-multibyte-characters.
Glenn Morris <rgm@gnu.org>
parents:
104664
diff
changeset
|
1144 ((and (not (default-value 'enable-multibyte-characters)) |
71606
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
1145 (or (eq key 'unibyte-syntax) (eq key 'unibyte-display))) |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
1146 (set-language-environment-unibyte lang-env))))) |
67320
08bc4f887f34
(set-language-info-internal): New
Kenichi Handa <handa@m17n.org>
parents:
67036
diff
changeset
|
1147 |
08bc4f887f34
(set-language-info-internal): New
Kenichi Handa <handa@m17n.org>
parents:
67036
diff
changeset
|
1148 (defun set-language-info-internal (lang-env key info) |
08bc4f887f34
(set-language-info-internal): New
Kenichi Handa <handa@m17n.org>
parents:
67036
diff
changeset
|
1149 "Internal use only. |
08bc4f887f34
(set-language-info-internal): New
Kenichi Handa <handa@m17n.org>
parents:
67036
diff
changeset
|
1150 Arguments are the same as `set-language-info'." |
17052 | 1151 (let (lang-slot key-slot) |
22153 | 1152 (setq lang-slot (assoc lang-env language-info-alist)) |
17052 | 1153 (if (null lang-slot) ; If no slot for the language, add it. |
22153 | 1154 (setq lang-slot (list lang-env) |
17052 | 1155 language-info-alist (cons lang-slot language-info-alist))) |
1156 (setq key-slot (assq key lang-slot)) | |
1157 (if (null key-slot) ; If no slot for the key, add it. | |
1158 (progn | |
1159 (setq key-slot (list key)) | |
1160 (setcdr lang-slot (cons key-slot (cdr lang-slot))))) | |
48808
3928ea1dee22
(current-language-environment-custom-type): New fun.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48231
diff
changeset
|
1161 (setcdr key-slot (purecopy info)) |
48813
47c6ac3517f8
(set-language-info): Update custom-type of
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48812
diff
changeset
|
1162 ;; Update the custom-type of `current-language-environment'. |
48808
3928ea1dee22
(current-language-environment-custom-type): New fun.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48231
diff
changeset
|
1163 (put 'current-language-environment 'custom-type |
48813
47c6ac3517f8
(set-language-info): Update custom-type of
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48812
diff
changeset
|
1164 (cons 'choice (mapcar |
47c6ac3517f8
(set-language-info): Update custom-type of
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48812
diff
changeset
|
1165 (lambda (lang) |
49435
f9953109e75c
(set-language-info, current-language-environment):
Markus Rost <rost@math.uni-bielefeld.de>
parents:
49048
diff
changeset
|
1166 (list 'const lang)) |
f9953109e75c
(set-language-info, current-language-environment):
Markus Rost <rost@math.uni-bielefeld.de>
parents:
49048
diff
changeset
|
1167 (sort (mapcar 'car language-info-alist) 'string<)))))) |
17052 | 1168 |
22153 | 1169 (defun set-language-info-alist (lang-env alist &optional parents) |
1170 "Store ALIST as the definition of language environment LANG-ENV. | |
1171 ALIST is an alist of KEY and INFO values. See the documentation of | |
29830
74886b751ce2
(set-language-info-alist): Docstring fixed.
Kenichi Handa <handa@m17n.org>
parents:
29507
diff
changeset
|
1172 `language-info-alist' for the meanings of KEY and INFO. |
20733
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1173 |
22153 | 1174 Optional arg PARENTS is a list of parent menu names; it specifies |
46674 | 1175 where to put this language environment in the |
22153 | 1176 Describe Language Environment and Set Language Environment menus. |
1177 For example, (\"European\") means to put this language environment | |
1178 in the European submenu in each of those two menus." | |
105744
b0a732611398
* keymap.c (Fmake_sparse_keymap): Purecopy the name.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105715
diff
changeset
|
1179 (cond ((symbolp lang-env) |
b0a732611398
* keymap.c (Fmake_sparse_keymap): Purecopy the name.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105715
diff
changeset
|
1180 (setq lang-env (symbol-name lang-env))) |
b0a732611398
* keymap.c (Fmake_sparse_keymap): Purecopy the name.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105715
diff
changeset
|
1181 ((stringp lang-env) |
b0a732611398
* keymap.c (Fmake_sparse_keymap): Purecopy the name.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105715
diff
changeset
|
1182 (setq lang-env (purecopy lang-env)))) |
20733
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1183 (let ((describe-map describe-language-environment-map) |
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1184 (setup-map setup-language-environment-map)) |
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1185 (if parents |
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1186 (let ((l parents) |
28828
b8133d80ec1e
(set-language-info-alist): Call define-prefix-command with 3 arguments,
Eli Zaretskii <eliz@gnu.org>
parents:
28774
diff
changeset
|
1187 map parent-symbol parent prompt) |
20733
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1188 (while l |
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1189 (if (symbolp (setq parent-symbol (car l))) |
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1190 (setq parent (symbol-name parent)) |
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1191 (setq parent parent-symbol parent-symbol (intern parent))) |
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1192 (setq map (lookup-key describe-map (vector parent-symbol))) |
28828
b8133d80ec1e
(set-language-info-alist): Call define-prefix-command with 3 arguments,
Eli Zaretskii <eliz@gnu.org>
parents:
28774
diff
changeset
|
1193 ;; This prompt string is for define-prefix-command, so |
b8133d80ec1e
(set-language-info-alist): Call define-prefix-command with 3 arguments,
Eli Zaretskii <eliz@gnu.org>
parents:
28774
diff
changeset
|
1194 ;; that the map it creates will be suitable for a menu. |
b8133d80ec1e
(set-language-info-alist): Call define-prefix-command with 3 arguments,
Eli Zaretskii <eliz@gnu.org>
parents:
28774
diff
changeset
|
1195 (or map (setq prompt (format "%s Environment" parent))) |
20733
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1196 (if (not map) |
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1197 (progn |
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1198 (setq map (intern (format "describe-%s-environment-map" |
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1199 (downcase parent)))) |
28828
b8133d80ec1e
(set-language-info-alist): Call define-prefix-command with 3 arguments,
Eli Zaretskii <eliz@gnu.org>
parents:
28774
diff
changeset
|
1200 (define-prefix-command map nil prompt) |
20733
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1201 (define-key-after describe-map (vector parent-symbol) |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
1202 (cons parent map)))) |
20733
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1203 (setq describe-map (symbol-value map)) |
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1204 (setq map (lookup-key setup-map (vector parent-symbol))) |
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1205 (if (not map) |
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1206 (progn |
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1207 (setq map (intern (format "setup-%s-environment-map" |
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1208 (downcase parent)))) |
28828
b8133d80ec1e
(set-language-info-alist): Call define-prefix-command with 3 arguments,
Eli Zaretskii <eliz@gnu.org>
parents:
28774
diff
changeset
|
1209 (define-prefix-command map nil prompt) |
20733
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1210 (define-key-after setup-map (vector parent-symbol) |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
1211 (cons parent map)))) |
20733
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1212 (setq setup-map (symbol-value map)) |
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1213 (setq l (cdr l))))) |
22200
a0d60a6c87da
(register-input-method): Rename arg ENV to LANG-ENV. Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents:
22153
diff
changeset
|
1214 |
a0d60a6c87da
(register-input-method): Rename arg ENV to LANG-ENV. Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents:
22153
diff
changeset
|
1215 ;; Set up menu items for this language env. |
23031
5e2bc240edfc
(language-info-alist): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
23021
diff
changeset
|
1216 (let ((doc (assq 'documentation alist))) |
22200
a0d60a6c87da
(register-input-method): Rename arg ENV to LANG-ENV. Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents:
22153
diff
changeset
|
1217 (when doc |
a0d60a6c87da
(register-input-method): Rename arg ENV to LANG-ENV. Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents:
22153
diff
changeset
|
1218 (define-key-after describe-map (vector (intern lang-env)) |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
1219 (cons lang-env 'describe-specified-language-support)))) |
23031
5e2bc240edfc
(language-info-alist): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
23021
diff
changeset
|
1220 (define-key-after setup-map (vector (intern lang-env)) |
104230
1df54ff0d8b8
(mule-keymap, mule-menu-keymap)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
103913
diff
changeset
|
1221 (cons lang-env 'setup-specified-language-environment)) |
22200
a0d60a6c87da
(register-input-method): Rename arg ENV to LANG-ENV. Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents:
22153
diff
changeset
|
1222 |
67320
08bc4f887f34
(set-language-info-internal): New
Kenichi Handa <handa@m17n.org>
parents:
67036
diff
changeset
|
1223 (dolist (elt alist) |
08bc4f887f34
(set-language-info-internal): New
Kenichi Handa <handa@m17n.org>
parents:
67036
diff
changeset
|
1224 (set-language-info-internal lang-env (car elt) (cdr elt))) |
74523
d3e5cb1aa5b6
(register-input-method): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
73819
diff
changeset
|
1225 |
67320
08bc4f887f34
(set-language-info-internal): New
Kenichi Handa <handa@m17n.org>
parents:
67036
diff
changeset
|
1226 (if (equal lang-env current-language-environment) |
08bc4f887f34
(set-language-info-internal): New
Kenichi Handa <handa@m17n.org>
parents:
67036
diff
changeset
|
1227 (set-language-environment lang-env)))) |
17052 | 1228 |
19734
c4894d8a3310
(read-language-name): Use a default, not an initial input.
Richard M. Stallman <rms@gnu.org>
parents:
19725
diff
changeset
|
1229 (defun read-language-name (key prompt &optional default) |
22153 | 1230 "Read a language environment name which has information for KEY. |
22986
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1231 If KEY is nil, read any language environment. |
22153 | 1232 Prompt with PROMPT. DEFAULT is the default choice of language environment. |
1233 This returns a language environment name as a string." | |
17052 | 1234 (let* ((completion-ignore-case t) |
1235 (name (completing-read prompt | |
1236 language-info-alist | |
22986
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1237 (and key |
44904
3c8d8ff3a848
(read-language-name): Take of non-list values.
Pavel Janík <Pavel@Janik.cz>
parents:
44643
diff
changeset
|
1238 (function (lambda (elm) (and (listp elm) (assq key elm))))) |
19734
c4894d8a3310
(read-language-name): Use a default, not an initial input.
Richard M. Stallman <rms@gnu.org>
parents:
19725
diff
changeset
|
1239 t nil nil default))) |
17758
8c67c2e2cc29
(build-describe-language-support-function,
Kenichi Handa <handa@m17n.org>
parents:
17526
diff
changeset
|
1240 (if (and (> (length name) 0) |
22986
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1241 (or (not key) |
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1242 (get-language-info name key))) |
17758
8c67c2e2cc29
(build-describe-language-support-function,
Kenichi Handa <handa@m17n.org>
parents:
17526
diff
changeset
|
1243 name))) |
17052 | 1244 |
1245 ;;; Multilingual input methods. | |
46674 | 1246 (defgroup leim nil |
31423
afa66a3f39dc
(help-xref-mule-regexp-template):
Kenichi Handa <handa@m17n.org>
parents:
31245
diff
changeset
|
1247 "LEIM: Libraries of Emacs Input Methods." |
afa66a3f39dc
(help-xref-mule-regexp-template):
Kenichi Handa <handa@m17n.org>
parents:
31245
diff
changeset
|
1248 :group 'mule) |
17052 | 1249 |
18301
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1250 (defconst leim-list-file-name "leim-list.el" |
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1251 "Name of LEIM list file. |
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1252 This file contains a list of libraries of Emacs input methods (LEIM) |
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1253 in the format of Lisp expression for registering each input method. |
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1254 Emacs loads this file at startup time.") |
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1255 |
105744
b0a732611398
* keymap.c (Fmake_sparse_keymap): Purecopy the name.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105715
diff
changeset
|
1256 (defconst leim-list-header (format |
102643
307dc8cbe61e
(leim-list-header): Use utf-8 coding tag.
Kenichi Handa <handa@m17n.org>
parents:
102363
diff
changeset
|
1257 ";;; %s -- list of LEIM (Library of Emacs Input Method) -*-coding: utf-8;-*- |
18301
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1258 ;; |
102892
524d2ca60ede
(mule-cmds.el): Mention that leim-list.el is auto-generated.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
102643
diff
changeset
|
1259 ;; This file is automatically generated. |
524d2ca60ede
(mule-cmds.el): Mention that leim-list.el is auto-generated.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
102643
diff
changeset
|
1260 ;; |
18301
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1261 ;; This file contains a list of LEIM (Library of Emacs Input Method) |
36464 | 1262 ;; methods in the same directory as this file. Loading this file |
1263 ;; registers all the input methods in Emacs. | |
18301
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1264 ;; |
18969 | 1265 ;; Each entry has the form: |
18301
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1266 ;; (register-input-method |
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1267 ;; INPUT-METHOD LANGUAGE-NAME ACTIVATE-FUNC |
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1268 ;; TITLE DESCRIPTION |
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1269 ;; ARG ...) |
36464 | 1270 ;; See the function `register-input-method' for the meanings of the arguments. |
18301
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1271 ;; |
102892
524d2ca60ede
(mule-cmds.el): Mention that leim-list.el is auto-generated.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
102643
diff
changeset
|
1272 ;; If this directory is included in `load-path', Emacs automatically |
18301
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1273 ;; loads this file at startup time. |
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1274 |
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1275 " |
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1276 leim-list-file-name) |
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1277 "Header to be inserted in LEIM list file.") |
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1278 |
105744
b0a732611398
* keymap.c (Fmake_sparse_keymap): Purecopy the name.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105715
diff
changeset
|
1279 (defconst leim-list-entry-regexp "^(register-input-method" |
18301
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1280 "Regexp matching head of each entry in LEIM list file. |
77918
80ba9b48c547
(toggle-enable-multibyte-characters, sort-coding-systems,
Juanma Barranquero <lekktu@gmail.com>
parents:
76003
diff
changeset
|
1281 See also the variable `leim-list-header'.") |
18301
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1282 |
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1283 (defvar update-leim-list-functions |
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1284 '(quail-update-leim-list-file) |
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1285 "List of functions to call to update LEIM list file. |
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1286 Each function is called with one arg, LEIM directory name.") |
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1287 |
19615
4cdef838afb0
(update-leim-list-file): Make it handle multiple directories.
Richard M. Stallman <rms@gnu.org>
parents:
19614
diff
changeset
|
1288 (defun update-leim-list-file (&rest dirs) |
4cdef838afb0
(update-leim-list-file): Make it handle multiple directories.
Richard M. Stallman <rms@gnu.org>
parents:
19614
diff
changeset
|
1289 "Update LEIM list file in directories DIRS." |
99682
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
1290 (dolist (function update-leim-list-functions) |
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
1291 (apply function dirs))) |
18301
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1292 |
17052 | 1293 (defvar current-input-method nil |
1294 "The current input method for multilingual text. | |
19083
8fdb29b769ed
Doc fixes; fix error message text.
Richard M. Stallman <rms@gnu.org>
parents:
19036
diff
changeset
|
1295 If nil, that means no input method is activated now.") |
17052 | 1296 (make-variable-buffer-local 'current-input-method) |
1297 (put 'current-input-method 'permanent-local t) | |
1298 | |
1299 (defvar current-input-method-title nil | |
18301
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1300 "Title string of the current input method shown in mode line.") |
17052 | 1301 (make-variable-buffer-local 'current-input-method-title) |
1302 (put 'current-input-method-title 'permanent-local t) | |
1303 | |
18801
f60dbf4f7d7c
(mule-keymap): Bind l to set-language-environment.
Kenichi Handa <handa@m17n.org>
parents:
18712
diff
changeset
|
1304 (defcustom default-input-method nil |
90861
4f7df84e666c
(toggle-enable-multibyte-characters, sort-coding-systems,
Juanma Barranquero <lekktu@gmail.com>
parents:
90776
diff
changeset
|
1305 "Default input method for multilingual text (a string). |
18801
f60dbf4f7d7c
(mule-keymap): Bind l to set-language-environment.
Kenichi Handa <handa@m17n.org>
parents:
18712
diff
changeset
|
1306 This is the input method activated automatically by the command |
19329
249631cebee0
(default-input-method):
Richard M. Stallman <rms@gnu.org>
parents:
19328
diff
changeset
|
1307 `toggle-input-method' (\\[toggle-input-method])." |
52856
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
1308 :link '(custom-manual "(emacs)Input Methods") |
21229
38b621cd9169
(set-language-environment): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
21042
diff
changeset
|
1309 :group 'mule |
52856
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
1310 :type '(choice (const nil) (string |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
1311 :completion-ignore-case t |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
1312 :complete-function widget-string-complete |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
1313 :completion-alist input-method-alist |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
1314 :prompt-history input-method-history)) |
26832
4a01a2762de5
(default-input-method): Specify
Gerd Moellmann <gerd@gnu.org>
parents:
26190
diff
changeset
|
1315 :set-after '(current-language-environment)) |
18801
f60dbf4f7d7c
(mule-keymap): Bind l to set-language-environment.
Kenichi Handa <handa@m17n.org>
parents:
18712
diff
changeset
|
1316 |
24617
a9d05d95717d
(input-method-function): Add permanent-local property.
Karl Heuer <kwzh@gnu.org>
parents:
24551
diff
changeset
|
1317 (put 'input-method-function 'permanent-local t) |
a9d05d95717d
(input-method-function): Add permanent-local property.
Karl Heuer <kwzh@gnu.org>
parents:
24551
diff
changeset
|
1318 |
19405
7ef4af7505f2
(previous-input-method): This
Kenichi Handa <handa@m17n.org>
parents:
19402
diff
changeset
|
1319 (defvar input-method-history nil |
79595
9fec9cf76ca1
(input-method-history): Add reference to `history-length' in the doc string.
Eli Zaretskii <eliz@gnu.org>
parents:
79505
diff
changeset
|
1320 "History list of input methods read from the minibuffer. |
9fec9cf76ca1
(input-method-history): Add reference to `history-length' in the doc string.
Eli Zaretskii <eliz@gnu.org>
parents:
79505
diff
changeset
|
1321 |
9fec9cf76ca1
(input-method-history): Add reference to `history-length' in the doc string.
Eli Zaretskii <eliz@gnu.org>
parents:
79505
diff
changeset
|
1322 Maximum length of the history list is determined by the value |
9fec9cf76ca1
(input-method-history): Add reference to `history-length' in the doc string.
Eli Zaretskii <eliz@gnu.org>
parents:
79505
diff
changeset
|
1323 of `history-length', which see.") |
19405
7ef4af7505f2
(previous-input-method): This
Kenichi Handa <handa@m17n.org>
parents:
19402
diff
changeset
|
1324 (make-variable-buffer-local 'input-method-history) |
7ef4af7505f2
(previous-input-method): This
Kenichi Handa <handa@m17n.org>
parents:
19402
diff
changeset
|
1325 (put 'input-method-history 'permanent-local t) |
17052 | 1326 |
1327 (defvar inactivate-current-input-method-function nil | |
1328 "Function to call for inactivating the current input method. | |
1329 Every input method should set this to an appropriate value when activated. | |
19555
df2996f7fdc3
(inactivate-current-input-method-function): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
19424
diff
changeset
|
1330 This function is called with no argument. |
df2996f7fdc3
(inactivate-current-input-method-function): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
19424
diff
changeset
|
1331 |
df2996f7fdc3
(inactivate-current-input-method-function): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
19424
diff
changeset
|
1332 This function should never change the value of `current-input-method'. |
df2996f7fdc3
(inactivate-current-input-method-function): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
19424
diff
changeset
|
1333 It is set to nil by the function `inactivate-input-method'.") |
17052 | 1334 (make-variable-buffer-local 'inactivate-current-input-method-function) |
1335 (put 'inactivate-current-input-method-function 'permanent-local t) | |
1336 | |
1337 (defvar describe-current-input-method-function nil | |
1338 "Function to call for describing the current input method. | |
1339 This function is called with no argument.") | |
1340 (make-variable-buffer-local 'describe-current-input-method-function) | |
1341 (put 'describe-current-input-method-function 'permanent-local t) | |
1342 | |
18301
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1343 (defvar input-method-alist nil |
22153 | 1344 "Alist of input method names vs how to use them. |
18301
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1345 Each element has the form: |
22153 | 1346 (INPUT-METHOD LANGUAGE-ENV ACTIVATE-FUNC TITLE DESCRIPTION ARGS...) |
1347 See the function `register-input-method' for the meanings of the elements.") | |
105609
bdcd73244f19
Convert comments about autoloads into autoload comments.
Glenn Morris <rgm@gnu.org>
parents:
105586
diff
changeset
|
1348 ;;;###autoload |
104612
c220a29e75fd
Define risky-local-variable property here rather than in files.el.
Glenn Morris <rgm@gnu.org>
parents:
104552
diff
changeset
|
1349 (put 'input-method-alist 'risky-local-variable t) |
18301
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1350 |
22200
a0d60a6c87da
(register-input-method): Rename arg ENV to LANG-ENV. Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents:
22153
diff
changeset
|
1351 (defun register-input-method (input-method lang-env &rest args) |
36732
326d93c83808
(register-input-method): Doc fix.
Kenichi Handa <handa@m17n.org>
parents:
36528
diff
changeset
|
1352 "Register INPUT-METHOD as an input method for language environment LANG-ENV. |
74523
d3e5cb1aa5b6
(register-input-method): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
73819
diff
changeset
|
1353 |
22200
a0d60a6c87da
(register-input-method): Rename arg ENV to LANG-ENV. Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents:
22153
diff
changeset
|
1354 INPUT-METHOD and LANG-ENV are symbols or strings. |
22153 | 1355 ACTIVATE-FUNC is a function to call to activate this method. |
1356 TITLE is a string to show in the mode line when this method is active. | |
1357 DESCRIPTION is a string describing this method and what it is good for. | |
1358 The ARGS, if any, are passed as arguments to ACTIVATE-FUNC. | |
23168
ff3750779f48
(register-input-method): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
23165
diff
changeset
|
1359 All told, the arguments to ACTIVATE-FUNC are INPUT-METHOD and the ARGS. |
ff3750779f48
(register-input-method): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
23165
diff
changeset
|
1360 |
36464 | 1361 This function is mainly used in the file \"leim-list.el\" which is |
1362 created at Emacs build time, registering all Quail input methods | |
36261 | 1363 contained in the Emacs distribution. |
23168
ff3750779f48
(register-input-method): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
23165
diff
changeset
|
1364 |
36261 | 1365 In case you want to register a new Quail input method by yourself, be |
23168
ff3750779f48
(register-input-method): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
23165
diff
changeset
|
1366 careful to use the same input method title as given in the third |
36261 | 1367 parameter of `quail-define-package'. (If the values are different, the |
1368 string specified in this function takes precedence.) | |
23168
ff3750779f48
(register-input-method): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
23165
diff
changeset
|
1369 |
ff3750779f48
(register-input-method): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
23165
diff
changeset
|
1370 The commands `describe-input-method' and `list-input-methods' need |
36261 | 1371 these duplicated values to show some information about input methods |
74523
d3e5cb1aa5b6
(register-input-method): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
73819
diff
changeset
|
1372 without loading the relevant Quail packages. |
d3e5cb1aa5b6
(register-input-method): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
73819
diff
changeset
|
1373 \n(fn INPUT-METHOD LANG-ENV ACTIVATE-FUNC TITLE DESCRIPTION &rest ARGS)" |
22200
a0d60a6c87da
(register-input-method): Rename arg ENV to LANG-ENV. Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents:
22153
diff
changeset
|
1374 (if (symbolp lang-env) |
105947
6bc99fd16720
* international/mule-cmds.el (register-input-method); Purecopy arguments.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105941
diff
changeset
|
1375 (setq lang-env (symbol-name lang-env)) |
6bc99fd16720
* international/mule-cmds.el (register-input-method); Purecopy arguments.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105941
diff
changeset
|
1376 (setq lang-env (purecopy lang-env))) |
19649
b2bf3c43c86a
(get-language-info): Accept a symbol
Kenichi Handa <handa@m17n.org>
parents:
19615
diff
changeset
|
1377 (if (symbolp input-method) |
105947
6bc99fd16720
* international/mule-cmds.el (register-input-method); Purecopy arguments.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105941
diff
changeset
|
1378 (setq input-method (symbol-name input-method)) |
6bc99fd16720
* international/mule-cmds.el (register-input-method); Purecopy arguments.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105941
diff
changeset
|
1379 (setq input-method (purecopy input-method))) |
6bc99fd16720
* international/mule-cmds.el (register-input-method); Purecopy arguments.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105941
diff
changeset
|
1380 (setq args (mapcar 'purecopy args)) |
22200
a0d60a6c87da
(register-input-method): Rename arg ENV to LANG-ENV. Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents:
22153
diff
changeset
|
1381 (let ((info (cons lang-env args)) |
18301
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1382 (slot (assoc input-method input-method-alist))) |
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1383 (if slot |
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1384 (setcdr slot info) |
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1385 (setq slot (cons input-method info)) |
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1386 (setq input-method-alist (cons slot input-method-alist))))) |
17052 | 1387 |
19328
a616b45ffa31
(read-input-method-name): Replace INITIAL-INPUT arg with DEFAULT arg.
Richard M. Stallman <rms@gnu.org>
parents:
19267
diff
changeset
|
1388 (defun read-input-method-name (prompt &optional default inhibit-null) |
18301
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1389 "Read a name of input method from a minibuffer prompting with PROMPT. |
19328
a616b45ffa31
(read-input-method-name): Replace INITIAL-INPUT arg with DEFAULT arg.
Richard M. Stallman <rms@gnu.org>
parents:
19267
diff
changeset
|
1390 If DEFAULT is non-nil, use that as the default, |
36261 | 1391 and substitute it into PROMPT at the first `%s'. |
19649
b2bf3c43c86a
(get-language-info): Accept a symbol
Kenichi Handa <handa@m17n.org>
parents:
19615
diff
changeset
|
1392 If INHIBIT-NULL is non-nil, null input signals an error. |
b2bf3c43c86a
(get-language-info): Accept a symbol
Kenichi Handa <handa@m17n.org>
parents:
19615
diff
changeset
|
1393 |
b2bf3c43c86a
(get-language-info): Accept a symbol
Kenichi Handa <handa@m17n.org>
parents:
19615
diff
changeset
|
1394 The return value is a string." |
19328
a616b45ffa31
(read-input-method-name): Replace INITIAL-INPUT arg with DEFAULT arg.
Richard M. Stallman <rms@gnu.org>
parents:
19267
diff
changeset
|
1395 (if default |
a616b45ffa31
(read-input-method-name): Replace INITIAL-INPUT arg with DEFAULT arg.
Richard M. Stallman <rms@gnu.org>
parents:
19267
diff
changeset
|
1396 (setq prompt (format prompt default))) |
18301
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1397 (let* ((completion-ignore-case t) |
36863
247618d8fd9d
(read-input-method-name): Locally
Kenichi Handa <handa@m17n.org>
parents:
36836
diff
changeset
|
1398 ;; As it is quite normal to change input method in the |
247618d8fd9d
(read-input-method-name): Locally
Kenichi Handa <handa@m17n.org>
parents:
36836
diff
changeset
|
1399 ;; minibuffer, we must enable it even if |
247618d8fd9d
(read-input-method-name): Locally
Kenichi Handa <handa@m17n.org>
parents:
36836
diff
changeset
|
1400 ;; enable-recursive-minibuffers is currently nil. |
247618d8fd9d
(read-input-method-name): Locally
Kenichi Handa <handa@m17n.org>
parents:
36836
diff
changeset
|
1401 (enable-recursive-minibuffers t) |
19405
7ef4af7505f2
(previous-input-method): This
Kenichi Handa <handa@m17n.org>
parents:
19402
diff
changeset
|
1402 ;; This binding is necessary because input-method-history is |
7ef4af7505f2
(previous-input-method): This
Kenichi Handa <handa@m17n.org>
parents:
19402
diff
changeset
|
1403 ;; buffer local. |
18301
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1404 (input-method (completing-read prompt input-method-alist |
19748
06cbad2e806a
(read-input-method-name): Specify the input history properly.
Richard M. Stallman <rms@gnu.org>
parents:
19746
diff
changeset
|
1405 nil t nil 'input-method-history |
06cbad2e806a
(read-input-method-name): Specify the input history properly.
Richard M. Stallman <rms@gnu.org>
parents:
19746
diff
changeset
|
1406 default))) |
26190
598f252b76f2
(read-input-method-name): Handle the
Kenichi Handa <handa@m17n.org>
parents:
26139
diff
changeset
|
1407 (if (and input-method (symbolp input-method)) |
598f252b76f2
(read-input-method-name): Handle the
Kenichi Handa <handa@m17n.org>
parents:
26139
diff
changeset
|
1408 (setq input-method (symbol-name input-method))) |
18301
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1409 (if (> (length input-method) 0) |
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1410 input-method |
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1411 (if inhibit-null |
18978
0f01c27a9756
(read-input-method-name): Show more appropriate error message.
Kenichi Handa <handa@m17n.org>
parents:
18969
diff
changeset
|
1412 (error "No valid input method is specified"))))) |
17052 | 1413 |
18301
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1414 (defun activate-input-method (input-method) |
22153 | 1415 "Switch to input method INPUT-METHOD for the current buffer. |
1416 If some other input method is already active, turn it off first. | |
1417 If INPUT-METHOD is nil, deactivate any current input method." | |
23049
82a27d5b4582
(activate-input-method): Handle the
Kenichi Handa <handa@m17n.org>
parents:
23044
diff
changeset
|
1418 (if (and input-method (symbolp input-method)) |
19649
b2bf3c43c86a
(get-language-info): Accept a symbol
Kenichi Handa <handa@m17n.org>
parents:
19615
diff
changeset
|
1419 (setq input-method (symbol-name input-method))) |
19405
7ef4af7505f2
(previous-input-method): This
Kenichi Handa <handa@m17n.org>
parents:
19402
diff
changeset
|
1420 (if (and current-input-method |
7ef4af7505f2
(previous-input-method): This
Kenichi Handa <handa@m17n.org>
parents:
19402
diff
changeset
|
1421 (not (string= current-input-method input-method))) |
23049
82a27d5b4582
(activate-input-method): Handle the
Kenichi Handa <handa@m17n.org>
parents:
23044
diff
changeset
|
1422 (inactivate-input-method)) |
22153 | 1423 (unless (or current-input-method (null input-method)) |
18301
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1424 (let ((slot (assoc input-method input-method-alist))) |
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1425 (if (null slot) |
19405
7ef4af7505f2
(previous-input-method): This
Kenichi Handa <handa@m17n.org>
parents:
19402
diff
changeset
|
1426 (error "Can't activate input method `%s'" input-method)) |
36528
355bbea5a6cd
(activate-input-method): If current-input-method-title is set by
Kenichi Handa <handa@m17n.org>
parents:
36464
diff
changeset
|
1427 (setq current-input-method-title nil) |
20165
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1428 (let ((func (nth 2 slot))) |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1429 (if (functionp func) |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1430 (apply (nth 2 slot) input-method (nthcdr 5 slot)) |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1431 (if (and (consp func) (symbolp (car func)) (symbolp (cdr func))) |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1432 (progn |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1433 (require (cdr func)) |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1434 (apply (car func) input-method (nthcdr 5 slot))) |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1435 (error "Can't activate input method `%s'" input-method)))) |
18301
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1436 (setq current-input-method input-method) |
36528
355bbea5a6cd
(activate-input-method): If current-input-method-title is set by
Kenichi Handa <handa@m17n.org>
parents:
36464
diff
changeset
|
1437 (or (stringp current-input-method-title) |
355bbea5a6cd
(activate-input-method): If current-input-method-title is set by
Kenichi Handa <handa@m17n.org>
parents:
36464
diff
changeset
|
1438 (setq current-input-method-title (nth 3 slot))) |
22854
dd7dcda2d47b
(activate-input-method): Update mode line.
Kenichi Handa <handa@m17n.org>
parents:
22815
diff
changeset
|
1439 (unwind-protect |
dd7dcda2d47b
(activate-input-method): Update mode line.
Kenichi Handa <handa@m17n.org>
parents:
22815
diff
changeset
|
1440 (run-hooks 'input-method-activate-hook) |
dd7dcda2d47b
(activate-input-method): Update mode line.
Kenichi Handa <handa@m17n.org>
parents:
22815
diff
changeset
|
1441 (force-mode-line-update))))) |
17991
65407fdc4a33
Delete defining "i" in mule-keymap.
Kenichi Handa <handa@m17n.org>
parents:
17840
diff
changeset
|
1442 |
65407fdc4a33
Delete defining "i" in mule-keymap.
Kenichi Handa <handa@m17n.org>
parents:
17840
diff
changeset
|
1443 (defun inactivate-input-method () |
19555
df2996f7fdc3
(inactivate-current-input-method-function): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
19424
diff
changeset
|
1444 "Turn off the current input method." |
19405
7ef4af7505f2
(previous-input-method): This
Kenichi Handa <handa@m17n.org>
parents:
19402
diff
changeset
|
1445 (when current-input-method |
7ef4af7505f2
(previous-input-method): This
Kenichi Handa <handa@m17n.org>
parents:
19402
diff
changeset
|
1446 (if input-method-history |
7ef4af7505f2
(previous-input-method): This
Kenichi Handa <handa@m17n.org>
parents:
19402
diff
changeset
|
1447 (unless (string= current-input-method (car input-method-history)) |
7ef4af7505f2
(previous-input-method): This
Kenichi Handa <handa@m17n.org>
parents:
19402
diff
changeset
|
1448 (setq input-method-history |
7ef4af7505f2
(previous-input-method): This
Kenichi Handa <handa@m17n.org>
parents:
19402
diff
changeset
|
1449 (cons current-input-method |
7ef4af7505f2
(previous-input-method): This
Kenichi Handa <handa@m17n.org>
parents:
19402
diff
changeset
|
1450 (delete current-input-method input-method-history)))) |
7ef4af7505f2
(previous-input-method): This
Kenichi Handa <handa@m17n.org>
parents:
19402
diff
changeset
|
1451 (setq input-method-history (list current-input-method))) |
7ef4af7505f2
(previous-input-method): This
Kenichi Handa <handa@m17n.org>
parents:
19402
diff
changeset
|
1452 (unwind-protect |
91016
a4a3332d6583
(inactivate-input-method): Set
Kenichi Handa <handa@m17n.org>
parents:
91005
diff
changeset
|
1453 (progn |
a4a3332d6583
(inactivate-input-method): Set
Kenichi Handa <handa@m17n.org>
parents:
91005
diff
changeset
|
1454 (setq input-method-function nil |
a4a3332d6583
(inactivate-input-method): Set
Kenichi Handa <handa@m17n.org>
parents:
91005
diff
changeset
|
1455 current-input-method-title nil) |
a4a3332d6583
(inactivate-input-method): Set
Kenichi Handa <handa@m17n.org>
parents:
91005
diff
changeset
|
1456 (funcall inactivate-current-input-method-function)) |
17991
65407fdc4a33
Delete defining "i" in mule-keymap.
Kenichi Handa <handa@m17n.org>
parents:
17840
diff
changeset
|
1457 (unwind-protect |
19405
7ef4af7505f2
(previous-input-method): This
Kenichi Handa <handa@m17n.org>
parents:
19402
diff
changeset
|
1458 (run-hooks 'input-method-inactivate-hook) |
91016
a4a3332d6583
(inactivate-input-method): Set
Kenichi Handa <handa@m17n.org>
parents:
91005
diff
changeset
|
1459 (setq current-input-method nil) |
22854
dd7dcda2d47b
(activate-input-method): Update mode line.
Kenichi Handa <handa@m17n.org>
parents:
22815
diff
changeset
|
1460 (force-mode-line-update))))) |
17052 | 1461 |
57932
93792c00945b
(set-input-method, toggle-input-method):
Richard M. Stallman <rms@gnu.org>
parents:
56040
diff
changeset
|
1462 (defun set-input-method (input-method &optional interactive) |
22153 | 1463 "Select and activate input method INPUT-METHOD for the current buffer. |
36051
781f426b26c5
(set-input-method): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents:
35556
diff
changeset
|
1464 This also sets the default input method to the one you specify. |
36074
89518bb0ddaa
(set-input-method): Another doc fix.
Eli Zaretskii <eliz@gnu.org>
parents:
36051
diff
changeset
|
1465 If INPUT-METHOD is nil, this function turns off the input method, and |
89518bb0ddaa
(set-input-method): Another doc fix.
Eli Zaretskii <eliz@gnu.org>
parents:
36051
diff
changeset
|
1466 also causes you to be prompted for a name of an input method the next |
89518bb0ddaa
(set-input-method): Another doc fix.
Eli Zaretskii <eliz@gnu.org>
parents:
36051
diff
changeset
|
1467 time you invoke \\[toggle-input-method]. |
57932
93792c00945b
(set-input-method, toggle-input-method):
Richard M. Stallman <rms@gnu.org>
parents:
56040
diff
changeset
|
1468 When called interactively, the optional arg INTERACTIVE is non-nil, |
93792c00945b
(set-input-method, toggle-input-method):
Richard M. Stallman <rms@gnu.org>
parents:
56040
diff
changeset
|
1469 which marks the variable `default-input-method' as set for Custom buffers. |
36074
89518bb0ddaa
(set-input-method): Another doc fix.
Eli Zaretskii <eliz@gnu.org>
parents:
36051
diff
changeset
|
1470 |
36051
781f426b26c5
(set-input-method): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents:
35556
diff
changeset
|
1471 To deactivate the input method interactively, use \\[toggle-input-method]. |
77918
80ba9b48c547
(toggle-enable-multibyte-characters, sort-coding-systems,
Juanma Barranquero <lekktu@gmail.com>
parents:
76003
diff
changeset
|
1472 To deactivate it programmatically, use `inactivate-input-method'." |
18301
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1473 (interactive |
19405
7ef4af7505f2
(previous-input-method): This
Kenichi Handa <handa@m17n.org>
parents:
19402
diff
changeset
|
1474 (let* ((default (or (car input-method-history) default-input-method))) |
19402 | 1475 (list (read-input-method-name |
19748
06cbad2e806a
(read-input-method-name): Specify the input history properly.
Richard M. Stallman <rms@gnu.org>
parents:
19746
diff
changeset
|
1476 (if default "Select input method (default %s): " "Select input method: ") |
57932
93792c00945b
(set-input-method, toggle-input-method):
Richard M. Stallman <rms@gnu.org>
parents:
56040
diff
changeset
|
1477 default t) |
93792c00945b
(set-input-method, toggle-input-method):
Richard M. Stallman <rms@gnu.org>
parents:
56040
diff
changeset
|
1478 t))) |
18301
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1479 (activate-input-method input-method) |
43252
bccb026d40e4
2002-02-12 Per Abrahamsen <abraham@dina.kvl.dk>
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
43182
diff
changeset
|
1480 (setq default-input-method input-method) |
57932
93792c00945b
(set-input-method, toggle-input-method):
Richard M. Stallman <rms@gnu.org>
parents:
56040
diff
changeset
|
1481 (when interactive |
43252
bccb026d40e4
2002-02-12 Per Abrahamsen <abraham@dina.kvl.dk>
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
43182
diff
changeset
|
1482 (customize-mark-as-set 'default-input-method)) |
bccb026d40e4
2002-02-12 Per Abrahamsen <abraham@dina.kvl.dk>
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
43182
diff
changeset
|
1483 default-input-method) |
17052 | 1484 |
79505
42b98dfc31f6
(toggle-input-method-active): New var.
Richard M. Stallman <rms@gnu.org>
parents:
79441
diff
changeset
|
1485 (defvar toggle-input-method-active nil |
42b98dfc31f6
(toggle-input-method-active): New var.
Richard M. Stallman <rms@gnu.org>
parents:
79441
diff
changeset
|
1486 "Non-nil inside `toggle-input-method'.") |
42b98dfc31f6
(toggle-input-method-active): New var.
Richard M. Stallman <rms@gnu.org>
parents:
79441
diff
changeset
|
1487 |
57932
93792c00945b
(set-input-method, toggle-input-method):
Richard M. Stallman <rms@gnu.org>
parents:
56040
diff
changeset
|
1488 (defun toggle-input-method (&optional arg interactive) |
36083
e9191d28ed86
(toggle-input-method): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
36074
diff
changeset
|
1489 "Enable or disable multilingual text input method for the current buffer. |
e9191d28ed86
(toggle-input-method): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
36074
diff
changeset
|
1490 Only one input method can be enabled at any time in a given buffer. |
19405
7ef4af7505f2
(previous-input-method): This
Kenichi Handa <handa@m17n.org>
parents:
19402
diff
changeset
|
1491 |
99682
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
1492 The normal action is to enable an input method if none was enabled, |
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
1493 and disable the current one otherwise. Which input method to enable |
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
1494 can be determined in various ways--either the one most recently used, |
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
1495 or the one specified by `default-input-method', or as a last resort |
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
1496 by reading the name of an input method in the minibuffer. |
19405
7ef4af7505f2
(previous-input-method): This
Kenichi Handa <handa@m17n.org>
parents:
19402
diff
changeset
|
1497 |
99682
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
1498 With a prefix argument ARG, read an input method name with the minibuffer |
36083
e9191d28ed86
(toggle-input-method): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
36074
diff
changeset
|
1499 and enable that one. The default is the most recent input method specified |
57932
93792c00945b
(set-input-method, toggle-input-method):
Richard M. Stallman <rms@gnu.org>
parents:
56040
diff
changeset
|
1500 \(not including the currently active input method, if any). |
19405
7ef4af7505f2
(previous-input-method): This
Kenichi Handa <handa@m17n.org>
parents:
19402
diff
changeset
|
1501 |
99682
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
1502 When called interactively, the optional argument INTERACTIVE is non-nil, |
57932
93792c00945b
(set-input-method, toggle-input-method):
Richard M. Stallman <rms@gnu.org>
parents:
56040
diff
changeset
|
1503 which marks the variable `default-input-method' as set for Custom buffers." |
93792c00945b
(set-input-method, toggle-input-method):
Richard M. Stallman <rms@gnu.org>
parents:
56040
diff
changeset
|
1504 |
93792c00945b
(set-input-method, toggle-input-method):
Richard M. Stallman <rms@gnu.org>
parents:
56040
diff
changeset
|
1505 (interactive "P\np") |
79505
42b98dfc31f6
(toggle-input-method-active): New var.
Richard M. Stallman <rms@gnu.org>
parents:
79441
diff
changeset
|
1506 (if toggle-input-method-active |
42b98dfc31f6
(toggle-input-method-active): New var.
Richard M. Stallman <rms@gnu.org>
parents:
79441
diff
changeset
|
1507 (error "Recursive use of `toggle-input-method'")) |
21983
487cd71c058d
(toggle-input-method): Use a more
Richard M. Stallman <rms@gnu.org>
parents:
21882
diff
changeset
|
1508 (if (and current-input-method (not arg)) |
487cd71c058d
(toggle-input-method): Use a more
Richard M. Stallman <rms@gnu.org>
parents:
21882
diff
changeset
|
1509 (inactivate-input-method) |
79505
42b98dfc31f6
(toggle-input-method-active): New var.
Richard M. Stallman <rms@gnu.org>
parents:
79441
diff
changeset
|
1510 (let ((toggle-input-method-active t) |
42b98dfc31f6
(toggle-input-method-active): New var.
Richard M. Stallman <rms@gnu.org>
parents:
79441
diff
changeset
|
1511 (default (or (car input-method-history) default-input-method))) |
21983
487cd71c058d
(toggle-input-method): Use a more
Richard M. Stallman <rms@gnu.org>
parents:
21882
diff
changeset
|
1512 (if (and arg default (equal current-input-method default) |
487cd71c058d
(toggle-input-method): Use a more
Richard M. Stallman <rms@gnu.org>
parents:
21882
diff
changeset
|
1513 (> (length input-method-history) 1)) |
487cd71c058d
(toggle-input-method): Use a more
Richard M. Stallman <rms@gnu.org>
parents:
21882
diff
changeset
|
1514 (setq default (nth 1 input-method-history))) |
19405
7ef4af7505f2
(previous-input-method): This
Kenichi Handa <handa@m17n.org>
parents:
19402
diff
changeset
|
1515 (activate-input-method |
7ef4af7505f2
(previous-input-method): This
Kenichi Handa <handa@m17n.org>
parents:
19402
diff
changeset
|
1516 (if (or arg (not default)) |
21983
487cd71c058d
(toggle-input-method): Use a more
Richard M. Stallman <rms@gnu.org>
parents:
21882
diff
changeset
|
1517 (progn |
487cd71c058d
(toggle-input-method): Use a more
Richard M. Stallman <rms@gnu.org>
parents:
21882
diff
changeset
|
1518 (read-input-method-name |
487cd71c058d
(toggle-input-method): Use a more
Richard M. Stallman <rms@gnu.org>
parents:
21882
diff
changeset
|
1519 (if default "Input method (default %s): " "Input method: " ) |
487cd71c058d
(toggle-input-method): Use a more
Richard M. Stallman <rms@gnu.org>
parents:
21882
diff
changeset
|
1520 default t)) |
19405
7ef4af7505f2
(previous-input-method): This
Kenichi Handa <handa@m17n.org>
parents:
19402
diff
changeset
|
1521 default)) |
43252
bccb026d40e4
2002-02-12 Per Abrahamsen <abraham@dina.kvl.dk>
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
43182
diff
changeset
|
1522 (unless default-input-method |
46674 | 1523 (prog1 |
43252
bccb026d40e4
2002-02-12 Per Abrahamsen <abraham@dina.kvl.dk>
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
43182
diff
changeset
|
1524 (setq default-input-method current-input-method) |
57932
93792c00945b
(set-input-method, toggle-input-method):
Richard M. Stallman <rms@gnu.org>
parents:
56040
diff
changeset
|
1525 (when interactive |
43252
bccb026d40e4
2002-02-12 Per Abrahamsen <abraham@dina.kvl.dk>
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
43182
diff
changeset
|
1526 (customize-mark-as-set 'default-input-method))))))) |
17052 | 1527 |
95622
b4f1005a6470
Remove unnecessary eval-when-compiles.
Glenn Morris <rgm@gnu.org>
parents:
94953
diff
changeset
|
1528 (autoload 'help-buffer "help-mode") |
88654
ce18173db20e
(describe-language-environment): Use
Dave Love <fx@gnu.org>
parents:
88649
diff
changeset
|
1529 |
18301
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1530 (defun describe-input-method (input-method) |
22153 | 1531 "Describe input method INPUT-METHOD." |
18301
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1532 (interactive |
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1533 (list (read-input-method-name |
65680
ed770a0a7846
2005-09-24 Emilio C. Lopes <eclig@gmx.net>
Romain Francoise <romain@orebokech.com>
parents:
65652
diff
changeset
|
1534 "Describe input method (default current choice): "))) |
19653
431753f747ea
(describe-input-method): Fix previous
Kenichi Handa <handa@m17n.org>
parents:
19649
diff
changeset
|
1535 (if (and input-method (symbolp input-method)) |
19649
b2bf3c43c86a
(get-language-info): Accept a symbol
Kenichi Handa <handa@m17n.org>
parents:
19615
diff
changeset
|
1536 (setq input-method (symbol-name input-method))) |
43310 | 1537 (help-setup-xref (list #'describe-input-method |
1538 (or input-method current-input-method)) | |
105372
bd2966850aac
Use `called-interactively-p' instead of `interactive-p'.
Juanma Barranquero <lekktu@gmail.com>
parents:
104960
diff
changeset
|
1539 (called-interactively-p 'interactive)) |
43078
61ad8f29fefa
(describe-input-method): Call help-setup-xref here.
Richard M. Stallman <rms@gnu.org>
parents:
42734
diff
changeset
|
1540 |
18301
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1541 (if (null input-method) |
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1542 (describe-current-input-method) |
31245
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
1543 (let ((current current-input-method)) |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
1544 (condition-case nil |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
1545 (progn |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
1546 (save-excursion |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
1547 (activate-input-method input-method) |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
1548 (describe-current-input-method)) |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
1549 (activate-input-method current)) |
46674 | 1550 (error |
31245
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
1551 (activate-input-method current) |
41126
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
1552 (help-setup-xref (list #'describe-input-method input-method) |
105372
bd2966850aac
Use `called-interactively-p' instead of `interactive-p'.
Juanma Barranquero <lekktu@gmail.com>
parents:
104960
diff
changeset
|
1553 (called-interactively-p 'interactive)) |
41126
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
1554 (with-output-to-temp-buffer (help-buffer) |
31245
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
1555 (let ((elt (assoc input-method input-method-alist))) |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
1556 (princ (format |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
1557 "Input method: %s (`%s' in mode line) for %s\n %s\n" |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
1558 input-method (nth 3 elt) (nth 1 elt) (nth 4 elt)))))))))) |
18301
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1559 |
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1560 (defun describe-current-input-method () |
43078
61ad8f29fefa
(describe-input-method): Call help-setup-xref here.
Richard M. Stallman <rms@gnu.org>
parents:
42734
diff
changeset
|
1561 "Describe the input method currently in use. |
61ad8f29fefa
(describe-input-method): Call help-setup-xref here.
Richard M. Stallman <rms@gnu.org>
parents:
42734
diff
changeset
|
1562 This is a subroutine for `describe-input-method'." |
17052 | 1563 (if current-input-method |
1564 (if (and (symbolp describe-current-input-method-function) | |
1565 (fboundp describe-current-input-method-function)) | |
1566 (funcall describe-current-input-method-function) | |
1567 (message "No way to describe the current input method `%s'" | |
24864
21f620ad347e
(describe-current-input-method):
Kenichi Handa <handa@m17n.org>
parents:
24781
diff
changeset
|
1568 current-input-method) |
17052 | 1569 (ding)) |
18301
a4da36c7bb08
Define describe-coding-system instead of
Kenichi Handa <handa@m17n.org>
parents:
18217
diff
changeset
|
1570 (error "No input method is activated now"))) |
17052 | 1571 |
20116
8c1995cc7702
(read-multilingual-string): Use
Kenichi Handa <handa@m17n.org>
parents:
20091
diff
changeset
|
1572 (defun read-multilingual-string (prompt &optional initial-input input-method) |
17052 | 1573 "Read a multilingual string from minibuffer, prompting with string PROMPT. |
1574 The input method selected last time is activated in minibuffer. | |
99682
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
1575 If optional second argument INITIAL-INPUT is non-nil, insert it in the |
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
1576 minibuffer initially. |
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
1577 Optional 3rd argument INPUT-METHOD specifies the input method to be activated |
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
1578 instead of the one selected last time. It is a symbol or a string." |
18712
7366898bee9e
(read-multilingual-string): Adjusted
Kenichi Handa <handa@m17n.org>
parents:
18634
diff
changeset
|
1579 (setq input-method |
7366898bee9e
(read-multilingual-string): Adjusted
Kenichi Handa <handa@m17n.org>
parents:
18634
diff
changeset
|
1580 (or input-method |
20116
8c1995cc7702
(read-multilingual-string): Use
Kenichi Handa <handa@m17n.org>
parents:
20091
diff
changeset
|
1581 current-input-method |
18712
7366898bee9e
(read-multilingual-string): Adjusted
Kenichi Handa <handa@m17n.org>
parents:
18634
diff
changeset
|
1582 default-input-method |
7366898bee9e
(read-multilingual-string): Adjusted
Kenichi Handa <handa@m17n.org>
parents:
18634
diff
changeset
|
1583 (read-input-method-name "Input method: " nil t))) |
19654
4c0174fcf26c
(read-multilingual-string): Fix previous change.
Kenichi Handa <handa@m17n.org>
parents:
19653
diff
changeset
|
1584 (if (and input-method (symbolp input-method)) |
19649
b2bf3c43c86a
(get-language-info): Accept a symbol
Kenichi Handa <handa@m17n.org>
parents:
19615
diff
changeset
|
1585 (setq input-method (symbol-name input-method))) |
23049
82a27d5b4582
(activate-input-method): Handle the
Kenichi Handa <handa@m17n.org>
parents:
23044
diff
changeset
|
1586 (let ((prev-input-method current-input-method)) |
82a27d5b4582
(activate-input-method): Handle the
Kenichi Handa <handa@m17n.org>
parents:
23044
diff
changeset
|
1587 (unwind-protect |
82a27d5b4582
(activate-input-method): Handle the
Kenichi Handa <handa@m17n.org>
parents:
23044
diff
changeset
|
1588 (progn |
82a27d5b4582
(activate-input-method): Handle the
Kenichi Handa <handa@m17n.org>
parents:
23044
diff
changeset
|
1589 (activate-input-method input-method) |
82a27d5b4582
(activate-input-method): Handle the
Kenichi Handa <handa@m17n.org>
parents:
23044
diff
changeset
|
1590 (read-string prompt initial-input nil nil t)) |
82a27d5b4582
(activate-input-method): Handle the
Kenichi Handa <handa@m17n.org>
parents:
23044
diff
changeset
|
1591 (activate-input-method prev-input-method)))) |
17052 | 1592 |
1593 ;; Variables to control behavior of input methods. All input methods | |
1594 ;; should react to these variables. | |
1595 | |
20165
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1596 (defcustom input-method-verbose-flag 'default |
90861
4f7df84e666c
(toggle-enable-multibyte-characters, sort-coding-systems,
Juanma Barranquero <lekktu@gmail.com>
parents:
90776
diff
changeset
|
1597 "A flag to control extra guidance given by input methods. |
20165
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1598 The value should be nil, t, `complex-only', or `default'. |
17052 | 1599 |
19917
834c629f9220
(select-input-method): No error if enable-multibyte-characters is nil.
Richard M. Stallman <rms@gnu.org>
parents:
19848
diff
changeset
|
1600 The extra guidance is done by showing list of available keys in echo |
20165
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1601 area. When you use the input method in the minibuffer, the guidance |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1602 is shown at the bottom short window (split from the existing window). |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1603 |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1604 If the value is t, extra guidance is always given, if the value is |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1605 nil, extra guidance is always suppressed. |
19848
68c5c0b3ed0d
(input-method-verbose-flag):
Kenichi Handa <handa@m17n.org>
parents:
19798
diff
changeset
|
1606 |
20165
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1607 If the value is `complex-only', only complex input methods such as |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1608 `chinese-py' and `japanese' give extra guidance. |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1609 |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1610 If the value is `default', complex input methods always give extra |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1611 guidance, but simple input methods give it only when you are not in |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1612 the minibuffer. |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1613 |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1614 See also the variable `input-method-highlight-flag'." |
46674 | 1615 :type '(choice (const :tag "Always" t) (const :tag "Never" nil) |
1616 (const complex-only) (const default)) | |
19402 | 1617 :group 'mule) |
1618 | |
1619 (defcustom input-method-highlight-flag t | |
90861
4f7df84e666c
(toggle-enable-multibyte-characters, sort-coding-systems,
Juanma Barranquero <lekktu@gmail.com>
parents:
90776
diff
changeset
|
1620 "If this flag is non-nil, input methods highlight partially-entered text. |
19402 | 1621 For instance, while you are in the middle of a Quail input method sequence, |
1622 the text inserted so far is temporarily underlined. | |
20165
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1623 The underlining goes away when you finish or abort the input method sequence. |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1624 See also the variable `input-method-verbose-flag'." |
19402 | 1625 :type 'boolean |
1626 :group 'mule) | |
17052 | 1627 |
89092
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
1628 (defcustom input-method-activate-hook nil |
19555
df2996f7fdc3
(inactivate-current-input-method-function): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
19424
diff
changeset
|
1629 "Normal hook run just after an input method is activated. |
df2996f7fdc3
(inactivate-current-input-method-function): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
19424
diff
changeset
|
1630 |
df2996f7fdc3
(inactivate-current-input-method-function): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
19424
diff
changeset
|
1631 The variable `current-input-method' keeps the input method name |
89092
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
1632 just activated." |
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
1633 :type 'hook |
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
1634 :group 'mule) |
17052 | 1635 |
89092
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
1636 (defcustom input-method-inactivate-hook nil |
19555
df2996f7fdc3
(inactivate-current-input-method-function): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
19424
diff
changeset
|
1637 "Normal hook run just after an input method is inactivated. |
df2996f7fdc3
(inactivate-current-input-method-function): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
19424
diff
changeset
|
1638 |
df2996f7fdc3
(inactivate-current-input-method-function): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
19424
diff
changeset
|
1639 The variable `current-input-method' still keeps the input method name |
89092
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
1640 just inactivated." |
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
1641 :type 'hook |
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
1642 :group 'mule) |
17052 | 1643 |
89092
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
1644 (defcustom input-method-after-insert-chunk-hook nil |
89483 | 1645 "Normal hook run just after an input method insert some chunk of text." |
89092
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
1646 :type 'hook |
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
1647 :group 'mule) |
17052 | 1648 |
22918
776bc4293c87
(input-method-exit-on-first-char):
Kenichi Handa <handa@m17n.org>
parents:
22899
diff
changeset
|
1649 (defvar input-method-exit-on-first-char nil |
36261 | 1650 "This flag controls when an input method returns. |
22918
776bc4293c87
(input-method-exit-on-first-char):
Kenichi Handa <handa@m17n.org>
parents:
22899
diff
changeset
|
1651 Usually, the input method does not return while there's a possibility |
776bc4293c87
(input-method-exit-on-first-char):
Kenichi Handa <handa@m17n.org>
parents:
22899
diff
changeset
|
1652 that it may find a different translation if a user types another key. |
99682
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
1653 But, if this flag is non-nil, the input method returns as soon as the |
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
1654 current key sequence gets long enough to have some valid translation.") |
22918
776bc4293c87
(input-method-exit-on-first-char):
Kenichi Handa <handa@m17n.org>
parents:
22899
diff
changeset
|
1655 |
89092
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
1656 (defcustom input-method-use-echo-area nil |
22918
776bc4293c87
(input-method-exit-on-first-char):
Kenichi Handa <handa@m17n.org>
parents:
22899
diff
changeset
|
1657 "This flag controls how an input method shows an intermediate key sequence. |
22948
e259bed9247e
(input-method-exit-on-first-char)
Richard M. Stallman <rms@gnu.org>
parents:
22918
diff
changeset
|
1658 Usually, the input method inserts the intermediate key sequence, |
e259bed9247e
(input-method-exit-on-first-char)
Richard M. Stallman <rms@gnu.org>
parents:
22918
diff
changeset
|
1659 or candidate translations corresponding to the sequence, |
e259bed9247e
(input-method-exit-on-first-char)
Richard M. Stallman <rms@gnu.org>
parents:
22918
diff
changeset
|
1660 at point in the current buffer. |
89092
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
1661 But, if this flag is non-nil, it displays them in echo area instead." |
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
1662 :type 'hook |
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
1663 :group 'mule) |
22918
776bc4293c87
(input-method-exit-on-first-char):
Kenichi Handa <handa@m17n.org>
parents:
22899
diff
changeset
|
1664 |
19405
7ef4af7505f2
(previous-input-method): This
Kenichi Handa <handa@m17n.org>
parents:
19402
diff
changeset
|
1665 (defvar input-method-exit-on-invalid-key nil |
63269
f5860b9ada9c
(select-safe-coding-system-accept-default-p, input-method-exit-on-invalid-key):
Juanma Barranquero <lekktu@gmail.com>
parents:
62274
diff
changeset
|
1666 "This flag controls the behavior of an input method on invalid key input. |
19405
7ef4af7505f2
(previous-input-method): This
Kenichi Handa <handa@m17n.org>
parents:
19402
diff
changeset
|
1667 Usually, when a user types a key which doesn't start any character |
7ef4af7505f2
(previous-input-method): This
Kenichi Handa <handa@m17n.org>
parents:
19402
diff
changeset
|
1668 handled by the input method, the key is handled by turning off the |
23196 | 1669 input method temporarily. After that key, the input method is re-enabled. |
19405
7ef4af7505f2
(previous-input-method): This
Kenichi Handa <handa@m17n.org>
parents:
19402
diff
changeset
|
1670 But, if this flag is non-nil, the input method is never back on.") |
7ef4af7505f2
(previous-input-method): This
Kenichi Handa <handa@m17n.org>
parents:
19402
diff
changeset
|
1671 |
17052 | 1672 |
89092
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
1673 (defcustom set-language-environment-hook nil |
20165
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1674 "Normal hook run after some language environment is set. |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1675 |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1676 When you set some hook function here, that effect usually should not |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1677 be inherited to another language environment. So, you had better set |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1678 another function in `exit-language-environment-hook' (which see) to |
89092
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
1679 cancel the effect." |
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
1680 :type 'hook |
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
1681 :group 'mule) |
20165
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1682 |
89092
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
1683 (defcustom exit-language-environment-hook nil |
20165
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1684 "Normal hook run after exiting from some language environment. |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1685 When this hook is run, the variable `current-language-environment' |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1686 is still bound to the language environment being exited. |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1687 |
23196 | 1688 This hook is mainly used for canceling the effect of |
90861
4f7df84e666c
(toggle-enable-multibyte-characters, sort-coding-systems,
Juanma Barranquero <lekktu@gmail.com>
parents:
90776
diff
changeset
|
1689 `set-language-environment-hook' (which see)." |
89092
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
1690 :type 'hook |
50888ee7880f
(language-info-custom-alist): New.
Dave Love <fx@gnu.org>
parents:
88981
diff
changeset
|
1691 :group 'mule) |
20165
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1692 |
23419
c251dd6b289e
(setup-specified-language-environment): Add apropos-inhibit property.
Richard M. Stallman <rms@gnu.org>
parents:
23261
diff
changeset
|
1693 (put 'setup-specified-language-environment 'apropos-inhibit t) |
c251dd6b289e
(setup-specified-language-environment): Add apropos-inhibit property.
Richard M. Stallman <rms@gnu.org>
parents:
23261
diff
changeset
|
1694 |
17991
65407fdc4a33
Delete defining "i" in mule-keymap.
Kenichi Handa <handa@m17n.org>
parents:
17840
diff
changeset
|
1695 (defun setup-specified-language-environment () |
22200
a0d60a6c87da
(register-input-method): Rename arg ENV to LANG-ENV. Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents:
22153
diff
changeset
|
1696 "Switch to a specified language environment." |
17991
65407fdc4a33
Delete defining "i" in mule-keymap.
Kenichi Handa <handa@m17n.org>
parents:
17840
diff
changeset
|
1697 (interactive) |
18634
8b309d07a95e
(set-language-environment): Do the real work here.
Richard M. Stallman <rms@gnu.org>
parents:
18633
diff
changeset
|
1698 (let (language-name) |
17991
65407fdc4a33
Delete defining "i" in mule-keymap.
Kenichi Handa <handa@m17n.org>
parents:
17840
diff
changeset
|
1699 (if (and (symbolp last-command-event) |
65407fdc4a33
Delete defining "i" in mule-keymap.
Kenichi Handa <handa@m17n.org>
parents:
17840
diff
changeset
|
1700 (or (not (eq last-command-event 'Default)) |
65407fdc4a33
Delete defining "i" in mule-keymap.
Kenichi Handa <handa@m17n.org>
parents:
17840
diff
changeset
|
1701 (setq last-command-event 'English)) |
18634
8b309d07a95e
(set-language-environment): Do the real work here.
Richard M. Stallman <rms@gnu.org>
parents:
18633
diff
changeset
|
1702 (setq language-name (symbol-name last-command-event))) |
43252
bccb026d40e4
2002-02-12 Per Abrahamsen <abraham@dina.kvl.dk>
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
43182
diff
changeset
|
1703 (prog1 |
bccb026d40e4
2002-02-12 Per Abrahamsen <abraham@dina.kvl.dk>
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
43182
diff
changeset
|
1704 (set-language-environment language-name) |
bccb026d40e4
2002-02-12 Per Abrahamsen <abraham@dina.kvl.dk>
Per Abrahamsen <abraham@dina.kvl.dk>
parents:
43182
diff
changeset
|
1705 (customize-mark-as-set 'current-language-environment)) |
17991
65407fdc4a33
Delete defining "i" in mule-keymap.
Kenichi Handa <handa@m17n.org>
parents:
17840
diff
changeset
|
1706 (error "Bogus calling sequence")))) |
17052 | 1707 |
21229
38b621cd9169
(set-language-environment): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
21042
diff
changeset
|
1708 (defcustom current-language-environment "English" |
24204 | 1709 "The last language environment specified with `set-language-environment'. |
24551
c10fd4e02857
(current-language-environment): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
24495
diff
changeset
|
1710 This variable should be set only with \\[customize], which is equivalent |
c10fd4e02857
(current-language-environment): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
24495
diff
changeset
|
1711 to using the function `set-language-environment'." |
24204 | 1712 :link '(custom-manual "(emacs)Language Environments") |
23165
0e28574df9af
(current-language-environment): Fix setter function.
Dave Love <fx@gnu.org>
parents:
23087
diff
changeset
|
1713 :set (lambda (symbol value) (set-language-environment value)) |
24204 | 1714 :get (lambda (x) |
55047
428f891f9e31
Use assoc-string, not assoc-ignore-case.
Richard M. Stallman <rms@gnu.org>
parents:
54507
diff
changeset
|
1715 (or (car-safe (assoc-string |
24204 | 1716 (if (symbolp current-language-environment) |
1717 (symbol-name current-language-environment) | |
1718 current-language-environment) | |
55047
428f891f9e31
Use assoc-string, not assoc-ignore-case.
Richard M. Stallman <rms@gnu.org>
parents:
54507
diff
changeset
|
1719 language-info-alist t)) |
24204 | 1720 "English")) |
48836
81333325d8f7
(current-language-environment): Set type according to
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48813
diff
changeset
|
1721 ;; custom type will be updated with `set-language-info'. |
81333325d8f7
(current-language-environment): Set type according to
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48813
diff
changeset
|
1722 :type (if language-info-alist |
81333325d8f7
(current-language-environment): Set type according to
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48813
diff
changeset
|
1723 (cons 'choice (mapcar |
81333325d8f7
(current-language-environment): Set type according to
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48813
diff
changeset
|
1724 (lambda (lang) |
49435
f9953109e75c
(set-language-info, current-language-environment):
Markus Rost <rost@math.uni-bielefeld.de>
parents:
49048
diff
changeset
|
1725 (list 'const lang)) |
f9953109e75c
(set-language-info, current-language-environment):
Markus Rost <rost@math.uni-bielefeld.de>
parents:
49048
diff
changeset
|
1726 (sort (mapcar 'car language-info-alist) 'string<))) |
48836
81333325d8f7
(current-language-environment): Set type according to
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48813
diff
changeset
|
1727 'string) |
21229
38b621cd9169
(set-language-environment): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
21042
diff
changeset
|
1728 :initialize 'custom-initialize-default |
48231
7b77f5edeace
(current-language-environment): Fix
Dave Love <fx@gnu.org>
parents:
48073
diff
changeset
|
1729 :group 'mule) |
18634
8b309d07a95e
(set-language-environment): Do the real work here.
Richard M. Stallman <rms@gnu.org>
parents:
18633
diff
changeset
|
1730 |
22986
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1731 (defun reset-language-environment () |
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1732 "Reset multilingual environment of Emacs to the default status. |
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1733 |
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1734 The default status is as follows: |
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1735 |
46674 | 1736 The default value of `buffer-file-coding-system' is nil. |
22986
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1737 The default coding system for process I/O is nil. |
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1738 The default value for the command `set-terminal-coding-system' is nil. |
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1739 The default value for the command `set-keyboard-coding-system' is nil. |
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1740 |
88410
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
1741 The order of priorities of coding systems are as follows: |
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
1742 utf-8 |
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
1743 iso-2022-7bit |
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
1744 iso-latin-1 |
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
1745 iso-2022-7bit-lock |
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
1746 iso-2022-8bit-ss2 |
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
1747 emacs-mule |
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
1748 raw-text" |
22986
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1749 (interactive) |
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1750 ;; This function formerly set default-enable-multibyte-characters to t, |
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1751 ;; but that is incorrect. It should not alter the unibyte/multibyte choice. |
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1752 |
88410
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
1753 (set-coding-system-priority |
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
1754 'utf-8 |
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
1755 'iso-2022-7bit |
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
1756 'iso-latin-1 |
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
1757 'iso-2022-7bit-lock |
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
1758 'iso-2022-8bit-ss2 |
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
1759 'emacs-mule |
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
1760 'raw-text) |
23261
9346958bb3d5
(reset-language-environment): Call
Kenichi Handa <handa@m17n.org>
parents:
23196
diff
changeset
|
1761 |
22986
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1762 (set-default-coding-systems nil) |
30492
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
1763 (setq default-sendmail-coding-system 'iso-latin-1) |
59906
9c28fead9bf2
(set-locale-environment): Set file-name coding system to utf-8 on Darwin.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
59743
diff
changeset
|
1764 ;; On Darwin systems, this should be utf-8, but when this file is loaded |
9c28fead9bf2
(set-locale-environment): Set file-name coding system to utf-8 on Darwin.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
59743
diff
changeset
|
1765 ;; utf-8 is not yet defined, so we set it in set-locale-environment instead. |
50116
f2c182eeeda2
(reset-language-environment): Set
Kenichi Handa <handa@m17n.org>
parents:
49796
diff
changeset
|
1766 (setq default-file-name-coding-system 'iso-latin-1) |
44425
86eccd269d36
(set-default-coding-systems, reset-language-environment): Preserve
Jason Rumney <jasonr@gnu.org>
parents:
44321
diff
changeset
|
1767 ;; Preserve eol-type from existing default-process-coding-systems. |
86eccd269d36
(set-default-coding-systems, reset-language-environment): Preserve
Jason Rumney <jasonr@gnu.org>
parents:
44321
diff
changeset
|
1768 ;; On non-unix-like systems in particular, these may have been set |
86eccd269d36
(set-default-coding-systems, reset-language-environment): Preserve
Jason Rumney <jasonr@gnu.org>
parents:
44321
diff
changeset
|
1769 ;; carefully by the user, or by the startup code, to deal with the |
86eccd269d36
(set-default-coding-systems, reset-language-environment): Preserve
Jason Rumney <jasonr@gnu.org>
parents:
44321
diff
changeset
|
1770 ;; users shell appropriately, so should not be altered by changing |
86eccd269d36
(set-default-coding-systems, reset-language-environment): Preserve
Jason Rumney <jasonr@gnu.org>
parents:
44321
diff
changeset
|
1771 ;; language environment. |
86eccd269d36
(set-default-coding-systems, reset-language-environment): Preserve
Jason Rumney <jasonr@gnu.org>
parents:
44321
diff
changeset
|
1772 (let ((output-coding |
44440
db660532bd23
(reset-language-environment): Handle
Jason Rumney <jasonr@gnu.org>
parents:
44425
diff
changeset
|
1773 ;; When bootstrapping, coding-systems are not defined yet, so |
db660532bd23
(reset-language-environment): Handle
Jason Rumney <jasonr@gnu.org>
parents:
44425
diff
changeset
|
1774 ;; we need to catch the error from check-coding-system. |
46674 | 1775 (condition-case nil |
44440
db660532bd23
(reset-language-environment): Handle
Jason Rumney <jasonr@gnu.org>
parents:
44425
diff
changeset
|
1776 (coding-system-change-text-conversion |
db660532bd23
(reset-language-environment): Handle
Jason Rumney <jasonr@gnu.org>
parents:
44425
diff
changeset
|
1777 (car default-process-coding-system) 'undecided) |
db660532bd23
(reset-language-environment): Handle
Jason Rumney <jasonr@gnu.org>
parents:
44425
diff
changeset
|
1778 (coding-system-error 'undecided))) |
44425
86eccd269d36
(set-default-coding-systems, reset-language-environment): Preserve
Jason Rumney <jasonr@gnu.org>
parents:
44321
diff
changeset
|
1779 (input-coding |
44440
db660532bd23
(reset-language-environment): Handle
Jason Rumney <jasonr@gnu.org>
parents:
44425
diff
changeset
|
1780 (condition-case nil |
db660532bd23
(reset-language-environment): Handle
Jason Rumney <jasonr@gnu.org>
parents:
44425
diff
changeset
|
1781 (coding-system-change-text-conversion |
db660532bd23
(reset-language-environment): Handle
Jason Rumney <jasonr@gnu.org>
parents:
44425
diff
changeset
|
1782 (cdr default-process-coding-system) 'iso-latin-1) |
db660532bd23
(reset-language-environment): Handle
Jason Rumney <jasonr@gnu.org>
parents:
44425
diff
changeset
|
1783 (coding-system-error 'iso-latin-1)))) |
44425
86eccd269d36
(set-default-coding-systems, reset-language-environment): Preserve
Jason Rumney <jasonr@gnu.org>
parents:
44321
diff
changeset
|
1784 (setq default-process-coding-system |
86eccd269d36
(set-default-coding-systems, reset-language-environment): Preserve
Jason Rumney <jasonr@gnu.org>
parents:
44321
diff
changeset
|
1785 (cons output-coding input-coding))) |
30492
822b51279bd3
(find-coding-systems-region-subset-p): This function deleted.
Kenichi Handa <handa@m17n.org>
parents:
30268
diff
changeset
|
1786 |
103744
af834dcfac23
(reset-language-environment): Put
Kenichi Handa <handa@m17n.org>
parents:
102892
diff
changeset
|
1787 ;; Put the highest priority to the charset iso-8859-1 to prefer the |
af834dcfac23
(reset-language-environment): Put
Kenichi Handa <handa@m17n.org>
parents:
102892
diff
changeset
|
1788 ;; registry iso8859-1 over iso8859-2 in font selection. It also |
af834dcfac23
(reset-language-environment): Put
Kenichi Handa <handa@m17n.org>
parents:
102892
diff
changeset
|
1789 ;; makes unibyte-display-via-language-environment to use iso-8859-1 |
af834dcfac23
(reset-language-environment): Put
Kenichi Handa <handa@m17n.org>
parents:
102892
diff
changeset
|
1790 ;; as the unibyte charset. |
af834dcfac23
(reset-language-environment): Put
Kenichi Handa <handa@m17n.org>
parents:
102892
diff
changeset
|
1791 (set-charset-priority 'iso-8859-1) |
af834dcfac23
(reset-language-environment): Put
Kenichi Handa <handa@m17n.org>
parents:
102892
diff
changeset
|
1792 |
22986
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1793 ;; Don't alter the terminal and keyboard coding systems here. |
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1794 ;; The terminal still supports the same coding system |
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1795 ;; that it supported a minute ago. |
44321
abf6fc89e7d7
(standard-keyboard-coding-systems): Add koi8-u and koi8-r.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43310
diff
changeset
|
1796 ;; (set-terminal-coding-system-internal nil) |
abf6fc89e7d7
(standard-keyboard-coding-systems): Add koi8-u and koi8-r.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
43310
diff
changeset
|
1797 ;; (set-keyboard-coding-system-internal nil) |
22986
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1798 |
92764
79b4e32b9b79
(reset-language-environment, set-language-environment-nonascii-translation):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
91918
diff
changeset
|
1799 ;; Back in Emacs-20, it was necessary to provide some fallback implicit |
79b4e32b9b79
(reset-language-environment, set-language-environment-nonascii-translation):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
91918
diff
changeset
|
1800 ;; conversion, because almost no packages handled coding-system issues. |
79b4e32b9b79
(reset-language-environment, set-language-environment-nonascii-translation):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
91918
diff
changeset
|
1801 ;; Nowadays it'd just paper over bugs. |
79b4e32b9b79
(reset-language-environment, set-language-environment-nonascii-translation):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
91918
diff
changeset
|
1802 ;; (set-unibyte-charset 'iso-8859-1) |
79b4e32b9b79
(reset-language-environment, set-language-environment-nonascii-translation):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
91918
diff
changeset
|
1803 ) |
22986
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1804 |
31138
5dab940bf298
(reset-language-environment): Set default-process-coding-system to
Kenichi Handa <handa@m17n.org>
parents:
30566
diff
changeset
|
1805 (reset-language-environment) |
5dab940bf298
(reset-language-environment): Set default-process-coding-system to
Kenichi Handa <handa@m17n.org>
parents:
30566
diff
changeset
|
1806 |
83300
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
1807 (defun set-display-table-and-terminal-coding-system (language-name &optional coding-system display) |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
1808 "Set up the display table and terminal coding system for LANGUAGE-NAME." |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
1809 (let ((coding (get-language-info language-name 'unibyte-display))) |
67358
9fa16adb2f52
(set-display-table-and-terminal-coding-system): If the coding
Kenichi Handa <handa@m17n.org>
parents:
67320
diff
changeset
|
1810 (if (and coding |
9fa16adb2f52
(set-display-table-and-terminal-coding-system): If the coding
Kenichi Handa <handa@m17n.org>
parents:
67320
diff
changeset
|
1811 (or (not coding-system) |
9fa16adb2f52
(set-display-table-and-terminal-coding-system): If the coding
Kenichi Handa <handa@m17n.org>
parents:
67320
diff
changeset
|
1812 (coding-system-equal coding coding-system))) |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
1813 (standard-display-european-internal) |
51622
c85b00553f5e
Add a comment in set-display-table-and-terminal-coding-system
Eli Zaretskii <eliz@gnu.org>
parents:
51134
diff
changeset
|
1814 ;; The following 2 lines undo the 8-bit display that we set up |
c85b00553f5e
Add a comment in set-display-table-and-terminal-coding-system
Eli Zaretskii <eliz@gnu.org>
parents:
51134
diff
changeset
|
1815 ;; in standard-display-european-internal, which see. This is in |
c85b00553f5e
Add a comment in set-display-table-and-terminal-coding-system
Eli Zaretskii <eliz@gnu.org>
parents:
51134
diff
changeset
|
1816 ;; case the user has used standard-display-european earlier in |
98447
8df3a4ab1adc
(set-language-environment-nonascii-translation): Fix nonascii value for
Eli Zaretskii <eliz@gnu.org>
parents:
97913
diff
changeset
|
1817 ;; this session. |
51815
81538ceba107
2003-07-08 Kim F. Storm <storm@cua.dk>
John Paul Wallington <jpw@pobox.com>
parents:
51800
diff
changeset
|
1818 (when standard-display-table |
81538ceba107
2003-07-08 Kim F. Storm <storm@cua.dk>
John Paul Wallington <jpw@pobox.com>
parents:
51800
diff
changeset
|
1819 (dotimes (i 128) |
51849
48ac694d29fa
(set-display-table-and-terminal-coding-system):
Richard M. Stallman <rms@gnu.org>
parents:
51815
diff
changeset
|
1820 (aset standard-display-table (+ i 128) nil)))) |
98447
8df3a4ab1adc
(set-language-environment-nonascii-translation): Fix nonascii value for
Eli Zaretskii <eliz@gnu.org>
parents:
97913
diff
changeset
|
1821 (set-terminal-coding-system (or coding-system coding) display))) |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
1822 |
18066
eecd891e2b63
(set-language-environment): Add autoload cookie.
Richard M. Stallman <rms@gnu.org>
parents:
17991
diff
changeset
|
1823 (defun set-language-environment (language-name) |
18068
317f57f07b14
Doc fix for previous change.
Richard M. Stallman <rms@gnu.org>
parents:
18066
diff
changeset
|
1824 "Set up multi-lingual environment for using LANGUAGE-NAME. |
317f57f07b14
Doc fix for previous change.
Richard M. Stallman <rms@gnu.org>
parents:
18066
diff
changeset
|
1825 This sets the coding system priority and the default input method |
21229
38b621cd9169
(set-language-environment): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
21042
diff
changeset
|
1826 and sometimes other things. LANGUAGE-NAME should be a string |
38b621cd9169
(set-language-environment): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
21042
diff
changeset
|
1827 which is the name of a language environment. For example, \"Latin-1\" |
38b621cd9169
(set-language-environment): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
21042
diff
changeset
|
1828 specifies the character set for the major languages of Western Europe." |
20165
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1829 (interactive (list (read-language-name |
22986
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1830 nil |
65680
ed770a0a7846
2005-09-24 Emilio C. Lopes <eclig@gmx.net>
Romain Francoise <romain@orebokech.com>
parents:
65652
diff
changeset
|
1831 "Set language environment (default English): "))) |
19649
b2bf3c43c86a
(get-language-info): Accept a symbol
Kenichi Handa <handa@m17n.org>
parents:
19615
diff
changeset
|
1832 (if language-name |
b2bf3c43c86a
(get-language-info): Accept a symbol
Kenichi Handa <handa@m17n.org>
parents:
19615
diff
changeset
|
1833 (if (symbolp language-name) |
b2bf3c43c86a
(get-language-info): Accept a symbol
Kenichi Handa <handa@m17n.org>
parents:
19615
diff
changeset
|
1834 (setq language-name (symbol-name language-name))) |
b2bf3c43c86a
(get-language-info): Accept a symbol
Kenichi Handa <handa@m17n.org>
parents:
19615
diff
changeset
|
1835 (setq language-name "English")) |
55047
428f891f9e31
Use assoc-string, not assoc-ignore-case.
Richard M. Stallman <rms@gnu.org>
parents:
54507
diff
changeset
|
1836 (let ((slot (assoc-string language-name language-info-alist t))) |
51865
4510b8eaa84a
(set-language-environment): Set
Kenichi Handa <handa@m17n.org>
parents:
51849
diff
changeset
|
1837 (unless slot |
18634
8b309d07a95e
(set-language-environment): Do the real work here.
Richard M. Stallman <rms@gnu.org>
parents:
18633
diff
changeset
|
1838 (error "Language environment not defined: %S" language-name)) |
51865
4510b8eaa84a
(set-language-environment): Set
Kenichi Handa <handa@m17n.org>
parents:
51849
diff
changeset
|
1839 (setq language-name (car slot))) |
20165
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1840 (if current-language-environment |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1841 (let ((func (get-language-info current-language-environment |
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1842 'exit-function))) |
20231
7f0ea4977b32
(set-language-environment): Run
Kenichi Handa <handa@m17n.org>
parents:
20165
diff
changeset
|
1843 (run-hooks 'exit-language-environment-hook) |
41126
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
1844 (if (functionp func) (funcall func)))) |
22986
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1845 |
71606
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
1846 (reset-language-environment) |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
1847 ;; The features might set up coding systems. |
22986
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1848 (let ((required-features (get-language-info language-name 'features))) |
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1849 (while required-features |
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1850 (require (car required-features)) |
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1851 (setq required-features (cdr required-features)))) |
53355
fea694690fc7
(reset-language-environment): Call
Kenichi Handa <handa@m17n.org>
parents:
53262
diff
changeset
|
1852 |
71606
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
1853 (setq current-language-environment language-name) |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
1854 |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
1855 (set-language-environment-coding-systems language-name) |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
1856 (set-language-environment-input-method language-name) |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
1857 (set-language-environment-nonascii-translation language-name) |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
1858 (set-language-environment-charset language-name) |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
1859 ;; Unibyte setups if necessary. |
104823
68150c643e2e
Use default-value rather than default-enable-multibyte-characters.
Glenn Morris <rgm@gnu.org>
parents:
104664
diff
changeset
|
1860 (unless (default-value 'enable-multibyte-characters) |
71606
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
1861 (set-language-environment-unibyte language-name)) |
53355
fea694690fc7
(reset-language-environment): Call
Kenichi Handa <handa@m17n.org>
parents:
53262
diff
changeset
|
1862 |
22986
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1863 (let ((func (get-language-info language-name 'setup-function))) |
41126
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
1864 (if (functionp func) |
22986
b5c383369b40
(language-info-alist): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
22948
diff
changeset
|
1865 (funcall func))) |
71606
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
1866 |
94953
80d92e1da986
(set-language-environment): Set current-iso639-language
Kenichi Handa <handa@m17n.org>
parents:
94664
diff
changeset
|
1867 (setq current-iso639-language |
97913
358ab4e4f102
(set-language-environment): Don't
Kenichi Handa <handa@m17n.org>
parents:
97263
diff
changeset
|
1868 (or (get-language-info language-name 'iso639-language) |
358ab4e4f102
(set-language-environment): Don't
Kenichi Handa <handa@m17n.org>
parents:
97263
diff
changeset
|
1869 current-iso639-language)) |
94953
80d92e1da986
(set-language-environment): Set current-iso639-language
Kenichi Handa <handa@m17n.org>
parents:
94664
diff
changeset
|
1870 |
20165
2d0abf12009b
(set-default-coding-systems):
Kenichi Handa <handa@m17n.org>
parents:
20116
diff
changeset
|
1871 (run-hooks 'set-language-environment-hook) |
18634
8b309d07a95e
(set-language-environment): Do the real work here.
Richard M. Stallman <rms@gnu.org>
parents:
18633
diff
changeset
|
1872 (force-mode-line-update t)) |
17052 | 1873 |
89105 | 1874 (define-widget 'charset 'symbol |
105957
25e1d7e37015
* widget.el (define-widget): Purecopy the docstring.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105950
diff
changeset
|
1875 "An Emacs charset." |
89232 | 1876 :tag "Charset" |
89105 | 1877 :complete-function (lambda () |
1878 (interactive) | |
1879 (lisp-complete-symbol 'charsetp)) | |
1880 :completion-ignore-case t | |
1881 :value 'ascii | |
1882 :validate (lambda (widget) | |
1883 (unless (charsetp (widget-value widget)) | |
1884 (widget-put widget :error (format "Invalid charset: %S" | |
1885 (widget-value widget))) | |
1886 widget)) | |
1887 :prompt-history 'charset-history) | |
1888 | |
1889 (defcustom language-info-custom-alist nil | |
1890 "Customizations of language environment parameters. | |
1891 Value is an alist with elements like those of `language-info-alist'. | |
1892 These are used to set values in `language-info-alist' which replace | |
1893 the defaults. A typical use is replacing the default input method for | |
1894 the environment. Use \\[describe-language-environment] to find the environment's settings. | |
1895 | |
1896 This option is intended for use at startup. Removing items doesn't | |
1897 remove them from the language info until you next restart Emacs. | |
1898 | |
99682
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
1899 Setting this variable directly does not take effect. |
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
1900 See `set-language-info-alist' for use in programs." |
89105 | 1901 :group 'mule |
90104
a01e7a9f1659
Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-14
Miles Bader <miles@gnu.org>
parents:
90100
diff
changeset
|
1902 :version "23.1" |
89105 | 1903 :set (lambda (s v) |
1904 (custom-set-default s v) | |
1905 ;; Can't do this before language environments are set up. | |
1906 (when v | |
1907 ;; modify language-info-alist | |
1908 (dolist (elt v) | |
1909 (set-language-info-alist (car elt) (cdr elt))) | |
1910 ;; re-set the environment in case its parameters changed | |
1911 (set-language-environment current-language-environment))) | |
1912 :type `(alist | |
1913 :key-type (string :tag "Language environment" | |
1914 :completion-ignore-case t | |
1915 :complete-function widget-string-complete | |
1916 :completion-alist language-info-alist) | |
1917 :value-type | |
1918 (alist :key-type symbol | |
1919 :options ((documentation string) | |
1920 (charset (repeat charset)) | |
1921 (sample-text string) | |
1922 (setup-function function) | |
1923 (exit-function function) | |
1924 (coding-system (repeat coding-system)) | |
1925 (coding-priority (repeat coding-system)) | |
1926 (nonascii-translation charset) | |
1927 (input-method | |
1928 (string | |
1929 :completion-ignore-case t | |
1930 :complete-function widget-string-complete | |
1931 :completion-alist input-method-alist | |
1932 :prompt-history input-method-history)) | |
1933 (features (repeat symbol)) | |
1934 (unibyte-display coding-system))))) | |
1935 | |
95841
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
95622
diff
changeset
|
1936 (declare-function x-server-vendor "xfns.c" (&optional terminal)) |
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
95622
diff
changeset
|
1937 (declare-function x-server-version "xfns.c" (&optional terminal)) |
b4e36ff621b3
Add some compiler declarations, for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
95622
diff
changeset
|
1938 |
21856
68e39b75b862
(set-language-environment): Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents:
21770
diff
changeset
|
1939 (defun standard-display-european-internal () |
68e39b75b862
(set-language-environment): Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents:
21770
diff
changeset
|
1940 ;; Actually set up direct output of non-ASCII characters. |
23916
ccc00be328a1
(set-language-environment): On MS-DOS
Eli Zaretskii <eliz@gnu.org>
parents:
23889
diff
changeset
|
1941 (standard-display-8bit (if (eq window-system 'pc) 128 160) 255) |
ccc00be328a1
(set-language-environment): On MS-DOS
Eli Zaretskii <eliz@gnu.org>
parents:
23889
diff
changeset
|
1942 ;; Unibyte Emacs on MS-DOS wants to display all 8-bit characters with |
ccc00be328a1
(set-language-environment): On MS-DOS
Eli Zaretskii <eliz@gnu.org>
parents:
23889
diff
changeset
|
1943 ;; the native font, and codes 160 and 146 stand for something very |
ccc00be328a1
(set-language-environment): On MS-DOS
Eli Zaretskii <eliz@gnu.org>
parents:
23889
diff
changeset
|
1944 ;; different there. |
104823
68150c643e2e
Use default-value rather than default-enable-multibyte-characters.
Glenn Morris <rgm@gnu.org>
parents:
104664
diff
changeset
|
1945 (or (and (eq window-system 'pc) (not (default-value |
68150c643e2e
Use default-value rather than default-enable-multibyte-characters.
Glenn Morris <rgm@gnu.org>
parents:
104664
diff
changeset
|
1946 'enable-multibyte-characters))) |
23916
ccc00be328a1
(set-language-environment): On MS-DOS
Eli Zaretskii <eliz@gnu.org>
parents:
23889
diff
changeset
|
1947 (progn |
59743
baaed9bd0e12
(standard-display-european-internal): Don't fiddle with latin-1 non-break space
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
58148
diff
changeset
|
1948 ;; Most X fonts used to do the wrong thing for latin-1 code 160. |
baaed9bd0e12
(standard-display-european-internal): Don't fiddle with latin-1 non-break space
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
58148
diff
changeset
|
1949 (unless (and (eq window-system 'x) |
baaed9bd0e12
(standard-display-european-internal): Don't fiddle with latin-1 non-break space
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
58148
diff
changeset
|
1950 ;; XFree86 4 has fixed the fonts. |
baaed9bd0e12
(standard-display-european-internal): Don't fiddle with latin-1 non-break space
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
58148
diff
changeset
|
1951 (string= "The XFree86 Project, Inc" (x-server-vendor)) |
baaed9bd0e12
(standard-display-european-internal): Don't fiddle with latin-1 non-break space
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
58148
diff
changeset
|
1952 (> (aref (number-to-string (nth 2 (x-server-version))) 0) |
baaed9bd0e12
(standard-display-european-internal): Don't fiddle with latin-1 non-break space
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
58148
diff
changeset
|
1953 ?3)) |
baaed9bd0e12
(standard-display-european-internal): Don't fiddle with latin-1 non-break space
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
58148
diff
changeset
|
1954 ;; Make non-line-break space display as a plain space. |
baaed9bd0e12
(standard-display-european-internal): Don't fiddle with latin-1 non-break space
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
58148
diff
changeset
|
1955 (aset standard-display-table 160 [32])) |
35248
058fe91d9676
(standard-display-european-internal):
Dave Love <fx@gnu.org>
parents:
35168
diff
changeset
|
1956 ;; Most Windows programs send out apostrophes as \222. Most X fonts |
23916
ccc00be328a1
(set-language-environment): On MS-DOS
Eli Zaretskii <eliz@gnu.org>
parents:
23889
diff
changeset
|
1957 ;; don't contain a character at that position. Map it to the ASCII |
41126
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
1958 ;; apostrophe. [This is actually RIGHT SINGLE QUOTATION MARK, |
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
1959 ;; U+2019, normally from the windows-1252 character set. XFree 4 |
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
1960 ;; fonts probably have the appropriate glyph at this position, |
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
1961 ;; so they could use standard-display-8bit. It's better to use a |
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
1962 ;; proper windows-1252 coding system. --fx] |
59743
baaed9bd0e12
(standard-display-european-internal): Don't fiddle with latin-1 non-break space
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
58148
diff
changeset
|
1963 (aset standard-display-table 146 [39])))) |
21856
68e39b75b862
(set-language-environment): Fix previous change.
Richard M. Stallman <rms@gnu.org>
parents:
21770
diff
changeset
|
1964 |
71606
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
1965 (defun set-language-environment-coding-systems (language-name) |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
1966 "Do various coding system setups for language environment LANGUAGE-NAME." |
20733
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1967 (let* ((priority (get-language-info language-name 'coding-priority)) |
71606
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
1968 (default-coding (car priority)) |
104664
50fdf250e26b
* mh-e/mh-comp.el (mh-send-letter):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104612
diff
changeset
|
1969 ;; If the default buffer-file-coding-system is nil, don't use |
101431
331a66ef2091
(set-language-environment-coding-systems): If default-buffer-file-coding-system
Eli Zaretskii <eliz@gnu.org>
parents:
101013
diff
changeset
|
1970 ;; coding-system-eol-type, because it treats nil as |
104664
50fdf250e26b
* mh-e/mh-comp.el (mh-send-letter):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104612
diff
changeset
|
1971 ;; `no-conversion'. The default buffer-file-coding-system is set |
101431
331a66ef2091
(set-language-environment-coding-systems): If default-buffer-file-coding-system
Eli Zaretskii <eliz@gnu.org>
parents:
101013
diff
changeset
|
1972 ;; to nil by reset-language-environment, and in that case we |
331a66ef2091
(set-language-environment-coding-systems): If default-buffer-file-coding-system
Eli Zaretskii <eliz@gnu.org>
parents:
101013
diff
changeset
|
1973 ;; want to have here the native EOL type for each platform. |
331a66ef2091
(set-language-environment-coding-systems): If default-buffer-file-coding-system
Eli Zaretskii <eliz@gnu.org>
parents:
101013
diff
changeset
|
1974 ;; FIXME: there should be a common code that runs both on |
331a66ef2091
(set-language-environment-coding-systems): If default-buffer-file-coding-system
Eli Zaretskii <eliz@gnu.org>
parents:
101013
diff
changeset
|
1975 ;; startup and here to set the default EOL type correctly. |
331a66ef2091
(set-language-environment-coding-systems): If default-buffer-file-coding-system
Eli Zaretskii <eliz@gnu.org>
parents:
101013
diff
changeset
|
1976 ;; Right now, DOS/Windows platforms set this on dos-w32.el, |
331a66ef2091
(set-language-environment-coding-systems): If default-buffer-file-coding-system
Eli Zaretskii <eliz@gnu.org>
parents:
101013
diff
changeset
|
1977 ;; which works only as long as the order of loading files at |
331a66ef2091
(set-language-environment-coding-systems): If default-buffer-file-coding-system
Eli Zaretskii <eliz@gnu.org>
parents:
101013
diff
changeset
|
1978 ;; dump time and calling functions at startup is not modified |
331a66ef2091
(set-language-environment-coding-systems): If default-buffer-file-coding-system
Eli Zaretskii <eliz@gnu.org>
parents:
101013
diff
changeset
|
1979 ;; significantly, i.e. as long as this function is called |
104664
50fdf250e26b
* mh-e/mh-comp.el (mh-send-letter):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104612
diff
changeset
|
1980 ;; _after_ the default buffer-file-coding-system was set by |
101431
331a66ef2091
(set-language-environment-coding-systems): If default-buffer-file-coding-system
Eli Zaretskii <eliz@gnu.org>
parents:
101013
diff
changeset
|
1981 ;; dos-w32.el. |
331a66ef2091
(set-language-environment-coding-systems): If default-buffer-file-coding-system
Eli Zaretskii <eliz@gnu.org>
parents:
101013
diff
changeset
|
1982 (eol-type |
104664
50fdf250e26b
* mh-e/mh-comp.el (mh-send-letter):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104612
diff
changeset
|
1983 (coding-system-eol-type |
50fdf250e26b
* mh-e/mh-comp.el (mh-send-letter):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104612
diff
changeset
|
1984 (or (default-value 'buffer-file-coding-system) |
50fdf250e26b
* mh-e/mh-comp.el (mh-send-letter):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104612
diff
changeset
|
1985 (if (memq system-type '(windows-nt ms-dos)) 'dos 'unix))))) |
88410
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
1986 (when priority |
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
1987 (set-default-coding-systems |
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
1988 (if (memq eol-type '(0 1 2 unix dos mac)) |
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
1989 (coding-system-change-eol-conversion default-coding eol-type) |
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
1990 default-coding)) |
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
1991 (setq default-sendmail-coding-system default-coding) |
39de3b4b6fc7
Don't use coding category. Call
Kenichi Handa <handa@m17n.org>
parents:
43310
diff
changeset
|
1992 (apply 'set-coding-system-priority priority)))) |
20733
079907c59fb2
(set-language-info): Doc-string
Kenichi Handa <handa@m17n.org>
parents:
20485
diff
changeset
|
1993 |
71606
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
1994 (defun set-language-environment-input-method (language-name) |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
1995 "Do various input method setups for language environment LANGUAGE-NAME." |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
1996 (let ((input-method (get-language-info language-name 'input-method))) |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
1997 (when input-method |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
1998 (setq default-input-method input-method) |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
1999 (if input-method-history |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
2000 (setq input-method-history |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
2001 (cons input-method |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
2002 (delete input-method input-method-history))))))) |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
2003 |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
2004 (defun set-language-environment-nonascii-translation (language-name) |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
2005 "Do unibyte/multibyte translation setup for language environment LANGUAGE-NAME." |
90521
b81a8a5635a8
(set-language-info): Fix synching
Kenichi Handa <handa@m17n.org>
parents:
90519
diff
changeset
|
2006 ;; Note: For DOS, we assumed that the charset cpXXX is already |
b81a8a5635a8
(set-language-info): Fix synching
Kenichi Handa <handa@m17n.org>
parents:
90519
diff
changeset
|
2007 ;; defined. |
b81a8a5635a8
(set-language-info): Fix synching
Kenichi Handa <handa@m17n.org>
parents:
90519
diff
changeset
|
2008 (let ((nonascii (get-language-info language-name 'nonascii-translation))) |
b81a8a5635a8
(set-language-info): Fix synching
Kenichi Handa <handa@m17n.org>
parents:
90519
diff
changeset
|
2009 (if (eq window-system 'pc) |
98447
8df3a4ab1adc
(set-language-environment-nonascii-translation): Fix nonascii value for
Eli Zaretskii <eliz@gnu.org>
parents:
97913
diff
changeset
|
2010 (setq nonascii (intern (format "cp%d" dos-codepage)))) |
90521
b81a8a5635a8
(set-language-info): Fix synching
Kenichi Handa <handa@m17n.org>
parents:
90519
diff
changeset
|
2011 (or (and (charsetp nonascii) |
b81a8a5635a8
(set-language-info): Fix synching
Kenichi Handa <handa@m17n.org>
parents:
90519
diff
changeset
|
2012 (get-charset-property nonascii :ascii-compatible-p)) |
b81a8a5635a8
(set-language-info): Fix synching
Kenichi Handa <handa@m17n.org>
parents:
90519
diff
changeset
|
2013 (setq nonascii 'iso-8859-1)) |
92764
79b4e32b9b79
(reset-language-environment, set-language-environment-nonascii-translation):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
91918
diff
changeset
|
2014 ;; Back in Emacs-20, it was necessary to provide some fallback implicit |
79b4e32b9b79
(reset-language-environment, set-language-environment-nonascii-translation):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
91918
diff
changeset
|
2015 ;; conversion, because almost no packages handled coding-system issues. |
79b4e32b9b79
(reset-language-environment, set-language-environment-nonascii-translation):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
91918
diff
changeset
|
2016 ;; Nowadays it'd just paper over bugs. |
79b4e32b9b79
(reset-language-environment, set-language-environment-nonascii-translation):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
91918
diff
changeset
|
2017 ;; (set-unibyte-charset nonascii) |
79b4e32b9b79
(reset-language-environment, set-language-environment-nonascii-translation):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
91918
diff
changeset
|
2018 )) |
71606
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
2019 |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
2020 (defun set-language-environment-charset (language-name) |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
2021 "Do various charset setups for language environment LANGUAGE-NAME." |
90521
b81a8a5635a8
(set-language-info): Fix synching
Kenichi Handa <handa@m17n.org>
parents:
90519
diff
changeset
|
2022 ;; Put higher priorities to such charsets that are supported by the |
b81a8a5635a8
(set-language-info): Fix synching
Kenichi Handa <handa@m17n.org>
parents:
90519
diff
changeset
|
2023 ;; coding systems of higher priorities in this environment. |
b81a8a5635a8
(set-language-info): Fix synching
Kenichi Handa <handa@m17n.org>
parents:
90519
diff
changeset
|
2024 (let ((charsets (get-language-info language-name 'charset))) |
b81a8a5635a8
(set-language-info): Fix synching
Kenichi Handa <handa@m17n.org>
parents:
90519
diff
changeset
|
2025 (dolist (coding (get-language-info language-name 'coding-priority)) |
103913
e942d6c3216e
(set-language-environment-charset):
Kenichi Handa <handa@m17n.org>
parents:
103744
diff
changeset
|
2026 (let ((list (coding-system-charset-list coding))) |
e942d6c3216e
(set-language-environment-charset):
Kenichi Handa <handa@m17n.org>
parents:
103744
diff
changeset
|
2027 (if (consp list) |
e942d6c3216e
(set-language-environment-charset):
Kenichi Handa <handa@m17n.org>
parents:
103744
diff
changeset
|
2028 (setq charsets (append charsets list))))) |
90521
b81a8a5635a8
(set-language-info): Fix synching
Kenichi Handa <handa@m17n.org>
parents:
90519
diff
changeset
|
2029 (if charsets |
b81a8a5635a8
(set-language-info): Fix synching
Kenichi Handa <handa@m17n.org>
parents:
90519
diff
changeset
|
2030 (apply 'set-charset-priority charsets)))) |
71606
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
2031 |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
2032 (defun set-language-environment-unibyte (language-name) |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
2033 "Do various unibyte-mode setups for language environment LANGUAGE-NAME." |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
2034 (set-display-table-and-terminal-coding-system language-name)) |
5aa535ebb24a
(set-language-info): If LANG-ENV is
Kenichi Handa <handa@m17n.org>
parents:
70882
diff
changeset
|
2035 |
17052 | 2036 (defsubst princ-list (&rest args) |
77918
80ba9b48c547
(toggle-enable-multibyte-characters, sort-coding-systems,
Juanma Barranquero <lekktu@gmail.com>
parents:
76003
diff
changeset
|
2037 "Print all arguments with `princ', then print \"\\n\"." |
17052 | 2038 (while args (princ (car args)) (setq args (cdr args))) |
2039 (princ "\n")) | |
2040 | |
23419
c251dd6b289e
(setup-specified-language-environment): Add apropos-inhibit property.
Richard M. Stallman <rms@gnu.org>
parents:
23261
diff
changeset
|
2041 (put 'describe-specified-language-support 'apropos-inhibit t) |
c251dd6b289e
(setup-specified-language-environment): Add apropos-inhibit property.
Richard M. Stallman <rms@gnu.org>
parents:
23261
diff
changeset
|
2042 |
52856
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2043 ;; Print language-specific information such as input methods, |
17758
8c67c2e2cc29
(build-describe-language-support-function,
Kenichi Handa <handa@m17n.org>
parents:
17526
diff
changeset
|
2044 ;; charsets, and coding systems. This function is intended to be |
17840
2517414676ed
(set-language-info): Change the special treatment
Kenichi Handa <handa@m17n.org>
parents:
17758
diff
changeset
|
2045 ;; called from the menu: |
18152
e184e7061c9a
(describe-language-environment):
Richard M. Stallman <rms@gnu.org>
parents:
18068
diff
changeset
|
2046 ;; [menu-bar mule describe-language-environment LANGUAGE] |
17840
2517414676ed
(set-language-info): Change the special treatment
Kenichi Handa <handa@m17n.org>
parents:
17758
diff
changeset
|
2047 ;; and should not run it by `M-x describe-current-input-method-function'. |
2517414676ed
(set-language-info): Change the special treatment
Kenichi Handa <handa@m17n.org>
parents:
17758
diff
changeset
|
2048 (defun describe-specified-language-support () |
19083
8fdb29b769ed
Doc fixes; fix error message text.
Richard M. Stallman <rms@gnu.org>
parents:
19036
diff
changeset
|
2049 "Describe how Emacs supports the specified language environment." |
17840
2517414676ed
(set-language-info): Change the special treatment
Kenichi Handa <handa@m17n.org>
parents:
17758
diff
changeset
|
2050 (interactive) |
18152
e184e7061c9a
(describe-language-environment):
Richard M. Stallman <rms@gnu.org>
parents:
18068
diff
changeset
|
2051 (let (language-name) |
17840
2517414676ed
(set-language-info): Change the special treatment
Kenichi Handa <handa@m17n.org>
parents:
17758
diff
changeset
|
2052 (if (not (and (symbolp last-command-event) |
28456 | 2053 (or (not (eq last-command-event 'Default)) |
2054 (setq last-command-event 'English)) | |
18152
e184e7061c9a
(describe-language-environment):
Richard M. Stallman <rms@gnu.org>
parents:
18068
diff
changeset
|
2055 (setq language-name (symbol-name last-command-event)))) |
17840
2517414676ed
(set-language-info): Change the special treatment
Kenichi Handa <handa@m17n.org>
parents:
17758
diff
changeset
|
2056 (error "Bogus calling sequence")) |
18152
e184e7061c9a
(describe-language-environment):
Richard M. Stallman <rms@gnu.org>
parents:
18068
diff
changeset
|
2057 (describe-language-environment language-name))) |
e184e7061c9a
(describe-language-environment):
Richard M. Stallman <rms@gnu.org>
parents:
18068
diff
changeset
|
2058 |
e184e7061c9a
(describe-language-environment):
Richard M. Stallman <rms@gnu.org>
parents:
18068
diff
changeset
|
2059 (defun describe-language-environment (language-name) |
e184e7061c9a
(describe-language-environment):
Richard M. Stallman <rms@gnu.org>
parents:
18068
diff
changeset
|
2060 "Describe how Emacs supports language environment LANGUAGE-NAME." |
19653
431753f747ea
(describe-input-method): Fix previous
Kenichi Handa <handa@m17n.org>
parents:
19649
diff
changeset
|
2061 (interactive |
431753f747ea
(describe-input-method): Fix previous
Kenichi Handa <handa@m17n.org>
parents:
19649
diff
changeset
|
2062 (list (read-language-name |
431753f747ea
(describe-input-method): Fix previous
Kenichi Handa <handa@m17n.org>
parents:
19649
diff
changeset
|
2063 'documentation |
65680
ed770a0a7846
2005-09-24 Emilio C. Lopes <eclig@gmx.net>
Romain Francoise <romain@orebokech.com>
parents:
65652
diff
changeset
|
2064 "Describe language environment (default current choice): "))) |
18634
8b309d07a95e
(set-language-environment): Do the real work here.
Richard M. Stallman <rms@gnu.org>
parents:
18633
diff
changeset
|
2065 (if (null language-name) |
8b309d07a95e
(set-language-environment): Do the real work here.
Richard M. Stallman <rms@gnu.org>
parents:
18633
diff
changeset
|
2066 (setq language-name current-language-environment)) |
18152
e184e7061c9a
(describe-language-environment):
Richard M. Stallman <rms@gnu.org>
parents:
18068
diff
changeset
|
2067 (if (or (null language-name) |
e184e7061c9a
(describe-language-environment):
Richard M. Stallman <rms@gnu.org>
parents:
18068
diff
changeset
|
2068 (null (get-language-info language-name 'documentation))) |
e184e7061c9a
(describe-language-environment):
Richard M. Stallman <rms@gnu.org>
parents:
18068
diff
changeset
|
2069 (error "No documentation for the specified language")) |
19649
b2bf3c43c86a
(get-language-info): Accept a symbol
Kenichi Handa <handa@m17n.org>
parents:
19615
diff
changeset
|
2070 (if (symbolp language-name) |
b2bf3c43c86a
(get-language-info): Accept a symbol
Kenichi Handa <handa@m17n.org>
parents:
19615
diff
changeset
|
2071 (setq language-name (symbol-name language-name))) |
50614
849192639a83
(describe-language-environment): At
Kenichi Handa <handa@m17n.org>
parents:
50537
diff
changeset
|
2072 (dolist (feature (get-language-info language-name 'features)) |
849192639a83
(describe-language-environment): At
Kenichi Handa <handa@m17n.org>
parents:
50537
diff
changeset
|
2073 (require feature)) |
59743
baaed9bd0e12
(standard-display-european-internal): Don't fiddle with latin-1 non-break space
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
58148
diff
changeset
|
2074 (let ((doc (get-language-info language-name 'documentation))) |
40666
84cd0f5441e2
(describe-language-environment):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40592
diff
changeset
|
2075 (help-setup-xref (list #'describe-language-environment language-name) |
105372
bd2966850aac
Use `called-interactively-p' instead of `interactive-p'.
Juanma Barranquero <lekktu@gmail.com>
parents:
104960
diff
changeset
|
2076 (called-interactively-p 'interactive)) |
40666
84cd0f5441e2
(describe-language-environment):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40592
diff
changeset
|
2077 (with-output-to-temp-buffer (help-buffer) |
105813
df4934f25eef
* textmodes/two-column.el (2C-split):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
105744
diff
changeset
|
2078 (with-current-buffer standard-output |
31245
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2079 (insert language-name " language environment\n\n") |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2080 (if (stringp doc) |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2081 (insert doc "\n\n")) |
33226
d5f086989bfd
(describe-language-environment): Eval
Kenichi Handa <handa@m17n.org>
parents:
33047
diff
changeset
|
2082 (condition-case nil |
d5f086989bfd
(describe-language-environment): Eval
Kenichi Handa <handa@m17n.org>
parents:
33047
diff
changeset
|
2083 (let ((str (eval (get-language-info language-name 'sample-text)))) |
d5f086989bfd
(describe-language-environment): Eval
Kenichi Handa <handa@m17n.org>
parents:
33047
diff
changeset
|
2084 (if (stringp str) |
99077
b884f47f864d
(describe-language-environment): Indent sample text.
Kenichi Handa <handa@m17n.org>
parents:
99022
diff
changeset
|
2085 (insert "Sample text:\n " |
b884f47f864d
(describe-language-environment): Indent sample text.
Kenichi Handa <handa@m17n.org>
parents:
99022
diff
changeset
|
2086 (replace-regexp-in-string "\n" "\n " str) |
b884f47f864d
(describe-language-environment): Indent sample text.
Kenichi Handa <handa@m17n.org>
parents:
99022
diff
changeset
|
2087 "\n\n"))) |
33226
d5f086989bfd
(describe-language-environment): Eval
Kenichi Handa <handa@m17n.org>
parents:
33047
diff
changeset
|
2088 (error nil)) |
31245
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2089 (let ((input-method (get-language-info language-name 'input-method)) |
90953
b56b261cff11
(describe-language-environment):
Kenichi Handa <handa@m17n.org>
parents:
90947
diff
changeset
|
2090 (l (copy-sequence input-method-alist)) |
b56b261cff11
(describe-language-environment):
Kenichi Handa <handa@m17n.org>
parents:
90947
diff
changeset
|
2091 (first t)) |
b56b261cff11
(describe-language-environment):
Kenichi Handa <handa@m17n.org>
parents:
90947
diff
changeset
|
2092 (when (and input-method |
b56b261cff11
(describe-language-environment):
Kenichi Handa <handa@m17n.org>
parents:
90947
diff
changeset
|
2093 (setq input-method (assoc input-method l))) |
b56b261cff11
(describe-language-environment):
Kenichi Handa <handa@m17n.org>
parents:
90947
diff
changeset
|
2094 (insert "Input methods (default " (car input-method) ")\n") |
b56b261cff11
(describe-language-environment):
Kenichi Handa <handa@m17n.org>
parents:
90947
diff
changeset
|
2095 (setq l (cons input-method (delete input-method l)) |
b56b261cff11
(describe-language-environment):
Kenichi Handa <handa@m17n.org>
parents:
90947
diff
changeset
|
2096 first nil)) |
b56b261cff11
(describe-language-environment):
Kenichi Handa <handa@m17n.org>
parents:
90947
diff
changeset
|
2097 (dolist (elt l) |
b56b261cff11
(describe-language-environment):
Kenichi Handa <handa@m17n.org>
parents:
90947
diff
changeset
|
2098 (when (or (eq input-method elt) |
b56b261cff11
(describe-language-environment):
Kenichi Handa <handa@m17n.org>
parents:
90947
diff
changeset
|
2099 (eq t (compare-strings language-name nil nil |
b56b261cff11
(describe-language-environment):
Kenichi Handa <handa@m17n.org>
parents:
90947
diff
changeset
|
2100 (nth 1 elt) nil nil t))) |
b56b261cff11
(describe-language-environment):
Kenichi Handa <handa@m17n.org>
parents:
90947
diff
changeset
|
2101 (when first |
b56b261cff11
(describe-language-environment):
Kenichi Handa <handa@m17n.org>
parents:
90947
diff
changeset
|
2102 (insert "Input methods:\n") |
b56b261cff11
(describe-language-environment):
Kenichi Handa <handa@m17n.org>
parents:
90947
diff
changeset
|
2103 (setq first nil)) |
b56b261cff11
(describe-language-environment):
Kenichi Handa <handa@m17n.org>
parents:
90947
diff
changeset
|
2104 (insert " " (car elt)) |
b56b261cff11
(describe-language-environment):
Kenichi Handa <handa@m17n.org>
parents:
90947
diff
changeset
|
2105 (search-backward (car elt)) |
b56b261cff11
(describe-language-environment):
Kenichi Handa <handa@m17n.org>
parents:
90947
diff
changeset
|
2106 (help-xref-button 0 'help-input-method (car elt)) |
31245
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2107 (goto-char (point-max)) |
34317
0378b3d77144
(describe-language-environment): Fix
Kenichi Handa <handa@m17n.org>
parents:
33866
diff
changeset
|
2108 (insert " (\"" |
90953
b56b261cff11
(describe-language-environment):
Kenichi Handa <handa@m17n.org>
parents:
90947
diff
changeset
|
2109 (if (stringp (nth 3 elt)) (nth 3 elt) (car (nth 3 elt))) |
b56b261cff11
(describe-language-environment):
Kenichi Handa <handa@m17n.org>
parents:
90947
diff
changeset
|
2110 "\" in mode line)\n"))) |
b56b261cff11
(describe-language-environment):
Kenichi Handa <handa@m17n.org>
parents:
90947
diff
changeset
|
2111 (or first |
b56b261cff11
(describe-language-environment):
Kenichi Handa <handa@m17n.org>
parents:
90947
diff
changeset
|
2112 (insert "\n"))) |
31245
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2113 (insert "Character sets:\n") |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2114 (let ((l (get-language-info language-name 'charset))) |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2115 (if (null l) |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2116 (insert " nothing specific to " language-name "\n") |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2117 (while l |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2118 (insert " " (symbol-name (car l))) |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2119 (search-backward (symbol-name (car l))) |
42186
e77f859d031b
(describe-language-environment): Fix calls to help-xref-button.
Richard M. Stallman <rms@gnu.org>
parents:
42050
diff
changeset
|
2120 (help-xref-button 0 'help-character-set (car l)) |
31245
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2121 (goto-char (point-max)) |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2122 (insert ": " (charset-description (car l)) "\n") |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2123 (setq l (cdr l))))) |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2124 (insert "\n") |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2125 (insert "Coding systems:\n") |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2126 (let ((l (get-language-info language-name 'coding-system))) |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2127 (if (null l) |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2128 (insert " nothing specific to " language-name "\n") |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2129 (while l |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2130 (insert " " (symbol-name (car l))) |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2131 (search-backward (symbol-name (car l))) |
42186
e77f859d031b
(describe-language-environment): Fix calls to help-xref-button.
Richard M. Stallman <rms@gnu.org>
parents:
42050
diff
changeset
|
2132 (help-xref-button 0 'help-coding-system (car l)) |
31245
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2133 (goto-char (point-max)) |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2134 (insert " (`" |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2135 (coding-system-mnemonic (car l)) |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2136 "' in mode line):\n\t" |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2137 (coding-system-doc-string (car l)) |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2138 "\n") |
88654
ce18173db20e
(describe-language-environment): Use
Dave Love <fx@gnu.org>
parents:
88649
diff
changeset
|
2139 (let ((aliases (coding-system-aliases (car l)))) |
31245
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2140 (when aliases |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2141 (insert "\t(alias:") |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2142 (while aliases |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2143 (insert " " (symbol-name (car aliases))) |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2144 (setq aliases (cdr aliases))) |
113d32f65989
(help-xref-mule-regexp-template): New variable.
Kenichi Handa <handa@m17n.org>
parents:
31138
diff
changeset
|
2145 (insert ")\n"))) |
40666
84cd0f5441e2
(describe-language-environment):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40592
diff
changeset
|
2146 (setq l (cdr l))))))))) |
17052 | 2147 |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2148 ;;; Locales. |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2149 |
28711 | 2150 (defvar locale-translation-file-name nil |
2151 "File name for the system's file of locale-name aliases, or nil if none.") | |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2152 |
41126
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2153 ;; The following definitions might as well be marked as constants and |
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2154 ;; purecopied, since they're normally used on startup, and probably |
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2155 ;; should reflect the facilities of the base Emacs. |
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2156 (defconst locale-language-names |
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2157 (purecopy |
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2158 '( |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2159 ;; Locale names of the form LANGUAGE[_TERRITORY][.CODESET][@MODIFIER] |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2160 ;; as specified in the Single Unix Spec, Version 2. |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2161 ;; LANGUAGE is a language code taken from ISO 639:1988 (E/F) |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2162 ;; with additions from ISO 639/RA Newsletter No.1/1989; |
41126
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2163 ;; see Internet RFC 2165 (1997-06) and |
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2164 ;; http://www.evertype.com/standards/iso639/iso639-en.html |
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2165 ;; TERRITORY is a country code taken from ISO 3166 |
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2166 ;; http://www.din.de/gremien/nas/nabd/iso3166ma/codlstp1/en_listp1.html. |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2167 ;; CODESET and MODIFIER are implementation-dependent. |
41126
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2168 |
52926
e165768a25a7
(locale-charset-to-coding-system):
Dave Love <fx@gnu.org>
parents:
52856
diff
changeset
|
2169 ;; jasonr comments: MS Windows uses three letter codes for |
e165768a25a7
(locale-charset-to-coding-system):
Dave Love <fx@gnu.org>
parents:
52856
diff
changeset
|
2170 ;; languages instead of the two letter ISO codes that POSIX |
e165768a25a7
(locale-charset-to-coding-system):
Dave Love <fx@gnu.org>
parents:
52856
diff
changeset
|
2171 ;; uses. In most cases the first two letters are the same, so |
e165768a25a7
(locale-charset-to-coding-system):
Dave Love <fx@gnu.org>
parents:
52856
diff
changeset
|
2172 ;; most of the regexps in locale-language-names work. Japanese |
e165768a25a7
(locale-charset-to-coding-system):
Dave Love <fx@gnu.org>
parents:
52856
diff
changeset
|
2173 ;; and Chinese are exceptions, which are listed in the |
e165768a25a7
(locale-charset-to-coding-system):
Dave Love <fx@gnu.org>
parents:
52856
diff
changeset
|
2174 ;; non-standard section at the bottom of locale-language-names. |
e165768a25a7
(locale-charset-to-coding-system):
Dave Love <fx@gnu.org>
parents:
52856
diff
changeset
|
2175 |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2176 ("aa_DJ" . "Latin-1") ; Afar |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2177 ("aa" . "UTF-8") |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2178 ;; ab Abkhazian |
26139
ca31ffbed318
* (locale-language-names):
Paul Eggert <eggert@twinsun.com>
parents:
26085
diff
changeset
|
2179 ("af" . "Latin-1") ; Afrikaans |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2180 ("am" "Ethiopic" utf-8) ; Amharic |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2181 ("an" . "Latin-9") ; Aragonese |
41126
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2182 ; ar Arabic glibc uses 8859-6 |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2183 ; as Assamese |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2184 ; ay Aymara |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2185 ("az" . "UTF-8") ; Azerbaijani |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2186 ; ba Bashkir |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2187 ("be" "Belarusian" cp1251) ; Belarusian [Byelorussian until early 1990s] |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2188 ("bg" "Bulgarian" cp1251) ; Bulgarian |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2189 ; bh Bihari |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2190 ; bi Bislama |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2191 ("bn" . "UTF-8") ; Bengali, Bangla |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2192 ("bo" . "Tibetan") |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2193 ("br" . "Latin-1") ; Breton |
46674 | 2194 ("bs" . "Latin-2") ; Bosnian |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2195 ("byn" . "UTF-8") ; Bilin; Blin |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2196 ("ca" . "Latin-1") ; Catalan |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2197 ; co Corsican |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2198 ("cs" "Czech" iso-8859-2) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2199 ("cy" "Welsh" iso-8859-14) |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2200 ("da" . "Latin-1") ; Danish |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2201 ("de" "German" iso-8859-1) |
69856
d6c2324400c7
(locale-language-names): Add a few MS Windows language codes.
Eli Zaretskii <eliz@gnu.org>
parents:
69854
diff
changeset
|
2202 ; dv Divehi |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2203 ; dz Bhutani |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2204 ("el" "Greek" iso-8859-7) |
26139
ca31ffbed318
* (locale-language-names):
Paul Eggert <eggert@twinsun.com>
parents:
26085
diff
changeset
|
2205 ;; Users who specify "en" explicitly typically want Latin-1, not ASCII. |
48073 | 2206 ;; That's actually what the GNU locales define, modulo things like |
2207 ;; en_IN -- fx. | |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2208 ("en_IN" "English" utf-8) ; glibc uses utf-8 for English in India |
67320
08bc4f887f34
(set-language-info-internal): New
Kenichi Handa <handa@m17n.org>
parents:
67036
diff
changeset
|
2209 ("en" "English" iso-8859-1) ; English |
76003
8734f45b6613
(locale-language-names): Map "eo" to "Esperanto".
Kenichi Handa <handa@m17n.org>
parents:
75347
diff
changeset
|
2210 ("eo" . "Esperanto") ; Esperanto |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2211 ("es" "Spanish" iso-8859-1) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2212 ("et" . "Latin-1") ; Estonian |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2213 ("eu" . "Latin-1") ; Basque |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2214 ("fa" . "UTF-8") ; Persian |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2215 ("fi" . "Latin-1") ; Finnish |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2216 ("fj" . "Latin-1") ; Fiji |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2217 ("fo" . "Latin-1") ; Faroese |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2218 ("fr" "French" iso-8859-1) ; French |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2219 ("fy" . "Latin-1") ; Frisian |
26139
ca31ffbed318
* (locale-language-names):
Paul Eggert <eggert@twinsun.com>
parents:
26085
diff
changeset
|
2220 ("ga" . "Latin-1") ; Irish Gaelic (new orthography) |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2221 ("gd" . "Latin-9") ; Scots Gaelic |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2222 ("gez" "Ethiopic" utf-8) ; Geez |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2223 ("gl" . "Latin-1") ; Gallegan; Galician |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2224 ; gn Guarani |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2225 ("gu" . "UTF-8") ; Gujarati |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2226 ("gv" . "Latin-1") ; Manx Gaelic |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2227 ; ha Hausa |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2228 ("he" "Hebrew" iso-8859-8) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2229 ("hi" "Devanagari" utf-8) ; Hindi |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2230 ("hr" "Croatian" iso-8859-2) ; Croatian |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2231 ("hu" . "Latin-2") ; Hungarian |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2232 ; hy Armenian |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2233 ; ia Interlingua |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2234 ("id" . "Latin-1") ; Indonesian |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2235 ; ie Interlingue |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2236 ; ik Inupiak |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2237 ("is" . "Latin-1") ; Icelandic |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2238 ("it" "Italian" iso-8859-1) ; Italian |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2239 ; iu Inuktitut |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2240 ("iw" "Hebrew" iso-8859-8) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2241 ("ja" "Japanese" euc-jp) |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2242 ; jw Javanese |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2243 ("ka" "Georgian" georgian-ps) ; Georgian |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2244 ; kk Kazakh |
26139
ca31ffbed318
* (locale-language-names):
Paul Eggert <eggert@twinsun.com>
parents:
26085
diff
changeset
|
2245 ("kl" . "Latin-1") ; Greenlandic |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2246 ; km Cambodian |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2247 ("kn" "Kannada" utf-8) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2248 ("ko" "Korean" euc-kr) |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2249 ; ks Kashmiri |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2250 ; ku Kurdish |
41126
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2251 ("kw" . "Latin-1") ; Cornish |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2252 ; ky Kirghiz |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2253 ("la" . "Latin-1") ; Latin |
41126
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2254 ("lb" . "Latin-1") ; Luxemburgish |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2255 ("lg" . "Laint-6") ; Ganda |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2256 ; ln Lingala |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2257 ("lo" "Lao" utf-8) ; Laothian |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2258 ("lt" "Lithuanian" iso-8859-13) |
42050
6c1b3df2bbd2
(locale-language-names): Add various
Dave Love <fx@gnu.org>
parents:
41227
diff
changeset
|
2259 ("lv" . "Latvian") ; Latvian, Lettish |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2260 ; mg Malagasy |
41126
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2261 ("mi" . "Latin-7") ; Maori |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2262 ("mk" "Cyrillic-ISO" iso-8859-5) ; Macedonian |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2263 ("ml" "Malayalam" utf-8) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2264 ("mn" . "UTF-8") ; Mongolian |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2265 ; mo Moldavian |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2266 ("mr" "Devanagari" utf-8) ; Marathi |
41126
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2267 ("ms" . "Latin-1") ; Malay |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2268 ("mt" . "Latin-3") ; Maltese |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2269 ; my Burmese |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2270 ; na Nauru |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2271 ("nb" . "Latin-1") ; Norwegian |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2272 ("ne" "Devanagari" utf-8) ; Nepali |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2273 ("nl" "Dutch" iso-8859-1) |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2274 ("no" . "Latin-1") ; Norwegian |
41126
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2275 ("oc" . "Latin-1") ; Occitan |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2276 ("om_ET" . "UTF-8") ; (Afan) Oromo |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2277 ("om" . "Latin-1") ; (Afan) Oromo |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2278 ; or Oriya |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2279 ("pa" . "UTF-8") ; Punjabi |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2280 ("pl" . "Latin-2") ; Polish |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2281 ; ps Pashto, Pushto |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2282 ("pt" . "Latin-1") ; Portuguese |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2283 ; qu Quechua |
26139
ca31ffbed318
* (locale-language-names):
Paul Eggert <eggert@twinsun.com>
parents:
26085
diff
changeset
|
2284 ("rm" . "Latin-1") ; Rhaeto-Romanic |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2285 ; rn Kirundi |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2286 ("ro" "Romanian" iso-8859-2) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2287 ("ru_RU" "Russian" iso-8859-5) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2288 ("ru_UA" "Russian" koi8-u) |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2289 ; rw Kinyarwanda |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2290 ("sa" . "Devanagari") ; Sanskrit |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2291 ; sd Sindhi |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2292 ("se" . "UTF-8") ; Northern Sami |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2293 ; sg Sangho |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2294 ("sh" . "Latin-2") ; Serbo-Croatian |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2295 ; si Sinhalese |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2296 ("sid" . "UTF-8") ; Sidamo |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2297 ("sk" "Slovak" iso-8859-2) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2298 ("sl" "Slovenian" iso-8859-2) |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2299 ; sm Samoan |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2300 ; sn Shona |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2301 ("so_ET" "UTF-8") ; Somali |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2302 ("so" "Latin-1") ; Somali |
26139
ca31ffbed318
* (locale-language-names):
Paul Eggert <eggert@twinsun.com>
parents:
26085
diff
changeset
|
2303 ("sq" . "Latin-1") ; Albanian |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2304 ("sr" . "Latin-2") ; Serbian (Latin alphabet) |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2305 ; ss Siswati |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2306 ("st" . "Latin-1") ; Sesotho |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2307 ; su Sundanese |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2308 ("sv" "Swedish" iso-8859-1) ; Swedish |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2309 ("sw" . "Latin-1") ; Swahili |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2310 ("ta" "Tamil" utf-8) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2311 ("te" . "UTF-8") ; Telugu |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2312 ("tg" "Tajik" koi8-t) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2313 ("th" "Thai" tis-620) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2314 ("ti" "Ethiopic" utf-8) ; Tigrinya |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2315 ("tig_ER" . "UTF-8") ; Tigre |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2316 ; tk Turkmen |
26139
ca31ffbed318
* (locale-language-names):
Paul Eggert <eggert@twinsun.com>
parents:
26085
diff
changeset
|
2317 ("tl" . "Latin-1") ; Tagalog |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2318 ; tn Setswana |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2319 ; to Tonga |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2320 ("tr" "Turkish" iso-8859-9) |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2321 ; ts Tsonga |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2322 ("tt" . "UTF-8") ; Tatar |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2323 ; tw Twi |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2324 ; ug Uighur |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2325 ("uk" "Ukrainian" koi8-u) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2326 ("ur" . "UTF-8") ; Urdu |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2327 ("uz_UZ@cyrillic" . "UTF-8"); Uzbek |
41126
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2328 ("uz" . "Latin-1") ; Uzbek |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2329 ("vi" "Vietnamese" utf-8) |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2330 ; vo Volapuk |
46674 | 2331 ("wa" . "Latin-1") ; Walloon |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2332 ; wo Wolof |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2333 ("xh" . "Latin-1") ; Xhosa |
42050
6c1b3df2bbd2
(locale-language-names): Add various
Dave Love <fx@gnu.org>
parents:
41227
diff
changeset
|
2334 ("yi" . "Windows-1255") ; Yiddish |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2335 ; yo Yoruba |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2336 ; za Zhuang |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2337 ("zh_HK" . "Chinese-Big5") |
90252
e094675b3ca1
(locale-language-names): Add entries
Kenichi Handa <handa@m17n.org>
parents:
90233
diff
changeset
|
2338 ; zh_HK/BIG5-HKSCS \ |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2339 ("zh_TW" . "Chinese-Big5") |
90252
e094675b3ca1
(locale-language-names): Add entries
Kenichi Handa <handa@m17n.org>
parents:
90233
diff
changeset
|
2340 ("zh_CN.GB2312" "Chinese-GB") |
e094675b3ca1
(locale-language-names): Add entries
Kenichi Handa <handa@m17n.org>
parents:
90233
diff
changeset
|
2341 ("zh_CN.GBK" "Chinese-GBK") |
e094675b3ca1
(locale-language-names): Add entries
Kenichi Handa <handa@m17n.org>
parents:
90233
diff
changeset
|
2342 ("zh_CN.GB18030" "Chinese-GB18030") |
90688
4bcfe4827e45
(locale-language-names): Add an entry
Kenichi Handa <handa@m17n.org>
parents:
90668
diff
changeset
|
2343 ("zh_CN.UTF-8" . "Chinese-GBK") |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2344 ("zh_CN" . "Chinese-GB") |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2345 ("zh" . "Chinese-GB") |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2346 ("zu" . "Latin-1") ; Zulu |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2347 |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2348 ;; ISO standard locales |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2349 ("c$" . "ASCII") |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2350 ("posix$" . "ASCII") |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2351 |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2352 ;; The "IPA" Emacs language environment does not correspond |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2353 ;; to any ISO 639 code, so let it stand for itself. |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2354 ("ipa$" . "IPA") |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2355 |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2356 ;; Nonstandard or obsolete language codes |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2357 ("cz" . "Czech") ; e.g. Solaris 2.6 |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2358 ("ee" . "Latin-4") ; Estonian, e.g. X11R6.4 |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2359 ("iw" . "Hebrew") ; e.g. X11R6.4 |
46308
b634913b5b45
(locale-language-names): Change "mk" (Macedoninan), "ru" (Russian),
Kenichi Handa <handa@m17n.org>
parents:
45631
diff
changeset
|
2360 ("sp" . "Cyrillic-ISO") ; Serbian (Cyrillic alphabet), e.g. X11R6.4 |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2361 ("su" . "Latin-1") ; Finnish, e.g. Solaris 2.6 |
33866
feb369d9ca07
(locale-language-names): Add jp as a non-standard alternative for Japanese.
Jason Rumney <jasonr@gnu.org>
parents:
33514
diff
changeset
|
2362 ("jp" . "Japanese") ; e.g. MS Windows |
90688
4bcfe4827e45
(locale-language-names): Add an entry
Kenichi Handa <handa@m17n.org>
parents:
90668
diff
changeset
|
2363 ("chs" . "Chinese-GBK") ; MS Windows Chinese Simplified |
40592
8149d14c23bf
(locale-language-names): Add chs and
Jason Rumney <jasonr@gnu.org>
parents:
38414
diff
changeset
|
2364 ("cht" . "Chinese-BIG5") ; MS Windows Chinese Traditional |
69856
d6c2324400c7
(locale-language-names): Add a few MS Windows language codes.
Eli Zaretskii <eliz@gnu.org>
parents:
69854
diff
changeset
|
2365 ("gbz" . "UTF-8") ; MS Windows Dari Persian |
d6c2324400c7
(locale-language-names): Add a few MS Windows language codes.
Eli Zaretskii <eliz@gnu.org>
parents:
69854
diff
changeset
|
2366 ("div" . "UTF-8") ; MS Windows Divehi (Maldives) |
d6c2324400c7
(locale-language-names): Add a few MS Windows language codes.
Eli Zaretskii <eliz@gnu.org>
parents:
69854
diff
changeset
|
2367 ("wee" . "Latin-2") ; MS Windows Lower Sorbian |
d6c2324400c7
(locale-language-names): Add a few MS Windows language codes.
Eli Zaretskii <eliz@gnu.org>
parents:
69854
diff
changeset
|
2368 ("wen" . "Latin-2") ; MS Windows Upper Sorbian |
41136
76fbe1b154a2
Fix paren-typo.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41126
diff
changeset
|
2369 )) |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2370 "Alist of locale regexps vs the corresponding languages and coding systems. |
77918
80ba9b48c547
(toggle-enable-multibyte-characters, sort-coding-systems,
Juanma Barranquero <lekktu@gmail.com>
parents:
76003
diff
changeset
|
2371 Each element has this form: |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2372 \(LOCALE-REGEXP LANG-ENV CODING-SYSTEM) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2373 The first element whose LOCALE-REGEXP matches the start of a |
77918
80ba9b48c547
(toggle-enable-multibyte-characters, sort-coding-systems,
Juanma Barranquero <lekktu@gmail.com>
parents:
76003
diff
changeset
|
2374 downcased locale specifies the LANG-ENV \(language environment) |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2375 and CODING-SYSTEM corresponding to that locale. If there is no |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2376 appropriate language environment, the element may have this form: |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2377 \(LOCALE-REGEXP . LANG-ENV) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2378 In this case, LANG-ENV is one of generic language environments for an |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2379 specific encoding such as \"Latin-1\" and \"UTF-8\".") |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2380 |
41126
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2381 (defconst locale-charset-language-names |
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2382 (purecopy |
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2383 '((".*8859[-_]?1\\>" . "Latin-1") |
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2384 (".*8859[-_]?2\\>" . "Latin-2") |
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2385 (".*8859[-_]?3\\>" . "Latin-3") |
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2386 (".*8859[-_]?4\\>" . "Latin-4") |
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2387 (".*8859[-_]?9\\>" . "Latin-5") |
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2388 (".*8859[-_]?14\\>" . "Latin-8") |
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2389 (".*8859[-_]?15\\>" . "Latin-9") |
52856
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2390 (".*utf\\(?:-?8\\)?\\>" . "UTF-8") |
46501
347694b9f9ff
(locale-language-names): Fix be, add
Dave Love <fx@gnu.org>
parents:
46308
diff
changeset
|
2391 ;; utf-8@euro exists, so put this last. (@euro really specifies |
347694b9f9ff
(locale-language-names): Fix be, add
Dave Love <fx@gnu.org>
parents:
46308
diff
changeset
|
2392 ;; the currency, rather than the charset.) |
347694b9f9ff
(locale-language-names): Fix be, add
Dave Love <fx@gnu.org>
parents:
46308
diff
changeset
|
2393 (".*@euro\\>" . "Latin-9"))) |
26139
ca31ffbed318
* (locale-language-names):
Paul Eggert <eggert@twinsun.com>
parents:
26085
diff
changeset
|
2394 "List of pairs of locale regexps and charset language names. |
ca31ffbed318
* (locale-language-names):
Paul Eggert <eggert@twinsun.com>
parents:
26085
diff
changeset
|
2395 The first element whose locale regexp matches the start of a downcased locale |
52856
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2396 specifies the language name whose charset corresponds to that locale. |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2397 This language name is used if the locale is not listed in |
77918
80ba9b48c547
(toggle-enable-multibyte-characters, sort-coding-systems,
Juanma Barranquero <lekktu@gmail.com>
parents:
76003
diff
changeset
|
2398 `locale-language-names'.") |
26139
ca31ffbed318
* (locale-language-names):
Paul Eggert <eggert@twinsun.com>
parents:
26085
diff
changeset
|
2399 |
41126
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2400 (defconst locale-preferred-coding-systems |
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2401 (purecopy |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2402 '((".*8859[-_]?1\\>" . iso-8859-1) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2403 (".*8859[-_]?2\\>" . iso-8859-2) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2404 (".*8859[-_]?3\\>" . iso-8859-3) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2405 (".*8859[-_]?4\\>" . iso-8859-4) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2406 (".*8859[-_]?9\\>" . iso-8859-9) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2407 (".*8859[-_]?14\\>" . iso-8859-14) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2408 (".*8859[-_]?15\\>" . iso-8859-15) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2409 (".*utf\\(?:-?8\\)?" . utf-8) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2410 ;; utf-8@euro exists, so put this after utf-8. (@euro really |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2411 ;; specifies the currency, rather than the charset.) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2412 (".*@euro" . iso-8859-15) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2413 ("koi8-?r" . koi8-r) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2414 ("koi8-?u" . koi8-u) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2415 ("tcvn" . tcvn) |
90254
9b004e9ea127
(locale-preferred-coding-systems): Fix entries for Chinese
Kenichi Handa <handa@m17n.org>
parents:
90252
diff
changeset
|
2416 ("big5[-_]?hkscs" . big5-hkscs) |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2417 ("big5" . big5) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2418 ("euc-?tw" . euc-tw) |
100092
de527e989fd2
* international/mule-cmds.el (locale-preferred-coding-systems): Fix alist item.
Juanma Barranquero <lekktu@gmail.com>
parents:
99682
diff
changeset
|
2419 ("euc-?cn" . euc-cn) |
90254
9b004e9ea127
(locale-preferred-coding-systems): Fix entries for Chinese
Kenichi Handa <handa@m17n.org>
parents:
90252
diff
changeset
|
2420 ("gb2312" . gb2312) |
9b004e9ea127
(locale-preferred-coding-systems): Fix entries for Chinese
Kenichi Handa <handa@m17n.org>
parents:
90252
diff
changeset
|
2421 ("gbk" . gbk) |
9b004e9ea127
(locale-preferred-coding-systems): Fix entries for Chinese
Kenichi Handa <handa@m17n.org>
parents:
90252
diff
changeset
|
2422 ("gb18030" . gb18030) |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2423 ("ja.*[._]euc" . japanese-iso-8bit) |
41126
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2424 ("ja.*[._]jis7" . iso-2022-jp) |
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2425 ("ja.*[._]pck" . japanese-shift-jis) |
91e3a6470ffd
(describe-input-method): Setup xref.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40723
diff
changeset
|
2426 ("ja.*[._]sjis" . japanese-shift-jis) |
44643
10292933863d
(locale-preferred-coding-systems): Add "jpn".
Jason Rumney <jasonr@gnu.org>
parents:
44440
diff
changeset
|
2427 ("jpn" . japanese-shift-jis) ; MS-Windows uses this. |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2428 )) |
26139
ca31ffbed318
* (locale-language-names):
Paul Eggert <eggert@twinsun.com>
parents:
26085
diff
changeset
|
2429 "List of pairs of locale regexps and preferred coding systems. |
ca31ffbed318
* (locale-language-names):
Paul Eggert <eggert@twinsun.com>
parents:
26085
diff
changeset
|
2430 The first element whose locale regexp matches the start of a downcased locale |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2431 specifies the coding system to prefer when using that locale. |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2432 This coding system is used if the locale specifies a specific charset.") |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2433 |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2434 (defun locale-name-match (key alist) |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2435 "Search for KEY in ALIST, which should be a list of regexp-value pairs. |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2436 Return the value corresponding to the first regexp that matches the |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2437 start of KEY, or nil if there is no match." |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2438 (let (element) |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2439 (while (and alist (not element)) |
99682
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
2440 (if (string-match-p (concat "\\`\\(?:" (car (car alist)) "\\)") key) |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2441 (setq element (car alist))) |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2442 (setq alist (cdr alist))) |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2443 (cdr element))) |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2444 |
52856
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2445 (defun locale-charset-match-p (charset1 charset2) |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2446 "Whether charset names (strings) CHARSET1 and CHARSET2 are equivalent. |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2447 Matching is done ignoring case and any hyphens and underscores in the |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2448 names. E.g. `ISO_8859-1' and `iso88591' both match `iso-8859-1'." |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2449 (setq charset1 (replace-regexp-in-string "[-_]" "" charset1)) |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2450 (setq charset2 (replace-regexp-in-string "[-_]" "" charset2)) |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2451 (eq t (compare-strings charset1 nil nil charset2 nil nil t))) |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2452 |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2453 (defvar locale-charset-alist nil |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2454 "Coding system alist keyed on locale-style charset name. |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2455 Used by `locale-charset-to-coding-system'.") |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2456 |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2457 (defun locale-charset-to-coding-system (charset) |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2458 "Find coding system corresponding to CHARSET. |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2459 CHARSET is any sort of non-Emacs charset name, such as might be used |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2460 in a locale codeset, or elsewhere. It is matched to a coding system |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2461 first by case-insensitive lookup in `locale-charset-alist'. Then |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2462 matches are looked for in the coding system list, treating case and |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2463 the characters `-' and `_' as insignificant. The coding system base |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2464 is returned. Thus, for instance, if charset \"ISO8859-2\", |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2465 `iso-latin-2' is returned." |
55047
428f891f9e31
Use assoc-string, not assoc-ignore-case.
Richard M. Stallman <rms@gnu.org>
parents:
54507
diff
changeset
|
2466 (or (car (assoc-string charset locale-charset-alist t)) |
52856
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2467 (let ((cs coding-system-alist) |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2468 c) |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2469 (while (and (not c) cs) |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2470 (if (locale-charset-match-p charset (caar cs)) |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2471 (setq c (intern (caar cs))) |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2472 (pop cs))) |
52926
e165768a25a7
(locale-charset-to-coding-system):
Dave Love <fx@gnu.org>
parents:
52856
diff
changeset
|
2473 (if c (coding-system-base c))))) |
52856
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2474 |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2475 ;; Fixme: This ought to deal with the territory part of the locale |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2476 ;; too, for setting things such as calendar holidays, ps-print paper |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2477 ;; size, spelling dictionary. |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2478 |
91681
88dc1f9f4da0
(locale-translate): New function, with old code extracted from
Glenn Morris <rgm@gnu.org>
parents:
91327
diff
changeset
|
2479 (defun locale-translate (locale) |
88dc1f9f4da0
(locale-translate): New function, with old code extracted from
Glenn Morris <rgm@gnu.org>
parents:
91327
diff
changeset
|
2480 "Expand LOCALE according to `locale-translation-file-name', if possible. |
88dc1f9f4da0
(locale-translate): New function, with old code extracted from
Glenn Morris <rgm@gnu.org>
parents:
91327
diff
changeset
|
2481 For example, translate \"swedish\" into \"sv_SE.ISO8859-1\"." |
88dc1f9f4da0
(locale-translate): New function, with old code extracted from
Glenn Morris <rgm@gnu.org>
parents:
91327
diff
changeset
|
2482 (if locale-translation-file-name |
88dc1f9f4da0
(locale-translate): New function, with old code extracted from
Glenn Morris <rgm@gnu.org>
parents:
91327
diff
changeset
|
2483 (with-temp-buffer |
88dc1f9f4da0
(locale-translate): New function, with old code extracted from
Glenn Morris <rgm@gnu.org>
parents:
91327
diff
changeset
|
2484 (set-buffer-multibyte nil) |
88dc1f9f4da0
(locale-translate): New function, with old code extracted from
Glenn Morris <rgm@gnu.org>
parents:
91327
diff
changeset
|
2485 (insert-file-contents locale-translation-file-name) |
88dc1f9f4da0
(locale-translate): New function, with old code extracted from
Glenn Morris <rgm@gnu.org>
parents:
91327
diff
changeset
|
2486 (if (re-search-forward |
88dc1f9f4da0
(locale-translate): New function, with old code extracted from
Glenn Morris <rgm@gnu.org>
parents:
91327
diff
changeset
|
2487 (concat "^" (regexp-quote locale) ":?[ \t]+") nil t) |
88dc1f9f4da0
(locale-translate): New function, with old code extracted from
Glenn Morris <rgm@gnu.org>
parents:
91327
diff
changeset
|
2488 (buffer-substring (point) (line-end-position)) |
88dc1f9f4da0
(locale-translate): New function, with old code extracted from
Glenn Morris <rgm@gnu.org>
parents:
91327
diff
changeset
|
2489 locale)) |
88dc1f9f4da0
(locale-translate): New function, with old code extracted from
Glenn Morris <rgm@gnu.org>
parents:
91327
diff
changeset
|
2490 locale)) |
88dc1f9f4da0
(locale-translate): New function, with old code extracted from
Glenn Morris <rgm@gnu.org>
parents:
91327
diff
changeset
|
2491 |
83594
2716535391b7
Rudimentary fix for environment variable handling.
Miles Bader <miles@gnu.org>
parents:
83556
diff
changeset
|
2492 (defun set-locale-environment (&optional locale-name frame) |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2493 "Set up multi-lingual environment for using LOCALE-NAME. |
40723
20229bfaf7ce
(set-locale-environment): Make it interactive; make arg optional.
Richard M. Stallman <rms@gnu.org>
parents:
40666
diff
changeset
|
2494 This sets the language environment, the coding system priority, |
20229bfaf7ce
(set-locale-environment): Make it interactive; make arg optional.
Richard M. Stallman <rms@gnu.org>
parents:
40666
diff
changeset
|
2495 the default input method and sometimes other things. |
20229bfaf7ce
(set-locale-environment): Make it interactive; make arg optional.
Richard M. Stallman <rms@gnu.org>
parents:
40666
diff
changeset
|
2496 |
52856
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2497 LOCALE-NAME should be a string which is the name of a locale supported |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2498 by the system. Often it is of the form xx_XX.CODE, where xx is a |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2499 language, XX is a country, and CODE specifies a character set and |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2500 coding system. For example, the locale name \"ja_JP.EUC\" might name |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2501 a locale for Japanese in Japan using the `japanese-iso-8bit' |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2502 coding-system. The name may also have a modifier suffix, e.g. `@euro' |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2503 or `@cyrillic'. |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2504 |
40723
20229bfaf7ce
(set-locale-environment): Make it interactive; make arg optional.
Richard M. Stallman <rms@gnu.org>
parents:
40666
diff
changeset
|
2505 If LOCALE-NAME is nil, its value is taken from the environment |
46674 | 2506 variables LC_ALL, LC_CTYPE and LANG (the first one that is set). |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2507 |
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2508 The locale names supported by your system can typically be found in a |
31569
8b6e9e1a553b
(set-locale-environment): Doc fix.
Dave Love <fx@gnu.org>
parents:
31423
diff
changeset
|
2509 directory named `/usr/share/locale' or `/usr/lib/locale'. LOCALE-NAME |
40723
20229bfaf7ce
(set-locale-environment): Make it interactive; make arg optional.
Richard M. Stallman <rms@gnu.org>
parents:
40666
diff
changeset
|
2510 will be translated according to the table specified by |
31569
8b6e9e1a553b
(set-locale-environment): Doc fix.
Dave Love <fx@gnu.org>
parents:
31423
diff
changeset
|
2511 `locale-translation-file-name'. |
8b6e9e1a553b
(set-locale-environment): Doc fix.
Dave Love <fx@gnu.org>
parents:
31423
diff
changeset
|
2512 |
83594
2716535391b7
Rudimentary fix for environment variable handling.
Miles Bader <miles@gnu.org>
parents:
83556
diff
changeset
|
2513 If FRAME is non-nil, only set the keyboard coding system and the |
2716535391b7
Rudimentary fix for environment variable handling.
Miles Bader <miles@gnu.org>
parents:
83556
diff
changeset
|
2514 terminal coding system for the terminal of that frame, and don't |
2716535391b7
Rudimentary fix for environment variable handling.
Miles Bader <miles@gnu.org>
parents:
83556
diff
changeset
|
2515 touch session-global parameters like the language environment. |
83300
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2516 |
31569
8b6e9e1a553b
(set-locale-environment): Doc fix.
Dave Love <fx@gnu.org>
parents:
31423
diff
changeset
|
2517 See also `locale-charset-language-names', `locale-language-names', |
8b6e9e1a553b
(set-locale-environment): Doc fix.
Dave Love <fx@gnu.org>
parents:
31423
diff
changeset
|
2518 `locale-preferred-coding-systems' and `locale-coding-system'." |
40723
20229bfaf7ce
(set-locale-environment): Make it interactive; make arg optional.
Richard M. Stallman <rms@gnu.org>
parents:
40666
diff
changeset
|
2519 (interactive "sSet environment for locale: ") |
49598
0d8b17d428b5
Trailing whitepace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49435
diff
changeset
|
2520 |
28711 | 2521 ;; Do this at runtime for the sake of binaries possibly transported |
2522 ;; to a system without X. | |
2523 (setq locale-translation-file-name | |
2524 (let ((files | |
68590
227c1c287c2f
(set-locale-environment): Add "/usr/share/X11/locale/locale.alias" to
Kenichi Handa <handa@m17n.org>
parents:
67358
diff
changeset
|
2525 '("/usr/share/X11/locale/locale.alias" ; e.g. X11R7 |
227c1c287c2f
(set-locale-environment): Add "/usr/share/X11/locale/locale.alias" to
Kenichi Handa <handa@m17n.org>
parents:
67358
diff
changeset
|
2526 "/usr/lib/X11/locale/locale.alias" ; e.g. X11R6.4 |
52856
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2527 "/usr/X11R6/lib/X11/locale/locale.alias" ; XFree86, e.g. RedHat 4.2 |
28711 | 2528 "/usr/openwin/lib/locale/locale.alias" ; e.g. Solaris 2.6 |
2529 ;; | |
2530 ;; The following name appears after the X-related names above, | |
2531 ;; since the X-related names are what X actually uses. | |
2532 "/usr/share/locale/locale.alias" ; GNU/Linux sans X | |
2533 ))) | |
2534 (while (and files (not (file-exists-p (car files)))) | |
2535 (setq files (cdr files))) | |
2536 (car files))) | |
2537 | |
36910
88d7b5c216a2
(set-locale-environment): Set
Gerd Moellmann <gerd@gnu.org>
parents:
36863
diff
changeset
|
2538 (let ((locale locale-name)) |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2539 |
36910
88d7b5c216a2
(set-locale-environment): Set
Gerd Moellmann <gerd@gnu.org>
parents:
36863
diff
changeset
|
2540 (unless locale |
88d7b5c216a2
(set-locale-environment): Set
Gerd Moellmann <gerd@gnu.org>
parents:
36863
diff
changeset
|
2541 ;; Use the first of these three environment variables |
88d7b5c216a2
(set-locale-environment): Set
Gerd Moellmann <gerd@gnu.org>
parents:
36863
diff
changeset
|
2542 ;; that has a nonempty value. |
88d7b5c216a2
(set-locale-environment): Set
Gerd Moellmann <gerd@gnu.org>
parents:
36863
diff
changeset
|
2543 (let ((vars '("LC_ALL" "LC_CTYPE" "LANG"))) |
49042 | 2544 (while (and vars |
2545 (= 0 (length locale))) ; nil or empty string | |
83594
2716535391b7
Rudimentary fix for environment variable handling.
Miles Bader <miles@gnu.org>
parents:
83556
diff
changeset
|
2546 (setq locale (getenv (pop vars) frame))))) |
36910
88d7b5c216a2
(set-locale-environment): Set
Gerd Moellmann <gerd@gnu.org>
parents:
36863
diff
changeset
|
2547 |
88d7b5c216a2
(set-locale-environment): Set
Gerd Moellmann <gerd@gnu.org>
parents:
36863
diff
changeset
|
2548 (when locale |
91681
88dc1f9f4da0
(locale-translate): New function, with old code extracted from
Glenn Morris <rgm@gnu.org>
parents:
91327
diff
changeset
|
2549 (setq locale (locale-translate locale)) |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2550 |
36910
88d7b5c216a2
(set-locale-environment): Set
Gerd Moellmann <gerd@gnu.org>
parents:
36863
diff
changeset
|
2551 ;; Leave the system locales alone if the caller did not specify |
88d7b5c216a2
(set-locale-environment): Set
Gerd Moellmann <gerd@gnu.org>
parents:
36863
diff
changeset
|
2552 ;; an explicit locale name, as their defaults are set from |
88d7b5c216a2
(set-locale-environment): Set
Gerd Moellmann <gerd@gnu.org>
parents:
36863
diff
changeset
|
2553 ;; LC_MESSAGES and LC_TIME, not LC_CTYPE, and the user might not |
88d7b5c216a2
(set-locale-environment): Set
Gerd Moellmann <gerd@gnu.org>
parents:
36863
diff
changeset
|
2554 ;; want to set them to the same value as LC_CTYPE. |
88d7b5c216a2
(set-locale-environment): Set
Gerd Moellmann <gerd@gnu.org>
parents:
36863
diff
changeset
|
2555 (when locale-name |
88d7b5c216a2
(set-locale-environment): Set
Gerd Moellmann <gerd@gnu.org>
parents:
36863
diff
changeset
|
2556 (setq system-messages-locale locale) |
97913
358ab4e4f102
(set-language-environment): Don't
Kenichi Handa <handa@m17n.org>
parents:
97263
diff
changeset
|
2557 (setq system-time-locale locale)) |
358ab4e4f102
(set-language-environment): Don't
Kenichi Handa <handa@m17n.org>
parents:
97263
diff
changeset
|
2558 |
358ab4e4f102
(set-language-environment): Don't
Kenichi Handa <handa@m17n.org>
parents:
97263
diff
changeset
|
2559 (if (string-match "^[a-z][a-z]" locale) |
358ab4e4f102
(set-language-environment): Don't
Kenichi Handa <handa@m17n.org>
parents:
97263
diff
changeset
|
2560 (setq current-iso639-language (intern (match-string 0 locale))))) |
36910
88d7b5c216a2
(set-locale-environment): Set
Gerd Moellmann <gerd@gnu.org>
parents:
36863
diff
changeset
|
2561 |
91681
88dc1f9f4da0
(locale-translate): New function, with old code extracted from
Glenn Morris <rgm@gnu.org>
parents:
91327
diff
changeset
|
2562 (setq woman-locale |
88dc1f9f4da0
(locale-translate): New function, with old code extracted from
Glenn Morris <rgm@gnu.org>
parents:
91327
diff
changeset
|
2563 (or system-messages-locale |
91918
0ae97cb23ed8
(set-locale-environment): Pass `frame' to getenv for LC_MESSAGES.
Glenn Morris <rgm@gnu.org>
parents:
91778
diff
changeset
|
2564 (let ((msglocale (getenv "LC_MESSAGES" frame))) |
91681
88dc1f9f4da0
(locale-translate): New function, with old code extracted from
Glenn Morris <rgm@gnu.org>
parents:
91327
diff
changeset
|
2565 (if (zerop (length msglocale)) |
88dc1f9f4da0
(locale-translate): New function, with old code extracted from
Glenn Morris <rgm@gnu.org>
parents:
91327
diff
changeset
|
2566 locale |
88dc1f9f4da0
(locale-translate): New function, with old code extracted from
Glenn Morris <rgm@gnu.org>
parents:
91327
diff
changeset
|
2567 (locale-translate msglocale))))) |
88dc1f9f4da0
(locale-translate): New function, with old code extracted from
Glenn Morris <rgm@gnu.org>
parents:
91327
diff
changeset
|
2568 |
88dc1f9f4da0
(locale-translate): New function, with old code extracted from
Glenn Morris <rgm@gnu.org>
parents:
91327
diff
changeset
|
2569 (when locale |
36910
88d7b5c216a2
(set-locale-environment): Set
Gerd Moellmann <gerd@gnu.org>
parents:
36863
diff
changeset
|
2570 (setq locale (downcase locale)) |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2571 |
36910
88d7b5c216a2
(set-locale-environment): Set
Gerd Moellmann <gerd@gnu.org>
parents:
36863
diff
changeset
|
2572 (let ((language-name |
88d7b5c216a2
(set-locale-environment): Set
Gerd Moellmann <gerd@gnu.org>
parents:
36863
diff
changeset
|
2573 (locale-name-match locale locale-language-names)) |
88d7b5c216a2
(set-locale-environment): Set
Gerd Moellmann <gerd@gnu.org>
parents:
36863
diff
changeset
|
2574 (charset-language-name |
88d7b5c216a2
(set-locale-environment): Set
Gerd Moellmann <gerd@gnu.org>
parents:
36863
diff
changeset
|
2575 (locale-name-match locale locale-charset-language-names)) |
69854
1b196049b994
(set-locale-environment): Make sure the coding-system preferred by the
Eli Zaretskii <eliz@gnu.org>
parents:
69638
diff
changeset
|
2576 (default-eol-type (coding-system-eol-type |
104664
50fdf250e26b
* mh-e/mh-comp.el (mh-send-letter):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
104612
diff
changeset
|
2577 (default-value 'buffer-file-coding-system))) |
36910
88d7b5c216a2
(set-locale-environment): Set
Gerd Moellmann <gerd@gnu.org>
parents:
36863
diff
changeset
|
2578 (coding-system |
52856
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2579 (or (locale-name-match locale locale-preferred-coding-systems) |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2580 (when locale |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2581 (if (string-match "\\.\\([^@]+\\)" locale) |
05c3a0a53ad9
(find-multibyte-characters): Doc fix.
Dave Love <fx@gnu.org>
parents:
52823
diff
changeset
|
2582 (locale-charset-to-coding-system |
97043
9592c50233ab
Remove support for Mac Carbon.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96675
diff
changeset
|
2583 (match-string 1 locale))))))) |
26139
ca31ffbed318
* (locale-language-names):
Paul Eggert <eggert@twinsun.com>
parents:
26085
diff
changeset
|
2584 |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2585 (if (consp language-name) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2586 ;; locale-language-names specify both lang-env and coding. |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2587 ;; But, what specified in locale-preferred-coding-systems |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2588 ;; has higher priority. |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2589 (setq coding-system (or coding-system |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2590 (nth 1 language-name)) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2591 language-name (car language-name)) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2592 ;; Otherwise, if locale is not listed in locale-language-names, |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2593 ;; use what listed in locale-charset-language-names. |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2594 (if (not language-name) |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2595 (setq language-name charset-language-name))) |
26139
ca31ffbed318
* (locale-language-names):
Paul Eggert <eggert@twinsun.com>
parents:
26085
diff
changeset
|
2596 |
69854
1b196049b994
(set-locale-environment): Make sure the coding-system preferred by the
Eli Zaretskii <eliz@gnu.org>
parents:
69638
diff
changeset
|
2597 ;; If a specific EOL conversion was specified in the default |
1b196049b994
(set-locale-environment): Make sure the coding-system preferred by the
Eli Zaretskii <eliz@gnu.org>
parents:
69638
diff
changeset
|
2598 ;; buffer-file-coding-system, preserve it in the coding system |
1b196049b994
(set-locale-environment): Make sure the coding-system preferred by the
Eli Zaretskii <eliz@gnu.org>
parents:
69638
diff
changeset
|
2599 ;; we will be using from now on. |
69918
96ba55a8591b
(set-locale-environment): Fix last change for when the locale's preferences
Eli Zaretskii <eliz@gnu.org>
parents:
69856
diff
changeset
|
2600 (if (and (memq default-eol-type '(0 1 2 unix dos mac)) |
96ba55a8591b
(set-locale-environment): Fix last change for when the locale's preferences
Eli Zaretskii <eliz@gnu.org>
parents:
69856
diff
changeset
|
2601 coding-system |
96ba55a8591b
(set-locale-environment): Fix last change for when the locale's preferences
Eli Zaretskii <eliz@gnu.org>
parents:
69856
diff
changeset
|
2602 (coding-system-p coding-system)) |
69854
1b196049b994
(set-locale-environment): Make sure the coding-system preferred by the
Eli Zaretskii <eliz@gnu.org>
parents:
69638
diff
changeset
|
2603 (setq coding-system (coding-system-change-eol-conversion |
1b196049b994
(set-locale-environment): Make sure the coding-system preferred by the
Eli Zaretskii <eliz@gnu.org>
parents:
69638
diff
changeset
|
2604 coding-system default-eol-type))) |
1b196049b994
(set-locale-environment): Make sure the coding-system preferred by the
Eli Zaretskii <eliz@gnu.org>
parents:
69638
diff
changeset
|
2605 |
36910
88d7b5c216a2
(set-locale-environment): Set
Gerd Moellmann <gerd@gnu.org>
parents:
36863
diff
changeset
|
2606 (when language-name |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2607 |
36910
88d7b5c216a2
(set-locale-environment): Set
Gerd Moellmann <gerd@gnu.org>
parents:
36863
diff
changeset
|
2608 ;; Set up for this character set. This is now the right way |
88d7b5c216a2
(set-locale-environment): Set
Gerd Moellmann <gerd@gnu.org>
parents:
36863
diff
changeset
|
2609 ;; to do it for both unibyte and multibyte modes. |
83594
2716535391b7
Rudimentary fix for environment variable handling.
Miles Bader <miles@gnu.org>
parents:
83556
diff
changeset
|
2610 (unless frame |
83300
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2611 (set-language-environment language-name)) |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2612 |
104823
68150c643e2e
Use default-value rather than default-enable-multibyte-characters.
Glenn Morris <rgm@gnu.org>
parents:
104664
diff
changeset
|
2613 ;; If the default enable-multibyte-characters is nil, |
36910
88d7b5c216a2
(set-locale-environment): Set
Gerd Moellmann <gerd@gnu.org>
parents:
36863
diff
changeset
|
2614 ;; we are using single-byte characters, |
88d7b5c216a2
(set-locale-environment): Set
Gerd Moellmann <gerd@gnu.org>
parents:
36863
diff
changeset
|
2615 ;; so the display table and terminal coding system are irrelevant. |
104823
68150c643e2e
Use default-value rather than default-enable-multibyte-characters.
Glenn Morris <rgm@gnu.org>
parents:
104664
diff
changeset
|
2616 (when (default-value 'enable-multibyte-characters) |
60934
439d4fa30f21
(set-locale-environment): For Mac OS X's Terminal.app, use utf-8.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60603
diff
changeset
|
2617 (set-display-table-and-terminal-coding-system |
83594
2716535391b7
Rudimentary fix for environment variable handling.
Miles Bader <miles@gnu.org>
parents:
83556
diff
changeset
|
2618 language-name coding-system frame)) |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2619 |
48896
41a95e836e30
(standard-keyboard-coding-systems):
Dave Love <fx@gnu.org>
parents:
48879
diff
changeset
|
2620 ;; Set the `keyboard-coding-system' if appropriate (tty |
41a95e836e30
(standard-keyboard-coding-systems):
Dave Love <fx@gnu.org>
parents:
48879
diff
changeset
|
2621 ;; only). At least X and MS Windows can generate |
41a95e836e30
(standard-keyboard-coding-systems):
Dave Love <fx@gnu.org>
parents:
48879
diff
changeset
|
2622 ;; multilingual input. |
83298
ed09a89e2b25
Fix UTF-8 tty input when first frame is an X frame. Steps towards multiple tty locale support.
Karoly Lorentey <lorentey@elte.hu>
parents:
83295
diff
changeset
|
2623 ;; XXX This was disabled unless `window-system', but that |
96376
c3309dba6542
American English spelling fix.
Glenn Morris <rgm@gnu.org>
parents:
96325
diff
changeset
|
2624 ;; leads to buggy behavior when a tty frame is opened |
83298
ed09a89e2b25
Fix UTF-8 tty input when first frame is an X frame. Steps towards multiple tty locale support.
Karoly Lorentey <lorentey@elte.hu>
parents:
83295
diff
changeset
|
2625 ;; later. Setting the keyboard coding system has no adverse |
ed09a89e2b25
Fix UTF-8 tty input when first frame is an X frame. Steps towards multiple tty locale support.
Karoly Lorentey <lorentey@elte.hu>
parents:
83295
diff
changeset
|
2626 ;; effect on X, so let's do it anyway. -- Lorentey |
ed09a89e2b25
Fix UTF-8 tty input when first frame is an X frame. Steps towards multiple tty locale support.
Karoly Lorentey <lorentey@elte.hu>
parents:
83295
diff
changeset
|
2627 (let ((kcs (or coding-system |
ed09a89e2b25
Fix UTF-8 tty input when first frame is an X frame. Steps towards multiple tty locale support.
Karoly Lorentey <lorentey@elte.hu>
parents:
83295
diff
changeset
|
2628 (car (get-language-info language-name |
ed09a89e2b25
Fix UTF-8 tty input when first frame is an X frame. Steps towards multiple tty locale support.
Karoly Lorentey <lorentey@elte.hu>
parents:
83295
diff
changeset
|
2629 'coding-system))))) |
83594
2716535391b7
Rudimentary fix for environment variable handling.
Miles Bader <miles@gnu.org>
parents:
83556
diff
changeset
|
2630 (if kcs (set-keyboard-coding-system kcs frame))) |
41223
0ca8b0f41ebd
(locale-name-match): Use \` and \(?:.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41220
diff
changeset
|
2631 |
83594
2716535391b7
Rudimentary fix for environment variable handling.
Miles Bader <miles@gnu.org>
parents:
83556
diff
changeset
|
2632 (unless frame |
83300
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2633 (setq locale-coding-system |
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2634 (car (get-language-info language-name 'coding-priority))))) |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2635 |
83594
2716535391b7
Rudimentary fix for environment variable handling.
Miles Bader <miles@gnu.org>
parents:
83556
diff
changeset
|
2636 (when (and (not frame) |
83300
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2637 coding-system |
60603
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2638 (not (coding-system-equal coding-system |
10307e6c7baa
(locale-language-names): Modify the
Kenichi Handa <handa@m17n.org>
parents:
60092
diff
changeset
|
2639 locale-coding-system))) |
36910
88d7b5c216a2
(set-locale-environment): Set
Gerd Moellmann <gerd@gnu.org>
parents:
36863
diff
changeset
|
2640 (prefer-coding-system coding-system) |
74607
2408d46ef69e
(set-locale-environment): Set
Kenichi Handa <handa@m17n.org>
parents:
74605
diff
changeset
|
2641 ;; Fixme: perhaps prefer-coding-system should set this too. |
2408d46ef69e
(set-locale-environment): Set
Kenichi Handa <handa@m17n.org>
parents:
74605
diff
changeset
|
2642 ;; But it's not the time to do such a fundamental change. |
2408d46ef69e
(set-locale-environment): Set
Kenichi Handa <handa@m17n.org>
parents:
74605
diff
changeset
|
2643 (setq default-sendmail-coding-system coding-system) |
93865
b9a2a750f172
(set-locale-environment): Don't warn if coding system doesn't agree with system
Juanma Barranquero <lekktu@gmail.com>
parents:
92764
diff
changeset
|
2644 (setq locale-coding-system coding-system)))) |
49796
9444af9dba75
(locale-language-names): Use Italian,
Dave Love <fx@gnu.org>
parents:
49779
diff
changeset
|
2645 |
60092
04686828d0da
2004-11-08 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
Jason Rumney <jasonr@gnu.org>
parents:
59906
diff
changeset
|
2646 ;; On Windows, override locale-coding-system, |
79385
96dc85a06a3a
(set-locale-environment): Set default-file-name-coding-system
Jason Rumney <jasonr@gnu.org>
parents:
78484
diff
changeset
|
2647 ;; default-file-name-coding-system, keyboard-coding-system, |
96dc85a06a3a
(set-locale-environment): Set default-file-name-coding-system
Jason Rumney <jasonr@gnu.org>
parents:
78484
diff
changeset
|
2648 ;; terminal-coding-system with system codepage. |
55469 | 2649 (when (boundp 'w32-ansi-code-page) |
55465
9629ef26c137
(set-locale-environment): On MS-Windows use ansi code-page for default
Jason Rumney <jasonr@gnu.org>
parents:
55047
diff
changeset
|
2650 (let ((code-page-coding (intern (format "cp%d" w32-ansi-code-page)))) |
9629ef26c137
(set-locale-environment): On MS-Windows use ansi code-page for default
Jason Rumney <jasonr@gnu.org>
parents:
55047
diff
changeset
|
2651 (when (coding-system-p code-page-coding) |
83594
2716535391b7
Rudimentary fix for environment variable handling.
Miles Bader <miles@gnu.org>
parents:
83556
diff
changeset
|
2652 (unless frame (setq locale-coding-system code-page-coding)) |
2716535391b7
Rudimentary fix for environment variable handling.
Miles Bader <miles@gnu.org>
parents:
83556
diff
changeset
|
2653 (set-keyboard-coding-system code-page-coding frame) |
86275 | 2654 (set-terminal-coding-system code-page-coding frame) |
79441
371591e2f734
(set-locale-environment): Set default-file-name-coding-system _after_
Eli Zaretskii <eliz@gnu.org>
parents:
79385
diff
changeset
|
2655 ;; Set default-file-name-coding-system last, so that Emacs |
371591e2f734
(set-locale-environment): Set default-file-name-coding-system _after_
Eli Zaretskii <eliz@gnu.org>
parents:
79385
diff
changeset
|
2656 ;; doesn't try to use cpNNNN when it defines keyboard and |
371591e2f734
(set-locale-environment): Set default-file-name-coding-system _after_
Eli Zaretskii <eliz@gnu.org>
parents:
79385
diff
changeset
|
2657 ;; terminal encoding. That's because the above two lines |
371591e2f734
(set-locale-environment): Set default-file-name-coding-system _after_
Eli Zaretskii <eliz@gnu.org>
parents:
79385
diff
changeset
|
2658 ;; will want to load code-pages.el, where cpNNNN are |
371591e2f734
(set-locale-environment): Set default-file-name-coding-system _after_
Eli Zaretskii <eliz@gnu.org>
parents:
79385
diff
changeset
|
2659 ;; defined; if default-file-name-coding-system were set to |
371591e2f734
(set-locale-environment): Set default-file-name-coding-system _after_
Eli Zaretskii <eliz@gnu.org>
parents:
79385
diff
changeset
|
2660 ;; cpNNNN while these two lines run, Emacs will want to use |
371591e2f734
(set-locale-environment): Set default-file-name-coding-system _after_
Eli Zaretskii <eliz@gnu.org>
parents:
79385
diff
changeset
|
2661 ;; it for encoding the file name it wants to load. And that |
371591e2f734
(set-locale-environment): Set default-file-name-coding-system _after_
Eli Zaretskii <eliz@gnu.org>
parents:
79385
diff
changeset
|
2662 ;; will fail, since cpNNNN is not yet usable until |
371591e2f734
(set-locale-environment): Set default-file-name-coding-system _after_
Eli Zaretskii <eliz@gnu.org>
parents:
79385
diff
changeset
|
2663 ;; code-pages.el finishes loading. |
371591e2f734
(set-locale-environment): Set default-file-name-coding-system _after_
Eli Zaretskii <eliz@gnu.org>
parents:
79385
diff
changeset
|
2664 (setq default-file-name-coding-system code-page-coding)))) |
55465
9629ef26c137
(set-locale-environment): On MS-Windows use ansi code-page for default
Jason Rumney <jasonr@gnu.org>
parents:
55047
diff
changeset
|
2665 |
59906
9c28fead9bf2
(set-locale-environment): Set file-name coding system to utf-8 on Darwin.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
59743
diff
changeset
|
2666 (when (eq system-type 'darwin) |
60934
439d4fa30f21
(set-locale-environment): For Mac OS X's Terminal.app, use utf-8.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60603
diff
changeset
|
2667 ;; On Darwin, file names are always encoded in utf-8, no matter |
439d4fa30f21
(set-locale-environment): For Mac OS X's Terminal.app, use utf-8.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60603
diff
changeset
|
2668 ;; the locale. |
439d4fa30f21
(set-locale-environment): For Mac OS X's Terminal.app, use utf-8.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60603
diff
changeset
|
2669 (setq default-file-name-coding-system 'utf-8) |
439d4fa30f21
(set-locale-environment): For Mac OS X's Terminal.app, use utf-8.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60603
diff
changeset
|
2670 ;; Mac OS X's Terminal.app by default uses utf-8 regardless of |
439d4fa30f21
(set-locale-environment): For Mac OS X's Terminal.app, use utf-8.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60603
diff
changeset
|
2671 ;; the locale. |
439d4fa30f21
(set-locale-environment): For Mac OS X's Terminal.app, use utf-8.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60603
diff
changeset
|
2672 (when (and (null window-system) |
83594
2716535391b7
Rudimentary fix for environment variable handling.
Miles Bader <miles@gnu.org>
parents:
83556
diff
changeset
|
2673 (equal (getenv "TERM_PROGRAM" frame) "Apple_Terminal")) |
60934
439d4fa30f21
(set-locale-environment): For Mac OS X's Terminal.app, use utf-8.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60603
diff
changeset
|
2674 (set-terminal-coding-system 'utf-8) |
439d4fa30f21
(set-locale-environment): For Mac OS X's Terminal.app, use utf-8.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
60603
diff
changeset
|
2675 (set-keyboard-coding-system 'utf-8))) |
59906
9c28fead9bf2
(set-locale-environment): Set file-name coding system to utf-8 on Darwin.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
59743
diff
changeset
|
2676 |
49796
9444af9dba75
(locale-language-names): Use Italian,
Dave Love <fx@gnu.org>
parents:
49779
diff
changeset
|
2677 ;; Default to A4 paper if we're not in a C, POSIX or US locale. |
51979
c10df4bc9f06
(set-locale-environment): langinfo renamed to locale-info.
Richard M. Stallman <rms@gnu.org>
parents:
51865
diff
changeset
|
2678 ;; (See comments in Flocale_info.) |
83594
2716535391b7
Rudimentary fix for environment variable handling.
Miles Bader <miles@gnu.org>
parents:
83556
diff
changeset
|
2679 (unless frame |
83300
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2680 (let ((locale locale) |
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2681 (paper (locale-info 'paper))) |
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2682 (if paper |
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2683 ;; This will always be null at the time of writing. |
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2684 (cond |
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2685 ((equal paper '(216 279)) |
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2686 (setq ps-paper-type 'letter)) |
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2687 ((equal paper '(210 297)) |
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2688 (setq ps-paper-type 'a4))) |
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2689 (let ((vars '("LC_ALL" "LC_PAPER" "LANG"))) |
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2690 (while (and vars (= 0 (length locale))) |
83594
2716535391b7
Rudimentary fix for environment variable handling.
Miles Bader <miles@gnu.org>
parents:
83556
diff
changeset
|
2691 (setq locale (getenv (pop vars) frame)))) |
83300
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2692 (when locale |
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2693 ;; As of glibc 2.2.5, these are the only US Letter locales, |
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2694 ;; and the rest are A4. |
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2695 (setq ps-paper-type |
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2696 (or (locale-name-match locale '(("c$" . letter) |
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2697 ("posix$" . letter) |
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2698 (".._us" . letter) |
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2699 (".._pr" . letter) |
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2700 (".._ca" . letter) |
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2701 ("enu$" . letter) ; Windows |
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2702 ("esu$" . letter) |
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2703 ("enc$" . letter) |
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2704 ("frc$" . letter))) |
6deb860255f3
Support for ttys with different character locale settings.
Karoly Lorentey <lorentey@elte.hu>
parents:
83298
diff
changeset
|
2705 'a4))))))) |
49796
9444af9dba75
(locale-language-names): Use Italian,
Dave Love <fx@gnu.org>
parents:
49779
diff
changeset
|
2706 nil) |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
26010
diff
changeset
|
2707 |
90090
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2708 ;;; Character property |
17052 | 2709 |
90090
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2710 ;; Each element has the form (PROP . TABLE). |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2711 ;; PROP is a symbol representing a character property. |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2712 ;; TABLE is a char-table containing the property value for each character. |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2713 ;; TABLE may be a name of file to load to build a char-table. |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2714 ;; Don't modify this variable directly but use `define-char-code-property'. |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2715 |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2716 (defvar char-code-property-alist nil |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2717 "Alist of character property name vs char-table containing property values. |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2718 Internal use only.") |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2719 |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2720 (put 'char-code-property-table 'char-table-extra-slots 5) |
17052 | 2721 |
90090
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2722 (defun define-char-code-property (name table &optional docstring) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2723 "Define NAME as a character code property given by TABLE. |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2724 TABLE is a char-table of purpose `char-code-property-table' with |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2725 these extra slots: |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2726 1st: NAME. |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2727 2nd: Function to call to get a property value of a character. |
90861
4f7df84e666c
(toggle-enable-multibyte-characters, sort-coding-systems,
Juanma Barranquero <lekktu@gmail.com>
parents:
90776
diff
changeset
|
2728 It is called with three arguments CHAR, VAL, and TABLE, where |
90090
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2729 CHAR is a character, VAL is the value of (aref TABLE CHAR). |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2730 3rd: Function to call to put a property value of a character. |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2731 It is called with the same arguments as above. |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2732 4th: Function to call to get a description string of a property value. |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2733 It is called with one argument VALUE, a property value. |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2734 5th: Data used by the above functions. |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2735 |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2736 TABLE may be a name of file to load to build a char-table. The |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2737 file should contain a call of `define-char-code-property' with a |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2738 char-table of the above format as the argument TABLE. |
17052 | 2739 |
90090
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2740 TABLE may also be nil, in which case no property value is pre-assigned. |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2741 |
99383
a5f24b6e48ef
* international/mule-cmds.el (toggle-enable-multibyte-characters)
Juanma Barranquero <lekktu@gmail.com>
parents:
99077
diff
changeset
|
2742 Optional 3rd argument DOCSTRING is a documentation string of the property. |
90090
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2743 |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2744 See also the documentation of `get-char-code-property' and |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2745 `put-char-code-property'." |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2746 (or (symbolp name) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2747 (error "Not a symbol: %s" name)) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2748 (if (char-table-p table) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2749 (or (and (eq (char-table-subtype table) 'char-code-property-table) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2750 (eq (char-table-extra-slot table 0) name)) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2751 (error "Invalid char-table: %s" table)) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2752 (or (stringp table) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2753 (error "Not a char-table nor a file name: %s" table))) |
105947
6bc99fd16720
* international/mule-cmds.el (register-input-method); Purecopy arguments.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105941
diff
changeset
|
2754 (if (stringp table) (setq table (purecopy table))) |
90090
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2755 (let ((slot (assq name char-code-property-alist))) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2756 (if slot |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2757 (setcdr slot table) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2758 (setq char-code-property-alist |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2759 (cons (cons name table) char-code-property-alist)))) |
105744
b0a732611398
* keymap.c (Fmake_sparse_keymap): Purecopy the name.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105715
diff
changeset
|
2760 (put name 'char-code-property-documentation (purecopy docstring))) |
17052 | 2761 |
2762 (defvar char-code-property-table | |
2763 (make-char-table 'char-code-property-table) | |
2764 "Char-table containing a property list of each character code. | |
90090
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2765 This table is used for properties not listed in `char-code-property-alist'. |
17052 | 2766 See also the documentation of `get-char-code-property' and |
19083
8fdb29b769ed
Doc fixes; fix error message text.
Richard M. Stallman <rms@gnu.org>
parents:
19036
diff
changeset
|
2767 `put-char-code-property'.") |
17052 | 2768 |
2769 (defun get-char-code-property (char propname) | |
90090
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2770 "Return the value of CHAR's PROPNAME property." |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2771 (let ((slot (assq propname char-code-property-alist))) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2772 (if slot |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2773 (let (table value func) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2774 (if (stringp (cdr slot)) |
99682
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
2775 (load (cdr slot) nil t)) |
90090
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2776 (setq table (cdr slot) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2777 value (aref table char) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2778 func (char-table-extra-slot table 1)) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2779 (if (functionp func) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2780 (setq value (funcall func char value table))) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2781 value) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2782 (plist-get (aref char-code-property-table char) propname)))) |
17052 | 2783 |
2784 (defun put-char-code-property (char propname value) | |
90090
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2785 "Store CHAR's PROPNAME property with VALUE. |
17052 | 2786 It can be retrieved with `(get-char-code-property CHAR PROPNAME)'." |
90090
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2787 (let ((slot (assq propname char-code-property-alist))) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2788 (if slot |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2789 (let (table func) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2790 (if (stringp (cdr slot)) |
99682
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
2791 (load (cdr slot) nil t)) |
90090
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2792 (setq table (cdr slot) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2793 func (char-table-extra-slot table 2)) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2794 (if (functionp func) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2795 (funcall func char value table) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2796 (aset table char value))) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2797 (let* ((plist (aref char-code-property-table char)) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2798 (x (plist-put plist propname value))) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2799 (or (eq x plist) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2800 (aset char-code-property-table char x)))) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2801 value)) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2802 |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2803 (defun char-code-property-description (prop value) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2804 "Return a description string of character property PROP's value VALUE. |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2805 If there's no description string for VALUE, return nil." |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2806 (let ((slot (assq prop char-code-property-alist))) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2807 (if slot |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2808 (let (table func) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2809 (if (stringp (cdr slot)) |
99682
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
2810 (load (cdr slot) nil t)) |
90090
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2811 (setq table (cdr slot) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2812 func (char-table-extra-slot table 3)) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2813 (if (functionp func) |
ac848d0fb1d2
(set-language-environment): Check :ascii-compatible-p property of
Kenichi Handa <handa@m17n.org>
parents:
90085
diff
changeset
|
2814 (funcall func value)))))) |
17052 | 2815 |
24399
eb23f0e62cd5
(iso-2022-control-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
24300
diff
changeset
|
2816 |
eb23f0e62cd5
(iso-2022-control-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
24300
diff
changeset
|
2817 ;; Pretty description of encoded string |
eb23f0e62cd5
(iso-2022-control-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
24300
diff
changeset
|
2818 |
eb23f0e62cd5
(iso-2022-control-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
24300
diff
changeset
|
2819 ;; Alist of ISO 2022 control code vs the corresponding mnemonic string. |
105950
e411fa8e0abf
* progmodes/grep.el (grep-regexp-alist):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
105947
diff
changeset
|
2820 (defconst iso-2022-control-alist |
24399
eb23f0e62cd5
(iso-2022-control-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
24300
diff
changeset
|
2821 '((?\x1b . "ESC") |
eb23f0e62cd5
(iso-2022-control-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
24300
diff
changeset
|
2822 (?\x0e . "SO") |
eb23f0e62cd5
(iso-2022-control-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
24300
diff
changeset
|
2823 (?\x0f . "SI") |
eb23f0e62cd5
(iso-2022-control-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
24300
diff
changeset
|
2824 (?\x8e . "SS2") |
eb23f0e62cd5
(iso-2022-control-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
24300
diff
changeset
|
2825 (?\x8f . "SS3") |
eb23f0e62cd5
(iso-2022-control-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
24300
diff
changeset
|
2826 (?\x9b . "CSI"))) |
eb23f0e62cd5
(iso-2022-control-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
24300
diff
changeset
|
2827 |
eb23f0e62cd5
(iso-2022-control-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
24300
diff
changeset
|
2828 (defun encoded-string-description (str coding-system) |
eb23f0e62cd5
(iso-2022-control-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
24300
diff
changeset
|
2829 "Return a pretty description of STR that is encoded by CODING-SYSTEM." |
eb23f0e62cd5
(iso-2022-control-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
24300
diff
changeset
|
2830 (setq str (string-as-unibyte str)) |
28475
5eb1da819180
(encoded-string-description):
Kenichi Handa <handa@m17n.org>
parents:
28456
diff
changeset
|
2831 (mapconcat |
88796
d740bbf6ca68
(sort-coding-systems): Comment out
Dave Love <fx@gnu.org>
parents:
88769
diff
changeset
|
2832 (if (and coding-system (eq (coding-system-type coding-system) 'iso-2022)) |
28475
5eb1da819180
(encoded-string-description):
Kenichi Handa <handa@m17n.org>
parents:
28456
diff
changeset
|
2833 ;; Try to get a pretty description for ISO 2022 escape sequences. |
5eb1da819180
(encoded-string-description):
Kenichi Handa <handa@m17n.org>
parents:
28456
diff
changeset
|
2834 (function (lambda (x) (or (cdr (assq x iso-2022-control-alist)) |
67036
d7b4fada70f0
(encoded-string-description): Use Lisp-readable syntax for hex.
Juri Linkov <juri@jurta.org>
parents:
67025
diff
changeset
|
2835 (format "#x%02X" x)))) |
d7b4fada70f0
(encoded-string-description): Use Lisp-readable syntax for hex.
Juri Linkov <juri@jurta.org>
parents:
67025
diff
changeset
|
2836 (function (lambda (x) (format "#x%02X" x)))) |
28475
5eb1da819180
(encoded-string-description):
Kenichi Handa <handa@m17n.org>
parents:
28456
diff
changeset
|
2837 str " ")) |
24399
eb23f0e62cd5
(iso-2022-control-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
24300
diff
changeset
|
2838 |
97195
a9b68f965d97
(encode-coding-char): New optional arg CHARSET.
Kenichi Handa <handa@m17n.org>
parents:
97151
diff
changeset
|
2839 (defun encode-coding-char (char coding-system &optional charset) |
24399
eb23f0e62cd5
(iso-2022-control-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
24300
diff
changeset
|
2840 "Encode CHAR by CODING-SYSTEM and return the resulting string. |
97195
a9b68f965d97
(encode-coding-char): New optional arg CHARSET.
Kenichi Handa <handa@m17n.org>
parents:
97151
diff
changeset
|
2841 If CODING-SYSTEM can't safely encode CHAR, return nil. |
a9b68f965d97
(encode-coding-char): New optional arg CHARSET.
Kenichi Handa <handa@m17n.org>
parents:
97151
diff
changeset
|
2842 The 3rd optional argument CHARSET, if non-nil, is a charset preferred |
a9b68f965d97
(encode-coding-char): New optional arg CHARSET.
Kenichi Handa <handa@m17n.org>
parents:
97151
diff
changeset
|
2843 on encoding." |
96325
7069b5203540
(encode-coding-char): Fix for ASCII characters.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
2844 (let* ((str1 (string-as-multibyte (string char))) |
7069b5203540
(encode-coding-char): Fix for ASCII characters.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
2845 (str2 (string-as-multibyte (string char char))) |
7069b5203540
(encode-coding-char): Fix for ASCII characters.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
2846 (found (find-coding-systems-string str1)) |
24399
eb23f0e62cd5
(iso-2022-control-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
24300
diff
changeset
|
2847 enc1 enc2 i1 i2) |
96325
7069b5203540
(encode-coding-char): Fix for ASCII characters.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
2848 (if (and (consp found) |
7069b5203540
(encode-coding-char): Fix for ASCII characters.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
2849 (eq (car found) 'undecided)) |
7069b5203540
(encode-coding-char): Fix for ASCII characters.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
2850 str1 |
7069b5203540
(encode-coding-char): Fix for ASCII characters.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
2851 (when (memq (coding-system-base coding-system) found) |
7069b5203540
(encode-coding-char): Fix for ASCII characters.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
2852 ;; We must find the encoded string of CHAR. But, just encoding |
7069b5203540
(encode-coding-char): Fix for ASCII characters.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
2853 ;; CHAR will put extra control sequences (usually to designate |
7069b5203540
(encode-coding-char): Fix for ASCII characters.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
2854 ;; ASCII charset) at the tail if type of CODING is ISO 2022. |
7069b5203540
(encode-coding-char): Fix for ASCII characters.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
2855 ;; To exclude such tailing bytes, we at first encode one-char |
7069b5203540
(encode-coding-char): Fix for ASCII characters.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
2856 ;; string and two-char string, then check how many bytes at the |
7069b5203540
(encode-coding-char): Fix for ASCII characters.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
2857 ;; tail of both encoded strings are the same. |
24399
eb23f0e62cd5
(iso-2022-control-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
24300
diff
changeset
|
2858 |
97195
a9b68f965d97
(encode-coding-char): New optional arg CHARSET.
Kenichi Handa <handa@m17n.org>
parents:
97151
diff
changeset
|
2859 (when charset |
a9b68f965d97
(encode-coding-char): New optional arg CHARSET.
Kenichi Handa <handa@m17n.org>
parents:
97151
diff
changeset
|
2860 (put-text-property 0 1 'charset charset str1) |
a9b68f965d97
(encode-coding-char): New optional arg CHARSET.
Kenichi Handa <handa@m17n.org>
parents:
97151
diff
changeset
|
2861 (put-text-property 0 2 'charset charset str2)) |
96325
7069b5203540
(encode-coding-char): Fix for ASCII characters.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
2862 (setq enc1 (encode-coding-string str1 coding-system) |
7069b5203540
(encode-coding-char): Fix for ASCII characters.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
2863 i1 (length enc1) |
7069b5203540
(encode-coding-char): Fix for ASCII characters.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
2864 enc2 (encode-coding-string str2 coding-system) |
7069b5203540
(encode-coding-char): Fix for ASCII characters.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
2865 i2 (length enc2)) |
7069b5203540
(encode-coding-char): Fix for ASCII characters.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
2866 (while (and (> i1 0) (= (aref enc1 (1- i1)) (aref enc2 (1- i2)))) |
7069b5203540
(encode-coding-char): Fix for ASCII characters.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
2867 (setq i1 (1- i1) i2 (1- i2))) |
24399
eb23f0e62cd5
(iso-2022-control-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
24300
diff
changeset
|
2868 |
96325
7069b5203540
(encode-coding-char): Fix for ASCII characters.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
2869 ;; Now (substring enc1 i1) and (substring enc2 i2) are the same, |
7069b5203540
(encode-coding-char): Fix for ASCII characters.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
2870 ;; and they are the extra control sequences at the tail to |
7069b5203540
(encode-coding-char): Fix for ASCII characters.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
2871 ;; exclude. |
7069b5203540
(encode-coding-char): Fix for ASCII characters.
Kenichi Handa <handa@m17n.org>
parents:
95841
diff
changeset
|
2872 (substring enc2 0 i2))))) |
24399
eb23f0e62cd5
(iso-2022-control-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
24300
diff
changeset
|
2873 |
88702 | 2874 ;; Backwards compatibility. These might be better with :init-value t, |
2875 ;; but that breaks loadup. | |
2876 (define-minor-mode unify-8859-on-encoding-mode | |
2877 "Obsolete." | |
2878 :group 'mule | |
2879 :global t) | |
2880 (define-minor-mode unify-8859-on-decoding-mode | |
2881 "Obsolete." | |
2882 :group 'mule | |
2883 :global t) | |
24399
eb23f0e62cd5
(iso-2022-control-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
24300
diff
changeset
|
2884 |
88981
28fee7bb4dab
(reset-language-environment): Don't
Kenichi Handa <handa@m17n.org>
parents:
88837
diff
changeset
|
2885 (defvar nonascii-insert-offset 0 "This variable is obsolete.") |
28fee7bb4dab
(reset-language-environment): Don't
Kenichi Handa <handa@m17n.org>
parents:
88837
diff
changeset
|
2886 (defvar nonascii-translation-table nil "This variable is obsolete.") |
28fee7bb4dab
(reset-language-environment): Don't
Kenichi Handa <handa@m17n.org>
parents:
88837
diff
changeset
|
2887 |
97084
fea0b97d4f6d
(ucs-names): New internal variable.
Juri Linkov <juri@jurta.org>
parents:
97043
diff
changeset
|
2888 (defvar ucs-names nil |
fea0b97d4f6d
(ucs-names): New internal variable.
Juri Linkov <juri@jurta.org>
parents:
97043
diff
changeset
|
2889 "Alist of cached (CHAR-NAME . CHAR-CODE) pairs.") |
fea0b97d4f6d
(ucs-names): New internal variable.
Juri Linkov <juri@jurta.org>
parents:
97043
diff
changeset
|
2890 |
fea0b97d4f6d
(ucs-names): New internal variable.
Juri Linkov <juri@jurta.org>
parents:
97043
diff
changeset
|
2891 (defun ucs-names () |
fea0b97d4f6d
(ucs-names): New internal variable.
Juri Linkov <juri@jurta.org>
parents:
97043
diff
changeset
|
2892 "Return alist of (CHAR-NAME . CHAR-CODE) pairs cached in `ucs-names'." |
fea0b97d4f6d
(ucs-names): New internal variable.
Juri Linkov <juri@jurta.org>
parents:
97043
diff
changeset
|
2893 (or ucs-names |
106493
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2894 (let ((bmp-ranges |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2895 '((#x0000 . #x33FF) |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2896 ;; (#x3400 . #x4DBF) CJK Ideograph Extension A |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2897 (#x4DC0 . #x4DFF) |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2898 ;; (#x4E00 . #x9FFF) CJK Ideograph |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2899 (#xA000 . #x0D7FF) |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2900 ;; (#xD800 . #xFAFF) Surrogate/Private |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2901 (#xFB00 . #xFFFD))) |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2902 (upper-ranges |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2903 '((#x10000 . #x134FF) |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2904 ;; (#x13500 . #x1CFFF) unsed |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2905 (#x1D000 . #x1FFFF) |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2906 ;; (#x20000 . #xDFFFF) CJK Ideograph Extension A, B, etc, unsed |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2907 (#xE0000 . #xE01FF))) |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2908 (gc-cons-threshold 10000000) |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2909 c end name names) |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2910 (dolist (range bmp-ranges) |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2911 (setq c (car range) |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2912 end (cdr range)) |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2913 (while (<= c end) |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2914 (if (setq name (get-char-code-property c 'name)) |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2915 (push (cons name c) names)) |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2916 (if (setq name (get-char-code-property c 'old-name)) |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2917 (push (cons name c) names)) |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2918 (setq c (1+ c)))) |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2919 (dolist (range upper-ranges) |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2920 (setq c (car range) |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2921 end (cdr range)) |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2922 (while (<= c end) |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2923 (if (setq name (get-char-code-property c 'name)) |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2924 (push (cons name c) names)) |
e2e186a38058
(ucs-names): Supply a sufficiently fine ranges instead of
Kenichi Handa <handa@m17n.org>
parents:
106477
diff
changeset
|
2925 (setq c (1+ c)))) |
106477
51b191bf2e2e
(ucs-names): Fix last-minute paren-typo.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
106474
diff
changeset
|
2926 (setq ucs-names names)))) |
97084
fea0b97d4f6d
(ucs-names): New internal variable.
Juri Linkov <juri@jurta.org>
parents:
97043
diff
changeset
|
2927 |
fea0b97d4f6d
(ucs-names): New internal variable.
Juri Linkov <juri@jurta.org>
parents:
97043
diff
changeset
|
2928 (defvar ucs-completions (lazy-completion-table ucs-completions ucs-names) |
fea0b97d4f6d
(ucs-names): New internal variable.
Juri Linkov <juri@jurta.org>
parents:
97043
diff
changeset
|
2929 "Lazy completion table for completing on Unicode character names.") |
99670
bfe3493da0c5
* international/mule-cmds.el (ucs-completions): Mark as risky.
Juanma Barranquero <lekktu@gmail.com>
parents:
99540
diff
changeset
|
2930 (put 'ucs-completions 'risky-local-variable t) |
97084
fea0b97d4f6d
(ucs-names): New internal variable.
Juri Linkov <juri@jurta.org>
parents:
97043
diff
changeset
|
2931 |
fea0b97d4f6d
(ucs-names): New internal variable.
Juri Linkov <juri@jurta.org>
parents:
97043
diff
changeset
|
2932 (defun read-char-by-name (prompt) |
fea0b97d4f6d
(ucs-names): New internal variable.
Juri Linkov <juri@jurta.org>
parents:
97043
diff
changeset
|
2933 "Read a character by its Unicode name or hex number string. |
97151
db1329fe6a49
(read-char-by-name): Accept hash notation. Doc fix.
Juri Linkov <juri@jurta.org>
parents:
97084
diff
changeset
|
2934 Display PROMPT and read a string that represents a character by its |
db1329fe6a49
(read-char-by-name): Accept hash notation. Doc fix.
Juri Linkov <juri@jurta.org>
parents:
97084
diff
changeset
|
2935 Unicode property `name' or `old-name'. You can type a few of first |
db1329fe6a49
(read-char-by-name): Accept hash notation. Doc fix.
Juri Linkov <juri@jurta.org>
parents:
97084
diff
changeset
|
2936 letters of the Unicode name and use completion. This function also |
db1329fe6a49
(read-char-by-name): Accept hash notation. Doc fix.
Juri Linkov <juri@jurta.org>
parents:
97084
diff
changeset
|
2937 accepts a hexadecimal number of Unicode code point or a number in |
db1329fe6a49
(read-char-by-name): Accept hash notation. Doc fix.
Juri Linkov <juri@jurta.org>
parents:
97084
diff
changeset
|
2938 hash notation, e.g. #o21430 for octal, #x2318 for hex, or #10r8984 |
db1329fe6a49
(read-char-by-name): Accept hash notation. Doc fix.
Juri Linkov <juri@jurta.org>
parents:
97084
diff
changeset
|
2939 for decimal. Returns a character as a number." |
97084
fea0b97d4f6d
(ucs-names): New internal variable.
Juri Linkov <juri@jurta.org>
parents:
97043
diff
changeset
|
2940 (let* ((completion-ignore-case t) |
fea0b97d4f6d
(ucs-names): New internal variable.
Juri Linkov <juri@jurta.org>
parents:
97043
diff
changeset
|
2941 (input (completing-read prompt ucs-completions))) |
97151
db1329fe6a49
(read-char-by-name): Accept hash notation. Doc fix.
Juri Linkov <juri@jurta.org>
parents:
97084
diff
changeset
|
2942 (cond |
99682
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
2943 ((string-match-p "^[0-9a-fA-F]+$" input) |
97151
db1329fe6a49
(read-char-by-name): Accept hash notation. Doc fix.
Juri Linkov <juri@jurta.org>
parents:
97084
diff
changeset
|
2944 (string-to-number input 16)) |
99682
ea8cf739773d
* international/mule-cmds.el (update-leim-list-file): Simplify.
Juanma Barranquero <lekktu@gmail.com>
parents:
99670
diff
changeset
|
2945 ((string-match-p "^#" input) |
97151
db1329fe6a49
(read-char-by-name): Accept hash notation. Doc fix.
Juri Linkov <juri@jurta.org>
parents:
97084
diff
changeset
|
2946 (read input)) |
db1329fe6a49
(read-char-by-name): Accept hash notation. Doc fix.
Juri Linkov <juri@jurta.org>
parents:
97084
diff
changeset
|
2947 (t |
97263
e76de9fd17e3
* international/mule-cmds.el (read-char-by-name):
Juanma Barranquero <lekktu@gmail.com>
parents:
97195
diff
changeset
|
2948 (cdr (assoc-string input (ucs-names) t)))))) |
97084
fea0b97d4f6d
(ucs-names): New internal variable.
Juri Linkov <juri@jurta.org>
parents:
97043
diff
changeset
|
2949 |
104240
4c2e1ea913d9
(ucs-insert): Change arguments from `arg' to `character', `count',
Juri Linkov <juri@jurta.org>
parents:
104230
diff
changeset
|
2950 (defun ucs-insert (character &optional count inherit) |
4c2e1ea913d9
(ucs-insert): Change arguments from `arg' to `character', `count',
Juri Linkov <juri@jurta.org>
parents:
104230
diff
changeset
|
2951 "Insert COUNT copies of CHARACTER of the given Unicode code point. |
97151
db1329fe6a49
(read-char-by-name): Accept hash notation. Doc fix.
Juri Linkov <juri@jurta.org>
parents:
97084
diff
changeset
|
2952 Interactively, prompts for a Unicode character name or a hex number |
104240
4c2e1ea913d9
(ucs-insert): Change arguments from `arg' to `character', `count',
Juri Linkov <juri@jurta.org>
parents:
104230
diff
changeset
|
2953 using `read-char-by-name'. |
4c2e1ea913d9
(ucs-insert): Change arguments from `arg' to `character', `count',
Juri Linkov <juri@jurta.org>
parents:
104230
diff
changeset
|
2954 The optional third arg INHERIT (non-nil when called interactively), |
4c2e1ea913d9
(ucs-insert): Change arguments from `arg' to `character', `count',
Juri Linkov <juri@jurta.org>
parents:
104230
diff
changeset
|
2955 says to inherit text properties from adjoining text, if those |
4c2e1ea913d9
(ucs-insert): Change arguments from `arg' to `character', `count',
Juri Linkov <juri@jurta.org>
parents:
104230
diff
changeset
|
2956 properties are sticky." |
4c2e1ea913d9
(ucs-insert): Change arguments from `arg' to `character', `count',
Juri Linkov <juri@jurta.org>
parents:
104230
diff
changeset
|
2957 (interactive |
4c2e1ea913d9
(ucs-insert): Change arguments from `arg' to `character', `count',
Juri Linkov <juri@jurta.org>
parents:
104230
diff
changeset
|
2958 (list (read-char-by-name "Unicode (name or hex): ") |
4c2e1ea913d9
(ucs-insert): Change arguments from `arg' to `character', `count',
Juri Linkov <juri@jurta.org>
parents:
104230
diff
changeset
|
2959 (prefix-numeric-value current-prefix-arg) |
4c2e1ea913d9
(ucs-insert): Change arguments from `arg' to `character', `count',
Juri Linkov <juri@jurta.org>
parents:
104230
diff
changeset
|
2960 t)) |
4c2e1ea913d9
(ucs-insert): Change arguments from `arg' to `character', `count',
Juri Linkov <juri@jurta.org>
parents:
104230
diff
changeset
|
2961 (unless count (setq count 1)) |
4c2e1ea913d9
(ucs-insert): Change arguments from `arg' to `character', `count',
Juri Linkov <juri@jurta.org>
parents:
104230
diff
changeset
|
2962 (if (stringp character) |
4c2e1ea913d9
(ucs-insert): Change arguments from `arg' to `character', `count',
Juri Linkov <juri@jurta.org>
parents:
104230
diff
changeset
|
2963 (setq character (string-to-number character 16))) |
97151
db1329fe6a49
(read-char-by-name): Accept hash notation. Doc fix.
Juri Linkov <juri@jurta.org>
parents:
97084
diff
changeset
|
2964 (cond |
104240
4c2e1ea913d9
(ucs-insert): Change arguments from `arg' to `character', `count',
Juri Linkov <juri@jurta.org>
parents:
104230
diff
changeset
|
2965 ((not (integerp character)) |
4c2e1ea913d9
(ucs-insert): Change arguments from `arg' to `character', `count',
Juri Linkov <juri@jurta.org>
parents:
104230
diff
changeset
|
2966 (error "Not a Unicode character code: %S" character)) |
4c2e1ea913d9
(ucs-insert): Change arguments from `arg' to `character', `count',
Juri Linkov <juri@jurta.org>
parents:
104230
diff
changeset
|
2967 ((or (< character 0) (> character #x10FFFF)) |
4c2e1ea913d9
(ucs-insert): Change arguments from `arg' to `character', `count',
Juri Linkov <juri@jurta.org>
parents:
104230
diff
changeset
|
2968 (error "Not a Unicode character code: 0x%X" character))) |
4c2e1ea913d9
(ucs-insert): Change arguments from `arg' to `character', `count',
Juri Linkov <juri@jurta.org>
parents:
104230
diff
changeset
|
2969 (if inherit |
4c2e1ea913d9
(ucs-insert): Change arguments from `arg' to `character', `count',
Juri Linkov <juri@jurta.org>
parents:
104230
diff
changeset
|
2970 (dotimes (i count) (insert-and-inherit character)) |
4c2e1ea913d9
(ucs-insert): Change arguments from `arg' to `character', `count',
Juri Linkov <juri@jurta.org>
parents:
104230
diff
changeset
|
2971 (dotimes (i count) (insert character)))) |
90658
9aecc02933e3
(ucs-insert): Re-implement.
Kenichi Handa <handa@m17n.org>
parents:
90614
diff
changeset
|
2972 |
97151
db1329fe6a49
(read-char-by-name): Accept hash notation. Doc fix.
Juri Linkov <juri@jurta.org>
parents:
97084
diff
changeset
|
2973 (define-key ctl-x-map "8\r" 'ucs-insert) |
24399
eb23f0e62cd5
(iso-2022-control-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
24300
diff
changeset
|
2974 |
58055
005c3ebdd545
(select-safe-coding-system-interactively):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57932
diff
changeset
|
2975 ;; arch-tag: b382c432-4b36-460e-bf4c-05efd0bb18dc |
17052 | 2976 ;;; mule-cmds.el ends here |