From 98ce2330e6b6eb05eb051cb12cc1f9ad8ad1e4d0 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Sat, 27 Jan 1996 22:45:19 +0000 Subject: [PATCH] (apropos-print): Omit key sequences that contain a frame. --- lisp/apropos.el | 43 ++++++++++++++++++++++++++++++------------- 1 file 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 -- 2.39.2