GNU bug report logs - #32403
27.0.50; cc mode: c-display-defun-name doesn't work when return type is a pointer

Previous Next

Packages: cc-mode, emacs;

Reported by: Mauro Aranda <maurooaranda <at> gmail.com>

Date: Wed, 8 Aug 2018 20:43:01 UTC

Severity: normal

Found in version 27.0.50

Done: Alan Mackenzie <acm <at> muc.de>

Bug is archived. No further changes may be made.

Full log


Message #17 received at 32403 <at> debbugs.gnu.org (full text, mbox):

From: Mauro Aranda <maurooaranda <at> gmail.com>
To: Alan Mackenzie <acm <at> muc.de>
Cc: 32403 <at> debbugs.gnu.org, Eli Zaretskii <eliz <at> gnu.org>
Subject: Re: bug#32403: 27.0.50; cc mode: c-display-defun-name doesn't work
 when return type is a pointer
Date: Sun, 26 Aug 2018 11:40:38 -0300
[Message part 1 (text/plain, inline)]
Hi Alan,

The fix works great.  Thank you!



2018-08-26 8:25 GMT-03:00 Alan Mackenzie <acm <at> muc.de>:

> Hello, Mauro, hello, Eli.
>
> On Fri, Aug 17, 2018 at 20:37:07 +0000, Alan Mackenzie wrote:
> > On Fri, Aug 17, 2018 at 12:24:50 +0300, Eli Zaretskii wrote:
> > > > From: Mauro Aranda <maurooaranda <at> gmail.com>
> > > > Date: Wed, 8 Aug 2018 17:18:58 -0300
>
> > > > Hello. I'm sending this report here because I tested in GNU Emacs
> 26.1.50 and the problem is not present. If
> > > > it belongs to the CC Mode mailing list, please let me know.
>
> > > > I run: emacs -Q and visit a C file.
>
> > > > Inside a function that doesn't return a pointer,
> c-display-defun-name works just fine. Example:
>
> > > > int
> > > > dummy_returnint(int ret)
> > > > {
> > > >   return ret;
> > > > }
>
> > > > Minibuffer displays: dummy_returnint
>
> > > > But when the function returns a pointer, c-display-defun-name fails
> to display the function name in the
> > > > minibuffer. Example:
>
> > > > int *
> > > > dummy_returnpointertoint(int *ret)
> > > > {
> > > >   return ret;
> > > > }
>
> > > > Minibuffer displays nothing
>
> > > Confirmed.  Alan, could you please take a look at this?
>
> > Yes, certainly.  I've worked out a patch for Mauro's failure case (with
> > the function's type being a pointer).
>
> > Additionally, I've found a couple of edge cases which currently aren't
> > working right:
>
> >     struct foo bar = {0, 0};
>
> > returns "struct foo" on C-c C-z.  It ought to return "bar";
>
> >     struct foo {int a; int b} bar = {0, 0};
>
> > also ought to return "bar".
>
> > It shouldn't be too much work to fix these two, too.  I hope to have this
> > done by tomorrow (European time) or, at the latest, on Sunday.
>
> I've committed a fix for this to master.  It was a bit trickier than I'd
> anticipated.
>
> Mauro, would you please test the fix with your real source code and
> either confirm to me that the problem has indeed been fixed, or tell me
> where it's still failing.  Thanks!
>
> --
> Alan Mackenzie (Nuremberg, Germany).
>
[Message part 2 (text/html, inline)]

This bug report was last modified 6 years and 271 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.