Mercurial > emacs
changeset 65862:8b246680b846
(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.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Thu, 06 Oct 2005 06:55:45 +0000 |
parents | 8063c9277e58 |
children | 31848056b33c |
files | lisp/simple.el |
diffstat | 1 files changed, 34 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- 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