Subject: bug#39972: 28.0.50; which-function no longer returning current Java method in Emacs 27

From: Alan Mackenzie <[email-masked]>
Date: Wed, 20 May 2020 19:13:03 +0000

Hello, Philipp.

On Sun, Mar 08, 2020 at 11:33:02 -0000, Alan Mackenzie wrote:
> In article <[email-masked]> you wrote:

> > Assume there's a file /tmp/Foo.java:

> > $ cat /tmp/Foo.java 
> > class Foo {
> >   void bar() {
> >     // body
> >   }
> > }

> > Emacs 26:

> > $ emacs -Q -batch -l which-func /tmp/Foo.java -eval '(progn
> > (search-forward "// body") (print (which-function)))'

> > "bar"

> > Emacs 27 pretest:

> > $ emacs -Q -batch -l which-func /tmp/Foo.java -eval '(progn
> > (search-forward "// body") (print (which-function)))'

> > "class Foo"

> > That is, Emacs 27 now prints the clas name instead of the method name.
> > I think the Emacs 26 behavior is preferrable.

[ .... ]

> I'll look more closely into this in the coming days.

I've committed two patches to savannah master which I hope have fixed
this.  One was to CC Mode, the other to lisp/progmodes/which-func.el.

Could you possibly try out these and let me know whether they have, in
fact, fixed the problem.  Thanks!

> > In GNU Emacs 28.0.50 (build 10, x86_64-pc-linux-gnu, GTK+ Version 3.24.12, cairo version 1.16.0)
> >  of 2020-02-25
> > Repository revision: 03c07c88d90b5747456b9d286bace2dd4a713aac
> > Repository branch: master
> > Windowing system distributor 'The X.Org Foundation', version 11.0.12004000
> > System Description: Debian GNU/Linux rodete

> [ .... ]

-- 
Alan Mackenzie (Nuremberg, Germany).