diff options
-rw-r--r-- | source4/build/pidl/Parse/Pidl/Util.pm | 35 | ||||
-rwxr-xr-x | source4/build/pidl/pidl | 63 |
2 files changed, 46 insertions, 52 deletions
diff --git a/source4/build/pidl/Parse/Pidl/Util.pm b/source4/build/pidl/Parse/Pidl/Util.pm index b98b7bca00..8854be9d74 100644 --- a/source4/build/pidl/Parse/Pidl/Util.pm +++ b/source4/build/pidl/Parse/Pidl/Util.pm @@ -53,41 +53,6 @@ sub FlattenHash($) } ##################################################################### -# return the modification time of a file -sub FileModtime($) -{ - my($filename) = shift; - return (stat($filename))[9]; -} - -##################################################################### -# read a file into a string -sub FileLoad($) -{ - my($filename) = shift; - local(*INPUTFILE); - open(INPUTFILE, $filename) || return undef; - my($saved_delim) = $/; - undef $/; - my($data) = <INPUTFILE>; - close(INPUTFILE); - $/ = $saved_delim; - return $data; -} - -##################################################################### -# write a string into a file -sub FileSave($$) -{ - my($filename) = shift; - my($v) = shift; - local(*FILE); - open(FILE, ">$filename") || die "can't open $filename"; - print FILE $v; - close(FILE); -} - -##################################################################### # a dumper wrapper to prevent dependence on the Data::Dumper module # unless we actually need it sub MyDumper($) diff --git a/source4/build/pidl/pidl b/source4/build/pidl/pidl index 99e5cbc076..699497549a 100755 --- a/source4/build/pidl/pidl +++ b/source4/build/pidl/pidl @@ -19,7 +19,7 @@ use Parse::Pidl::Util; sub SaveStructure($$) { my($filename,$v) = @_; - Parse::Pidl::Util::FileSave($filename, Parse::Pidl::Util::MyDumper($v)); + FileSave($filename, Parse::Pidl::Util::MyDumper($v)); } ##################################################################### @@ -27,11 +27,40 @@ sub SaveStructure($$) sub LoadStructure($) { my $f = shift; - my $contents = Parse::Pidl::Util::FileLoad($f); + my $contents = FileLoad($f); defined $contents || return undef; return eval "$contents"; } +##################################################################### +# read a file into a string +sub FileLoad($) +{ + my($filename) = shift; + local(*INPUTFILE); + open(INPUTFILE, $filename) || return undef; + my($saved_delim) = $/; + undef $/; + my($data) = <INPUTFILE>; + close(INPUTFILE); + $/ = $saved_delim; + return $data; +} + +##################################################################### +# write a string into a file +sub FileSave($$) +{ + my($filename) = shift; + my($v) = shift; + local(*FILE); + open(FILE, ">$filename") || die "can't open $filename"; + print FILE $v; + close(FILE); +} + + + my($opt_help) = 0; my($opt_parse) = 0; my($opt_dump) = 0; @@ -171,7 +200,7 @@ sub process_file($) if ($opt_diff) { my($tempfile) = "$outputdir/$basename.tmp"; - Parse::Pidl::Util::FileSave($tempfile, IdlDump::Dump($pidl)); + FileSave($tempfile, IdlDump::Dump($pidl)); system("diff -wu $idl_file $tempfile"); unlink($tempfile); } @@ -181,7 +210,7 @@ sub process_file($) my $res = Parse::Pidl::Samba::COM::Header::Parse($pidl); if ($res) { my $comh_filename = ($opt_com_header or "$outputdir/com_$basename.h"); - Parse::Pidl::Util::FileSave($comh_filename, + FileSave($comh_filename, "#include \"librpc/gen_ndr/ndr_orpc.h\"\n" . "#include \"$outputdir/ndr_$basename.h\"\n" . $res); @@ -194,7 +223,7 @@ sub process_file($) my $res = Parse::Pidl::Samba::COM::Proxy::Parse($pidl); if ($res) { my ($client) = ($opt_dcom_proxy or "$outputdir/$basename\_p.c"); - Parse::Pidl::Util::FileSave($client, + FileSave($client, "#include \"includes.h\"\n" . "#include \"$outputdir/com_$basename.h\"\n" . "#include \"lib/com/dcom/dcom.h\"\n" .$res); @@ -224,13 +253,13 @@ sub process_file($) if (defined($opt_header)) { my $header = ($opt_header or "$outputdir/$basename.h"); require Parse::Pidl::Samba::Header; - Parse::Pidl::Util::FileSave($header, Parse::Pidl::Samba::Header::Parse($pidl)); + FileSave($header, Parse::Pidl::Samba::Header::Parse($pidl)); } if (defined($opt_ndr_header)) { my $header = ($opt_ndr_header or "$outputdir/ndr_$basename.h"); require Parse::Pidl::Samba::NDR::Header; - Parse::Pidl::Util::FileSave($header, Parse::Pidl::Samba::NDR::Header::Parse($pidl, $basename)); + FileSave($header, Parse::Pidl::Samba::NDR::Header::Parse($pidl, $basename)); if (defined($opt_swig)) { require Parse::Pidl::Samba::SWIG; my($filename) = ($opt_swig or "$outputdir/$basename.i"); @@ -242,7 +271,7 @@ sub process_file($) require Parse::Pidl::Ethereal::NDR::Header; my($eparserhdr) = ($opt_eth_header or "$outputdir/packet-dcerpc-$basename.h"); - Parse::Pidl::Util::FileSave($eparserhdr, Parse::Pidl::Ethereal::NDR::Header::Parse($ndr)); + FileSave($eparserhdr, Parse::Pidl::Ethereal::NDR::Header::Parse($ndr)); } my $h_filename = "$outputdir/ndr_$basename.h"; @@ -250,15 +279,15 @@ sub process_file($) require Parse::Pidl::Samba::NDR::Client; my ($client) = ($opt_client or "$outputdir/ndr_$basename\_c.c"); - Parse::Pidl::Util::FileSave($client, Parse::Pidl::Samba::NDR::Client::Parse($ndr,$h_filename)); + FileSave($client, Parse::Pidl::Samba::NDR::Client::Parse($ndr,$h_filename)); } if (defined($opt_ejs)) { require Parse::Pidl::Samba::EJS; require Parse::Pidl::Samba::EJSHeader; - Parse::Pidl::Util::FileSave("$outputdir/ndr_$basename\_ejs.c", Parse::Pidl::Samba::EJS::Parse($ndr, $h_filename)); + FileSave("$outputdir/ndr_$basename\_ejs.c", Parse::Pidl::Samba::EJS::Parse($ndr, $h_filename)); - Parse::Pidl::Util::FileSave("$outputdir/ndr_$basename\_ejs.h", Parse::Pidl::Samba::EJSHeader::Parse($ndr)); + FileSave("$outputdir/ndr_$basename\_ejs.h", Parse::Pidl::Samba::EJSHeader::Parse($ndr)); } if (defined($opt_server)) { @@ -274,7 +303,7 @@ sub process_file($) } } - Parse::Pidl::Util::FileSave(($opt_server or "$outputdir/ndr_$basename\_s.c"), Parse::Pidl::Samba::NDR::Server::Parse($ndr,$h_filename)); + FileSave(($opt_server or "$outputdir/ndr_$basename\_s.c"), Parse::Pidl::Samba::NDR::Server::Parse($ndr,$h_filename)); if ($dcom ne "") { $dcom = " @@ -285,32 +314,32 @@ sub process_file($) $dcom "; - Parse::Pidl::Util::FileSave("$outputdir/$basename\_d.c", $dcom); + FileSave("$outputdir/$basename\_d.c", $dcom); } } if (defined($opt_ndr_parser)) { my $parser = ($opt_ndr_parser or "$outputdir/ndr_$basename.c"); require Parse::Pidl::Samba::NDR::Parser; - Parse::Pidl::Util::FileSave($parser, Parse::Pidl::Samba::NDR::Parser::Parse($ndr, $parser)); + FileSave($parser, Parse::Pidl::Samba::NDR::Parser::Parse($ndr, $parser)); } if (defined($opt_eth_parser)) { require Parse::Pidl::Ethereal::NDR::Parser; my($eparser) = ($opt_eth_parser or "$outputdir/packet-dcerpc-$basename.c"); - Parse::Pidl::Util::FileSave($eparser, Parse::Pidl::Ethereal::NDR::Parser::Parse($ndr, $basename, $eparser)); + FileSave($eparser, Parse::Pidl::Ethereal::NDR::Parser::Parse($ndr, $basename, $eparser)); } my $tdr_parser = ($opt_tdr_parser or "$outputdir/tdr_$basename.c"); my $tdr_header = ($opt_tdr_header or "$outputdir/tdr_$basename.h"); if (defined($opt_tdr_parser)) { require Parse::Pidl::Samba::TDR; - Parse::Pidl::Util::FileSave($tdr_parser, Parse::Pidl::Samba::TDR::Parser($pidl, $tdr_header)); + FileSave($tdr_parser, Parse::Pidl::Samba::TDR::Parser($pidl, $tdr_header)); } if (defined($opt_tdr_header)) { require Parse::Pidl::Samba::TDR; - Parse::Pidl::Util::FileSave($tdr_header, Parse::Pidl::Samba::TDR::Header($pidl, $outputdir)); + FileSave($tdr_header, Parse::Pidl::Samba::TDR::Header($pidl, $outputdir)); } if ($opt_template) { |