From d703f9385eae35e0f6179cd7a58017688f950bc0 Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Mon, 19 Jan 2009 15:48:15 +0000 Subject: [PATCH] * descr-text.el (describe-char-categories): New defsubst. (describe-char): Use it. --- lisp/ChangeLog | 5 +++++ lisp/descr-text.el | 23 ++++++++++++++++++----- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 8a0bb2412ac..dbea6cd19fb 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2009-01-19 Juanma Barranquero + + * descr-text.el (describe-char-categories): New defsubst. + (describe-char): Use it. + 2009-01-19 Michael Albinus * net/tramp.el (tramp-ipv6-regexp): The regexp shall cover also diff --git a/lisp/descr-text.el b/lisp/descr-text.el index 53a8cd298e2..022acd67b9e 100644 --- a/lisp/descr-text.el +++ b/lisp/descr-text.el @@ -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) -- 2.39.2