From 3e320b4929710880e352ecbd749e77a20bfef3fe Mon Sep 17 00:00:00 2001
Date: Sun, 20 Mar 2016 15:31:08 -0400
Subject: [PATCH] Check if arg is actually a symbol (bug # 22716)
* lisp/cedet/mode-local.el (describe-mode-local-overload): Check if the
passed argument SYMBOL is actually a symbol before proceeding with
`(get symbol 'mode-local-overload)'. This check is required for the
case presented in bug # 22716 where a key might be bound to a bare
lambda interactive function instead of an interactive function symbol.
In addition, the code is re-arranged to follow the standard elisp coding
style.
---
lisp/cedet/mode-local.el | 18 +++++++-----------
1 file changed, 7 insertions(+), 11 deletions(-)
diff --git a/lisp/cedet/mode-local.el b/lisp/cedet/mode-local.el
index c7e6615..b39567d 100644
--- a/lisp/cedet/mode-local.el
+++ b/lisp/cedet/mode-local.el
@@ -638,13 +638,13 @@ describe-function-orig-buffer
(defun describe-mode-local-overload (symbol)
"For `help-fns-describe-function-functions'; add overloads for SYMBOL."
- (when (get symbol 'mode-local-overload)
+ (when (and (symbolp symbol)
+ (get symbol 'mode-local-overload))
(let ((default (or (intern-soft (format "%s-default" (symbol-name symbol)))
symbol))
(override (with-current-buffer describe-function-orig-buffer
(fetch-overload symbol)))
modes)
-
(insert (substitute-command-keys (overload-docstring-extension symbol))
"\n\n")
(insert (format-message "default function: `%s'\n" default))
@@ -653,20 +653,16 @@ describe-mode-local-overload
describe-function-orig-buffer override))
(insert (format-message "\nno override in buffer `%s'\n"
describe-function-orig-buffer)))
-
- (mapatoms
- (lambda (sym) (when (get sym 'mode-local-symbol-table) (push sym modes)))
- obarray)
-
+ (mapatoms (lambda (sym)
+ (when (get sym 'mode-local-symbol-table)
+ (push sym modes)))
+ obarray)
(dolist (mode modes)
(let* ((major-mode mode)
(override (fetch-overload symbol)))
-
(when override
(insert (format-message "\noverride in mode `%s': `%s'\n"
- major-mode override))
- )))
- )))
+ major-mode override))))))))
(add-hook 'help-fns-describe-function-functions 'describe-mode-local-overload)
--
2.6.0.rc0.24.gec371ff
I have copied Stephen and Paul as I see that they have past commits in this region of code. So they should provide a good judgement on this patch.