* bug#74504: 31.0.50; Wrong source directory in *Help*
@ 2024-11-24 7:12 Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-25 23:26 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 2+ messages in thread
From: Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-11-24 7:12 UTC (permalink / raw)
To: 74504; +Cc: Stefan Monnier
Hi,
I think that commit e807d62c leads to the following regression:
1. Build Emacs
2. Run src/emacs -Q
3. In the *scratch* buffer say M-x cd /tmp
(/tmp here is just an arbitrary directory that is not the Emacs
sources directory)
4. C-h f make-overlay
Now the first line in the *Help* buffer says:
"make-overlay is a primitive-function in ‘C source code’."
So far so good.
5. Switch to the *Help* buffer and type s, this finds buffer.c
6. Switch back to the *Help* buffer and type g
The first line in *Help* now says:
"make-overlay is a primitive-function in ‘/tmp/src/buffer.c’."
^^^^^ <-- Wrong!
Note that the reported file name starts with whatever default-directory
happens to be in the *Help* buffer, which is incorrect. Before commit
e807d62c, we'd get a file name relative to source-directory, so just
src/buffer.c in this case.
Best,
Eshel
^ permalink raw reply [flat|nested] 2+ messages in thread
* bug#74504: 31.0.50; Wrong source directory in *Help*
2024-11-24 7:12 bug#74504: 31.0.50; Wrong source directory in *Help* Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-11-25 23:26 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 0 replies; 2+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-11-25 23:26 UTC (permalink / raw)
To: Eshel Yaron; +Cc: 74504
> 1. Build Emacs
> 2. Run src/emacs -Q
> 3. In the *scratch* buffer say M-x cd /tmp
> (/tmp here is just an arbitrary directory that is not the Emacs
> sources directory)
> 4. C-h f make-overlay
> Now the first line in the *Help* buffer says:
> "make-overlay is a primitive-function in ‘C source code’."
> So far so good.
> 5. Switch to the *Help* buffer and type s, this finds buffer.c
> 6. Switch back to the *Help* buffer and type g
> The first line in *Help* now says:
> "make-overlay is a primitive-function in ‘/tmp/src/buffer.c’."
> ^^^^^ <-- Wrong!
Hmm... my code assumed the file was always absolute, but apparently
that's not always the case.
The patch below seems to give us back the previous behavior, but maybe
we should change some other part of the code so
`help-fns-short-filename` is not used at all for the C sources (since
it's specifically trying to give a name relative to `load-path`, which
is nonsensical for our C files).
Stefan
diff --git a/lisp/help-fns.el b/lisp/help-fns.el
index c87c86bae84..266cf8eb4a9 100644
--- a/lisp/help-fns.el
+++ b/lisp/help-fns.el
@@ -1052,7 +1052,8 @@ help-fns--radix-trees
"Cache of radix-tree representation of `load-path'.")
(defun help-fns--filename (file)
- (let ((f (abbreviate-file-name (expand-file-name file))))
+ (let ((f (abbreviate-file-name
+ (if (file-name-absolute-p file) (expand-file-name file) file))))
(if (file-name-case-insensitive-p f) (downcase f) f)))
(defun help-fns--radix-tree (dirs)
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-11-25 23:26 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-24 7:12 bug#74504: 31.0.50; Wrong source directory in *Help* Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-25 23:26 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).