Some patches may include one or more file paths as part of the binary header when there is no binary data. Git accounts for this by only checking the prefix and suffix of the line, but I missed that logic when implementing this originally.
The tests were already split up in this way, so it makes sense to have the parsing functions split as well.