GNU bug report logs -
#10129
24.0.91; [PATCH] `C-u C-x =' should show position info
Previous Next
Reported by: "Drew Adams" <drew.adams <at> oracle.com>
Date: Thu, 24 Nov 2011 18:53:01 UTC
Severity: normal
Tags: patch
Found in version 24.0.91
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
Message #10 received at 10129-done <at> debbugs.gnu.org (full text, mbox):
> From: "Drew Adams" <drew.adams <at> oracle.com>
> Cc: <emacs-devel <at> gnu.org>
> Date: Wed, 25 Jan 2012 08:58:21 -0800
>
> Why not apply this patch as well, while you're at it:
> http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10129
Done. I modified your patch slightly, mainly to make it more
consistent with what "C-x =" displays. I also updated the doc string
to bring it in line with what is in fact displayed. The actual patch
I committed is below.
Note that your patch was backwards; please in the future use
diff -c OLD NEW
not the other way around.
Thanks.
=== modified file 'lisp/ChangeLog'
--- lisp/ChangeLog 2012-01-28 09:52:24 +0000
+++ lisp/ChangeLog 2012-01-28 10:27:28 +0000
@@ -1,3 +1,11 @@
+2012-01-28 Drew Adams <drew.adams <at> oracle.com>
+
+ * descr-text.el (describe-char): Show information about POS, in
+ addition to information about the character at POS. Improve and
+ update the doc string. Change "code point" to "code point in
+ charset", to avoid confusion with the character's Unicode code
+ point shown above that. (Bug#10129)
+
2012-01-28 Eli Zaretskii <eliz <at> gnu.org>
* descr-text.el (describe-char): Show the raw character, not only
=== modified file 'lisp/descr-text.el'
--- lisp/descr-text.el 2012-01-28 09:52:24 +0000
+++ lisp/descr-text.el 2012-01-28 10:27:28 +0000
@@ -376,12 +376,21 @@ This function is semi-obsolete. Use `ge
;;;###autoload
(defun describe-char (pos &optional buffer)
- "Describe the character after POS (interactively, the character after point).
-Is POS is taken to be in buffer BUFFER or current buffer if nil.
-The information includes character code, charset and code points in it,
-syntax, category, how the character is encoded in a file,
-character composition information (if relevant),
-as well as widgets, buttons, overlays, and text properties."
+ "Describe position POS (interactively, point) and the char after POS.
+POS is taken to be in BUFFER, or the current buffer if BUFFER is nil.
+The information is displayed in buffer `*Help*'.
+
+The position information includes POS; the total size of BUFFER; the
+region limits, if narrowed; the column number; and the horizontal
+scroll amount, if the buffer is horizontally scrolled.
+
+The character information includes the character code; charset and
+code points in it; syntax; category; how the character is encoded in
+BUFFER and in BUFFER's file; character composition information (if
+relevant); the font and font glyphs used to display the character;
+the character's canonical name and other properties defined by the
+Unicode Data Base; and widgets, buttons, overlays, and text properties
+relevant to POS."
(interactive "d")
(unless (buffer-live-p buffer) (setq buffer (current-buffer)))
(let ((src-buf (current-buffer)))
@@ -511,7 +520,25 @@ as well as widgets, buttons, overlays, a
(setq composition nil)))
(setq item-list
- `(("character"
+ `(("position"
+ ,(let* ((beg (point-min))
+ (end (point-max))
+ (total (buffer-size))
+ (percent (if (> total 50000) ; Avoid overflow multiplying by 100
+ (/ (+ (/ total 200) (1- pos)) (max (/ total 100) 1))
+ (/ (+ (/ total 2) (* 100 (1- pos))) (max total 1))))
+ (hscroll (if (= (window-hscroll) 0)
+ ""
+ (format ", Hscroll: %d" (window-hscroll))))
+ (col (current-column)))
+ (if (or (/= beg 1) (/= end (1+ total)))
+ (format "%d of %d (%d%%), restriction: <%d-%d>, column: %d%s"
+ pos total percent col beg end hscroll)
+ (if (= pos end)
+ (format "%d of %d (EOB), column: %d%s" pos total col hscroll)
+ (format "%d of %d (%d%%), column: %d%s"
+ pos total percent col hscroll)))))
+ ("character"
,(format "%s (displayed as %s) (codepoint %d, #o%o, #x%x)"
char-description
(apply 'propertize char-description
@@ -522,7 +549,7 @@ as well as widgets, buttons, overlays, a
,(symbol-name charset)
'type 'help-character-set 'help-args '(,charset))
,(format "(%s)" (charset-description charset)))
- ("code point"
+ ("code point in charset"
,(let ((str (if (integerp code)
(format (if (< code 256) "0x%02X" "0x%04X")
code)
This bug report was last modified 13 years and 170 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.