emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Unbalanced change hooks (part 2) [Documentation fix still remaining]


From: Stefan Monnier
Subject: Re: Unbalanced change hooks (part 2) [Documentation fix still remaining]
Date: Wed, 10 Aug 2016 12:11:21 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux)

>> > AFAICT, this is what happens, indeed,
>> Then the old text was right: it's called before ANY modification.
> Convince Alan, and I will change it back.
>> > except that the call to before-change-functions in some cases does not
>> > precede the first modification of the series.  IOW, by the time the
>> > hook is called, some modifications were already done.
>> Sounds like a bug.
> I'm not convinced it's a bug.

before-change-functions should be called *before* a
change occurs.  If there is a call to b-c-f before the first
modification, and then another call before the second modification in
that series, then it's OK (assuming the BEG/END values are sufficiently
large in each call to cover the changes that occur before the next call).

But if a change occurs without having been "announced" by an earlier
b-c-f then it's a bug.

>> In any case, my point is that the doc should still say "before any
>> modification" because that's really what the code *should* do.  We could
>> add a blurb in the doc saying that the before and after hooks may not be
>> properly paired (neither in number of calls nor in the specific value of
>> BEG/END), but we should still claim that they're both called for any and
>> all modifications
> Which is inaccurate when modifications are done in several separate
> parts, and you already agreed it's okay to call the hooks only once.
> So "for any and all modifications" is bound to draw fire from people
> who take that at face value.

They're free to misunderstand it, I'm fine with it.  But saying it's
called for "most" implies that there are changes where b-c-f is simply
not called at all, which would break uses such as syntax-ppss's.


        Stefan



reply via email to

[Prev in Thread] Current Thread [Next in Thread]