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.
This commit is contained in:
Tino Calancha 2016-07-09 22:56:25 +09:00
parent bfc29a5bce
commit c3223dd505
2 changed files with 10 additions and 7 deletions

View file

@ -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)

View file

@ -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))))