Some time ago you reported a bug that stale match data was being
preserved. It turns out that the cases in question involved a match
that failed and returned nil.
I agree that according to existing documentation code should expect
that match data be cleared in this case, but a patch to fix the
behvaior resulted in a rash of "wrong-type-argument integerp, nil"
errors as `match-beginning' etc started returning nil instead of stale
match data. This led me to some very plausible code (cf. the function
`w3-configuration-data' in w3/w3-cfg.el) which expects the match data
to be preserved. Furthermore, this code cannot use `save-match', and
use of `match-data' and `store-match-data' would be extremely clumsy,
at best. There appears to be a fair amount of it; there are a number
of different bugs being reported that seem to be related to this
change.
So I'm going to revert the fix at least temporarily. (The fix has not
yet been applied to 21.4; this discussion applies only to 21.5 for
now.)
Did you have a specific use for having the match data cleared? Would
you describe it? Is there a practical reason why using
`(store-match-data nil)' to clear the match data would be
unacceptable? (Aside from the fact that clearing the match data that
way looks to be a memory leak :-p, but I will fix that.)
Thanks for your help.
--
Institute of Policy and Planning Sciences
http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Ask not how you can "do" free software business;
ask what your business can "do for" free software.