# HG changeset patch # User Kenichi Handa # Date 1128581745 0 # Node ID 8b246680b846cae5c22553b01fb3d9a988aebc08 # Parent 8063c9277e581cec3d8533998982250b07147e4a (what-cursor-position): If the character is displayed by some `display' text property, show that. Don't use single-key-description for eight-bit characters in multibyte mode. diff -r 8063c9277e58 -r 8b246680b846 lisp/simple.el --- a/lisp/simple.el Thu Oct 06 06:06:55 2005 +0000 +++ b/lisp/simple.el Thu Oct 06 06:55:45 2005 +0000 @@ -896,22 +896,42 @@ (message "point=%d of %d (%d%%) column %d %s" pos total percent col hscroll)) (let ((coding buffer-file-coding-system) - encoded encoding-msg) + encoded encoding-msg display-prop under-display) (if (or (not coding) (eq (coding-system-type coding) t)) (setq coding default-buffer-file-coding-system)) (if (not (char-valid-p char)) (setq encoding-msg (format "(0%o, %d, 0x%x, invalid)" char char char)) - (setq encoded (and (>= char 128) (encode-coding-char char coding))) + ;; Check if the character is displayed with some `display' + ;; text property. In that case, set under-display to the + ;; buffer substring covered by that property. + (setq display-prop (get-text-property pos 'display)) + (if display-prop + (let ((to (or (next-single-property-change pos 'display) + (point-max)))) + (if (< to (+ pos 4)) + (setq under-display "") + (setq under-display "..." + to (+ pos 4))) + (setq under-display + (concat (buffer-substring-no-properties pos to) + under-display))) + (setq encoded (and (>= char 128) (encode-coding-char char coding)))) (setq encoding-msg - (if encoded - (format "(0%o, %d, 0x%x, file %s)" - char char char - (if (> (length encoded) 1) - "..." - (encoded-string-description encoded coding))) - (format "(0%o, %d, 0x%x)" char char char)))) + (if display-prop + (if (not (stringp display-prop)) + (format "(0%o, %d, 0x%x, part of display \"%s\")" + char char char under-display) + (format "(0%o, %d, 0x%x, part of display \"%s\"->\"%s\")" + char char char under-display display-prop)) + (if encoded + (format "(0%o, %d, 0x%x, file %s)" + char char char + (if (> (length encoded) 1) + "..." + (encoded-string-description encoded coding))) + (format "(0%o, %d, 0x%x)" char char char))))) (if detail ;; We show the detailed information about CHAR. (describe-char (point))) @@ -922,9 +942,11 @@ (buffer-substring-no-properties (point) (1+ (point)))) encoding-msg pos total percent beg end col hscroll) (message "Char: %s %s point=%d of %d (%d%%) column %d %s" - (if (< char 256) - (single-key-description char) - (buffer-substring-no-properties (point) (1+ (point)))) + (if enable-multibyte-characters + (if (< char 128) + (single-key-description char) + (buffer-substring-no-properties (point) (1+ (point)))) + (single-key-description char)) encoding-msg pos total percent col hscroll)))))) (defvar read-expression-map