Handle include files. This patch is based on input from David Li but I have made a number of changes. This code handles all the testcases I have created. Submitted by: David Li <david@digitalsesame.com>