[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#6388: Should not match data be set on misses?
From: |
Lennart Borgman |
Subject: |
bug#6388: Should not match data be set on misses? |
Date: |
Thu, 10 Jun 2010 15:35:17 +0200 |
On Thu, Jun 10, 2010 at 3:04 PM, Stefan Monnier
<monnier@iro.umontreal.ca> wrote:
>> I'm closing this bug report because the ELisp manual explicitly
>> documents the current behavior:
>
>> Every successful search sets the match data. Therefore, you should
>> query the match data immediately after searching, before calling any
>> other function that might perform another search. Alternatively, you
>> may save and restore the match data (*note Saving Match Data::) around
>> the call to functions that could perform another search.
>
>> A search which fails may or may not alter the match data. In the
>> past, a failing search did not do this, but we may change it in the
>> future. So don't try to rely on the value of the match data after a
>> failing search.
>
>> Patches welcome to "change this in the future" (unless Stefan or
>> Yidong object to such a change).
>
> Yes, there was a long discussion about this a few years ago.
Sorry, forgot.
> The main
> obstacle to such a change are:
> - it breaks some code.
Aka it makes some bugs (bad assumptions) surface. That is not always bad.
> - it is not tremendously useful.
But it is probably what a user/programmer normally expects.
> - it is difficult to detect code that relies on the current behavior
> (so it's difficult to output a warning to help in the migration).
> The current behavior is not tremendously useful either, of course, but
> it has the advantage of being what we've used for many years.
Yes, that is true. However the current behavior probably wastes a lot
of time for those unaware of it.