emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/lisp/descr-text.el


From: Nick Roberts
Subject: [Emacs-diffs] Changes to emacs/lisp/descr-text.el
Date: Fri, 23 Dec 2005 01:51:44 +0000

Index: emacs/lisp/descr-text.el
diff -u emacs/lisp/descr-text.el:1.45 emacs/lisp/descr-text.el:1.46
--- emacs/lisp/descr-text.el:1.45       Wed Dec 14 07:44:20 2005
+++ emacs/lisp/descr-text.el    Fri Dec 23 01:51:44 2005
@@ -4,6 +4,7 @@
 ;;   2005 Free Software Foundation, Inc.
 
 ;; Author: Boris Goldowsky <address@hidden>
+;; Maintainer: FSF
 ;; Keywords: faces, i18n, Unicode, multilingual
 
 ;; This file is part of GNU Emacs.
@@ -31,50 +32,18 @@
 
 (eval-when-compile (require 'button) (require 'quail))
 
-(defun describe-text-done ()
-  "Delete the current window or bury the current buffer."
-  (interactive)
-  (if (> (count-windows) 1)
-      (delete-window)
-    (bury-buffer)))
-
-(defvar describe-text-mode-map
-  (let ((map (make-sparse-keymap)))
-    (set-keymap-parent map widget-keymap)
-    map)
-  "Keymap for `describe-text-mode'.")
-
-(defcustom describe-text-mode-hook nil
-  "List of hook functions ran by `describe-text-mode'."
-  :type 'hook
-  :group 'facemenu)
-
-(defun describe-text-mode ()
-  "Major mode for buffers created by `describe-char'.
-
-\\{describe-text-mode-map}
-Entry to this mode calls the value of `describe-text-mode-hook'
-if that value is non-nil."
-  (kill-all-local-variables)
-  (setq major-mode 'describe-text-mode
-       mode-name "Describe-Text")
-  (use-local-map describe-text-mode-map)
-  (widget-setup)
-  (add-hook 'change-major-mode-hook 'font-lock-defontify nil t)
-  (run-mode-hooks 'describe-text-mode-hook))
-
 ;;; Describe-Text Utilities.
 
 (defun describe-text-widget (widget)
   "Insert text to describe WIDGET in the current buffer."
-  (widget-create 'link
-                :notify `(lambda (&rest ignore)
-                           (widget-browse ',widget))
-                (format "%S" (if (symbolp widget)
-                                 widget
-                               (car widget))))
-  (widget-insert " ")
-  (widget-create 'info-link :tag "widget" "(widget)Top"))
+  (insert-text-button
+   (symbol-name (if (symbolp widget) widget (car widget)))
+   'action `(lambda (&rest ignore)
+             (widget-browse ',widget)))
+  (insert " ")
+  (insert-text-button "(widget)Top"
+                     'action (lambda (&rest ignore) (info "(widget)Top"))
+                     'help-echo "mouse-2, RET: read this Info node"))
 
 (defun describe-text-sexp (sexp)
   "Insert a short description of SEXP in the current buffer."
@@ -88,20 +57,19 @@
              ((> (length pp) (- (window-width) (current-column)))
               nil)
              (t t))
-       (widget-insert pp)
-      (widget-create 'push-button
-                    :tag "show"
-                    :action (lambda (widget &optional event)
-                              (with-output-to-temp-buffer
-                                  "*Pp Eval Output*"
-                                (princ (widget-get widget :value))))
-                    pp))))
+       (insert pp)
+      (insert-text-button
+       "show" 'action `(lambda (&rest ignore)
+                       (with-output-to-temp-buffer
+                           "*Pp Eval Output*"
+                         (princ ',pp)))
+       'help-echo "mouse-2, RET: pretty print value in another buffer"))))
 
 (defun describe-property-list (properties)
   "Insert a description of PROPERTIES in the current buffer.
 PROPERTIES should be a list of overlay or text properties.
 The `category', `face' and `font-lock-face' properties are made
-into widget buttons that call `describe-text-category' or
+into help buttons that call `describe-text-category' or
 `describe-face' when pushed."
   ;; Sort the properties by the size of their value.
   (dolist (elt (sort (let (ret)
@@ -112,23 +80,21 @@
                                            (prin1-to-string (nth 0 b) t)))))
     (let ((key (nth 0 elt))
          (value (nth 1 elt)))
-      (widget-insert (propertize (format "  %-20s " key)
-                                'font-lock-face 'italic))
+      (insert (propertize (format "  %-20s " key)
+                         'face 'italic))
       (cond ((eq key 'category)
-            (widget-create 'link
-                           :notify `(lambda (&rest ignore)
-                                      (describe-text-category ',value))
-                           (format "%S" value)))
+            (insert-text-button (symbol-name value)
+                                'action `(lambda (&rest ignore)
+                                           (describe-text-category ',value))
+                                'help-echo
+                                "mouse-2, RET: describe this category"))
             ((memq key '(face font-lock-face mouse-face))
-            (widget-create 'link
-                           :notify `(lambda (&rest ignore)
-                                      (describe-face ',value))
-                           (format "%S" value)))
+            (insert (concat "`" (format "%S" value) "'")))
             ((widgetp value)
             (describe-text-widget value))
            (t
             (describe-text-sexp value))))
-    (widget-insert "\n")))
+    (insert "\n")))
 
 ;;; Describe-Text Commands.
 
@@ -138,9 +104,8 @@
   (save-excursion
     (with-output-to-temp-buffer "*Help*"
       (set-buffer standard-output)
-      (widget-insert "Category " (format "%S" category) ":\n\n")
+      (insert "Category " (format "%S" category) ":\n\n")
       (describe-property-list (symbol-plist category))
-      (describe-text-mode)
       (goto-char (point-min)))))
 
 ;;;###autoload
@@ -165,10 +130,9 @@
          (with-output-to-temp-buffer target-buffer
            (set-buffer standard-output)
            (setq output-buffer (current-buffer))
-           (widget-insert "Text content at position " (format "%d" pos) 
":\n\n")
+           (insert "Text content at position " (format "%d" pos) ":\n\n")
            (with-current-buffer buffer
              (describe-text-properties-1 pos output-buffer))
-           (describe-text-mode)
            (goto-char (point-min))))))))
 
 (defun describe-text-properties-1 (pos output-buffer)
@@ -186,33 +150,33 @@
       ;; Widgets
       (when (widgetp widget)
        (newline)
-       (widget-insert (cond (wid-field "This is an editable text area")
-                            (wid-button "This is an active area")
-                            (wid-doc "This is documentation text")))
-       (widget-insert " of a ")
+       (insert (cond (wid-field "This is an editable text area")
+                     (wid-button "This is an active area")
+                     (wid-doc "This is documentation text")))
+       (insert " of a ")
        (describe-text-widget widget)
-       (widget-insert ".\n\n"))
+       (insert ".\n\n"))
       ;; Buttons
       (when (and button (not (widgetp wid-button)))
        (newline)
-       (widget-insert "Here is a " (format "%S" button-type)
-                      " button labeled `" button-label "'.\n\n"))
+       (insert "Here is a " (format "%S" button-type)
+               " button labeled `" button-label "'.\n\n"))
       ;; Overlays
       (when overlays
        (newline)
        (if (eq (length overlays) 1)
-           (widget-insert "There is an overlay here:\n")
-         (widget-insert "There are " (format "%d" (length overlays))
+           (insert "There is an overlay here:\n")
+         (insert "There are " (format "%d" (length overlays))
                         " overlays here:\n"))
        (dolist (overlay overlays)
-         (widget-insert " From " (format "%d" (overlay-start overlay))
+         (insert " From " (format "%d" (overlay-start overlay))
                         " to " (format "%d" (overlay-end overlay)) "\n")
          (describe-property-list (overlay-properties overlay)))
-       (widget-insert "\n"))
+       (insert "\n"))
       ;; Text properties
       (when properties
        (newline)
-       (widget-insert "There are text properties here:\n")
+       (insert "There are text properties here:\n")
        (describe-property-list properties)))))
 
 (defcustom describe-char-unicodedata-file nil
@@ -223,8 +187,8 @@
 multilingual development.
 
 This is a fairly large file, not typically present on GNU systems.  At
-the time of writing it is at
-<URL:http://www.unicode.org/Public/UNIDATA/UnicodeData.txt>."
+the time of writing it is at the URL
+`http://www.unicode.org/Public/UNIDATA/UnicodeData.txt'."
   :group 'mule
   :version "22.1"
   :type '(choice (const :tag "None" nil)
@@ -488,27 +452,28 @@
                         (format ", U+%04X" unicode)
                       "")))
            ("charset"
-            ,`(widget-create 'link
-                             :notify (lambda (&rest ignore)
-                                       (describe-character-set ',charset))
-                             ,(symbol-name charset))
+            ,`(insert-text-button
+               (symbol-name charset)
+               'action `(lambda (&rest ignore)
+                          (describe-character-set ',charset))
+               'help-echo
+               "mouse-2, RET: describe this character set")
             ,(format "(%s)" (charset-description charset)))
            ("code point"
             ,(let ((split (split-char char)))
-               `(widget-create
-                 'link
-                 :notify (lambda (&rest ignore)
-                           (list-charset-chars ',charset)
-                           (with-selected-window
-                               (get-buffer-window "*Character List*" 0)
-                             (goto-char (point-min))
+               `(insert-text-button ,(if (= (charset-dimension charset) 1)
+                                         (format "%d" (nth 1 split))
+                                       (format "%d %d" (nth 1 split)
+                                               (nth 2 split)))
+                'action (lambda (&rest ignore)
+                          (list-charset-chars ',charset)
+                          (with-selected-window
+                              (get-buffer-window "*Character List*" 0)
+                            (goto-char (point-min))
                               (forward-line 2) ;Skip the header.
                               (let ((case-fold-search nil))
                                 (search-forward ,(char-to-string char)
-                                                nil t))))
-                 ,(if (= (charset-dimension charset) 1)
-                      (format "%d" (nth 1 split))
-                    (format "%d %d" (nth 1 split) (nth 2 split))))))
+                                                nil t)))))))
            ("syntax"
             ,(let ((syntax (syntax-after pos)))
                (with-temp-buffer
@@ -537,12 +502,11 @@
                           (mapconcat #'(lambda (x) (concat "\"" x "\""))
                                      key-list " or ")
                           "with"
-                          `(widget-create
-                            'link
-                            :notify (lambda (&rest ignore)
+                          `(insert-text-button
+                            (symbol-name current-input-method)
+                            'action (lambda (&rest ignore)
                                       (describe-input-method
-                                       ',current-input-method))
-                            ,(format "%s" current-input-method))))))
+                                       ',current-input-method)))))))
            ("buffer code"
             ,(encoded-string-description
               (string-as-unibyte (char-to-string char)) nil))
@@ -611,11 +575,8 @@
                          ((and (< char 32) (not (memq char '(9 10))))
                           'escape-glyph)))))
                (if face (list (list "hardcoded face"
-                                    `(widget-create
-                                      'link
-                                      :notify (lambda (&rest ignore)
-                                                (describe-face ',face))
-                                      ,(format "%s" face))))))
+                                    '(insert
+                                      (concat "`" (symbol-name face) "'"))))))
            ,@(let ((unicodedata (and unicode
                                      (describe-char-unicode-data unicode))))
                (if unicodedata
@@ -623,17 +584,16 @@
     (setq max-width (apply #'max (mapcar #'(lambda (x)
                                             (if (cadr x) (length (car x)) 0))
                                         item-list)))
-    (with-output-to-temp-buffer "*Help*"
+    (help-setup-xref nil (interactive-p))
+    (with-output-to-temp-buffer (help-buffer)
       (with-current-buffer standard-output
-       (let ((help-xref-following t))
-         (help-setup-xref nil nil))
        (set-buffer-multibyte multibyte-p)
        (let ((formatter (format "%%%ds:" max-width)))
          (dolist (elt item-list)
            (when (cadr elt)
              (insert (format formatter (car elt)))
              (dolist (clm (cdr elt))
-               (if (eq (car-safe clm) 'widget-create)
+               (if (eq (car-safe clm) 'insert-text-button)
                    (progn (insert " ") (eval clm))
                  (when (>= (+ (current-column)
                               (or (string-match "\n" clm)
@@ -673,17 +633,15 @@
                          "\n")
                  (when (> (car (aref disp-vector i)) #x7ffff)
                    (let* ((face-id (lsh (car (aref disp-vector i)) -19))
-                          (face (car (delq nil (mapcar (lambda (face)
-                                                         (and (eq (face-id 
face)
-                                                                  face-id) 
face))
-                                                       (face-list))))))
+                          (face (car (delq nil (mapcar
+                                                (lambda (face)
+                                                  (and (eq (face-id face)
+                                                           face-id) face))
+                                                (face-list))))))
                      (when face
                        (insert (propertize " " 'display '(space :align-to 5))
                                "face: ")
-                       (widget-create 'link
-                                      :notify `(lambda (&rest ignore)
-                                                 (describe-face ',face))
-                                      (format "%S" face))
+                       (insert (concat "`" (symbol-name face) "'"))
                        (insert "\n"))))))
            (insert "these terminal codes:\n")
            (dotimes (i (length disp-vector))
@@ -729,9 +687,7 @@
                  "the meaning of the rule.\n"))
 
         (if text-props-desc (insert text-props-desc))
-       (describe-text-mode)
        (toggle-read-only 1)
-       (help-make-xrefs (current-buffer))
        (print-help-return-message)))))
 
 (defalias 'describe-char-after 'describe-char)




reply via email to

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