aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorRichard M. Stallman <[email protected]>1996-01-27 22:45:19 +0000
committerRichard M. Stallman <[email protected]>1996-01-27 22:45:19 +0000
commit98ce2330e6b6eb05eb051cb12cc1f9ad8ad1e4d0 (patch)
treeb757ddef6b25b462d3d35552ad045c633fec42c8 /lisp
parent9689908391a0630f3e3584af6b7624caa619263e (diff)
(apropos-print): Omit key sequences that contain a frame.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/apropos.el43
1 files changed, 30 insertions, 13 deletions
diff --git a/lisp/apropos.el b/lisp/apropos.el
index 70855f469c..12b84ff104 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