+++ /dev/null
-#!/usr/bin/perl
-#
-use strict;
-use FileHandle;
-
-\f
-
-sub process_refile {
- my $fn = shift;
-
- my $re;
- print STDERR "Opening $fn\n";
- my $fh = FileHandle->new($fn, 'r') || die $!;
- while (<$fh>) {
- chomp();
- # process includes
- if (/^\#include\s/) {
- my($junk, $nfn) = split;
- $re .= process_refile($nfn);
- next;
- }
- # ignore comments starting at the begining of the line
- next if (/^\#/);
- # dispose of comments with their leading spaces
- s/\s+\#.*$//;
- # recode \" -> "
- s/\\\"/\"/g;
- # double all \ (twice)
- s/\\/\\\\/g;
- s/\\/\\\\/g;
- # escape " again
- s/\"/\\\"/g;
- # remove all space
- s/\s+//g;
- # add to re
- $re .= $_;
- }
- return $re;
-}
-
-\f
-
-sub process_recfile {
- my $fn = shift;
-
- my $re;
- print STDERR "Opening $fn\n";
- my $fh = FileHandle->new($fn, 'r') || die $!;
- while (<$fh>) {
- chomp();
- # process includes
- if (/^\#include\s/) {
- my($junk, $nfn) = split;
- $re .= process_recfile($nfn);
- next;
- }
- # skip comment only and blank lines
- next if (/^\#/);
- next if (/^\s*$/);
- $re .= "#\t$_\n";
- }
- return $re;
-}
-
-\f
-
-# main
-{
- while(<>) {
- s/\[\[([a-z0-9_]+)\]\]/process_refile($1)/ge;
- s/\[\<([a-z0-9_]+)\>\]/process_recfile($1)/ge;
- print;
- }
-}