Subject: Re: bug#49629: 27.2; electric-pair-mode doesn't work for angle brackets in HTML file

From: Allen Li <[email-masked]>
Date: Sun, 26 Jun 2022 01:41:49 -0700

On Thu, Dec 9, 2021 at 2:31 AM Allen Li <[email-masked]> wrote:

> I have bisected this regression to 7fff418edf56244a1fcf54718523aa9b5cb3a854
>
> I will cc Stefan on the miniscule chance he still remembers anything about
> this and can save me time.
> Otherwise, I will see if I can pinpoint the regression (or if I messed up
> the bisect).
>

Posting an update (or non-update) on this.  This regression did seem to be
introduced by 7fff418edf56244a1fcf54718523aa9b5cb3a854, however I'm pretty
sure there's nothing wrong with the commit itself, it's just that jiggling
the code around made this regression reliably occur.

>
> Author: Stefan Monnier <[email-masked]>
> Date:   Fri Nov 29 11:51:48 2019 -0500
>     * lisp/textmodes/mhtml-mode.el: Fix bug#38372
>
>     The `sgml-syntax-propertize-rules` rely on the
> `sgml--syntax-propertize-ppss`
>     setup by `sgml-syntax-propertize` so it is not correct/safe to use
>     them directly like html used to do.
>
>     Change `sgml-syntax-propertize` so it can be used by mhtml,
>     and then adjust mhtml-mode accordingly.
>
>     * lisp/textmodes/mhtml-mode.el: Remove redundant `eval-and-compile`.
>     Only require cl-lib at compile-time.
>     (mhtml--syntax-propertize): New const, extracted from
> mhtml-syntax-propertize.
>     (mhtml-syntax-propertize): Use `sgml-syntax-propertize`.
>
>     * lisp/textmodes/sgml-mode.el (sgml--syntax-propertize): New const,
>     extracted from sgml-syntax-propertize.
>     (sgml-syntax-propertize): Add optional `rules-function` arg.
>  lisp/textmodes/mhtml-mode.el | 44
> ++++++++++++++++++++------------------------
>  lisp/textmodes/sgml-mode.el  | 13 ++++++++-----
>  2 files changed, 28 insertions(+), 29 deletions(-)
>
> On Sun, Aug 1, 2021 at 10:41 AM Lars Ingebrigtsen <[email-masked]> wrote:
>
>> Allen Li <[email-masked]> writes:
>>
>> > Thus, I resorted to actually trying to understand the code.
>>
>> Darn, I hate it when that happens.
>>
>> > I've tracked down the bug to unexpected behavior from the `scan-sexps`
>> > call in this part of `electric-pair--balance-info`:
>>
>> I can reproduce exactly what you're seeing -- when edebugging, the
>> problem goes away, etc.
>>
>> I put a
>>
>>               (redisplay t)
>>
>> into the function, and that also made the problem go away, but that's as
>> far as I've gotten so far.  So the problem does indeed seem to be
>> something related to a cache/table somewhere not having been updated...
>>
>> --
>> (domestic pets only, the antidote for overdose, milk.)
>>    bloggy blog: http://lars.ingebrigtsen.no
>>
>