While porting the regex code to 64-bit hosts I noticed an infelicity. The code uses the equivalent of "if (A == B) A += C - B;"; it would be simpler and faster to use "if (A == B) A = C;". This also happens to make the later changes simpler, but I thought I'd separate it out since it makes sense regardless of the 64-bit changes. I'll attach a patch.
Created attachment 634 [details] simplify update of rm_se, rm_eo
The 64-bit portability part is bogus but the optimization is of course valid. Although the compiler already performs it.