[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debbugs-tracker] bug#10129: closed (24.0.91; [PATCH] `C-u C-x =' should

From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#10129: closed (24.0.91; [PATCH] `C-u C-x =' should show position info)
Date: Sat, 28 Jan 2012 10:38:02 +0000

Your message dated Sat, 28 Jan 2012 12:34:08 +0200
with message-id <address@hidden>
and subject line Re: Character FOO
has caused the debbugs.gnu.org bug report #10129,
regarding 24.0.91; [PATCH] `C-u C-x =' should show position info
to be marked as done.

(If you believe you have received this mail in error, please contact

10129: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10129
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: 24.0.91; [PATCH] `C-u C-x =' should show position info Date: Thu, 24 Nov 2011 10:50:36 -0800
`C-x =' shows information about the current position, including its
relation to the buffer size, its column, the region limits, and
horizontal scroll amount.
That position info is missing from the *Help* display for `C-u C-x ='.
It is only shown in the message, which is ephemeral and can easily be
The attached patch remedies this by including the position information
in *Help*.  The patch also updates the doc string accordingly (and
corrects improper grammar such as "Is POS is taken...").

In GNU Emacs (i386-mingw-nt5.1.2600) of 2011-11-21 on MARVIN
 Windowing system distributor `Microsoft Corp.', version 5.1.2600
 configured using `configure --with-gcc (4.6) --no-opt --cflags
 -ID:/devel/emacs/libs/gnutls-2.10.1/include --ldflags

Attachment: descr-text-2011-11-24a.patch
Description: Binary data

--- End Message ---
--- Begin Message --- Subject: Re: Character FOO Date: Sat, 28 Jan 2012 12:34:08 +0200
> From: "Drew Adams" <address@hidden>
> Cc: <address@hidden>
> 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.


=== 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  <address@hidden>
+       * 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  <address@hidden>
        * 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
 (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: 
+                              pos total percent col beg end hscroll)
+                    (if (= pos end)
+                        (format "%d of %d (EOB), column: %d%s" pos total col 
+                      (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)"
                         (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")

--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]