diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 40e4732d0cc..fa635a9385f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,17 @@ +2007-10-14 Richard Stallman + + * emacs-lisp/advice.el (documentation): Advice deleted. + Doc for advised functions is now handled at C level. + This is now handled at C level. + (ad-stop-advice, ad-start-advice): Don't enable or disable + advice for `documentation'. + (ad-advised-definition-docstring-regexp): Var deleted. + (ad-make-advised-definition-docstring): Store orig name + as text property of string. + (ad-advised-definition-p): Check for text property of docstring. + + * help-fns.el (describe-function-1): Find source of advised functions. + 2007-10-14 Juri Linkov * faces.el (describe-face): Allow handling a string as the face name. @@ -371,6 +385,10 @@ * net/trampver.el: Update release number. +2007-10-09 Richard Stallman + + * play/gamegrid.el (gamegrid-setup-default-font): Use face-spec-set. + 2007-10-09 Juanma Barranquero * follow.el: Require easymenu. diff --git a/lisp/help-fns.el b/lisp/help-fns.el index eee0794b673..bf8d5f9a209 100644 --- a/lisp/help-fns.el +++ b/lisp/help-fns.el @@ -251,8 +251,15 @@ face (according to `face-differs-from-default-p')." ;;;###autoload (defun describe-function-1 (function) - (let* ((def (if (symbolp function) - (symbol-function function) + (let* ((advised (and (featurep 'advice) (ad-get-advice-info function))) + ;; If the function is advised, get the symbol that has the + ;; real definition. + (real-function + (if advised (cdr (assq 'origname advised)) + function)) + ;; Get the real definition. + (def (if (symbolp real-function) + (symbol-function real-function) function)) file-name string (beg (if (commandp def) "an interactive " "a "))) @@ -334,7 +341,7 @@ face (according to `face-differs-from-default-p')." (with-current-buffer standard-output (save-excursion (re-search-backward "`\\([^`']+\\)'" nil t) - (help-xref-button 1 'help-function-def function file-name)))) + (help-xref-button 1 'help-function-def real-function file-name)))) (princ ".") (terpri) (when (commandp function) @@ -383,8 +390,9 @@ face (according to `face-differs-from-default-p')." ((listp arglist) (format "%S" (help-make-usage function arglist))) ((stringp arglist) arglist) - ;; Maybe the arglist is in the docstring of the alias. - ((let ((fun function)) + ;; Maybe the arglist is in the docstring of a symbol + ;; this one is aliased to. + ((let ((fun real-function)) (while (and (symbolp fun) (setq fun (symbol-function fun)) (not (setq usage (help-split-fundoc