Something about early, and often?

This page is a mirrored copy of an article originally posted on the LShift blog; see the archive index here.

Naturally, almost as soon as I’d posted about my extensions to pregexp, I discovered a bug in said extensions.

It was something I should have caught, too: in the code I had a constant (3) which I couldn’t explain. I had expected it to be 2, not 3, and the need for the extra increment wasn’t clear to me. Now that I’ve caught the bug, I know why the increment seemed to work: it was compensating for a missing end-of-stream detection in another place.

The revised patch to pregexp version 20050502 can be downloaded here.