Mercurial > emacs
annotate lisp/international/mule-diag.el @ 40818:1f2eaa535150
(dired-move-to-filename-regexp):
Do not distinguish between ASCII letters and non-ASCII characters.
Don't allow comma except in the form "month day, year".
Don't allow space between month name and comma.
Clean up the code that checks for trailing period, comma, and space.
Remove now-obsolete comments, and add more commentary about
Japanese dates.
Always gobble up trailing spaces, instead of doing it only sometimes.
author | Paul Eggert <eggert@twinsun.com> |
---|---|
date | Wed, 07 Nov 2001 21:52:44 +0000 |
parents | 1b9616706fd5 |
children | f41a14872734 |
rev | line source |
---|---|
38414
67b464da13ec
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
36989
diff
changeset
|
1 ;;; mule-diag.el --- show diagnosis of multilingual environment (Mule) |
17052 | 2 |
3 ;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. | |
18377
8b4a66c66dd6
Change copyright notice.
Richard M. Stallman <rms@gnu.org>
parents:
18300
diff
changeset
|
4 ;; Licensed to the Free Software Foundation. |
39475
4a1c429dd4e3
(list-input-methods-1): Output
Gerd Moellmann <gerd@gnu.org>
parents:
38414
diff
changeset
|
5 ;; Copyright (C) 2001 Free Software Foundation, Inc. |
17052 | 6 |
27953 | 7 ;; Keywords: multilingual, charset, coding system, fontset, diagnosis, i18n |
17052 | 8 |
9 ;; This file is part of GNU Emacs. | |
10 | |
11 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
12 ;; it under the terms of the GNU General Public License as published by | |
13 ;; the Free Software Foundation; either version 2, or (at your option) | |
14 ;; any later version. | |
15 | |
16 ;; GNU Emacs is distributed in the hope that it will be useful, | |
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 ;; GNU General Public License for more details. | |
20 | |
21 ;; You should have received a copy of the GNU General Public License | |
17071 | 22 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
23 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
24 ;; Boston, MA 02111-1307, USA. | |
17052 | 25 |
38414
67b464da13ec
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
36989
diff
changeset
|
26 ;;; Commentary: |
67b464da13ec
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
36989
diff
changeset
|
27 |
67b464da13ec
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
36989
diff
changeset
|
28 ;;; Code: |
67b464da13ec
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
36989
diff
changeset
|
29 |
40722
1b9616706fd5
(help-funs): Require help-funs.
Richard M. Stallman <rms@gnu.org>
parents:
40664
diff
changeset
|
30 ;; Make sure the help-xref button type is defined. |
1b9616706fd5
(help-funs): Require help-funs.
Richard M. Stallman <rms@gnu.org>
parents:
40664
diff
changeset
|
31 (require 'help-funs) |
1b9616706fd5
(help-funs): Require help-funs.
Richard M. Stallman <rms@gnu.org>
parents:
40664
diff
changeset
|
32 |
17052 | 33 ;;; General utility function |
34 | |
35 ;; Print all arguments with single space separator in one line. | |
36 (defun print-list (&rest args) | |
37 (while (cdr args) | |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
38 (when (car args) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
39 (princ (car args)) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
40 (princ " ")) |
17052 | 41 (setq args (cdr args))) |
42 (princ (car args)) | |
43 (princ "\n")) | |
44 | |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
45 ;; Re-order the elements of charset-list. |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
46 (defun sort-charset-list () |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
47 (setq charset-list |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
48 (sort charset-list |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
49 (function (lambda (x y) (< (charset-id x) (charset-id y))))))) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
50 |
17052 | 51 ;;; CHARSET |
52 | |
40639 | 53 (define-button-type 'sort-listed-character-sets |
54 'help-echo (purecopy "mouse-2, RET: sort on this column") | |
55 'face 'bold | |
56 'action #'(lambda (button) | |
57 (sort-listed-character-sets (button-get button 'sort-key)))) | |
58 | |
59 (define-button-type 'list-charset-chars | |
60 :supertype 'help-xref | |
61 'help-function #'list-charset-chars | |
62 'help-echo "mouse-2, RET: show table of characters for this character set") | |
63 | |
64 | |
17052 | 65 ;;;###autoload |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
66 (defun list-character-sets (arg) |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
67 "Display a list of all character sets. |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
68 |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
69 The ID-NUM column contains a charset identification number |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
70 for internal Emacs use. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
71 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
72 The MULTIBYTE-FORM column contains a format of multibyte sequence |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
73 of characters in the charset for buffer and string |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
74 by one to four hexadecimal digits. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
75 `xx' stands for any byte in the range 0..127. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
76 `XX' stands for any byte in the range 160..255. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
77 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
78 The D column contains a dimension of this character set. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
79 The CH column contains a number of characters in a block of this character set. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
80 The FINAL-CHAR column contains an ISO-2022's <final-char> to use for |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
81 designating this character set in ISO-2022-based coding systems. |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
82 |
22306 | 83 With prefix arg, the output format gets more cryptic, |
84 but still shows the full information." | |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
85 (interactive "P") |
40664
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
86 (help-setup-xref (list #'list-character-sets arg) (interactive-p)) |
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
87 (with-output-to-temp-buffer (help-buffer) |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
88 (with-current-buffer standard-output |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
89 (if arg |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
90 (list-character-sets-2) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
91 ;; Insert header. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
92 (insert |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
93 (substitute-command-keys |
27973
cf535f97695d
(list-character-sets): Make help-echo
Kenichi Handa <handa@m17n.org>
parents:
27953
diff
changeset
|
94 (concat "Use " |
cf535f97695d
(list-character-sets): Make help-echo
Kenichi Handa <handa@m17n.org>
parents:
27953
diff
changeset
|
95 (if (display-mouse-p) "\\[help-follow-mouse] or ") |
cf535f97695d
(list-character-sets): Make help-echo
Kenichi Handa <handa@m17n.org>
parents:
27953
diff
changeset
|
96 "\\[help-follow]:\n"))) |
cf535f97695d
(list-character-sets): Make help-echo
Kenichi Handa <handa@m17n.org>
parents:
27953
diff
changeset
|
97 (insert " on a column title to sort by that title,") |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
98 (indent-to 56) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
99 (insert "+----DIMENSION\n") |
27973
cf535f97695d
(list-character-sets): Make help-echo
Kenichi Handa <handa@m17n.org>
parents:
27953
diff
changeset
|
100 (insert " on a charset name to list characters.") |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
101 (indent-to 56) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
102 (insert "| +--CHARS\n") |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
103 (let ((columns '(("ID-NUM" . id) "\t" |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
104 ("CHARSET-NAME" . name) "\t\t\t" |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
105 ("MULTIBYTE-FORM" . id) "\t" |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
106 ("D CH FINAL-CHAR" . iso-spec))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
107 pos) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
108 (while columns |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
109 (if (stringp (car columns)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
110 (insert (car columns)) |
40639 | 111 (insert-text-button (car (car columns)) |
112 :type 'sort-listed-character-sets | |
113 'sort-key (cdr (car columns))) | |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
114 (goto-char (point-max))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
115 (setq columns (cdr columns))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
116 (insert "\n")) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
117 (insert "------\t------------\t\t\t--------------\t- -- ----------\n") |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
118 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
119 ;; Insert body sorted by charset IDs. |
40664
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
120 (list-character-sets-1 'id))))) |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
121 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
122 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
123 ;; Sort character set list by SORT-KEY. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
124 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
125 (defun sort-listed-character-sets (sort-key) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
126 (if sort-key |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
127 (save-excursion |
40664
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
128 (help-setup-xref (list #'list-character-sets nil) t) |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
129 (let ((buffer-read-only nil)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
130 (goto-char (point-min)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
131 (re-search-forward "[0-9][0-9][0-9]") |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
132 (beginning-of-line) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
133 (delete-region (point) (point-max)) |
40664
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
134 (list-character-sets-1 sort-key))))) |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
135 |
31246
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
136 (defun charset-multibyte-form-string (charset) |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
137 (let ((info (charset-info charset))) |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
138 (cond ((eq charset 'ascii) |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
139 "xx") |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
140 ((eq charset 'eight-bit-control) |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
141 (format "%2X Xx" (aref info 6))) |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
142 ((eq charset 'eight-bit-graphic) |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
143 "XX") |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
144 (t |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
145 (let ((str (format "%2X" (aref info 6)))) |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
146 (if (> (aref info 7) 0) |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
147 (setq str (format "%s %2X" |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
148 str (aref info 7)))) |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
149 (setq str (concat str " XX")) |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
150 (if (> (aref info 2) 1) |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
151 (setq str (concat str " XX"))) |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
152 str))))) |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
153 |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
154 ;; Insert a list of character sets sorted by SORT-KEY. SORT-KEY |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
155 ;; should be one of `id', `name', and `iso-spec'. If SORT-KEY is nil, |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
156 ;; it defaults to `id'. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
157 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
158 (defun list-character-sets-1 (sort-key) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
159 (or sort-key |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
160 (setq sort-key 'id)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
161 (let ((tail (charset-list)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
162 charset-info-list elt charset info sort-func) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
163 (while tail |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
164 (setq charset (car tail) tail (cdr tail) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
165 info (charset-info charset)) |
22339
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
166 |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
167 ;; Generate a list that contains all information to display. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
168 (setq charset-info-list |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
169 (cons (list (charset-id charset) ; ID-NUM |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
170 charset ; CHARSET-NAME |
31246
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
171 (charset-multibyte-form-string charset); MULTIBYTE-FORM |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
172 (aref info 2) ; DIMENSION |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
173 (aref info 3) ; CHARS |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
174 (aref info 8) ; FINAL-CHAR |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
175 ) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
176 charset-info-list))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
177 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
178 ;; Determine a predicate for `sort' by SORT-KEY. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
179 (setq sort-func |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
180 (cond ((eq sort-key 'id) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
181 (function (lambda (x y) (< (car x) (car y))))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
182 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
183 ((eq sort-key 'name) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
184 (function (lambda (x y) (string< (nth 1 x) (nth 1 y))))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
185 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
186 ((eq sort-key 'iso-spec) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
187 ;; Sort by DIMENSION CHARS FINAL-CHAR |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
188 (function |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
189 (lambda (x y) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
190 (or (< (nth 3 x) (nth 3 y)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
191 (and (= (nth 3 x) (nth 3 y)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
192 (or (< (nth 4 x) (nth 4 y)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
193 (and (= (nth 4 x) (nth 4 y)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
194 (< (nth 5 x) (nth 5 y))))))))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
195 (t |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
196 (error "Invalid charset sort key: %s" sort-key)))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
197 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
198 (setq charset-info-list (sort charset-info-list sort-func)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
199 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
200 ;; Insert information of character sets. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
201 (while charset-info-list |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
202 (setq elt (car charset-info-list) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
203 charset-info-list (cdr charset-info-list)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
204 (insert (format "%03d(%02X)" (car elt) (car elt))) ; ID-NUM |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
205 (indent-to 8) |
40639 | 206 (insert-text-button (symbol-name (nth 1 elt)) |
207 :type 'list-charset-chars | |
208 'help-args (list (nth 1 elt))) | |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
209 (goto-char (point-max)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
210 (insert "\t") |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
211 (indent-to 40) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
212 (insert (nth 2 elt)) ; MULTIBYTE-FORM |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
213 (indent-to 56) |
29026
3666bafb45c7
(list-character-sets-1): Handle
Kenichi Handa <handa@m17n.org>
parents:
28964
diff
changeset
|
214 (insert (format "%d %2d " (nth 3 elt) (nth 4 elt)) ; DIMENSION and CHARS |
3666bafb45c7
(list-character-sets-1): Handle
Kenichi Handa <handa@m17n.org>
parents:
28964
diff
changeset
|
215 (if (< (nth 5 elt) 0) "none" (nth 5 elt))) ; FINAL-CHAR |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
216 (insert "\n")))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
217 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
218 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
219 ;; List all character sets in a form that a program can easily parse. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
220 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
221 (defun list-character-sets-2 () |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
222 (insert "######################### |
17052 | 223 ## LIST OF CHARSETS |
224 ## Each line corresponds to one charset. | |
225 ## The following attributes are listed in this order | |
226 ## separated by a colon `:' in one line. | |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
227 ## CHARSET-ID, |
17052 | 228 ## CHARSET-SYMBOL-NAME, |
229 ## DIMENSION (1 or 2) | |
230 ## CHARS (94 or 96) | |
231 ## BYTES (of multibyte form: 1, 2, 3, or 4), | |
232 ## WIDTH (occupied column numbers: 1 or 2), | |
233 ## DIRECTION (0:left-to-right, 1:right-to-left), | |
234 ## ISO-FINAL-CHAR (character code of ISO-2022's final character) | |
235 ## ISO-GRAPHIC-PLANE (ISO-2022's graphic plane, 0:GL, 1:GR) | |
236 ## DESCRIPTION (describing string of the charset) | |
237 ") | |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
238 (let ((l charset-list) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
239 charset) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
240 (while l |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
241 (setq charset (car l) l (cdr l)) |
30765
1e5a486b8b25
punctuation fixes in doc strings
Sam Steingold <sds@gnu.org>
parents:
30126
diff
changeset
|
242 (princ (format "%03d:%s:%d:%d:%d:%d:%d:%d:%d:%s\n" |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
243 (charset-id charset) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
244 charset |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
245 (charset-dimension charset) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
246 (charset-chars charset) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
247 (charset-bytes charset) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
248 (charset-width charset) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
249 (charset-direction charset) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
250 (charset-iso-final-char charset) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
251 (charset-iso-graphic-plane charset) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
252 (charset-description charset)))))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
253 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
254 (defvar non-iso-charset-alist |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
255 `((viscii |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
256 (ascii vietnamese-viscii-lower vietnamese-viscii-upper) |
29454
f0dee30140f0
(non-iso-charset-alist): Specify
Kenichi Handa <handa@m17n.org>
parents:
29228
diff
changeset
|
257 viet-viscii-nonascii-translation-table |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
258 ((0 255))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
259 (koi8-r |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
260 (ascii cyrillic-iso8859-5) |
29454
f0dee30140f0
(non-iso-charset-alist): Specify
Kenichi Handa <handa@m17n.org>
parents:
29228
diff
changeset
|
261 cyrillic-koi8-r-nonascii-translation-table |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
262 ((32 255))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
263 (alternativnyj |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
264 (ascii cyrillic-iso8859-5) |
29454
f0dee30140f0
(non-iso-charset-alist): Specify
Kenichi Handa <handa@m17n.org>
parents:
29228
diff
changeset
|
265 cyrillic-alternativnyj-nonascii-translation-table |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
266 ((32 255))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
267 (big5 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
268 (ascii chinese-big5-1 chinese-big5-2) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
269 decode-big5-char |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
270 ((32 127) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
271 ((?\xA1 ?\xFE) . (?\x40 ?\x7E ?\xA1 ?\xFE)))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
272 (sjis |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
273 (ascii katakana-jisx0201 japanese-jisx0208) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
274 decode-sjis-char |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
275 ((32 127 ?\xA1 ?\xDF) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
276 ((?\x81 ?\x9F ?\xE0 ?\xEF) . (?\x40 ?\x7E ?\x80 ?\xFC))))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
277 "Alist of non-ISO charset names vs the corresponding information. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
278 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
279 Non-ISO charsets are what Emacs can read (or write) by mapping to (or |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
280 from) some Emacs' charsets that correspond to ISO charsets. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
281 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
282 Each element has the following format: |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
283 (NON-ISO-CHARSET CHARSET-LIST TRANSLATION-METHOD [ CODE-RANGE ]) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
284 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
285 NON-ISO-CHARSET is a name (symbol) of the non-ISO charset. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
286 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
287 CHARSET-LIST is a list of Emacs' charsets into which characters of |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
288 NON-ISO-CHARSET are mapped. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
289 |
34078
ebb2d5e5973e
(describe-char-after): Fix typo.
Kenichi Handa <handa@m17n.org>
parents:
33837
diff
changeset
|
290 TRANSLATION-METHOD is a translation table (symbol) to translate a |
29454
f0dee30140f0
(non-iso-charset-alist): Specify
Kenichi Handa <handa@m17n.org>
parents:
29228
diff
changeset
|
291 character code of NON-ISO-CHARSET to the corresponding Emacs character |
f0dee30140f0
(non-iso-charset-alist): Specify
Kenichi Handa <handa@m17n.org>
parents:
29228
diff
changeset
|
292 code. It can also be a function to call with one argument, a |
f0dee30140f0
(non-iso-charset-alist): Specify
Kenichi Handa <handa@m17n.org>
parents:
29228
diff
changeset
|
293 character code in NON-ISO-CHARSET. |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
294 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
295 CODE-RANGE specifies the valid code ranges of NON-ISO-CHARSET. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
296 It is a list of RANGEs, where each RANGE is of the form: |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
297 (FROM1 TO1 FROM2 TO2 ...) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
298 or |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
299 ((FROM1-1 TO1-1 FROM1-2 TO1-2 ...) . (FROM2-1 TO2-1 FROM2-2 TO2-2 ...)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
300 In the first form, valid codes are between FROM1 and TO1, or FROM2 and |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
301 TO2, or... |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
302 The second form is used for 2-byte codes. The car part is the ranges |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
303 of the first byte, and the cdr part is the ranges of the second byte.") |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
304 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
305 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
306 ;; Decode a character that has code CODE in CODEPAGE. Value is a |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
307 ;; string of decoded character. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
308 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
309 (defun decode-codepage-char (codepage code) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
310 ;; Each CODEPAGE corresponds to a coding system cpCODEPAGE. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
311 (let ((coding-system (intern (format "cp%d" codepage)))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
312 (or (coding-system-p coding-system) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
313 (codepage-setup codepage)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
314 (string-to-char |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
315 (decode-coding-string (char-to-string code) coding-system)))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
316 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
317 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
318 ;; Add DOS codepages to `non-iso-charset-alist'. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
319 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
320 (let ((tail (cp-supported-codepages)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
321 elt) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
322 (while tail |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
323 (setq elt (car tail) tail (cdr tail)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
324 ;; Now ELT is (CODEPAGE . CHARSET), where CODEPAGE is a string |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
325 ;; (e.g. "850"), CHARSET is a charset that characters in CODEPAGE |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
326 ;; are mapped to. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
327 (setq non-iso-charset-alist |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
328 (cons (list (intern (concat "cp" (car elt))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
329 (list 'ascii (cdr elt)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
330 `(lambda (code) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
331 (decode-codepage-char ,(string-to-int (car elt)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
332 code)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
333 (list (list 0 255))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
334 non-iso-charset-alist)))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
335 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
336 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
337 ;; A variable to hold charset input history. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
338 (defvar charset-history nil) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
339 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
340 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
341 ;;;###autoload |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
342 (defun read-charset (prompt &optional default-value initial-input) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
343 "Read a character set from the minibuffer, prompting with string PROMPT. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
344 It reads an Emacs' character set listed in the variable `charset-list' |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
345 or a non-ISO character set listed in the variable |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
346 `non-iso-charset-alist'. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
347 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
348 Optional arguments are DEFAULT-VALUE and INITIAL-INPUT. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
349 DEFAULT-VALUE, if non-nil, is the default value. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
350 INITIAL-INPUT, if non-nil, is a string inserted in the minibuffer initially. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
351 See the documentation of the function `completing-read' for the |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
352 detailed meanings of these arguments." |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
353 (let* ((table (append (mapcar (function (lambda (x) (list (symbol-name x)))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
354 charset-list) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
355 (mapcar (function (lambda (x) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
356 (list (symbol-name (car x))))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
357 non-iso-charset-alist))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
358 (charset (completing-read prompt table |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
359 nil t initial-input 'charset-history |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
360 default-value))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
361 (if (> (length charset) 0) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
362 (intern charset)))) |
30765
1e5a486b8b25
punctuation fixes in doc strings
Sam Steingold <sds@gnu.org>
parents:
30126
diff
changeset
|
363 |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
364 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
365 ;; List characters of the range MIN and MAX of CHARSET. If dimension |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
366 ;; of CHARSET is two (i.e. 2-byte charset), ROW is the first byte |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
367 ;; (block index) of the characters, and MIN and MAX are the second |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
368 ;; bytes of the characters. If the dimension is one, ROW should be 0. |
29454
f0dee30140f0
(non-iso-charset-alist): Specify
Kenichi Handa <handa@m17n.org>
parents:
29228
diff
changeset
|
369 ;; For a non-ISO charset, CHARSET is a translation table (symbol) or a |
f0dee30140f0
(non-iso-charset-alist): Specify
Kenichi Handa <handa@m17n.org>
parents:
29228
diff
changeset
|
370 ;; function to get Emacs' character codes that corresponds to the |
f0dee30140f0
(non-iso-charset-alist): Specify
Kenichi Handa <handa@m17n.org>
parents:
29228
diff
changeset
|
371 ;; characters to list. |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
372 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
373 (defun list-block-of-chars (charset row min max) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
374 (let (i ch) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
375 (insert-char ?- (+ 4 (* 3 16))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
376 (insert "\n ") |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
377 (setq i 0) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
378 (while (< i 16) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
379 (insert (format "%3X" i)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
380 (setq i (1+ i))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
381 (setq i (* (/ min 16) 16)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
382 (while (<= i max) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
383 (if (= (% i 16) 0) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
384 (insert (format "\n%3Xx" (/ (+ (* row 256) i) 16)))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
385 (setq ch (cond ((< i min) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
386 32) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
387 ((charsetp charset) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
388 (if (= row 0) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
389 (make-char charset i) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
390 (make-char charset row i))) |
29454
f0dee30140f0
(non-iso-charset-alist): Specify
Kenichi Handa <handa@m17n.org>
parents:
29228
diff
changeset
|
391 ((and (symbolp charset) (get charset 'translation-table)) |
f0dee30140f0
(non-iso-charset-alist): Specify
Kenichi Handa <handa@m17n.org>
parents:
29228
diff
changeset
|
392 (aref (get charset 'translation-table) i)) |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
393 (t (funcall charset (+ (* row 256) i))))) |
29026
3666bafb45c7
(list-character-sets-1): Handle
Kenichi Handa <handa@m17n.org>
parents:
28964
diff
changeset
|
394 (if (and (char-table-p charset) |
3666bafb45c7
(list-character-sets-1): Handle
Kenichi Handa <handa@m17n.org>
parents:
28964
diff
changeset
|
395 (or (< ch 32) (and (>= ch 127) (<= ch 255)))) |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
396 ;; Don't insert a control code. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
397 (setq ch 32)) |
29026
3666bafb45c7
(list-character-sets-1): Handle
Kenichi Handa <handa@m17n.org>
parents:
28964
diff
changeset
|
398 (indent-to (+ (* (% i 16) 3) 6)) |
3666bafb45c7
(list-character-sets-1): Handle
Kenichi Handa <handa@m17n.org>
parents:
28964
diff
changeset
|
399 (insert ch) |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
400 (setq i (1+ i)))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
401 (insert "\n")) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
402 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
403 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
404 ;; List all characters in ISO charset CHARSET. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
405 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
406 (defun list-iso-charset-chars (charset) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
407 (let ((dim (charset-dimension charset)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
408 (chars (charset-chars charset)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
409 (plane (charset-iso-graphic-plane charset)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
410 min max) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
411 (insert (format "Characters in the charset %s.\n" charset)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
412 |
29026
3666bafb45c7
(list-character-sets-1): Handle
Kenichi Handa <handa@m17n.org>
parents:
28964
diff
changeset
|
413 (cond ((eq charset 'eight-bit-control) |
3666bafb45c7
(list-character-sets-1): Handle
Kenichi Handa <handa@m17n.org>
parents:
28964
diff
changeset
|
414 (setq min 128 max 159)) |
3666bafb45c7
(list-character-sets-1): Handle
Kenichi Handa <handa@m17n.org>
parents:
28964
diff
changeset
|
415 ((eq charset 'eight-bit-graphic) |
3666bafb45c7
(list-character-sets-1): Handle
Kenichi Handa <handa@m17n.org>
parents:
28964
diff
changeset
|
416 (setq min 160 max 255)) |
3666bafb45c7
(list-character-sets-1): Handle
Kenichi Handa <handa@m17n.org>
parents:
28964
diff
changeset
|
417 (t |
3666bafb45c7
(list-character-sets-1): Handle
Kenichi Handa <handa@m17n.org>
parents:
28964
diff
changeset
|
418 (if (= chars 94) |
3666bafb45c7
(list-character-sets-1): Handle
Kenichi Handa <handa@m17n.org>
parents:
28964
diff
changeset
|
419 (setq min 33 max 126) |
3666bafb45c7
(list-character-sets-1): Handle
Kenichi Handa <handa@m17n.org>
parents:
28964
diff
changeset
|
420 (setq min 32 max 127)) |
3666bafb45c7
(list-character-sets-1): Handle
Kenichi Handa <handa@m17n.org>
parents:
28964
diff
changeset
|
421 (or (= plane 0) |
3666bafb45c7
(list-character-sets-1): Handle
Kenichi Handa <handa@m17n.org>
parents:
28964
diff
changeset
|
422 (setq min (+ min 128) max (+ max 128))))) |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
423 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
424 (if (= dim 1) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
425 (list-block-of-chars charset 0 min max) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
426 (let ((i min)) |
33837
ee31f4f9b014
(list-iso-charset-chars): For two-byte charset, fix the `while' condition.
Kenichi Handa <handa@m17n.org>
parents:
31246
diff
changeset
|
427 (while (<= i max) |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
428 (list-block-of-chars charset i min max) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
429 (setq i (1+ i))))))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
430 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
431 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
432 ;; List all characters in non-ISO charset CHARSET. |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
433 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
434 (defun list-non-iso-charset-chars (charset) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
435 (let* ((slot (assq charset non-iso-charset-alist)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
436 (charsets (nth 1 slot)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
437 (translate-method (nth 2 slot)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
438 (ranges (nth 3 slot)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
439 range) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
440 (or slot |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
441 (error "Unknown external charset: %s" charset)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
442 (insert (format "Characters in non-ISO charset %s.\n" charset)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
443 (insert "They are mapped to: " |
29057
9b29679df993
(list-non-iso-charset-chars, describe-fontset): Remove redundant
Dave Love <fx@gnu.org>
parents:
29026
diff
changeset
|
444 (mapconcat #'symbol-name charsets ", ") |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
445 "\n") |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
446 (while ranges |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
447 (setq range (car ranges) ranges (cdr ranges)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
448 (if (integerp (car range)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
449 ;; The form of RANGES is (FROM1 TO1 FROM2 TO2 ...). |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
450 (while range |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
451 (list-block-of-chars translate-method |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
452 0 (car range) (nth 1 range)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
453 (setq range (nthcdr 2 range))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
454 ;; The form of RANGES is ((FROM1-1 TO1-1 ...) . (FROM2-1 TO2-1 ...)). |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
455 (let ((row-range (car range)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
456 row row-max |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
457 col-range col col-max) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
458 (while row-range |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
459 (setq row (car row-range) row-max (nth 1 row-range) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
460 row-range (nthcdr 2 row-range)) |
33837
ee31f4f9b014
(list-iso-charset-chars): For two-byte charset, fix the `while' condition.
Kenichi Handa <handa@m17n.org>
parents:
31246
diff
changeset
|
461 (while (<= row row-max) |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
462 (setq col-range (cdr range)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
463 (while col-range |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
464 (setq col (car col-range) col-max (nth 1 col-range) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
465 col-range (nthcdr 2 col-range)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
466 (list-block-of-chars translate-method row col col-max)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
467 (setq row (1+ row))))))))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
468 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
469 |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
470 ;;;###autoload |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
471 (defun list-charset-chars (charset) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
472 "Display a list of characters in the specified character set." |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
473 (interactive (list (read-charset "Character set: "))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
474 (with-output-to-temp-buffer "*Help*" |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
475 (with-current-buffer standard-output |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
476 (set-buffer-multibyte t) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
477 (cond ((charsetp charset) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
478 (list-iso-charset-chars charset)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
479 ((assq charset non-iso-charset-alist) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
480 (list-non-iso-charset-chars charset)) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
481 (t |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
482 (error "Invalid charset %s" charset)))))) |
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
483 |
28899
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
484 |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
485 ;;;###autoload |
31246
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
486 (defun describe-character-set (charset) |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
487 "Display information about character set CHARSET." |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
488 (interactive (list (let ((non-iso-charset-alist nil)) |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
489 (read-charset "Charset: ")))) |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
490 (or (charsetp charset) |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
491 (error "Invalid charset: %S" charset)) |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
492 (let ((info (charset-info charset))) |
40664
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
493 (help-setup-xref (list #'describe-character-set charset) (interactive-p)) |
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
494 (with-output-to-temp-buffer (help-buffer) |
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
495 (with-current-buffer standard-output |
31246
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
496 (insert "Character set: " (symbol-name charset) |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
497 (format " (ID:%d)\n\n" (aref info 0))) |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
498 (insert (aref info 13) "\n\n") ; description |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
499 (insert "number of contained characters: " |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
500 (if (= (aref info 2) 1) |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
501 (format "%d\n" (aref info 3)) |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
502 (format "%dx%d\n" (aref info 3) (aref info 3)))) |
34078
ebb2d5e5973e
(describe-char-after): Fix typo.
Kenichi Handa <handa@m17n.org>
parents:
33837
diff
changeset
|
503 (insert "the final char of ISO2022's designation sequence: ") |
35747
e154e666c9ed
(describe-character-set): Pay attention to charsets that don't have
Kenichi Handa <handa@m17n.org>
parents:
35585
diff
changeset
|
504 (if (>= (aref info 8) 0) |
31246
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
505 (insert (format "`%c'\n" (aref info 8))) |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
506 (insert "not assigned\n")) |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
507 (insert (format "width (how many columns on screen): %d\n" |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
508 (aref info 4))) |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
509 (insert (format "internal multibyte sequence: %s\n" |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
510 (charset-multibyte-form-string charset))) |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
511 (let ((coding (plist-get (aref info 14) 'preferred-coding-system))) |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
512 (when coding |
34078
ebb2d5e5973e
(describe-char-after): Fix typo.
Kenichi Handa <handa@m17n.org>
parents:
33837
diff
changeset
|
513 (insert (format "preferred coding system: %s\n" coding)) |
31246
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
514 (search-backward (symbol-name coding)) |
40664
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
515 (help-xref-button 0 'describe-coding-system coding))))))) |
31246
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
516 |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
517 ;;;###autoload |
28899
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
518 (defun describe-char-after (&optional pos) |
35585 | 519 "Display information about the character at POS in the current buffer. |
520 POS defaults to point. | |
28899
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
521 The information includes character code, charset and code points in it, |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
522 syntax, category, how the character is encoded in a file, |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
523 which font is being used for displaying the character." |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
524 (interactive) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
525 (or pos |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
526 (setq pos (point))) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
527 (if (>= pos (point-max)) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
528 (error "No character at point")) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
529 (let* ((char (char-after pos)) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
530 (charset (char-charset char)) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
531 (composition (find-composition (point) nil nil t)) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
532 (composed (if composition (buffer-substring (car composition) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
533 (nth 1 composition)))) |
34764
14e6e9496603
(describe-char-after): Make *Help*
Kenichi Handa <handa@m17n.org>
parents:
34631
diff
changeset
|
534 (multibyte-p enable-multibyte-characters) |
28899
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
535 item-list max-width) |
28964
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
536 (if (eq charset 'unknown) |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
537 (setq item-list |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
538 `(("character" |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
539 ,(format "%s (0%o, %d, 0x%x) -- invalid character code" |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
540 (if (< char 256) |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
541 (single-key-description char) |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
542 (char-to-string char)) |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
543 char char char)))) |
28899
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
544 (setq item-list |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
545 `(("character" |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
546 ,(format "%s (0%o, %d, 0x%x)" (if (< char 256) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
547 (single-key-description char) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
548 (char-to-string char)) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
549 char char char)) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
550 ("charset" |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
551 ,(symbol-name charset) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
552 ,(format "(%s)" (charset-description charset))) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
553 ("code point" |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
554 ,(let ((split (split-char char))) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
555 (if (= (charset-dimension charset) 1) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
556 (format "%d" (nth 1 split)) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
557 (format "%d %d" (nth 1 split) (nth 2 split))))) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
558 ("syntax" |
40664
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
559 ,(let ((syntax (aref (syntax-table) char))) |
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
560 (with-temp-buffer |
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
561 (internal-describe-syntax-value syntax) |
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
562 (buffer-string)))) |
28899
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
563 ("category" |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
564 ,@(let ((category-set (char-category-set char))) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
565 (if (not category-set) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
566 '("-- none --") |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
567 (mapcar #'(lambda (x) (format "%c:%s " |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
568 x (category-docstring x))) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
569 (category-set-mnemonics category-set))))) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
570 ("buffer code" |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
571 ,(encoded-string-description |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
572 (string-as-unibyte (char-to-string char)) nil)) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
573 ("file code" |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
574 ,@(let* ((coding buffer-file-coding-system) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
575 (encoded (encode-coding-char char coding))) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
576 (if encoded |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
577 (list (encoded-string-description encoded coding) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
578 (format "(encoded by coding system %S)" coding)) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
579 (list "not encodable by coding system" |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
580 (symbol-name coding))))) |
29187 | 581 ,(if (display-graphic-p (selected-frame)) |
28964
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
582 (list "font" (or (internal-char-font (point)) |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
583 "-- none --")) |
28899
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
584 (list "terminal code" |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
585 (let* ((coding (terminal-coding-system)) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
586 (encoded (encode-coding-char char coding))) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
587 (if encoded |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
588 (encoded-string-description encoded coding) |
28964
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
589 "not encodable"))))))) |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
590 (setq max-width (apply #'max (mapcar #'(lambda (x) (length (car x))) |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
591 item-list))) |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
592 (with-output-to-temp-buffer "*Help*" |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
593 (save-excursion |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
594 (set-buffer standard-output) |
34764
14e6e9496603
(describe-char-after): Make *Help*
Kenichi Handa <handa@m17n.org>
parents:
34631
diff
changeset
|
595 (set-buffer-multibyte multibyte-p) |
28964
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
596 (let ((formatter (format "%%%ds:" max-width))) |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
597 (dolist (elt item-list) |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
598 (insert (format formatter (car elt))) |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
599 (dolist (clm (cdr elt)) |
40664
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
600 (when (>= (+ (current-column) |
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
601 (or (string-match "\n" clm) |
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
602 (string-width clm)) 1) |
28964
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
603 (frame-width)) |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
604 (insert "\n") |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
605 (indent-to (1+ max-width))) |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
606 (insert " " clm)) |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
607 (insert "\n"))) |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
608 (when composition |
34078
ebb2d5e5973e
(describe-char-after): Fix typo.
Kenichi Handa <handa@m17n.org>
parents:
33837
diff
changeset
|
609 (insert "\nComposed with the following character(s) " |
28964
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
610 (mapconcat (lambda (x) (format "`%c'" x)) |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
611 (substring composed 1) |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
612 ", ") |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
613 " to form `" composed "'") |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
614 (if (nth 3 composition) |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
615 (insert ".\n") |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
616 (insert "\nby the rule (" |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
617 (mapconcat (lambda (x) |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
618 (format (if (consp x) "%S" "?%c") x)) |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
619 (nth 2 composition) |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
620 " ") |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
621 ").\n" |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
622 "See the variable `reference-point-alist' for the meaning of the rule.\n"))) |
7ba5753774e5
(describe-char-after): Call
Kenichi Handa <handa@m17n.org>
parents:
28899
diff
changeset
|
623 )))) |
28899
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
624 |
17052 | 625 |
626 ;;; CODING-SYSTEM | |
627 | |
628 ;; Print information of designation of each graphic register in FLAGS | |
629 ;; in human readable format. See the documentation of | |
630 ;; `make-coding-system' for the meaning of FLAGS. | |
631 (defun print-designation (flags) | |
632 (let ((graphic-register 0) | |
633 charset) | |
634 (while (< graphic-register 4) | |
635 (setq charset (aref flags graphic-register)) | |
636 (princ (format | |
637 " G%d -- %s\n" | |
638 graphic-register | |
639 (cond ((null charset) | |
640 "never used") | |
641 ((eq charset t) | |
642 "no initial designation, and used by any charsets") | |
643 ((symbolp charset) | |
644 (format "%s:%s" | |
645 charset (charset-description charset))) | |
646 ((listp charset) | |
647 (if (charsetp (car charset)) | |
648 (format "%s:%s, and also used by the followings:" | |
649 (car charset) | |
650 (charset-description (car charset))) | |
651 "no initial designation, and used by the followings:")) | |
652 (t | |
653 "invalid designation information")))) | |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
654 (when (listp charset) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
655 (setq charset (cdr charset)) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
656 (while charset |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
657 (cond ((eq (car charset) t) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
658 (princ "\tany other charsets\n")) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
659 ((charsetp (car charset)) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
660 (princ (format "\t%s:%s\n" |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
661 (car charset) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
662 (charset-description (car charset))))) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
663 (t |
30765
1e5a486b8b25
punctuation fixes in doc strings
Sam Steingold <sds@gnu.org>
parents:
30126
diff
changeset
|
664 "invalid designation information")) |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
665 (setq charset (cdr charset)))) |
17052 | 666 (setq graphic-register (1+ graphic-register))))) |
667 | |
668 ;;;###autoload | |
669 (defun describe-coding-system (coding-system) | |
22306 | 670 "Display information about CODING-SYSTEM." |
18300
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
671 (interactive "zDescribe coding system (default, current choices): ") |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
672 (if (null coding-system) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
673 (describe-current-coding-system) |
40664
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
674 (help-setup-xref (list #'describe-coding-system coding-system) |
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
675 (interactive-p)) |
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
676 (with-output-to-temp-buffer (help-buffer) |
18300
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
677 (print-coding-system-briefly coding-system 'doc-string) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
678 (let ((coding-spec (coding-system-spec coding-system))) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
679 (princ "Type: ") |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
680 (let ((type (coding-system-type coding-system)) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
681 (flags (coding-system-flags coding-system))) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
682 (princ type) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
683 (cond ((eq type nil) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
684 (princ " (do no conversion)")) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
685 ((eq type t) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
686 (princ " (do automatic conversion)")) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
687 ((eq type 0) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
688 (princ " (Emacs internal multibyte form)")) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
689 ((eq type 1) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
690 (princ " (Shift-JIS, MS-KANJI)")) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
691 ((eq type 2) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
692 (princ " (variant of ISO-2022)\n") |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
693 (princ "Initial designations:\n") |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
694 (print-designation flags) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
695 (princ "Other Form: \n ") |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
696 (princ (if (aref flags 4) "short-form" "long-form")) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
697 (if (aref flags 5) (princ ", ASCII@EOL")) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
698 (if (aref flags 6) (princ ", ASCII@CNTL")) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
699 (princ (if (aref flags 7) ", 7-bit" ", 8-bit")) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
700 (if (aref flags 8) (princ ", use-locking-shift")) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
701 (if (aref flags 9) (princ ", use-single-shift")) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
702 (if (aref flags 10) (princ ", use-roman")) |
23582
a96404fd053a
(describe-coding-system): Describe
Andreas Schwab <schwab@suse.de>
parents:
22885
diff
changeset
|
703 (if (aref flags 11) (princ ", use-old-jis")) |
a96404fd053a
(describe-coding-system): Describe
Andreas Schwab <schwab@suse.de>
parents:
22885
diff
changeset
|
704 (if (aref flags 12) (princ ", no-ISO6429")) |
a96404fd053a
(describe-coding-system): Describe
Andreas Schwab <schwab@suse.de>
parents:
22885
diff
changeset
|
705 (if (aref flags 13) (princ ", init-bol")) |
a96404fd053a
(describe-coding-system): Describe
Andreas Schwab <schwab@suse.de>
parents:
22885
diff
changeset
|
706 (if (aref flags 14) (princ ", designation-bol")) |
a96404fd053a
(describe-coding-system): Describe
Andreas Schwab <schwab@suse.de>
parents:
22885
diff
changeset
|
707 (if (aref flags 15) (princ ", convert-unsafe")) |
a96404fd053a
(describe-coding-system): Describe
Andreas Schwab <schwab@suse.de>
parents:
22885
diff
changeset
|
708 (if (aref flags 16) (princ ", accept-latin-extra-code")) |
18300
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
709 (princ ".")) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
710 ((eq type 3) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
711 (princ " (Big5)")) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
712 ((eq type 4) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
713 (princ " (do conversion by CCL program)")) |
19876
d3df40315378
(describe-coding-system): Describe coding systems of type 5, raw-text.
Richard M. Stallman <rms@gnu.org>
parents:
19657
diff
changeset
|
714 ((eq type 5) |
d3df40315378
(describe-coding-system): Describe coding systems of type 5, raw-text.
Richard M. Stallman <rms@gnu.org>
parents:
19657
diff
changeset
|
715 (princ " (text with random binary characters)")) |
d3df40315378
(describe-coding-system): Describe coding systems of type 5, raw-text.
Richard M. Stallman <rms@gnu.org>
parents:
19657
diff
changeset
|
716 (t (princ ": invalid coding-system.")))) |
20163
5ff1329561b4
(list-input-methods): Handle the case
Kenichi Handa <handa@m17n.org>
parents:
20114
diff
changeset
|
717 (princ "\nEOL type: ") |
18300
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
718 (let ((eol-type (coding-system-eol-type coding-system))) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
719 (cond ((vectorp eol-type) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
720 (princ "Automatic selection from:\n\t") |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
721 (princ eol-type) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
722 (princ "\n")) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
723 ((or (null eol-type) (eq eol-type 0)) (princ "LF\n")) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
724 ((eq eol-type 1) (princ "CRLF\n")) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
725 ((eq eol-type 2) (princ "CR\n")) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
726 (t (princ "invalid\n"))))) |
20114
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
727 (let ((postread (coding-system-get coding-system 'post-read-conversion))) |
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
728 (when postread |
35585 | 729 (princ "After decoding text normally,") |
730 (princ " perform post-conversion using the function: ") | |
20114
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
731 (princ "\n ") |
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
732 (princ postread) |
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
733 (princ "\n"))) |
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
734 (let ((prewrite (coding-system-get coding-system 'pre-write-conversion))) |
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
735 (when prewrite |
35585 | 736 (princ "Before encoding text normally,") |
737 (princ " perform pre-conversion using the function: ") | |
20114
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
738 (princ "\n ") |
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
739 (princ prewrite) |
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
740 (princ "\n"))) |
40664
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
741 (with-current-buffer standard-output |
31246
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
742 (let ((charsets (coding-system-get coding-system 'safe-charsets))) |
36989
ce090eb0edda
(describe-coding-system): For raw-text and emacs-mule, don't add
Kenichi Handa <handa@m17n.org>
parents:
35747
diff
changeset
|
743 (when (and (not (memq (coding-system-base coding-system) |
ce090eb0edda
(describe-coding-system): For raw-text and emacs-mule, don't add
Kenichi Handa <handa@m17n.org>
parents:
35747
diff
changeset
|
744 '(raw-text emacs-mule))) |
ce090eb0edda
(describe-coding-system): For raw-text and emacs-mule, don't add
Kenichi Handa <handa@m17n.org>
parents:
35747
diff
changeset
|
745 charsets) |
31246
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
746 (if (eq charsets t) |
36989
ce090eb0edda
(describe-coding-system): For raw-text and emacs-mule, don't add
Kenichi Handa <handa@m17n.org>
parents:
35747
diff
changeset
|
747 (insert "This coding system can encode all charsets except for |
ce090eb0edda
(describe-coding-system): For raw-text and emacs-mule, don't add
Kenichi Handa <handa@m17n.org>
parents:
35747
diff
changeset
|
748 eight-bit-control and eight-bit-graphic.\n") |
35585 | 749 (insert "This coding system encodes the following charsets:\n ") |
31246
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
750 (while charsets |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
751 (insert " " (symbol-name (car charsets))) |
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
752 (search-backward (symbol-name (car charsets))) |
40639 | 753 (help-xref-button 0 'help-character-set (car charsets)) |
31246
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
754 (goto-char (point-max)) |
40664
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
755 (setq charsets (cdr charsets)))))))))) |
31246
d8ce7bce2aab
(charset-multibyte-form-string): New function.
Kenichi Handa <handa@m17n.org>
parents:
30765
diff
changeset
|
756 |
17052 | 757 |
758 ;;;###autoload | |
759 (defun describe-current-coding-system-briefly () | |
18199
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
760 "Display coding systems currently used in a brief format in echo area. |
17052 | 761 |
18199
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
762 The format is \"F[..],K[..],T[..],P>[..],P<[..], default F[..],P<[..],P<[..]\", |
17052 | 763 where mnemonics of the following coding systems come in this order |
18199
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
764 at the place of `..': |
30765
1e5a486b8b25
punctuation fixes in doc strings
Sam Steingold <sds@gnu.org>
parents:
30126
diff
changeset
|
765 `buffer-file-coding-system' (of the current buffer) |
1e5a486b8b25
punctuation fixes in doc strings
Sam Steingold <sds@gnu.org>
parents:
30126
diff
changeset
|
766 eol-type of `buffer-file-coding-system' (of the current buffer) |
22306 | 767 Value returned by `keyboard-coding-system' |
30765
1e5a486b8b25
punctuation fixes in doc strings
Sam Steingold <sds@gnu.org>
parents:
30126
diff
changeset
|
768 eol-type of `keyboard-coding-system' |
1e5a486b8b25
punctuation fixes in doc strings
Sam Steingold <sds@gnu.org>
parents:
30126
diff
changeset
|
769 Value returned by `terminal-coding-system'. |
1e5a486b8b25
punctuation fixes in doc strings
Sam Steingold <sds@gnu.org>
parents:
30126
diff
changeset
|
770 eol-type of `terminal-coding-system' |
22306 | 771 `process-coding-system' for read (of the current buffer, if any) |
30765
1e5a486b8b25
punctuation fixes in doc strings
Sam Steingold <sds@gnu.org>
parents:
30126
diff
changeset
|
772 eol-type of `process-coding-system' for read (of the current buffer, if any) |
22306 | 773 `process-coding-system' for write (of the current buffer, if any) |
30765
1e5a486b8b25
punctuation fixes in doc strings
Sam Steingold <sds@gnu.org>
parents:
30126
diff
changeset
|
774 eol-type of `process-coding-system' for write (of the current buffer, if any) |
22306 | 775 `default-buffer-file-coding-system' |
30765
1e5a486b8b25
punctuation fixes in doc strings
Sam Steingold <sds@gnu.org>
parents:
30126
diff
changeset
|
776 eol-type of `default-buffer-file-coding-system' |
22306 | 777 `default-process-coding-system' for read |
30765
1e5a486b8b25
punctuation fixes in doc strings
Sam Steingold <sds@gnu.org>
parents:
30126
diff
changeset
|
778 eol-type of `default-process-coding-system' for read |
22306 | 779 `default-process-coding-system' for write |
30765
1e5a486b8b25
punctuation fixes in doc strings
Sam Steingold <sds@gnu.org>
parents:
30126
diff
changeset
|
780 eol-type of `default-process-coding-system'" |
17052 | 781 (interactive) |
782 (let* ((proc (get-buffer-process (current-buffer))) | |
783 (process-coding-systems (if proc (process-coding-system proc)))) | |
784 (message | |
24865
a4b8bb7bed21
(describe-current-coding-system-briefly): Fix format string.
Kenichi Handa <handa@m17n.org>
parents:
24724
diff
changeset
|
785 "F[%c%s],K[%c%s],T[%c%s],P>[%c%s],P<[%c%s], default F[%c%s],P>[%c%s],P<[%c%s]" |
17052 | 786 (coding-system-mnemonic buffer-file-coding-system) |
18199
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
787 (coding-system-eol-type-mnemonic buffer-file-coding-system) |
17052 | 788 (coding-system-mnemonic (keyboard-coding-system)) |
18199
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
789 (coding-system-eol-type-mnemonic (keyboard-coding-system)) |
17052 | 790 (coding-system-mnemonic (terminal-coding-system)) |
18199
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
791 (coding-system-eol-type-mnemonic (terminal-coding-system)) |
17052 | 792 (coding-system-mnemonic (car process-coding-systems)) |
18199
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
793 (coding-system-eol-type-mnemonic (car process-coding-systems)) |
17052 | 794 (coding-system-mnemonic (cdr process-coding-systems)) |
18199
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
795 (coding-system-eol-type-mnemonic (cdr process-coding-systems)) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
796 (coding-system-mnemonic default-buffer-file-coding-system) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
797 (coding-system-eol-type-mnemonic default-buffer-file-coding-system) |
17052 | 798 (coding-system-mnemonic (car default-process-coding-system)) |
18199
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
799 (coding-system-eol-type-mnemonic (car default-process-coding-system)) |
17052 | 800 (coding-system-mnemonic (cdr default-process-coding-system)) |
18199
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
801 (coding-system-eol-type-mnemonic (cdr default-process-coding-system)) |
17052 | 802 ))) |
803 | |
22306 | 804 ;; Print symbol name and mnemonic letter of CODING-SYSTEM with `princ'. |
18300
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
805 (defun print-coding-system-briefly (coding-system &optional doc-string) |
18199
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
806 (if (not coding-system) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
807 (princ "nil\n") |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
808 (princ (format "%c -- %s" |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
809 (coding-system-mnemonic coding-system) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
810 coding-system)) |
20114
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
811 (let ((aliases (coding-system-get coding-system 'alias-coding-systems))) |
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
812 (if (eq coding-system (car aliases)) |
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
813 (if (cdr aliases) |
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
814 (princ (format " %S" (cons 'alias: (cdr aliases))))) |
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
815 (if (memq coding-system aliases) |
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
816 (princ (format " (alias of %s)" (car aliases)))))) |
18199
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
817 (princ "\n") |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
818 (if (and doc-string |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
819 (setq doc-string (coding-system-doc-string coding-system))) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
820 (princ (format " %s\n" doc-string))))) |
17052 | 821 |
822 ;;;###autoload | |
823 (defun describe-current-coding-system () | |
22306 | 824 "Display coding systems currently used, in detail." |
17052 | 825 (interactive) |
826 (with-output-to-temp-buffer "*Help*" | |
827 (let* ((proc (get-buffer-process (current-buffer))) | |
828 (process-coding-systems (if proc (process-coding-system proc)))) | |
19081
f33df9d64fe8
(describe-current-coding-system): Clean up output format.
Richard M. Stallman <rms@gnu.org>
parents:
18799
diff
changeset
|
829 (princ "Coding system for saving this buffer:\n ") |
18199
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
830 (if (local-variable-p 'buffer-file-coding-system) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
831 (print-coding-system-briefly buffer-file-coding-system) |
19081
f33df9d64fe8
(describe-current-coding-system): Clean up output format.
Richard M. Stallman <rms@gnu.org>
parents:
18799
diff
changeset
|
832 (princ "Not set locally, use the default.\n")) |
f33df9d64fe8
(describe-current-coding-system): Clean up output format.
Richard M. Stallman <rms@gnu.org>
parents:
18799
diff
changeset
|
833 (princ "Default coding system (for new files):\n ") |
18199
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
834 (print-coding-system-briefly default-buffer-file-coding-system) |
19081
f33df9d64fe8
(describe-current-coding-system): Clean up output format.
Richard M. Stallman <rms@gnu.org>
parents:
18799
diff
changeset
|
835 (princ "Coding system for keyboard input:\n ") |
17052 | 836 (print-coding-system-briefly (keyboard-coding-system)) |
19081
f33df9d64fe8
(describe-current-coding-system): Clean up output format.
Richard M. Stallman <rms@gnu.org>
parents:
18799
diff
changeset
|
837 (princ "Coding system for terminal output:\n ") |
17052 | 838 (print-coding-system-briefly (terminal-coding-system)) |
19081
f33df9d64fe8
(describe-current-coding-system): Clean up output format.
Richard M. Stallman <rms@gnu.org>
parents:
18799
diff
changeset
|
839 (when (get-buffer-process (current-buffer)) |
f33df9d64fe8
(describe-current-coding-system): Clean up output format.
Richard M. Stallman <rms@gnu.org>
parents:
18799
diff
changeset
|
840 (princ "Coding systems for process I/O:\n") |
f33df9d64fe8
(describe-current-coding-system): Clean up output format.
Richard M. Stallman <rms@gnu.org>
parents:
18799
diff
changeset
|
841 (princ " encoding input to the process: ") |
f33df9d64fe8
(describe-current-coding-system): Clean up output format.
Richard M. Stallman <rms@gnu.org>
parents:
18799
diff
changeset
|
842 (print-coding-system-briefly (cdr process-coding-systems)) |
f33df9d64fe8
(describe-current-coding-system): Clean up output format.
Richard M. Stallman <rms@gnu.org>
parents:
18799
diff
changeset
|
843 (princ " decoding output from the process: ") |
f33df9d64fe8
(describe-current-coding-system): Clean up output format.
Richard M. Stallman <rms@gnu.org>
parents:
18799
diff
changeset
|
844 (print-coding-system-briefly (car process-coding-systems))) |
19657
940d50684d68
(describe-current-coding-system): Add missing newline in output.
Richard M. Stallman <rms@gnu.org>
parents:
19557
diff
changeset
|
845 (princ "Defaults for subprocess I/O:\n") |
18199
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
846 (princ " decoding: ") |
17052 | 847 (print-coding-system-briefly (car default-process-coding-system)) |
18199
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
848 (princ " encoding: ") |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
849 (print-coding-system-briefly (cdr default-process-coding-system))) |
18300
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
850 |
40664
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
851 (with-current-buffer standard-output |
18300
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
852 |
19081
f33df9d64fe8
(describe-current-coding-system): Clean up output format.
Richard M. Stallman <rms@gnu.org>
parents:
18799
diff
changeset
|
853 (princ "\nPriority order for recognizing coding systems when reading files:\n") |
18300
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
854 (let ((l coding-category-list) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
855 (i 1) |
19265
6b31dac7f72b
(print-fontset): Don't hang even if a
Kenichi Handa <handa@m17n.org>
parents:
19081
diff
changeset
|
856 (coding-list nil) |
18300
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
857 coding aliases) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
858 (while l |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
859 (setq coding (symbol-value (car l))) |
20114
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
860 ;; Do not list up the same coding system twice. |
22885
5effd15f2a18
(describe-current-coding-system):
Kenichi Handa <handa@m17n.org>
parents:
22339
diff
changeset
|
861 (when (and coding (not (memq coding coding-list))) |
19265
6b31dac7f72b
(print-fontset): Don't hang even if a
Kenichi Handa <handa@m17n.org>
parents:
19081
diff
changeset
|
862 (setq coding-list (cons coding coding-list)) |
20114
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
863 (princ (format " %d. %s " i coding)) |
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
864 (setq aliases (coding-system-get coding 'alias-coding-systems)) |
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
865 (if (eq coding (car aliases)) |
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
866 (if (cdr aliases) |
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
867 (princ (cons 'alias: (cdr aliases)))) |
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
868 (if (memq coding aliases) |
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
869 (princ (list 'alias 'of (car aliases))))) |
19265
6b31dac7f72b
(print-fontset): Don't hang even if a
Kenichi Handa <handa@m17n.org>
parents:
19081
diff
changeset
|
870 (terpri) |
6b31dac7f72b
(print-fontset): Don't hang even if a
Kenichi Handa <handa@m17n.org>
parents:
19081
diff
changeset
|
871 (setq i (1+ i))) |
6b31dac7f72b
(print-fontset): Don't hang even if a
Kenichi Handa <handa@m17n.org>
parents:
19081
diff
changeset
|
872 (setq l (cdr l)))) |
20114
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
873 |
18300
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
874 (princ "\n Other coding systems cannot be distinguished automatically |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
875 from these, and therefore cannot be recognized automatically |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
876 with the present coding system priorities.\n\n") |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
877 |
18799
6c0d648d2cf8
(describe-current-coding-system): Use coding-category-iso-7-else
Kenichi Handa <handa@m17n.org>
parents:
18696
diff
changeset
|
878 (let ((categories '(coding-category-iso-7 coding-category-iso-7-else)) |
18300
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
879 coding-system codings) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
880 (while categories |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
881 (setq coding-system (symbol-value (car categories))) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
882 (mapcar |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
883 (function |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
884 (lambda (x) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
885 (if (and (not (eq x coding-system)) |
20114
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
886 (coding-system-get x 'no-initial-designation) |
18300
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
887 (let ((flags (coding-system-flags x))) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
888 (not (or (aref flags 10) (aref flags 11))))) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
889 (setq codings (cons x codings))))) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
890 (get (car categories) 'coding-systems)) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
891 (if codings |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
892 (let ((max-col (frame-width)) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
893 pos) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
894 (princ (format " The followings are decoded correctly but recognized as %s:\n " coding-system)) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
895 (while codings |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
896 (setq pos (point)) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
897 (insert (format " %s" (car codings))) |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
898 (when (> (current-column) max-col) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
899 (goto-char pos) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
900 (insert "\n ") |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
901 (goto-char (point-max))) |
18300
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
902 (setq codings (cdr codings))) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
903 (insert "\n\n"))) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
904 (setq categories (cdr categories)))) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
905 |
19081
f33df9d64fe8
(describe-current-coding-system): Clean up output format.
Richard M. Stallman <rms@gnu.org>
parents:
18799
diff
changeset
|
906 (princ "Particular coding systems specified for certain file names:\n") |
18300
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
907 (terpri) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
908 (princ " OPERATION\tTARGET PATTERN\t\tCODING SYSTEM(s)\n") |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
909 (princ " ---------\t--------------\t\t----------------\n") |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
910 (let ((func (lambda (operation alist) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
911 (princ " ") |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
912 (princ operation) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
913 (if (not alist) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
914 (princ "\tnothing specified\n") |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
915 (while alist |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
916 (indent-to 16) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
917 (prin1 (car (car alist))) |
20114
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
918 (if (>= (current-column) 40) |
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
919 (newline)) |
18300
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
920 (indent-to 40) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
921 (princ (cdr (car alist))) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
922 (princ "\n") |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
923 (setq alist (cdr alist))))))) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
924 (funcall func "File I/O" file-coding-system-alist) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
925 (funcall func "Process I/O" process-coding-system-alist) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
926 (funcall func "Network I/O" network-coding-system-alist)) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
927 (help-mode)))) |
17052 | 928 |
929 ;; Print detailed information on CODING-SYSTEM. | |
20114
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
930 (defun print-coding-system (coding-system) |
17052 | 931 (let ((type (coding-system-type coding-system)) |
18199
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
932 (eol-type (coding-system-eol-type coding-system)) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
933 (flags (coding-system-flags coding-system)) |
20114
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
934 (aliases (coding-system-get coding-system 'alias-coding-systems))) |
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
935 (if (not (eq (car aliases) coding-system)) |
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
936 (princ (format "%s (alias of %s)\n" coding-system (car aliases))) |
18199
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
937 (princ coding-system) |
20114
cbf191888430
(describe-coding-system): Print
Kenichi Handa <handa@m17n.org>
parents:
20092
diff
changeset
|
938 (setq aliases (cdr aliases)) |
18199
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
939 (while aliases |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
940 (princ ",") |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
941 (princ (car aliases)) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
942 (setq aliases (cdr aliases))) |
18199
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
943 (princ (format ":%s:%c:%d:" |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
944 type |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
945 (coding-system-mnemonic coding-system) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
946 (if (integerp eol-type) eol-type 3))) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
947 (cond ((eq type 2) ; ISO-2022 |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
948 (let ((idx 0) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
949 charset) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
950 (while (< idx 4) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
951 (setq charset (aref flags idx)) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
952 (cond ((null charset) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
953 (princ -1)) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
954 ((eq charset t) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
955 (princ -2)) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
956 ((charsetp charset) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
957 (princ charset)) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
958 ((listp charset) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
959 (princ "(") |
17052 | 960 (princ (car charset)) |
18199
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
961 (setq charset (cdr charset)) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
962 (while charset |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
963 (princ ",") |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
964 (princ (car charset)) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
965 (setq charset (cdr charset))) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
966 (princ ")"))) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
967 (princ ",") |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
968 (setq idx (1+ idx))) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
969 (while (< idx 12) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
970 (princ (if (aref flags idx) 1 0)) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
971 (princ ",") |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
972 (setq idx (1+ idx))) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
973 (princ (if (aref flags idx) 1 0)))) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
974 ((eq type 4) ; CCL |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
975 (let (i len) |
21967 | 976 (if (symbolp (car flags)) |
977 (princ (format " %s" (car flags))) | |
978 (setq i 0 len (length (car flags))) | |
979 (while (< i len) | |
980 (princ (format " %x" (aref (car flags) i))) | |
981 (setq i (1+ i)))) | |
17052 | 982 (princ ",") |
21967 | 983 (if (symbolp (cdr flags)) |
984 (princ (format "%s" (cdr flags))) | |
985 (setq i 0 len (length (cdr flags))) | |
986 (while (< i len) | |
987 (princ (format " %x" (aref (cdr flags) i))) | |
988 (setq i (1+ i)))))) | |
18199
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
989 (t (princ 0))) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
990 (princ ":") |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
991 (princ (coding-system-doc-string coding-system)) |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
992 (princ "\n")))) |
17052 | 993 |
18199
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
994 ;;;###autoload |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
995 (defun list-coding-systems (&optional arg) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
996 "Display a list of all coding systems. |
22306 | 997 This shows the mnemonic letter, name, and description of each coding system. |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
998 |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
999 With prefix arg, the output format gets more cryptic, |
22306 | 1000 but still contains full information about each coding system." |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1001 (interactive "P") |
17052 | 1002 (with-output-to-temp-buffer "*Help*" |
22339
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1003 (list-coding-systems-1 arg))) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1004 |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1005 (defun list-coding-systems-1 (arg) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1006 (if (null arg) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1007 (princ "\ |
18199
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
1008 ############################################### |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
1009 # List of coding systems in the following format: |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
1010 # MNEMONIC-LETTER -- CODING-SYSTEM-NAME |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
1011 # DOC-STRING |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
1012 ") |
22339
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1013 (princ "\ |
17052 | 1014 ######################### |
1015 ## LIST OF CODING SYSTEMS | |
1016 ## Each line corresponds to one coding system | |
1017 ## Format of a line is: | |
18199
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
1018 ## NAME[,ALIAS...]:TYPE:MNEMONIC:EOL:FLAGS:POST-READ-CONVERSION |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
1019 ## :PRE-WRITE-CONVERSION:DOC-STRING, |
17052 | 1020 ## where |
18199
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
1021 ## NAME = coding system name |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
1022 ## ALIAS = alias of the coding system |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
1023 ## TYPE = nil (no conversion), t (undecided or automatic detection), |
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
1024 ## 0 (EMACS-MULE), 1 (SJIS), 2 (ISO2022), 3 (BIG5), or 4 (CCL) |
17052 | 1025 ## EOL = 0 (LF), 1 (CRLF), 2 (CR), or 3 (Automatic detection) |
1026 ## FLAGS = | |
1027 ## if TYPE = 2 then | |
1028 ## comma (`,') separated data of the followings: | |
1029 ## G0, G1, G2, G3, SHORT-FORM, ASCII-EOL, ASCII-CNTL, SEVEN, | |
1030 ## LOCKING-SHIFT, SINGLE-SHIFT, USE-ROMAN, USE-OLDJIS, NO-ISO6429 | |
1031 ## else if TYPE = 4 then | |
1032 ## comma (`,') separated CCL programs for read and write | |
1033 ## else | |
1034 ## 0 | |
18199
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
1035 ## POST-READ-CONVERSION, PRE-WRITE-CONVERSION = function name to be called |
17052 | 1036 ## |
18199
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
1037 ")) |
22339
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1038 (let ((bases (coding-system-list 'base-only)) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1039 coding-system) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1040 (while bases |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1041 (setq coding-system (car bases)) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1042 (if (null arg) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1043 (print-coding-system-briefly coding-system 'doc-string) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1044 (print-coding-system coding-system)) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1045 (setq bases (cdr bases))))) |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1046 |
26688
1830bc1903fb
(list-coding-categories): Fix typo;
Gerd Moellmann <gerd@gnu.org>
parents:
26189
diff
changeset
|
1047 ;;;###autoload |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1048 (defun list-coding-categories () |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1049 "Display a list of all coding categories." |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1050 (with-output-to-temp-buffer "*Help*" |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1051 (princ "\ |
17052 | 1052 ############################ |
1053 ## LIST OF CODING CATEGORIES (ordered by priority) | |
1054 ## CATEGORY:CODING-SYSTEM | |
1055 ## | |
1056 ") | |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1057 (let ((l coding-category-list)) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1058 (while l |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1059 (princ (format "%s:%s\n" (car l) (symbol-value (car l)))) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1060 (setq l (cdr l)))))) |
17052 | 1061 |
1062 ;;; FONT | |
1063 | |
1064 ;; Print information of a font in FONTINFO. | |
1065 (defun describe-font-internal (font-info &optional verbose) | |
1066 (print-list "name (opened by):" (aref font-info 0)) | |
1067 (print-list " full name:" (aref font-info 1)) | |
28899
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1068 (print-list " size:" (format "%2d" (aref font-info 2))) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1069 (print-list " height:" (format "%2d" (aref font-info 3))) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1070 (print-list " baseline-offset:" (format "%2d" (aref font-info 4))) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1071 (print-list "relative-compose:" (format "%2d" (aref font-info 5)))) |
17052 | 1072 |
1073 ;;;###autoload | |
1074 (defun describe-font (fontname) | |
1075 "Display information about fonts which partially match FONTNAME." | |
20092 | 1076 (interactive "sFontname (default, current choice for ASCII chars): ") |
28216
cad26a9da36b
(describe-font): Don't refer to
Kenichi Handa <handa@m17n.org>
parents:
27973
diff
changeset
|
1077 (or (and window-system (fboundp 'fontset-list)) |
21469
ea652c41eec6
(list-input-methods): Fix doc string.
Karl Heuer <kwzh@gnu.org>
parents:
20731
diff
changeset
|
1078 (error "No fontsets being used")) |
18696
1caf720e4f55
(print-fontset): Output format improved.
Kenichi Handa <handa@m17n.org>
parents:
18643
diff
changeset
|
1079 (when (or (not fontname) (= (length fontname) 0)) |
1caf720e4f55
(print-fontset): Output format improved.
Kenichi Handa <handa@m17n.org>
parents:
18643
diff
changeset
|
1080 (setq fontname (cdr (assq 'font (frame-parameters)))) |
1caf720e4f55
(print-fontset): Output format improved.
Kenichi Handa <handa@m17n.org>
parents:
18643
diff
changeset
|
1081 (if (query-fontset fontname) |
1caf720e4f55
(print-fontset): Output format improved.
Kenichi Handa <handa@m17n.org>
parents:
18643
diff
changeset
|
1082 (setq fontname |
30126
f5fd9fcdaeb2
(describe-font): Adjusted for the chnage of fontset-info.
Kenichi Handa <handa@m17n.org>
parents:
29454
diff
changeset
|
1083 (nth 1 (assq 'ascii (aref (fontset-info fontname) 2)))))) |
17052 | 1084 (let ((font-info (font-info fontname))) |
1085 (if (null font-info) | |
1086 (message "No matching font") | |
1087 (with-output-to-temp-buffer "*Help*" | |
1088 (describe-font-internal font-info 'verbose))))) | |
1089 | |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1090 ;; Print information of FONTSET. If optional arg PRINT-FONTS is |
28899
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1091 ;; non-nil, print also names of all opened fonts for FONTSET. This |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1092 ;; function actually INSERT such information in the current buffer. |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1093 (defun print-fontset (fontset &optional print-fonts) |
30126
f5fd9fcdaeb2
(describe-font): Adjusted for the chnage of fontset-info.
Kenichi Handa <handa@m17n.org>
parents:
29454
diff
changeset
|
1094 (let ((tail (aref (fontset-info fontset) 2)) |
28899
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1095 elt chars font-spec opened prev-charset charset from to) |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1096 (beginning-of-line) |
28899
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1097 (insert "Fontset: " fontset "\n") |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1098 (insert "CHARSET or CHAR RANGE") |
34931
debb78d4e934
(print-fontset): Indent font name by 24 columns, not 25.
Kenichi Handa <handa@m17n.org>
parents:
34764
diff
changeset
|
1099 (indent-to 24) |
28899
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1100 (insert "FONT NAME\n") |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1101 (insert "---------------------") |
34931
debb78d4e934
(print-fontset): Indent font name by 24 columns, not 25.
Kenichi Handa <handa@m17n.org>
parents:
34764
diff
changeset
|
1102 (indent-to 24) |
28899
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1103 (insert "---------") |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1104 (insert "\n") |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1105 (while tail |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1106 (setq elt (car tail) tail (cdr tail)) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1107 (setq chars (car elt) font-spec (car (cdr elt)) opened (cdr (cdr elt))) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1108 (if (symbolp chars) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1109 (setq charset chars from nil to nil) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1110 (if (integerp chars) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1111 (setq charset (char-charset chars) from chars to chars) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1112 (setq charset (char-charset (car chars)) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1113 from (car chars) to (cdr chars)))) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1114 (unless (eq charset prev-charset) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1115 (insert (symbol-name charset)) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1116 (if from |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1117 (insert "\n"))) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1118 (when from |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1119 (let ((split (split-char from))) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1120 (if (and (= (charset-dimension charset) 2) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1121 (= (nth 2 split) 0)) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1122 (setq from |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1123 (make-char charset (nth 1 split) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1124 (if (= (charset-chars charset) 94) 33 32)))) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1125 (insert " " from)) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1126 (when (/= from to) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1127 (insert "-") |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1128 (let ((split (split-char to))) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1129 (if (and (= (charset-dimension charset) 2) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1130 (= (nth 2 split) 0)) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1131 (setq to |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1132 (make-char charset (nth 1 split) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1133 (if (= (charset-chars charset) 94) 126 127)))) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1134 (insert to)))) |
34931
debb78d4e934
(print-fontset): Indent font name by 24 columns, not 25.
Kenichi Handa <handa@m17n.org>
parents:
34764
diff
changeset
|
1135 (indent-to 24) |
28899
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1136 (if (stringp font-spec) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1137 (insert font-spec) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1138 (if (car font-spec) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1139 (if (string-match "-" (car font-spec)) |
29228
0b31a133aa22
(print-fontset): Combine family part
Kenichi Handa <handa@m17n.org>
parents:
29187
diff
changeset
|
1140 (insert "-" (car font-spec) "-*-") |
0b31a133aa22
(print-fontset): Combine family part
Kenichi Handa <handa@m17n.org>
parents:
29187
diff
changeset
|
1141 (insert "-*-" (car font-spec) "-*-")) |
28899
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1142 (insert "-*-")) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1143 (if (cdr font-spec) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1144 (if (string-match "-" (cdr font-spec)) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1145 (insert (cdr font-spec)) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1146 (insert (cdr font-spec) "-*")) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1147 (insert "*"))) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1148 (insert "\n") |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1149 (when print-fonts |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1150 (while opened |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1151 (indent-to 5) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1152 (insert "[" (car opened) "]\n") |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1153 (setq opened (cdr opened)))) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1154 (setq prev-charset charset) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1155 ))) |
17052 | 1156 |
1157 ;;;###autoload | |
1158 (defun describe-fontset (fontset) | |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1159 "Display information of FONTSET. |
28899
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1160 This shows which font is used for which character(s)." |
17052 | 1161 (interactive |
28216
cad26a9da36b
(describe-font): Don't refer to
Kenichi Handa <handa@m17n.org>
parents:
27973
diff
changeset
|
1162 (if (not (and window-system (fboundp 'fontset-list))) |
21469
ea652c41eec6
(list-input-methods): Fix doc string.
Karl Heuer <kwzh@gnu.org>
parents:
20731
diff
changeset
|
1163 (error "No fontsets being used") |
35585 | 1164 (let ((fontset-list (nconc |
29057
9b29679df993
(list-non-iso-charset-chars, describe-fontset): Remove redundant
Dave Love <fx@gnu.org>
parents:
29026
diff
changeset
|
1165 (mapcar 'list (fontset-list)) |
9b29679df993
(list-non-iso-charset-chars, describe-fontset): Remove redundant
Dave Love <fx@gnu.org>
parents:
29026
diff
changeset
|
1166 (mapcar (lambda (x) (list (cdr x))) |
28899
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1167 fontset-alias-alist))) |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1168 (completion-ignore-case t)) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1169 (list (completing-read |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1170 "Fontset (default, used by the current frame): " |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1171 fontset-list nil t))))) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1172 (if (= (length fontset) 0) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1173 (setq fontset (cdr (assq 'font (frame-parameters))))) |
28899
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1174 (if (not (setq fontset (query-fontset fontset))) |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1175 (error "Current frame is using font, not fontset")) |
40664
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
1176 (help-setup-xref (list #'describe-fontset fontset) (interactive-p)) |
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
1177 (with-output-to-temp-buffer (help-buffer) |
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
1178 (with-current-buffer standard-output |
28899
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1179 (print-fontset fontset t)))) |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1180 |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1181 ;;;###autoload |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1182 (defun list-fontsets (arg) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1183 "Display a list of all fontsets. |
22306 | 1184 This shows the name, size, and style of each fontset. |
1185 With prefix arg, it also list the fonts contained in each fontset; | |
1186 see the function `describe-fontset' for the format of the list." | |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1187 (interactive "P") |
28216
cad26a9da36b
(describe-font): Don't refer to
Kenichi Handa <handa@m17n.org>
parents:
27973
diff
changeset
|
1188 (if (not (and window-system (fboundp 'fontset-list))) |
21469
ea652c41eec6
(list-input-methods): Fix doc string.
Karl Heuer <kwzh@gnu.org>
parents:
20731
diff
changeset
|
1189 (error "No fontsets being used") |
40664
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
1190 (help-setup-xref (list #'list-fontsets arg) (interactive-p)) |
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
1191 (with-output-to-temp-buffer (help-buffer) |
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
1192 (with-current-buffer standard-output |
22339
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1193 ;; This code is duplicated near the end of mule-diag. |
24161
782215de9b98
(list-fontsets): Sort fontsets by plain names.
Kenichi Handa <handa@m17n.org>
parents:
23582
diff
changeset
|
1194 (let ((fontsets |
782215de9b98
(list-fontsets): Sort fontsets by plain names.
Kenichi Handa <handa@m17n.org>
parents:
23582
diff
changeset
|
1195 (sort (fontset-list) |
782215de9b98
(list-fontsets): Sort fontsets by plain names.
Kenichi Handa <handa@m17n.org>
parents:
23582
diff
changeset
|
1196 (function (lambda (x y) |
782215de9b98
(list-fontsets): Sort fontsets by plain names.
Kenichi Handa <handa@m17n.org>
parents:
23582
diff
changeset
|
1197 (string< (fontset-plain-name x) |
782215de9b98
(list-fontsets): Sort fontsets by plain names.
Kenichi Handa <handa@m17n.org>
parents:
23582
diff
changeset
|
1198 (fontset-plain-name y))))))) |
21469
ea652c41eec6
(list-input-methods): Fix doc string.
Karl Heuer <kwzh@gnu.org>
parents:
20731
diff
changeset
|
1199 (while fontsets |
28899
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1200 (if arg |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1201 (print-fontset (car fontsets) nil) |
133a92b8094d
(syntax-description-table): New variable.
Kenichi Handa <handa@m17n.org>
parents:
28216
diff
changeset
|
1202 (insert "Fontset: " (car fontsets) "\n")) |
21469
ea652c41eec6
(list-input-methods): Fix doc string.
Karl Heuer <kwzh@gnu.org>
parents:
20731
diff
changeset
|
1203 (setq fontsets (cdr fontsets)))))))) |
18300
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
1204 |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
1205 ;;;###autoload |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
1206 (defun list-input-methods () |
22306 | 1207 "Display information about all input methods." |
18300
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
1208 (interactive) |
0436624abece
(list-character-sets): Set major mode of *Help*
Kenichi Handa <handa@m17n.org>
parents:
18199
diff
changeset
|
1209 (with-output-to-temp-buffer "*Help*" |
22339
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1210 (list-input-methods-1))) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1211 |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1212 (defun list-input-methods-1 () |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1213 (if (not input-method-alist) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1214 (progn |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1215 (princ " |
21469
ea652c41eec6
(list-input-methods): Fix doc string.
Karl Heuer <kwzh@gnu.org>
parents:
20731
diff
changeset
|
1216 No input method is available, perhaps because you have not yet |
20163
5ff1329561b4
(list-input-methods): Handle the case
Kenichi Handa <handa@m17n.org>
parents:
20114
diff
changeset
|
1217 installed LEIM (Libraries of Emacs Input Method). |
5ff1329561b4
(list-input-methods): Handle the case
Kenichi Handa <handa@m17n.org>
parents:
20114
diff
changeset
|
1218 |
21469
ea652c41eec6
(list-input-methods): Fix doc string.
Karl Heuer <kwzh@gnu.org>
parents:
20731
diff
changeset
|
1219 LEIM is available from the same ftp directory as Emacs. For instance, |
39475
4a1c429dd4e3
(list-input-methods-1): Output
Gerd Moellmann <gerd@gnu.org>
parents:
38414
diff
changeset
|
1220 if there exists an archive file `emacs-M.N.tar.gz', there should also |
4a1c429dd4e3
(list-input-methods-1): Output
Gerd Moellmann <gerd@gnu.org>
parents:
38414
diff
changeset
|
1221 be a file `leim-M.N.tar.gz'. When you extract this file, LEIM files |
4a1c429dd4e3
(list-input-methods-1): Output
Gerd Moellmann <gerd@gnu.org>
parents:
38414
diff
changeset
|
1222 are put under the subdirectory `emacs-M.N/leim'. When you install |
20163
5ff1329561b4
(list-input-methods): Handle the case
Kenichi Handa <handa@m17n.org>
parents:
20114
diff
changeset
|
1223 Emacs again, you should be able to use various input methods.")) |
22339
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1224 (princ "LANGUAGE\n NAME (`TITLE' in mode line)\n") |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1225 (princ " SHORT-DESCRIPTION\n------------------------------\n") |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1226 (setq input-method-alist |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1227 (sort input-method-alist |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1228 (function (lambda (x y) (string< (nth 1 x) (nth 1 y)))))) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1229 (let ((l input-method-alist) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1230 language elt) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1231 (while l |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1232 (setq elt (car l) l (cdr l)) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1233 (when (not (equal language (nth 1 elt))) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1234 (setq language (nth 1 elt)) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1235 (princ language) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1236 (terpri)) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1237 (princ (format " %s (`%s' in mode line)\n %s\n" |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1238 (car elt) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1239 (let ((title (nth 3 elt))) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1240 (if (and (consp title) (stringp (car title))) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1241 (car title) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1242 title)) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1243 (let ((description (nth 4 elt))) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1244 (string-match ".*" description) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1245 (match-string 0 description)))))))) |
17052 | 1246 |
1247 ;;; DIAGNOSIS | |
1248 | |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1249 ;; Insert a header of a section with SECTION-NUMBER and TITLE. |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1250 (defun insert-section (section-number title) |
17052 | 1251 (insert "########################################\n" |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1252 "# Section " (format "%d" section-number) ". " title "\n" |
17052 | 1253 "########################################\n\n")) |
1254 | |
1255 ;;;###autoload | |
1256 (defun mule-diag () | |
24724
df2a95fa1429
(mule-diag): Change MULE to Mule in docstring.
Kenichi Handa <handa@m17n.org>
parents:
24691
diff
changeset
|
1257 "Display diagnosis of the multilingual environment (Mule). |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1258 |
22306 | 1259 This shows various information related to the current multilingual |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1260 environment, including lists of input methods, coding systems, |
22306 | 1261 character sets, and fontsets (if Emacs is running under a window |
21469
ea652c41eec6
(list-input-methods): Fix doc string.
Karl Heuer <kwzh@gnu.org>
parents:
20731
diff
changeset
|
1262 system which uses fontsets)." |
17052 | 1263 (interactive) |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1264 (with-output-to-temp-buffer "*Mule-Diagnosis*" |
40664
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
1265 (with-current-buffer standard-output |
22339
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1266 (insert "###############################################\n" |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1267 "### Current Status of Multilingual Features ###\n" |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1268 "###############################################\n\n" |
17052 | 1269 "CONTENTS: Section 1. General Information\n" |
1270 " Section 2. Display\n" | |
1271 " Section 3. Input methods\n" | |
1272 " Section 4. Coding systems\n" | |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1273 " Section 5. Character sets\n") |
28216
cad26a9da36b
(describe-font): Don't refer to
Kenichi Handa <handa@m17n.org>
parents:
27973
diff
changeset
|
1274 (if (and window-system (fboundp 'fontset-list)) |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1275 (insert " Section 6. Fontsets\n")) |
17052 | 1276 (insert "\n") |
1277 | |
1278 (insert-section 1 "General Information") | |
19425
572165bfff3e
(mule-diag): Don't print primary-language.
Richard M. Stallman <rms@gnu.org>
parents:
19265
diff
changeset
|
1279 (insert "Version of this emacs:\n " (emacs-version) "\n\n") |
34631
aeb6db8df2b9
(mule-diag): Insert information about
Kenichi Handa <handa@m17n.org>
parents:
34078
diff
changeset
|
1280 (insert "Configuration options:\n " system-configuration-options "\n\n") |
aeb6db8df2b9
(mule-diag): Insert information about
Kenichi Handa <handa@m17n.org>
parents:
34078
diff
changeset
|
1281 (insert "Multibyte characters awareness:\n" |
aeb6db8df2b9
(mule-diag): Insert information about
Kenichi Handa <handa@m17n.org>
parents:
34078
diff
changeset
|
1282 (format " default: %S\n" default-enable-multibyte-characters) |
aeb6db8df2b9
(mule-diag): Insert information about
Kenichi Handa <handa@m17n.org>
parents:
34078
diff
changeset
|
1283 (format " current-buffer: %S\n\n" enable-multibyte-characters)) |
aeb6db8df2b9
(mule-diag): Insert information about
Kenichi Handa <handa@m17n.org>
parents:
34078
diff
changeset
|
1284 (insert "Current language environment: " current-language-environment |
aeb6db8df2b9
(mule-diag): Insert information about
Kenichi Handa <handa@m17n.org>
parents:
34078
diff
changeset
|
1285 "\n\n") |
17052 | 1286 |
1287 (insert-section 2 "Display") | |
1288 (if window-system | |
1289 (insert "Window-system: " | |
1290 (symbol-name window-system) | |
1291 (format "%s" window-system-version)) | |
1292 (insert "Terminal: " (getenv "TERM"))) | |
1293 (insert "\n\n") | |
1294 | |
1295 (if (eq window-system 'x) | |
1296 (let ((font (cdr (assq 'font (frame-parameters))))) | |
1297 (insert "The selected frame is using the " | |
1298 (if (query-fontset font) "fontset" "font") | |
1299 ":\n\t" font)) | |
1300 (insert "Coding system of the terminal: " | |
1301 (symbol-name (terminal-coding-system)))) | |
1302 (insert "\n\n") | |
1303 | |
1304 (insert-section 3 "Input methods") | |
22339
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1305 (list-input-methods-1) |
17052 | 1306 (insert "\n") |
1307 (if default-input-method | |
26189
88faf40281cd
(mule-diag): Handle the case that
Kenichi Handa <handa@m17n.org>
parents:
24865
diff
changeset
|
1308 (insert (format "Default input method: %s\n" default-input-method)) |
19657
940d50684d68
(describe-current-coding-system): Add missing newline in output.
Richard M. Stallman <rms@gnu.org>
parents:
19557
diff
changeset
|
1309 (insert "No default input method is specified\n")) |
17052 | 1310 |
1311 (insert-section 4 "Coding systems") | |
22339
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1312 (list-coding-systems-1 t) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1313 (princ "\ |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1314 ############################ |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1315 ## LIST OF CODING CATEGORIES (ordered by priority) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1316 ## CATEGORY:CODING-SYSTEM |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1317 ## |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1318 ") |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1319 (let ((l coding-category-list)) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1320 (while l |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1321 (princ (format "%s:%s\n" (car l) (symbol-value (car l)))) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1322 (setq l (cdr l)))) |
17052 | 1323 (insert "\n") |
1324 | |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1325 (insert-section 5 "Character sets") |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
1326 (list-character-sets-2) |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1327 (insert "\n") |
17052 | 1328 |
28216
cad26a9da36b
(describe-font): Don't refer to
Kenichi Handa <handa@m17n.org>
parents:
27973
diff
changeset
|
1329 (when (and window-system (fboundp 'fontset-list)) |
22339
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1330 ;; This code duplicates most of list-fontsets. |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1331 (insert-section 6 "Fontsets") |
22339
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1332 (insert "Fontset-Name\t\t\t\t\t\t WDxHT Style\n") |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1333 (insert "------------\t\t\t\t\t\t ----- -----\n") |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1334 (let ((fontsets (fontset-list))) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1335 (while fontsets |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1336 (print-fontset (car fontsets) t) |
69de59462e22
(list-character-sets-1): New subroutine.
Karl Heuer <kwzh@gnu.org>
parents:
22306
diff
changeset
|
1337 (setq fontsets (cdr fontsets))))) |
22290
31291d62195e
(mule-diag): Don't call help-mode.
Karl Heuer <kwzh@gnu.org>
parents:
21979
diff
changeset
|
1338 (print-help-return-message)))) |
17052 | 1339 |
1340 | |
1341 ;;; DUMP DATA FILE | |
1342 | |
1343 ;;;###autoload | |
1344 (defun dump-charsets () | |
22306 | 1345 "Dump information about all charsets into the file `CHARSETS'. |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1346 The file is saved in the directory `data-directory'." |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1347 (let ((file (expand-file-name "CHARSETS" data-directory)) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1348 buf) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1349 (or (file-writable-p file) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1350 (error "Can't write to file %s" file)) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1351 (setq buf (find-file-noselect file)) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1352 (save-window-excursion |
40664
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
1353 (with-current-buffer buf |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1354 (setq buffer-read-only nil) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1355 (erase-buffer) |
27912
ed26ed5b0afc
(list-character-sets): Completely
Kenichi Handa <handa@m17n.org>
parents:
26688
diff
changeset
|
1356 (list-character-sets-2) |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1357 (insert-buffer-substring "*Help*") |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1358 (let (make-backup-files |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1359 coding-system-for-write) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1360 (save-buffer)))) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1361 (kill-buffer buf)) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1362 (if noninteractive |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1363 (kill-emacs))) |
17052 | 1364 |
1365 ;;;###autoload | |
1366 (defun dump-codings () | |
22306 | 1367 "Dump information about all coding systems into the file `CODINGS'. |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1368 The file is saved in the directory `data-directory'." |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1369 (let ((file (expand-file-name "CODINGS" data-directory)) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1370 buf) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1371 (or (file-writable-p file) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1372 (error "Can't write to file %s" file)) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1373 (setq buf (find-file-noselect file)) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1374 (save-window-excursion |
40664
4e5f8e42b8d1
(list-character-sets, sort-listed-character-sets, describe-character-set)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
40639
diff
changeset
|
1375 (with-current-buffer buf |
18559
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1376 (setq buffer-read-only nil) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1377 (erase-buffer) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1378 (list-coding-systems t) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1379 (insert-buffer-substring "*Help*") |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1380 (list-coding-categories) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1381 (insert-buffer-substring "*Help*") |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1382 (let (make-backup-files |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1383 coding-system-for-write) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1384 (save-buffer)))) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1385 (kill-buffer buf)) |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1386 (if noninteractive |
20369fbd0f91
(print-list): Use macro when.
Kenichi Handa <handa@m17n.org>
parents:
18377
diff
changeset
|
1387 (kill-emacs))) |
17052 | 1388 |
18199
15177bdb2fcf
(describe-coding-system): Change format of output.
Kenichi Handa <handa@m17n.org>
parents:
17315
diff
changeset
|
1389 ;;; mule-diag.el ends here |