Hello!
I verified that the patch works, but I have one concern:
> I didn't check for the end of the
> string because that check is already handled in the block above when
> checking for escape characters.
The code isn't easy to reason about like this, it relies on specific
details of the outer loop, which was only mentioned in the email
itself.
This should be also explained in a comment and the commit message, or
maybe instead of the current way, the loop could work similarly like
how another loop uses an afterescape flag in do_like_escape (in the
same file), that form seems less fragile.