Mercurial > emacs
changeset 14395:8e97dadccf2b
(apropos-print): Omit key sequences that contain a frame.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sat, 27 Jan 1996 22:45:19 +0000 |
parents | 289506921917 |
children | c486932b7301 |
files | lisp/apropos.el |
diffstat | 1 files changed, 30 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/apropos.el Sat Jan 27 18:32:17 1996 +0000 +++ b/lisp/apropos.el Sat Jan 27 22:45:19 1996 +0000 @@ -458,25 +458,42 @@ 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 "(not bound to any keys)")))) (terpri) ;; only now so we don't propagate text attributes all over (put-text-property point1 point2 'item