summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTino Calancha <tino.calancha@gmail.com>2016-07-09 22:56:25 +0900
committerTino Calancha <tino.calancha@gmail.com>2016-07-09 22:56:25 +0900
commitc3223dd505ba0ecde57371eae7e9a59637a852e4 (patch)
treec5d66cc5e4187d29b26a49a58c3aa8de70e21b07
parentbfc29a5bcef1df4380a4f043f05035b88cd5c482 (diff)
Detect aliases to built-in functions
* lisp/help-fns.el (describe-function-1): Check for aliases defined with (defalias alias (symbol-function built-in)) (Bug#23887). * test/lisp/help-fns-tests.el (help-fns-test-bug23887): Untag as failing this test.
-rw-r--r--lisp/help-fns.el16
-rw-r--r--test/lisp/help-fns-tests.el1
2 files changed, 10 insertions, 7 deletions
diff --git a/lisp/help-fns.el b/lisp/help-fns.el
index 9464c0b0d9..e4e23330e3 100644
--- a/lisp/help-fns.el
+++ b/lisp/help-fns.el
@@ -572,13 +572,17 @@ FILE is the file where FUNCTION was probably defined."
(aliased (or (symbolp def)
;; Advised & aliased function.
(and advised (symbolp real-function)
- (not (eq 'autoload (car-safe def))))))
+ (not (eq 'autoload (car-safe def))))
+ (and (subrp def)
+ (not (string= (subr-name def)
+ (symbol-name function))))))
(real-def (cond
- (aliased (let ((f real-function))
- (while (and (fboundp f)
- (symbolp (symbol-function f)))
- (setq f (symbol-function f)))
- f))
+ ((and aliased (not (subrp def)))
+ (let ((f real-function))
+ (while (and (fboundp f)
+ (symbolp (symbol-function f)))
+ (setq f (symbol-function f)))
+ f))
((subrp def) (intern (subr-name def)))
(t def)))
(sig-key (if (subrp def)
diff --git a/test/lisp/help-fns-tests.el b/test/lisp/help-fns-tests.el
index 4239a2afef..ba0d8ed8e3 100644
--- a/test/lisp/help-fns-tests.el
+++ b/test/lisp/help-fns-tests.el
@@ -77,7 +77,6 @@ Return first line of the output of (describe-function-1 FUNC)."
(ert-deftest help-fns-test-bug23887 ()
"Test for http://debbugs.gnu.org/23887 ."
- :expected-result :failed
(let ((regexp "an alias for .re-search-forward. in .subr\.el")
(result (help-fns-tests--describe-function 'search-forward-regexp)))
(should (string-match regexp result))))