diff options
author | Richard M. Stallman <rms@gnu.org> | 1996-01-27 22:45:19 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1996-01-27 22:45:19 +0000 |
commit | 98ce2330e6b6eb05eb051cb12cc1f9ad8ad1e4d0 (patch) | |
tree | b757ddef6b25b462d3d35552ad045c633fec42c8 /lisp/apropos.el | |
parent | 9689908391a0630f3e3584af6b7624caa619263e (diff) | |
download | emacs-98ce2330e6b6eb05eb051cb12cc1f9ad8ad1e4d0.tar.gz |
(apropos-print): Omit key sequences that contain a frame.
Diffstat (limited to 'lisp/apropos.el')
-rw-r--r-- | lisp/apropos.el | 43 |
1 files changed, 30 insertions, 13 deletions
diff --git a/lisp/apropos.el b/lisp/apropos.el index 70855f469cc..12b84ff104b 100644 --- a/lisp/apropos.el +++ b/lisp/apropos.el @@ -458,25 +458,42 @@ found." 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 |