diff options
author | Tino Calancha <tino.calancha@gmail.com> | 2016-07-09 22:56:25 +0900 |
---|---|---|
committer | Tino Calancha <tino.calancha@gmail.com> | 2016-07-09 22:56:25 +0900 |
commit | c3223dd505ba0ecde57371eae7e9a59637a852e4 (patch) | |
tree | c5d66cc5e4187d29b26a49a58c3aa8de70e21b07 | |
parent | bfc29a5bcef1df4380a4f043f05035b88cd5c482 (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.el | 16 | ||||
-rw-r--r-- | test/lisp/help-fns-tests.el | 1 |
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)))) |