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,
next prev parent 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.