When the patch command doesn't find the file to patch, it asks for a filename.
Is there any way to get this to use tab complete?
rlwrap tries do add readline functionality to commands that lack it. There exists a couple of alternatives to rlwrap. If you're a zsh user, you may also have a look at Using zsh's line editor to wrap around subprocesses and at