Mercurial > emacs
annotate lisp/international/mule-diag.el @ 17403:5c3cd24dd8ee libc-970412 libc-970413 libc-970414 libc-970415 libc-970416 libc-970417 release-1-0
Recognize OpenBSD systems correctly (from Niklas Hallqvist
<niklas@appli.se>)
author | Ian Lance Taylor <ian@cygnus.com> |
---|---|
date | Fri, 11 Apr 1997 20:40:28 +0000 |
parents | a3ca5e15c82a |
children | 15177bdb2fcf |
rev | line source |
---|---|
17315
a3ca5e15c82a
Fix the format of the first line.
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
1 ;;; mule-diag.el --- Show diagnosis of multilingual environment (MULE) |
17052 | 2 |
3 ;; Copyright (C) 1995 Free Software Foundation, Inc. | |
4 ;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. | |
5 | |
6 ;; Keywords: multilingual, charset, coding system, fontset, diagnosis | |
7 | |
8 ;; This file is part of GNU Emacs. | |
9 | |
10 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
11 ;; it under the terms of the GNU General Public License as published by | |
12 ;; the Free Software Foundation; either version 2, or (at your option) | |
13 ;; any later version. | |
14 | |
15 ;; GNU Emacs is distributed in the hope that it will be useful, | |
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 ;; GNU General Public License for more details. | |
19 | |
20 ;; You should have received a copy of the GNU General Public License | |
17071 | 21 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
23 ;; Boston, MA 02111-1307, USA. | |
17052 | 24 |
25 ;;; General utility function | |
26 | |
27 ;; Print all arguments with single space separator in one line. | |
28 (defun print-list (&rest args) | |
29 (while (cdr args) | |
30 (if (car args) | |
31 (progn (princ (car args)) (princ " "))) | |
32 (setq args (cdr args))) | |
33 (princ (car args)) | |
34 (princ "\n")) | |
35 | |
36 ;;; CHARSET | |
37 | |
38 ;;;###autoload | |
39 (defun list-character-sets () | |
40 "Display a list of all charsets." | |
41 (interactive) | |
42 (with-output-to-temp-buffer "*Help*" | |
43 (print-character-sets))) | |
44 | |
45 (defvar charset-other-info-func nil) | |
46 | |
47 (defun print-character-sets () | |
48 "Print information on all charsets in a machine readable format." | |
49 (princ "\ | |
50 ######################### | |
51 ## LIST OF CHARSETS | |
52 ## Each line corresponds to one charset. | |
53 ## The following attributes are listed in this order | |
54 ## separated by a colon `:' in one line. | |
55 ## CHARSET-SYMBOL-NAME, | |
56 ## CHARSET-ID, | |
57 ## DIMENSION (1 or 2) | |
58 ## CHARS (94 or 96) | |
59 ## BYTES (of multibyte form: 1, 2, 3, or 4), | |
60 ## WIDTH (occupied column numbers: 1 or 2), | |
61 ## DIRECTION (0:left-to-right, 1:right-to-left), | |
62 ## ISO-FINAL-CHAR (character code of ISO-2022's final character) | |
63 ## ISO-GRAPHIC-PLANE (ISO-2022's graphic plane, 0:GL, 1:GR) | |
64 ## DESCRIPTION (describing string of the charset) | |
65 ") | |
66 (let ((charsets charset-list) | |
67 charset) | |
68 (while charsets | |
69 (setq charset (car charsets)) | |
70 (princ (format "%s:%03d:%d:%d:%d:%d:%d:%d:%d:%s\n" | |
71 charset | |
72 (charset-id charset) | |
73 (charset-dimension charset) | |
74 (charset-chars charset) | |
75 (charset-bytes charset) | |
76 (charset-width charset) | |
77 (charset-direction charset) | |
78 (charset-iso-final-char charset) | |
79 (charset-iso-graphic-plane charset) | |
80 (charset-description charset))) | |
81 (setq charsets (cdr charsets))))) | |
82 | |
83 | |
84 ;;; CODING-SYSTEM | |
85 | |
86 ;; Print information of designation of each graphic register in FLAGS | |
87 ;; in human readable format. See the documentation of | |
88 ;; `make-coding-system' for the meaning of FLAGS. | |
89 (defun print-designation (flags) | |
90 (let ((graphic-register 0) | |
91 charset) | |
92 (while (< graphic-register 4) | |
93 (setq charset (aref flags graphic-register)) | |
94 (princ (format | |
95 " G%d -- %s\n" | |
96 graphic-register | |
97 (cond ((null charset) | |
98 "never used") | |
99 ((eq charset t) | |
100 "no initial designation, and used by any charsets") | |
101 ((symbolp charset) | |
102 (format "%s:%s" | |
103 charset (charset-description charset))) | |
104 ((listp charset) | |
105 (if (charsetp (car charset)) | |
106 (format "%s:%s, and also used by the followings:" | |
107 (car charset) | |
108 (charset-description (car charset))) | |
109 "no initial designation, and used by the followings:")) | |
110 (t | |
111 "invalid designation information")))) | |
112 (if (listp charset) | |
113 (progn | |
114 (setq charset (cdr charset)) | |
115 (while charset | |
116 (cond ((eq (car charset) t) | |
117 (princ "\tany other charsets\n")) | |
118 ((charsetp (car charset)) | |
119 (princ (format "\t%s:%s\n" | |
120 (car charset) | |
121 (charset-description (car charset))))) | |
122 (t | |
123 "invalid designation information")) | |
124 (setq charset (cdr charset))))) | |
125 (setq graphic-register (1+ graphic-register))))) | |
126 | |
127 ;;;###autoload | |
128 (defun describe-coding-system (coding-system) | |
129 "Display information of CODING-SYSTEM." | |
130 (interactive "zCoding-system: ") | |
131 (check-coding-system coding-system) | |
132 (with-output-to-temp-buffer "*Help*" | |
133 (let ((coding-vector (coding-system-vector coding-system))) | |
134 (princ "Coding-system ") | |
135 (princ coding-system) | |
136 (princ " [") | |
137 (princ (char-to-string (coding-vector-mnemonic coding-vector))) | |
138 (princ "]: \n") | |
139 (princ " ") | |
140 (princ (coding-vector-docstring coding-vector)) | |
141 (princ "\nType: ") | |
142 (let ((type (coding-vector-type coding-vector)) | |
143 (flags (coding-vector-flags coding-vector))) | |
144 (princ type) | |
145 (princ ", which means ") | |
146 (cond ((eq type nil) | |
147 (princ "do no conversion.")) | |
148 ((eq type t) | |
149 (princ "do automatic conversion.")) | |
150 ((eq type 0) | |
151 (princ "Emacs internal multibyte form.")) | |
152 ((eq type 1) | |
153 (princ "Shift-JIS (MS-KANJI).")) | |
154 ((eq type 2) | |
155 (princ "a variant of ISO-2022.\n") | |
156 (princ "Initial designations:\n") | |
157 (print-designation flags) | |
158 (princ "Other Form: \n") | |
159 (princ (if (aref flags 4) "short-form" "long-form")) | |
160 (if (aref flags 5) (princ ", ASCII@EOL")) | |
161 (if (aref flags 6) (princ ", ASCII@CNTL")) | |
162 (princ (if (aref flags 7) ", 7-bit" ", 8-bit")) | |
163 (if (aref flags 8) (princ ", use-locking-shift")) | |
164 (if (aref flags 9) (princ ", use-single-shift")) | |
165 (if (aref flags 10) (princ ", use-roman")) | |
166 (if (aref flags 10) (princ ", use-old-jis")) | |
167 (if (aref flags 11) (princ ", no-ISO6429")) | |
168 (princ ".")) | |
169 ((eq type 3) | |
170 (princ "Big5.")) | |
171 ((eq type 4) | |
172 (princ "do conversion by CCL program.")) | |
173 (t (princ "invalid coding-system.")))) | |
174 (princ "\nEOL-Type: ") | |
175 (let ((eol-type (coding-system-eoltype coding-system))) | |
176 (cond ((vectorp eol-type) | |
177 (princ "Automatic selection from ") | |
178 (princ eol-type) | |
179 (princ "\n")) | |
180 ((or (null eol-type) (eq eol-type 0)) (princ "LF\n")) | |
181 ((eq eol-type 1) (princ "CRLF\n")) | |
182 ((eq eol-type 2) (princ "CR\n")) | |
183 (t (princ "invalid\n")))) | |
184 ))) | |
185 | |
186 ;;;###autoload | |
187 (defun describe-current-coding-system-briefly () | |
188 "Display coding systems currently used in a brief format in mini-buffer. | |
189 | |
190 The format is \"current: [FKTPp=........] default: [FPp=......]\", | |
191 where mnemonics of the following coding systems come in this order | |
192 at the place of `...': | |
193 buffer-file-coding-system (of the current buffer) | |
194 eol-type of buffer-file-coding-system (of the current buffer) | |
195 keyboard-coding-system | |
196 terminal-coding-system | |
197 process-coding-system for read (of the current buffer, if any) | |
198 eol-type of process-coding-system for read (of the current buffer, if any) | |
199 process-coding-system for write (of the current buffer, if any) | |
200 eol-type of process-coding-system for write (of the current buffer, if any) | |
201 default buffer-file-coding-system | |
202 eol-type of default buffer-file-coding-system | |
203 default process-coding-system for read | |
204 default eol-type of process-coding-system for read | |
205 default process-coding-system for write | |
206 default eol-type of process-coding-system" | |
207 (interactive) | |
208 (let* ((proc (get-buffer-process (current-buffer))) | |
209 (process-coding-systems (if proc (process-coding-system proc)))) | |
210 (message | |
211 "current: [FKTPp=%c%c%c%c%c%c%c%c] default: [FPp=%c%c%c%c%c%c]" | |
212 (coding-system-mnemonic buffer-file-coding-system) | |
213 (coding-system-eoltype-mnemonic buffer-file-coding-system) | |
214 (coding-system-mnemonic (keyboard-coding-system)) | |
215 (coding-system-mnemonic (terminal-coding-system)) | |
216 (coding-system-mnemonic (car process-coding-systems)) | |
217 (coding-system-eoltype-mnemonic (car process-coding-systems)) | |
218 (coding-system-mnemonic (cdr process-coding-systems)) | |
219 (coding-system-eoltype-mnemonic (cdr process-coding-systems)) | |
220 (coding-system-mnemonic (default-value 'buffer-file-coding-system)) | |
221 (coding-system-eoltype-mnemonic (default-value 'buffer-file-coding-system)) | |
222 (coding-system-mnemonic (car default-process-coding-system)) | |
223 (coding-system-eoltype-mnemonic (car default-process-coding-system)) | |
224 (coding-system-mnemonic (cdr default-process-coding-system)) | |
225 (coding-system-eoltype-mnemonic (cdr default-process-coding-system)) | |
226 ))) | |
227 | |
228 ;; Print symbol name and mnemonics of CODING-SYSTEM by `princ'. | |
229 (defsubst print-coding-system-briefly (coding-system) | |
230 (print-list ":" | |
231 coding-system | |
232 (format "[%c%c]" | |
233 (coding-system-mnemonic coding-system) | |
234 (coding-system-eoltype-mnemonic coding-system)))) | |
235 | |
236 ;;;###autoload | |
237 (defun describe-current-coding-system () | |
238 "Display coding systems currently used in a detailed format." | |
239 (interactive) | |
240 (with-output-to-temp-buffer "*Help*" | |
241 (let* ((proc (get-buffer-process (current-buffer))) | |
242 (process-coding-systems (if proc (process-coding-system proc)))) | |
243 (princ "Current:\n buffer-file-coding-system") | |
244 (print-coding-system-briefly buffer-file-coding-system) | |
245 (princ " keyboard-coding-system") | |
246 (print-coding-system-briefly (keyboard-coding-system)) | |
247 (princ " terminal-coding-system") | |
248 (print-coding-system-briefly (terminal-coding-system)) | |
249 (if process-coding-systems | |
250 (progn (princ " process-coding-system (read)") | |
251 (print-coding-system-briefly (car process-coding-systems)) | |
252 (princ " process-coding-system (write)") | |
253 (print-coding-system-briefly (cdr process-coding-systems)))) | |
254 (princ "Default:\n buffer-file-coding-system") | |
255 (print-coding-system-briefly (default-value 'buffer-file-coding-system)) | |
256 (princ " process-coding-system (read)") | |
257 (print-coding-system-briefly (car default-process-coding-system)) | |
258 (princ " process-coding-system (write)") | |
259 (print-coding-system-briefly (cdr default-process-coding-system)) | |
260 (princ "coding-system-alist:\n") | |
261 (pp coding-system-alist)) | |
262 (let ((l coding-category-list)) | |
263 (princ "\nCoding categories (in the order of priority):\n") | |
264 (while l | |
265 (princ (format "%s -> %s\n" (car l) (symbol-value (car l)))) | |
266 (setq l (cdr l)))))) | |
267 | |
268 ;; Print detailed information on CODING-SYSTEM. | |
269 (defun print-coding-system (coding-system) | |
270 (let ((type (coding-system-type coding-system)) | |
271 (eol-type (coding-system-eoltype coding-system)) | |
272 (flags (coding-system-flags coding-system))) | |
273 (princ (format "%s:%s:%c:%d:" | |
274 coding-system | |
275 type | |
276 (coding-system-mnemonic coding-system) | |
277 (if (integerp eol-type) eol-type 3))) | |
278 (cond ((eq type 2) ; ISO-2022 | |
279 (let ((idx 0) | |
280 charset) | |
281 (while (< idx 4) | |
282 (setq charset (aref flags idx)) | |
283 (cond ((null charset) | |
284 (princ -1)) | |
285 ((eq charset t) | |
286 (princ -2)) | |
287 ((charsetp charset) | |
288 (princ charset)) | |
289 ((listp charset) | |
290 (princ "(") | |
291 (princ (car charset)) | |
292 (setq charset (cdr charset)) | |
293 (while charset | |
294 (princ ",") | |
295 (princ (car charset)) | |
296 (setq charset (cdr charset))) | |
297 (princ ")"))) | |
298 (princ ",") | |
299 (setq idx (1+ idx))) | |
300 (while (< idx 12) | |
301 (princ (if (aref flags idx) 1 0)) | |
302 (princ ",") | |
303 (setq idx (1+ idx))) | |
304 (princ (if (aref flags idx) 1 0)))) | |
305 ((eq type 4) ; CCL | |
306 (let (i len) | |
307 (setq i 0 len (length (car flags))) | |
308 (while (< i len) | |
309 (princ (format " %x" (aref (car flags) i))) | |
310 (setq i (1+ i))) | |
311 (princ ",") | |
312 (setq i 0 len (length (cdr flags))) | |
313 (while (< i len) | |
314 (princ (format " %x" (aref (cdr flags) i))) | |
315 (setq i (1+ i))))) | |
316 (t (princ 0))) | |
317 (princ ":") | |
318 (princ (coding-system-docstring coding-system)) | |
319 (princ "\n"))) | |
320 | |
321 (defun list-coding-systems () | |
322 "Print information on all coding systems in a machine readable format." | |
323 (with-output-to-temp-buffer "*Help*" | |
324 (princ "\ | |
325 ######################### | |
326 ## LIST OF CODING SYSTEMS | |
327 ## Each line corresponds to one coding system | |
328 ## Format of a line is: | |
329 ## NAME:TYPE:MNEMONIC:EOL:FLAGS:DOCSTRING, | |
330 ## where | |
331 ## TYPE = nil (no conversion), t (auto conversion), | |
332 ## 0 (Mule internal), 1 (SJIS), 2 (ISO2022), 3 (BIG5), or 4 (CCL) | |
333 ## EOL = 0 (LF), 1 (CRLF), 2 (CR), or 3 (Automatic detection) | |
334 ## FLAGS = | |
335 ## if TYPE = 2 then | |
336 ## comma (`,') separated data of the followings: | |
337 ## G0, G1, G2, G3, SHORT-FORM, ASCII-EOL, ASCII-CNTL, SEVEN, | |
338 ## LOCKING-SHIFT, SINGLE-SHIFT, USE-ROMAN, USE-OLDJIS, NO-ISO6429 | |
339 ## else if TYPE = 4 then | |
340 ## comma (`,') separated CCL programs for read and write | |
341 ## else | |
342 ## 0 | |
343 ## | |
344 ") | |
345 (let ((codings (make-vector 7 nil))) | |
346 (mapatoms | |
347 (function | |
348 (lambda (arg) | |
349 (if (and arg | |
350 (coding-system-p arg) | |
351 (null (get arg 'pre-write-conversion)) | |
352 (null (get arg 'post-read-conversion))) | |
353 (let* ((type (coding-system-type arg)) | |
354 (idx (if (null type) 0 (if (eq type t) 1 (+ type 2))))) | |
355 (if (or (= idx 0) | |
356 (vectorp (coding-system-eoltype arg))) | |
357 (aset codings idx (cons arg (aref codings idx))))))))) | |
358 (let ((idx 0) elt) | |
359 (while (< idx 7) | |
360 (setq elt (aref codings idx)) | |
361 (while elt | |
362 (print-coding-system (car elt)) | |
363 (setq elt (cdr elt))) | |
364 (setq idx (1+ idx))))) | |
365 (princ "\ | |
366 ############################ | |
367 ## LIST OF CODING CATEGORIES (ordered by priority) | |
368 ## CATEGORY:CODING-SYSTEM | |
369 ## | |
370 ") | |
371 (let ((l coding-category-list)) | |
372 (while l | |
373 (princ (format "%s:%s\n" (car l) (symbol-value (car l)))) | |
374 (setq l (cdr l)))) | |
375 )) | |
376 | |
377 ;;; FONT | |
378 | |
379 ;; Print information of a font in FONTINFO. | |
380 (defun describe-font-internal (font-info &optional verbose) | |
381 (print-list "name (opened by):" (aref font-info 0)) | |
382 (print-list " full name:" (aref font-info 1)) | |
383 (let ((charset (aref font-info 2))) | |
384 (print-list " charset:" | |
385 (format "%s (%s)" charset (charset-description charset)))) | |
386 (print-list " size:" (format "%d" (aref font-info 3))) | |
387 (print-list " height:" (format "%d" (aref font-info 4))) | |
388 (print-list " baseline-offset:" (format "%d" (aref font-info 5))) | |
389 (print-list "relative-compose:" (format "%d" (aref font-info 6)))) | |
390 | |
391 ;;;###autoload | |
392 (defun describe-font (fontname) | |
393 "Display information about fonts which partially match FONTNAME." | |
394 (interactive "sFontname: ") | |
395 (or window-system | |
396 (error "No window system being used")) | |
397 (let ((font-info (font-info fontname))) | |
398 (if (null font-info) | |
399 (message "No matching font") | |
400 (with-output-to-temp-buffer "*Help*" | |
401 (describe-font-internal font-info 'verbose))))) | |
402 | |
403 ;; Print information in FONTINFO of a fontset named FONTSET. | |
404 (defun describe-fontset-internal (fontset fontset-info) | |
405 (print-list "Fontset:" fontset) | |
406 (let ((size (aref fontset-info 0))) | |
407 (print-list " size:" (format "%d" size) | |
408 (if (= size 0) "... which means not yet used" ""))) | |
409 (print-list " height:" (format "%d" (aref fontset-info 1))) | |
410 (print-list " fonts: (charset : font name)") | |
411 (let* ((fonts (aref fontset-info 2)) | |
412 elt charset requested opened) | |
413 (while fonts | |
414 (setq elt (car fonts) | |
415 charset (car elt) | |
416 requested (nth 1 elt) | |
417 opened (nth 2 elt)) | |
418 (print-list " " charset ":" requested) | |
419 (if (stringp opened) | |
420 (print-list " Opened as: " opened) | |
421 (if (null opened) " -- open failed --")) | |
422 (setq fonts (cdr fonts))))) | |
423 | |
424 ;;;###autoload | |
425 (defun describe-fontset (fontset) | |
426 "Display information about FONTSET." | |
427 (interactive | |
428 (if (not window-system) | |
429 (error "No window system being used") | |
430 (let ((fontset-list (mapcar '(lambda (x) (list x)) (fontset-list)))) | |
431 (list (completing-read "Fontset: " fontset-list))))) | |
432 (setq fontset (query-fontset fontset)) | |
433 (if (null fontset) | |
434 (error "No matching fontset") | |
435 (let ((fontset-info (fontset-info fontset))) | |
436 (with-output-to-temp-buffer "*Help*" | |
437 (describe-fontset-internal fontset fontset-info))))) | |
438 | |
439 | |
440 ;;; DIAGNOSIS | |
441 | |
442 (defun insert-list (args) | |
443 (while (cdr args) | |
444 (insert (or (car args) "nil") " ") | |
445 (setq args (cdr args))) | |
446 (if args (insert (or (car args) "nil"))) | |
447 (insert "\n")) | |
448 | |
449 (defun insert-section (sec title) | |
450 (insert "########################################\n" | |
451 "# Section " (format "%d" sec) ". " title "\n" | |
452 "########################################\n\n")) | |
453 | |
454 ;;;###autoload | |
455 (defun mule-diag () | |
456 "Show diagnosis of the running Mule." | |
457 (interactive) | |
458 (let ((buf (get-buffer-create "*Diagnosis*"))) | |
459 (save-excursion | |
460 (set-buffer buf) | |
461 (erase-buffer) | |
462 (insert "\t###############################\n" | |
463 "\t### Diagnosis of your Emacs ###\n" | |
464 "\t###############################\n\n" | |
465 "CONTENTS: Section 1. General Information\n" | |
466 " Section 2. Display\n" | |
467 " Section 3. Input methods\n" | |
468 " Section 4. Coding systems\n" | |
469 " Section 5. Charsets\n") | |
470 (if window-system | |
471 (insert " Section 6. Fontset list\n")) | |
472 (insert "\n") | |
473 | |
474 (insert-section 1 "General Information") | |
475 (insert "Version of this emacs:\n " (emacs-version) "\n" | |
476 "Primary language:\n " primary-language "\n\n") | |
477 | |
478 (insert-section 2 "Display") | |
479 (if window-system | |
480 (insert "Window-system: " | |
481 (symbol-name window-system) | |
482 (format "%s" window-system-version)) | |
483 (insert "Terminal: " (getenv "TERM"))) | |
484 (insert "\n\n") | |
485 | |
486 (if (eq window-system 'x) | |
487 (let ((font (cdr (assq 'font (frame-parameters))))) | |
488 (insert "The selected frame is using the " | |
489 (if (query-fontset font) "fontset" "font") | |
490 ":\n\t" font)) | |
491 (insert "Coding system of the terminal: " | |
492 (symbol-name (terminal-coding-system)))) | |
493 (insert "\n\n") | |
494 | |
495 (insert-section 3 "Input methods") | |
496 (insert "language\tinput-method\n" | |
497 "--------\t------------\n") | |
498 (let ((alist language-info-alist)) | |
499 (while alist | |
500 (insert (car (car alist))) | |
501 (indent-to 16) | |
502 (let ((methods (get-language-info (car (car alist)) 'input-method))) | |
503 (if methods | |
504 (insert-list (mapcar 'car methods)) | |
505 (insert "none\n"))) | |
506 (setq alist (cdr alist)))) | |
507 (insert "\n") | |
508 (if default-input-method | |
509 (insert "The input method used last time is: " | |
510 (cdr default-input-method) | |
511 "\n" | |
512 " for inputting the language: " | |
513 (car default-input-method) | |
514 "\n") | |
515 (insert "No input method has ever been selected.\n")) | |
516 | |
517 (insert "\n") | |
518 | |
519 (insert-section 4 "Coding systems") | |
520 (save-excursion (list-coding-systems)) | |
521 (insert-buffer "*Help*") | |
522 (goto-char (point-max)) | |
523 (insert "\n") | |
524 | |
525 (insert-section 5 "Charsets") | |
526 (save-excursion (list-character-sets)) | |
527 (insert-buffer "*Help*") | |
528 (goto-char (point-max)) | |
529 (insert "\n") | |
530 | |
531 (if window-system | |
532 (let ((fontsets (fontset-list))) | |
533 (insert-section 6 "Fontset list") | |
534 (while fontsets | |
535 (describe-fontset (car fontsets)) | |
536 (insert-buffer "*Help*") | |
537 (setq fontsets (cdr fontsets))))) | |
538 | |
539 (set-buffer-modified-p nil) | |
540 ) | |
541 (let ((win (display-buffer buf))) | |
542 (set-window-point win 1) | |
543 (set-window-start win 1)) | |
544 )) | |
545 | |
546 | |
547 ;;; DUMP DATA FILE | |
548 | |
549 ;;;###autoload | |
550 (defun dump-charsets () | |
551 "Dump information of all charsets into the file \"charsets.dat\"." | |
552 (list-character-sets) | |
553 (set-buffer (get-buffer "*Help*")) | |
554 (let (make-backup-files) | |
555 (write-region (point-min) (point-max) "charsets.dat")) | |
556 (kill-emacs)) | |
557 | |
558 ;;;###autoload | |
559 (defun dump-codings () | |
560 "Dump information of all coding systems into the file \"codings.dat\"." | |
561 (list-coding-systems) | |
562 (set-buffer (get-buffer "*Help*")) | |
563 (let (make-backup-files) | |
564 (write-region (point-min) (point-max) "codings.dat")) | |
565 (kill-emacs)) | |
566 |