GNU bug report logs -
#36157
27.0.50; ediff-files does not work after lexical-binding was enabled for ediff
Previous Next
Reported by: Kaushal Modi <kaushal.modi <at> gmail.com>
Date: Mon, 10 Jun 2019 03:13:01 UTC
Severity: important
Merged with 36281
Found in version 27.0.50
Done: Glenn Morris <rgm <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
Message #23 received at 36157 <at> debbugs.gnu.org (full text, mbox):
On Mon 10 Jun 2019 at 21:26, Richard Stallman <rms <at> gnu.org> wrote:
> > If you look at the code of ediff-find-file, you will see the use of
> > `symbol-value' everywhere.
>
> Which variables would this operate on?
I'm not 100% sure what you're asking here, but ediff uses variables to
store information and then passes those to functions. So in one function
it'll do something like this:
(setq file-A "/path/to/foo.el")
(setq buff-A (get-buffer-create "foo.el"))
(ediff-find-file file-A buff-A)
And then ediff-find-file uses (symbol-value 'file-A) to get the string
back. This breaks under lexical binding since the file-A argument
shadows the file-A global value.
I think it would be relatively easy to fix by just passing the values
themselves, but that'll break backwards compatibility if people outside
Emacs are relying on calling ediff functions this way.
Hope that clears things up,
Alex
This bug report was last modified 5 years and 342 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.