Subject: bug#11749: Acknowledgement (24.1; C-mode indentation gives wrong-type-argument error.)

From: Alan Mackenzie <[email-masked]>
Date: Sat, 8 Sep 2012 21:14:51 +0000

Hello again, Michael!

On Thu, Sep 06, 2012 at 11:45:48PM -0400, Michael Welsh Duggan wrote:
> Alan Mackenzie <[email-masked]> writes:

> > Hello, Kim.

> > On Mon, Sep 03, 2012 at 11:47:00AM +0200, Kim Storm wrote:
> >> On 2012-09-02 23:16, Alan Mackenzie wrote:
> >> > Yes. It looks like the "state cache" (a cache of certain brace, paren 
> >> > and bracket positions) has got corrupted.
> >> > This is difficult to make repeatable, and is very dependent upon the 
> >> > exact navigation taken around the C buffer.
> >> Well - my navigation triggers that bug a lot.

> > It's strange that it doesn't seem to be happening much to other people.

> It happens to me irregularly.

Once a week?  Once a day?  Is it associated with buffer changes, or does
it just happen?

> There is generally no way to re-create it, so I've stopped reporting
> these.  I wish there were some way to record all actions in c-mode
> buffers such that they could be saved and re-played when this type of
> problem happens.  If there were some sort of debug flag I could turn
> on, I would turn it on by default and hopefully be able to catch some
> useful information.

M-x c-toggle-parse-state-debug

(or (c-toggle-parse-state-debug 1) in your .emacs).  Warning: variable
`c-debug-parse-state' is not buffer local.  I wrote this on 19th October
last year to help sort out the bug you reported a little earlier.  :-)

It works by calculating c-parse-state twice for each call - The first
time normally, then again with the internal state bound to "newly
initialised".  If the the two results differ, they are printed to
*Messages*, together with the saved previous state.  If this does
trigger, please note any recent buffer changes.  It may make editing
intolerably slow.

Kim, would you please try this out on a buffer you could actually send to
me.  Thanks!

> -- 
> Michael Welsh Duggan
> ([email-masked])

-- 
Alan Mackenzie (Nuremberg, Germany).