my ($fh,$data,$f) = @_;
my $incodeblock = 0;
+ my $inheaderblock = 0;
my $ln = 0;
s/[\r\n]//g;
if ($_ eq "CODE START") {
+ if ($incodeblock) {
+ warning({ FILE => $f, LINE => $ln },
+ "CODE START inside CODE section");
+ }
+ if ($inheaderblock) {
+ error({ FILE => $f, LINE => $ln },
+ "CODE START inside HEADER section");
+ return undef;
+ }
$incodeblock = 1;
next;
- } elsif ($incodeblock and $_ eq "CODE END") {
+ } elsif ($_ eq "CODE END") {
+ if (!$incodeblock) {
+ warning({ FILE => $f, LINE => $ln },
+ "CODE END outside CODE section");
+ }
+ if ($inheaderblock) {
+ error({ FILE => $f, LINE => $ln },
+ "CODE END inside HEADER section");
+ return undef;
+ }
$incodeblock = 0;
next;
} elsif ($incodeblock) {
$data->{override} = "$_\n";
}
next;
+ } elsif ($_ eq "HEADER START") {
+ if ($inheaderblock) {
+ warning({ FILE => $f, LINE => $ln },
+ "HEADER START inside HEADER section");
+ }
+ if ($incodeblock) {
+ error({ FILE => $f, LINE => $ln },
+ "HEADER START inside CODE section");
+ return undef;
+ }
+ $inheaderblock = 1;
+ next;
+ } elsif ($_ eq "HEADER END") {
+ if (!$inheaderblock) {
+ warning({ FILE => $f, LINE => $ln },
+ "HEADER END outside HEADER section");
+ }
+ if ($incodeblock) {
+ error({ FILE => $f, LINE => $ln },
+ "CODE END inside HEADER section");
+ return undef;
+ }
+ $inheaderblock = 0;
+ next;
+ } elsif ($inheaderblock) {
+ if (exists $data->{header}) {
+ $data->{header}.="$_\n";
+ } else {
+ $data->{header} = "$_\n";
+ }
+ next;
}
my @fields = /([^ "]+|"[^"]+")/g;
$self->RegisterInterface($x);
$self->RegisterInterfaceHandoff($x);
+ if (exists ($self->{conformance}->{header})) {
+ $self->pidl_hdr($self->{conformance}->{header});
+ }
+
$self->pidl_hdr("#endif /* $define */");
}
my $notice =
"/* DO NOT EDIT
- This filter was automatically generated
+ This file was automatically generated by Pidl
from $idl_file and $cnf_file.
Pidl is a perl based IDL compiler for DCE/RPC idl files.
";
- $self->pidl_hdr($notice);
-
$self->{res}->{headers} = "\n";
$self->{res}->{headers} .= "#include \"config.h\"\n";
}
$parser.=$self->{res}->{code};
- my $header = "/* autogenerated by pidl */\n\n";
+ my $header = $notice;
$header.=$self->{res}->{hdr};
$self->CheckUsed($self->{conformance});