aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenichi Handa1998-08-02 01:06:57 +0000
committerKenichi Handa1998-08-02 01:06:57 +0000
commite5a902cf512334cd3ea294b4fd69885bbf2aeb70 (patch)
tree766923420a8d94198b567218e90c99f7e0e87d10
parentf44cbcd8dc94cb1ea05e2f5c7a096d69906c6a1c (diff)
downloademacs-e5a902cf512334cd3ea294b4fd69885bbf2aeb70.tar.gz
emacs-e5a902cf512334cd3ea294b4fd69885bbf2aeb70.zip
(what-cursor-position): Check charset-origin-alist.
-rw-r--r--lisp/simple.el41
1 files changed, 35 insertions, 6 deletions
diff --git a/lisp/simple.el b/lisp/simple.el
index 7e4a1a4adfe..6ac05b42179 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -484,7 +484,15 @@ and the greater of them is not at the start of a line."
484 484
485(defun what-cursor-position (&optional detail) 485(defun what-cursor-position (&optional detail)
486 "Print info on cursor position (on screen and within buffer). 486 "Print info on cursor position (on screen and within buffer).
487With prefix argument, print detailed info of a character on cursor position." 487With prefix argument, print detailed info of a character on cursor position.
488
489For the detailed information, Emacs internal character code, Emacs
490internal character components (the character set name and position
491code(s)), and the corresponding external character components (the
492external character set name and external character code(s)) are shown
493in this order.
494
495Each language environment may show different external character components."
488 (interactive "P") 496 (interactive "P")
489 (let* ((char (following-char)) 497 (let* ((char (following-char))
490 (beg (point-min)) 498 (beg (point-min))
@@ -505,18 +513,39 @@ With prefix argument, print detailed info of a character on cursor position."
505 pos total percent beg end col hscroll) 513 pos total percent beg end col hscroll)
506 (message "point=%d of %d(%d%%) column %d %s" 514 (message "point=%d of %d(%d%%) column %d %s"
507 pos total percent col hscroll)) 515 pos total percent col hscroll))
508 (let ((str (if detail (format " %s" (split-char char)) ""))) 516 (if detail
517 (let* ((internal (split-char char))
518 (charset (char-charset char))
519 (slot (assq charset charset-origin-alist))
520 external)
521 (if slot
522 (setq external (list (nth 1 slot) (funcall (nth 2 slot) char)))
523 (if (eq charset 'composition)
524 (setq internal '("composite-character"))
525 (setq external (cons (charset-short-name charset)
526 (copy-sequence (cdr internal))))
527 (if (= (charset-iso-graphic-plane charset) 1)
528 (progn
529 (setcar (cdr external) (+ (nth 1 external) 128))
530 (if (nth 2 external)
531 (setcar (nthcdr 2 external)
532 (+ (nth 2 external) 128)))))))
533 (message "Char: %s (0%o, %d, 0x%x) %s %s"
534 (if (< char 256)
535 (single-key-description char)
536 (char-to-string char))
537 char char char (or internal "") (or external "")))
509 (if (or (/= beg 1) (/= end (1+ total))) 538 (if (or (/= beg 1) (/= end (1+ total)))
510 (message "Char: %s (0%o, %d, 0x%x) %s point=%d of %d(%d%%) <%d - %d> column %d %s" 539 (message "Char: %s (0%o, %d, 0x%x) point=%d of %d(%d%%) <%d - %d> column %d %s"
511 (if (< char 256) 540 (if (< char 256)
512 (single-key-description char) 541 (single-key-description char)
513 (char-to-string char)) 542 (char-to-string char))
514 char char char str pos total percent beg end col hscroll) 543 char char char pos total percent beg end col hscroll)
515 (message "Char: %s (0%o, %d, 0x%x)%s point=%d of %d(%d%%) column %d %s" 544 (message "Char: %s (0%o, %d, 0x%x) point=%d of %d(%d%%) column %d %s"
516 (if (< char 256) 545 (if (< char 256)
517 (single-key-description char) 546 (single-key-description char)
518 (char-to-string char)) 547 (char-to-string char))
519 char char char str pos total percent col hscroll)))))) 548 char char char pos total percent col hscroll))))))
520 549
521(defun fundamental-mode () 550(defun fundamental-mode ()
522 "Major mode not specialized for anything in particular. 551 "Major mode not specialized for anything in particular.