all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Katsumi Yamaoka <yamaoka@jpl.org>
To: martin rudalics <rudalics@gmx.at>
Cc: emacs-devel@gnu.org
Subject: Re: `C-h f' doesn't show file where function comes from
Date: Mon, 08 Sep 2008 09:13:30 +0900	[thread overview]
Message-ID: <b4m7i9n5wb9.fsf@jpl.org> (raw)
In-Reply-To: 48C275F3.2050201@gmx.at

>>>>> martin rudalics wrote:

> It _may_ relate to where you install Emacs.

I found out the cause of the problem.  It relates to whether
Emacs is installed or not.  That `Emacs is *not* installed' means
that a user built Emacs in the source tree and uses it there.
In that case all the .el files are not gzipped.

> The behavior you observe might be related to my recent changes.  Could
> you please try to edebug the function `find-lisp-object-file-name' in
> help-fns.el and find out why it fails to return an absolute filename for
> your settings.

With Emacs that is started with `emacs -Q -l wid-edit', the form

(find-lisp-object-file-name 'widget-button-press
			    (symbol-function 'widget-button-press))

returns nil, even though the result of the form
(symbol-function 'widget-button-press) contains the real .elc file
name:

#[(pos &optional event)
 ("/usr/local/share/emacs/23.0.60/lisp/wid-edit.elc" . 29635)
 nil 4
 ("/usr/local/share/emacs/23.0.60/lisp/wid-edit.elc" . 29551) "@d"]

In my case the source file is:

/usr/local/share/emacs/23.0.60/lisp/wid-edit.el.gz

Gzipping .el files is done by default when installing Emacs.
However, `find-lisp-object-file-name' looks for only wid-edit.el.
Here is a patch:

--8<---------------cut here---------------start------------->8---
--- help-fns.el~	2008-09-01 21:41:33 +0000
+++ help-fns.el	2008-09-08 00:01:27 +0000
@@ -295,7 +295,9 @@
 	;; When the Elisp source file can be found in the install
 	;; directory return the name of that file - `file-name' should
 	;; have become an absolute file name ny now.
-	(and (file-readable-p lib-name) lib-name)))
+	(or (and (file-readable-p lib-name) lib-name)
+	    (and (file-readable-p (concat lib-name ".gz"))
+		 (concat lib-name ".gz")))))
      ((let* ((lib-name (file-name-nondirectory file-name))
 	     ;; The next form is from `describe-simplify-lib-file-name'.
 	     (file-name
--8<---------------cut here---------------end--------------->8---

With this patch `C-h f widget-button-press RET' shows the file
name properly as follows:

--8<---------------cut here---------------start------------->8---
widget-button-press is an interactive compiled Lisp function in
`/local/share/emacs/23.0.60/lisp/wid-edit.el.gz'.


(widget-button-press pos &optional event)

Invoke button at pos.

[back]
--8<---------------cut here---------------end--------------->8---

The newlines under the file name seem to be too many, though.

Regards,




  reply	other threads:[~2008-09-08  0:13 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-05  0:57 `C-h f' doesn't show file where function comes from Katsumi Yamaoka
2008-09-05  1:04 ` Francis Litterio
2008-09-05  7:23 ` martin rudalics
2008-09-05  8:02   ` Katsumi Yamaoka
2008-09-05  8:17     ` martin rudalics
2008-09-05 12:25       ` Katsumi Yamaoka
2008-09-06 12:22         ` martin rudalics
2008-09-08  0:13           ` Katsumi Yamaoka [this message]
2008-09-08  0:31             ` Katsumi Yamaoka
2008-09-08  6:55               ` martin rudalics
2008-09-08  6:55             ` martin rudalics
2008-09-08  8:39               ` Katsumi Yamaoka

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b4m7i9n5wb9.fsf@jpl.org \
    --to=yamaoka@jpl.org \
    --cc=emacs-devel@gnu.org \
    --cc=rudalics@gmx.at \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.