#!/usr/bin/perl -w
# This script converts #pragma once into 
# the appropriate #ifndef ... #define ... #endif sequence.

@infiles = @ARGV;

# Read whole files at once
undef $/;

foreach(@infiles) {
    if(! -d $_) {
	# Don't try directories
	$f = $_;

	print "scanning $f ...";
	
	open(F, $f);
	$body = <F>;
	close(F);

	if($body =~ /\#pragma once/) {

	    print " found #pragma once...";

	    $oldbody = $body;

	    $id = "__$f"."__";
	    $id =~ tr/[a-z]/[A-Z]/;
	    $id =~ tr/./_/;

	    $body =~ s/\#pragma once/\#ifndef $id\r\n\#define $id/;
	    $body .= "\r\n\r\n#endif\r\n\r\n";

	    open(F, ">$f.pragma");
	    print F $oldbody;
	    close(F);

	    print " wrote backup $f.pragma...";

	    open(F, ">$f");
	    print F $body;
	    close(F);

	    print " wrote $f";

	}

	print "\n";
    }
}

