Mercurial > emacs
changeset 22877:390d2e91fee2
(what-cursor-position): Check charset-origin-alist.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Sun, 02 Aug 1998 01:06:57 +0000 |
parents | 8c063663a19d |
children | c08122192a60 |
files | lisp/simple.el |
diffstat | 1 files changed, 36 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/simple.el Sun Aug 02 01:06:57 1998 +0000 +++ b/lisp/simple.el Sun Aug 02 01:06:57 1998 +0000 @@ -484,7 +484,15 @@ (defun what-cursor-position (&optional detail) "Print info on cursor position (on screen and within buffer). -With prefix argument, print detailed info of a character on cursor position." +With prefix argument, print detailed info of a character on cursor position. + +For the detailed information, Emacs internal character code, Emacs +internal character components (the character set name and position +code(s)), and the corresponding external character components (the +external character set name and external character code(s)) are shown +in this order. + +Each language environment may show different external character components." (interactive "P") (let* ((char (following-char)) (beg (point-min)) @@ -505,18 +513,39 @@ pos total percent beg end col hscroll) (message "point=%d of %d(%d%%) column %d %s" pos total percent col hscroll)) - (let ((str (if detail (format " %s" (split-char char)) ""))) - (if (or (/= beg 1) (/= end (1+ total))) - (message "Char: %s (0%o, %d, 0x%x) %s point=%d of %d(%d%%) <%d - %d> column %d %s" + (if detail + (let* ((internal (split-char char)) + (charset (char-charset char)) + (slot (assq charset charset-origin-alist)) + external) + (if slot + (setq external (list (nth 1 slot) (funcall (nth 2 slot) char))) + (if (eq charset 'composition) + (setq internal '("composite-character")) + (setq external (cons (charset-short-name charset) + (copy-sequence (cdr internal)))) + (if (= (charset-iso-graphic-plane charset) 1) + (progn + (setcar (cdr external) (+ (nth 1 external) 128)) + (if (nth 2 external) + (setcar (nthcdr 2 external) + (+ (nth 2 external) 128))))))) + (message "Char: %s (0%o, %d, 0x%x) %s %s" (if (< char 256) (single-key-description char) (char-to-string char)) - char char char str pos total percent beg end col hscroll) - (message "Char: %s (0%o, %d, 0x%x)%s point=%d of %d(%d%%) column %d %s" + char char char (or internal "") (or external ""))) + (if (or (/= beg 1) (/= end (1+ total))) + (message "Char: %s (0%o, %d, 0x%x) point=%d of %d(%d%%) <%d - %d> column %d %s" + (if (< char 256) + (single-key-description char) + (char-to-string char)) + char char char pos total percent beg end col hscroll) + (message "Char: %s (0%o, %d, 0x%x) point=%d of %d(%d%%) column %d %s" (if (< char 256) (single-key-description char) (char-to-string char)) - char char char str pos total percent col hscroll)))))) + char char char pos total percent col hscroll)))))) (defun fundamental-mode () "Major mode not specialized for anything in particular.