Function: describe-current-coding-system
describe-current-coding-system is an autoloaded, interactive and
byte-compiled function defined in mule-diag.el.gz.
Signature
(describe-current-coding-system)
Documentation
Display coding systems currently used, in detail.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/international/mule-diag.el.gz
;;;###autoload
(defun describe-current-coding-system ()
"Display coding systems currently used, in detail."
(interactive)
(with-output-to-temp-buffer "*Help*"
(let* ((proc (get-buffer-process (current-buffer)))
(process-coding-systems (if proc (process-coding-system proc))))
(princ "Coding system for saving this buffer:\n ")
(if (local-variable-p 'buffer-file-coding-system)
(print-coding-system-briefly buffer-file-coding-system)
(princ "Not set locally, use the default.\n"))
(princ "Default coding system (for new files):\n ")
(print-coding-system-briefly (default-value 'buffer-file-coding-system))
(princ "Coding system for keyboard input:\n ")
(print-coding-system-briefly (keyboard-coding-system))
(princ "Coding system for terminal output:\n ")
(print-coding-system-briefly (terminal-coding-system))
(when (boundp 'selection-coding-system)
(princ "Coding system for inter-client cut and paste:\n ")
(print-coding-system-briefly selection-coding-system))
(when (get-buffer-process (current-buffer))
(princ "Coding systems for process I/O:\n")
(princ " encoding input to the process: ")
(print-coding-system-briefly (cdr process-coding-systems))
(princ " decoding output from the process: ")
(print-coding-system-briefly (car process-coding-systems)))
(princ "Defaults for subprocess I/O:\n")
(princ " decoding: ")
(print-coding-system-briefly (car default-process-coding-system))
(princ " encoding: ")
(print-coding-system-briefly (cdr default-process-coding-system)))
(with-current-buffer standard-output
(princ "
Priority order for recognizing coding systems when reading files:\n")
(let ((i 1))
(dolist (elt (coding-system-priority-list))
(princ (format " %d. %s " i elt))
(let ((aliases (coding-system-aliases elt)))
(if (eq elt (car aliases))
(if (cdr aliases)
(princ (cons 'alias: (cdr aliases))))
(princ (list 'alias 'of (car aliases))))
(terpri)
(setq i (1+ i)))))
(princ "\n Other coding systems cannot be distinguished automatically
from these, and therefore cannot be recognized automatically
with the present coding system priorities.\n\n")
;; Fixme: should this be replaced or junked?
(if nil
(let ((categories '(coding-category-iso-7 coding-category-iso-7-else))
coding-system codings)
(while categories
(setq coding-system (symbol-value (car categories)))
(mapc
(lambda (x)
(if (and (not (eq x coding-system))
(let ((flags (coding-system-get :flags)))
(not (or (memq 'use-roman flags)
(memq 'use-oldjis flags)))))
(setq codings (cons x codings))))
(get (car categories) 'coding-systems))
(if codings
(let ((max-col (window-width))
pos)
(princ (format "\
The following are decoded correctly but recognized as %s:\n "
coding-system))
(while codings
(setq pos (point))
(insert (format " %s" (car codings)))
(when (> (current-column) max-col)
(goto-char pos)
(insert "\n ")
(goto-char (point-max)))
(setq codings (cdr codings)))
(insert "\n\n")))
(setq categories (cdr categories)))))
(princ "Particular coding systems specified for certain file names:\n")
(terpri)
(princ " OPERATION\tTARGET PATTERN\t\tCODING SYSTEM(s)\n")
(princ " ---------\t--------------\t\t----------------\n")
(let ((func (lambda (operation alist)
(princ " ")
(princ operation)
(if (not alist)
(princ "\tnothing specified\n")
(while alist
(indent-to 16)
(prin1 (car (car alist)))
(if (>= (current-column) 40)
(newline))
(indent-to 40)
(princ (cdr (car alist)))
(princ "\n")
(setq alist (cdr alist)))))))
(funcall func "File I/O" (append auto-coding-alist
file-coding-system-alist))
(funcall func "Process I/O" process-coding-system-alist)
(funcall func "Network I/O" network-coding-system-alist))
(help-mode))))