]> git.eshelyaron.com Git - emacs.git/commitdiff
* descr-text.el (describe-char-categories): New defsubst.
authorJuanma Barranquero <lekktu@gmail.com>
Mon, 19 Jan 2009 15:48:15 +0000 (15:48 +0000)
committerJuanma Barranquero <lekktu@gmail.com>
Mon, 19 Jan 2009 15:48:15 +0000 (15:48 +0000)
  (describe-char): Use it.

lisp/ChangeLog
lisp/descr-text.el

index 8a0bb2412ac323d2a6bd7811e930048e07d955d8..dbea6cd19fbf49cb80995b68ffa9755375f3e0c3 100644 (file)
@@ -1,3 +1,8 @@
+2009-01-19  Juanma Barranquero  <lekktu@gmail.com>
+
+       * descr-text.el (describe-char-categories): New defsubst.
+       (describe-char): Use it.
+
 2009-01-19  Michael Albinus  <michael.albinus@gmx.de>
 
        * net/tramp.el (tramp-ipv6-regexp): The regexp shall cover also
index 53a8cd298e22362173a6da48b42ed1caf78eada9..022acd67b9e2b53dd9d04b63a60765d2ff69d1b1 100644 (file)
@@ -353,6 +353,21 @@ This function is semi-obsolete.  Use `get-char-code-property'."
 (defsubst describe-char-padded-string (ch)
   (compose-string (string ch) 0 1 (format "\t%c\t" ch)))
 
+;; Return a nicely formated list of categories; extended category
+;; description is added to the category name as a tooltip
+(defsubst describe-char-categories (category-set)
+  (let ((mnemonics (category-set-mnemonics category-set)))
+    (unless (eq mnemonics "")
+      (list (mapconcat
+            #'(lambda (x)
+                (let* ((c (category-docstring x))
+                       (doc (if (string-match "\\`\\(.*?\\)\n\\(.*\\)\\'" c)
+                                (propertize (match-string 1 c)
+                                            'help-echo (match-string 2 c))
+                              c)))
+                  (format "%c:%s" x doc)))
+            mnemonics ", ")))))
+
 ;;;###autoload
 (defun describe-char (pos)
   "Describe the character after POS (interactively, the character after point).
@@ -430,11 +445,9 @@ as well as widgets, buttons, overlays, and text properties."
                  (buffer-string))))
            ("category"
             ,@(let ((category-set (char-category-set char)))
-                (if (not category-set)
-                    '("-- none --")
-                  (mapcar #'(lambda (x) (format "%c:%s"
-                                                x (category-docstring x)))
-                          (category-set-mnemonics category-set)))))
+                (if category-set
+                    (describe-char-categories category-set)
+                  '("-- none --"))))
            ("to input"
             ,@(let ((key-list (and (eq input-method-function
                                        'quail-input-method)