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.
