> This is caused by commit 63588775fcb, so Cc-ing Stefan.
>
> But probably this commit just exposed the problem
> that existed before?

I think you're on to something.

> => (error "Match data clobbered by buffer modification hooks")

This comes from

    if (search_regs.num_regs != num_regs)
      error ("Match data clobbered by buffer modification hooks");

But this test is not doing what it is intended to do: it doesn't check
whether the match data has changed.  It just checks whether the size of
the arrays we have allocated to hold the match data has changed.

I got to that conclusion after narrowing down the origin of the error
and finding out that the problem is that `search_regs.num_regs` is set
to 13 before the first call to `wdired--restore-properties` but to
23 afterwards.

We should probably use something like

    ptrdiff_t
    search_regs_last_reg (void)
    {
      ptrdiff_t i = search_regs.num_regs - 1;
      while (i >= 0 && search_regs.start[i] < 0)
        i--;
      return i;
    }

instead of `search_regs.num_regs`.


        Stefan




  • bug#73018:... Madhu
  • bug#73018:... Juri Linkov
    • bug#7... Bug reports for GNU Emacs, the Swiss army knife of text editors
      • b... Bug reports for GNU Emacs, the Swiss army knife of text editors
        • ... Juri Linkov
        • ... Bug reports for GNU Emacs, the Swiss army knife of text editors
        • ... Juri Linkov
        • ... Bug reports for GNU Emacs, the Swiss army knife of text editors
        • ... Juri Linkov
        • ... Juri Linkov
        • ... Bug reports for GNU Emacs, the Swiss army knife of text editors
        • ... Bug reports for GNU Emacs, the Swiss army knife of text editors

Reply via email to