--- Begin Message ---
Subject: |
25.0.95.3: c-beginning-of-defun misbehaviour |
Date: |
Wed, 22 Jun 2016 02:19:21 +0200 |
The same in 24.5 and 25.0.95.3:
emacs -Q
Open some random emtpy buffer foo.c, put it in c-mode (M-x c-mode) and
insert the following C code:
#define DBG(x) x
DBG(
static void __dbgAttr () {
/* something */
}
)
int main (void)
{
int i;
i++;
i++;
return i;
}
int foo ()
{
int i;
i++;
i++;
return 1;
}
Put the point inside function main and C-M-home (or M-x
c-beginning-of-defun). Instead of the beginning of main() the point is
here:
_P_DBG(
...
Far away from
_P_int main(void)
...
This isn't "unbalanced braces in preprocessor statements are
horrendously difficult to parse" as in bug #23775, there are no
unbalanced braces everywhere. It's that some code above the code of a
syntactical correct function disturbs c-beginning-of-defun in finding
the beginning of the function.
Put the point into or at the end of function foo, do C-M-home and you
are at the beginning of function foo. Do C-M-home again, and you are not
at the beginning of main, but of the beginning of DBG.
Remove the DBG(). Now C-M-home works, even if the point is inside or the
end of main().
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#23818: 25.0.95.3: c-beginning-of-defun misbehaviour |
Date: |
Sun, 13 Aug 2017 13:17:18 +0000 |
User-agent: |
Mutt/1.7.2 (2016-11-26) |
Hello, Rolf
On Tue, Aug 08, 2017 at 23:42:36 +0200, Rolf Ade wrote:
> Hi Alan,
> while searching for something else I saw it bug is still open. It's
> fixed and good, but just not closed. (Somehow, the following exchanges
> about this bug landed in bug#23775.) Clean up and mark as done.
Yes, there was a bit of confusion back then. Sorry about that.
With this Email, I'm closing bug #23818. Thanks for the reminder.
> rolf
--
Alan Mackenzie (Nuremberg, Germany).
--- End Message ---