;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to
-;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+;; along with GNU Emacs; see the file COPYING. If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
;;; Commentary:
"Regexp used in current apropos run.")
(defvar apropos-files-scanned ()
- "List of elc files already scanned in current run of `apropos-documentaion'.")
+ "List of elc files already scanned in current run of `apropos-documentation'.")
(defvar apropos-accumulator ()
"Alist of symbols already found in current apropos run.")
(set-buffer standard-output)
(apropos-mode)
(if window-system
- (insert (substitute-command-keys
- "Click \\[apropos-mouse-follow] to get full documentation.\n")))
+ (insert "If you move the mouse over text that changes color,\n"
+ (substitute-command-keys
+ "you can click \\[apropos-mouse-follow] to get more information.\n")))
(insert (substitute-command-keys
"In this buffer, type \\[apropos-follow] to get full documentation.\n\n"))
(while (consp p)
point1 (point))
(princ symbol) ; print symbol name
(setq point2 (point))
- ;; don't calculate key-bindings unless needed
+ ;; Calculate key-bindings if we want them.
(and do-keys
(commandp symbol)
(indent-to 30 1)
- (insert
- (if (setq item (save-excursion
- (set-buffer old-buffer)
- (where-is-internal symbol)))
+ (if (let ((keys
+ (save-excursion
+ (set-buffer old-buffer)
+ (where-is-internal symbol)))
+ filtered)
+ ;; Copy over the list of key sequences,
+ ;; omitting any that contain a buffer or a frame.
+ (while keys
+ (let ((key (car keys))
+ (i 0)
+ loser)
+ (while (< i (length key))
+ (if (or (framep (aref key i))
+ (bufferp (aref key i)))
+ (setq loser t))
+ (setq i (1+ i)))
+ (or loser
+ (setq filtered (cons key filtered))))
+ (setq keys (cdr keys)))
+ (setq item filtered))
+ ;; Convert the remaining keys to a string and insert.
+ (insert
(mapconcat
- (if apropos-keybinding-face
- (lambda (key)
- (setq key (key-description key))
+ (lambda (key)
+ (setq key (key-description key))
+ (if apropos-keybinding-face
(put-text-property 0 (length key)
'face apropos-keybinding-face
- key)
- key)
- 'key-description)
- item ", ")
- "(not bound to any keys)")))
+ key))
+ key)
+ item ", "))
+ (insert "Type ")
+ (insert "M-x")
+ (put-text-property (- (point) 3) (point)
+ 'face apropos-keybinding-face)
+ (insert " " (symbol-name symbol) " ")
+ (insert "RET")
+ (put-text-property (- (point) 3) (point)
+ 'face apropos-keybinding-face)))
(terpri)
;; only now so we don't propagate text attributes all over
(put-text-property point1 point2 'item