##
##  unrequire -- recursive filter to substitute each Perl
##               'require' command with the contents of the file
##  Copyright (c) 1994-1999 Ralf S. Engelschall, <rse@engelschall.com>
##
##  Usage: perl unrequire file.pl >file
##

sub ProcessFile {
    local ($file) = @_[0];

    open($file, "<$file");
    while(<$file>) {
        #   include a file
        if (m|^(.*)require[ \"\(]+([^ \"\(]+)[ \"\)]+;(.*)$|) {
            print $1;
            &ProcessFile($2);
            print $3;
            break;
        }
        #   remove a require result code
        if (m|^1;$|) {
            next;
        }
        print;
    }
    close($file);
}

&ProcessFile($ARGV[0]);

