That condition might (??) want to be something like (perhaps also testing if the handle is: STD_INPUT_HANDLE):
if (!success || !buffer_max)
otherwise your find implementation hangs for me with:
echo abc def | find "abc"
Thanks for the notify, I'll look into it. I might have overlooked an edge case.
Regards, Fabian Maurer