# HG changeset patch # User Dave Love # Date 960930298 0 # Node ID 855fe2e4005da735c55faf95039b9ccc62a144c0 # Parent 4580fc7c0a802076641c87fd6e91fe5c3ce1c0ff (describe-function-1): Kluge around cases of functions fset to subrs whose doc doesn't match their symbol-name. diff -r 4580fc7c0a80 -r 855fe2e4005d lisp/help.el --- a/lisp/help.el Tue Jun 13 19:06:07 2000 +0000 +++ b/lisp/help.el Tue Jun 13 21:04:58 2000 +0000 @@ -724,17 +724,28 @@ ;; Builtins get the calling sequence at the end of ;; the doc string. Move it to the same place as ;; for other functions. - (if (looking-at (format "(%S[ )]" function)) - (let ((start (point-marker))) - (goto-char (point-min)) - (forward-paragraph) - (insert-buffer-substring (current-buffer) start) - (insert ?\n) - (delete-region (1- start) (point-max))) - (goto-char (point-min)) - (forward-paragraph) - (insert - "[Missing arglist. Please make a bug report.]\n")) + + ;; In cases where `function' has been fset to a + ;; subr we can't search for function's name in + ;; the doc string. Kluge round that using the + ;; printed representation. The arg list then + ;; shows the wrong function name, but that + ;; might be a useful hint. + (let* ((rep (prin1-to-string def)) + (name (progn + (string-match " \\([^ ]+\\)>$" rep) + (match-string 1 rep)))) + (if (looking-at (format "(%s[ )]" name)) + (let ((start (point-marker))) + (goto-char (point-min)) + (forward-paragraph) + (insert-buffer-substring (current-buffer) start) + (insert ?\n) + (delete-region (1- start) (point-max))) + (goto-char (point-min)) + (forward-paragraph) + (insert + "[Missing arglist. Please make a bug report.]\n"))) (goto-char (point-max)))) (help-setup-xref (list #'describe-function function) interactive-p))