filterdiff -z -i '*/lp.c' patch-2.4.3.gz
If neither -i nor -x options are given, -i '*' is assumed. This way filterdiff can be used to clean up an existing diff file, removing redundant lines from the beginning (eg. the text from the mail body) or between the chunks (eg. in CVS diffs). To extract pure patch data, use a command like this:
filterdiff message-with-diff-in-the-body > patch
Note that the interpretation of the shell wildcard pattern does not count slash characters or periods as special (in other words, no flags are given to fnmatch). This is so that lq*/basenamerq-type patterns can be given without limiting the number of pathname components.
You can use both unified and context format diffs with this program.