diff options
author | Andrew Tridgell <tridge@samba.org> | 2003-12-07 23:47:35 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2003-12-07 23:47:35 +0000 |
commit | daeffe3f11f4cf2eabb7ab101e0597de005aa165 (patch) | |
tree | 29e6e706b02bd0335445e9a14e7071e7e65b2988 /source4 | |
parent | dbf4b65d49f2ac0e99aa4ebf60bb062911012e43 (diff) | |
download | samba-daeffe3f11f4cf2eabb7ab101e0597de005aa165.tar.gz samba-daeffe3f11f4cf2eabb7ab101e0597de005aa165.tar.bz2 samba-daeffe3f11f4cf2eabb7ab101e0597de005aa165.zip |
don't save the intermediate form to disk unless we need to
(This used to be commit 4e1a5a21a4c8da0d2a23d5ba02168eac1987c260)
Diffstat (limited to 'source4')
-rwxr-xr-x | source4/build/pidl/pidl.pl | 33 |
1 files changed, 14 insertions, 19 deletions
diff --git a/source4/build/pidl/pidl.pl b/source4/build/pidl/pidl.pl index 4e79eb92f6..30dcde929a 100755 --- a/source4/build/pidl/pidl.pl +++ b/source4/build/pidl/pidl.pl @@ -90,6 +90,7 @@ sub process_file($) { my $idl_file = shift; my $output; + my $pidl; my $basename = basename($idl_file, ".idl"); @@ -104,47 +105,41 @@ sub process_file($) print "Compiling $idl_file\n"; if ($opt_parse) { - my($idl) = IdlParse($idl_file); - defined $idl || die "Failed to parse $idl_file"; - util::SaveStructure($pidl_file, $idl) || die "Failed to save $pidl_file"; - - IdlValidator::Validate($idl); + $pidl = IdlParse($idl_file); + defined $pidl || die "Failed to parse $idl_file"; + IdlValidator::Validate($pidl); + if ($opt_keep && !util::SaveStructure($pidl_file, $pidl)) { + die "Failed to save $pidl_file\n"; + } + } else { + $pidl = util::LoadStructure($pidl_file); } if ($opt_dump) { - my($idl) = util::LoadStructure($pidl_file); - print IdlDump::Dump($idl); + print IdlDump::Dump($pidl); } if ($opt_header) { - my($idl) = util::LoadStructure($pidl_file); my($header) = util::ChangeExtension($output, "h"); - util::FileSave($header, IdlHeader::Parse($idl)); + util::FileSave($header, IdlHeader::Parse($pidl)); } if ($opt_parser) { - my($idl) = util::LoadStructure($pidl_file); my($parser) = util::ChangeExtension($output, "c"); - IdlParser::Parse($idl, $parser); + IdlParser::Parse($pidl, $parser); } if ($opt_eparser) { - my($idl) = util::LoadStructure($pidl_file); my($parser) = util::ChangeExtension($output, "c"); - util::FileSave($parser, IdlEParser::Parse($idl)); + util::FileSave($parser, IdlEParser::Parse($pidl)); } if ($opt_diff) { - my($idl) = util::LoadStructure($pidl_file); my($tempfile) = util::ChangeExtension($output, "tmp"); - util::FileSave($tempfile, IdlDump::Dump($idl)); + util::FileSave($tempfile, IdlDump::Dump($pidl)); system("diff -wu $idl_file $tempfile"); unlink($tempfile); } - - if (!$opt_keep) { - system("rm -f $pidl_file"); - } } |