#!/sw/bin/perl
#
#   unrequire -- recursive filter to substitute each Perl
#                'require' command with the contents of the file
#   Copyright (c) Ralf S. Engelschall, <rse@en.muc.de>
#
#   Usage: 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]);

