Subject: Re: bug#16526: 24.3.50; scroll-conservatively & c-mode regression

From: Alan Mackenzie <[email-masked]>
Date: Sun, 6 Jul 2014 13:48:40 +0000

Hello, Stefan.

On Fri, Jul 04, 2014 at 10:23:07PM -0400, Stefan Monnier wrote:
> > OK, the initialization needs to be after the "lossage:" label,
> > of course.  Try the patch below instead,

> Well, I installed the patch since it does speed up my test case
> noticeably (M-> followed by <prior> <prior> in src/xdisp.c).

Excellent!

Hello, Martin, how far does this patch go, from your point of view, in
solving the sluggishness in xdisp.c?

> I do have a question about open-paren-in-column-0-is-defun-start: why do
> you let-bind it at various places instead of setting it buffer-locally
> once and for all.

Misunderstanding/lack of documentation.  My aim was to restrict the
effect of binding open-paren-etc to nil to its supposed "subsidiary"
effects in scan-lists, leaving the "main" higher level effects
unchanged from the user's setting (or lack thereof).

> I see you had such a buffer-local setting but that you commented it out
> in 2006/12/17.  Do you remember what was the reason for it?

I've had a look at the thread "Mysterious fontification/C++ context
issue - Patch for beginning-of-defun-raw." in emacs-devel which started
around 2006-12-04.  It's long and rambling and most of the posts are
heavily context dependent, making it difficult to follow.

> >>From my naive point of view a buffer-local setting would not only be
> simpler but would also be better for the user who could more easily set
> it back to non-nil if she wanted to.

How about going back to Martin's suggestion, and letting the user decide
on the variable's setting?  Trouble is, open-paren-etc's system-wide
default is t, whereas here it really wants to be nil - parens which just
happen to be in column 0 are not that uncommon.  The crude way would be
to introduce c-open-paren-in-column-0-is-defun-start, but this has
problems of its own.  How, in general, can we cleanly give a user option
a mode specific default?

>         Stefan

-- 
Alan Mackenzie (Nuremberg, Germany).