summaryrefslogtreecommitdiff
path: root/source4/build/pidl
diff options
context:
space:
mode:
Diffstat (limited to 'source4/build/pidl')
-rw-r--r--source4/build/pidl/idl.pm2
-rw-r--r--source4/build/pidl/idl.yp2
-rw-r--r--source4/build/pidl/typelist.pm27
3 files changed, 24 insertions, 7 deletions
diff --git a/source4/build/pidl/idl.pm b/source4/build/pidl/idl.pm
index 156a3435e6..8b6cf3956e 100644
--- a/source4/build/pidl/idl.pm
+++ b/source4/build/pidl/idl.pm
@@ -2470,7 +2470,7 @@ sub parse_idl($$)
if (! defined $cpp) {
$cpp = "cpp"
}
- my $data = `$cpp -xc $filename`;
+ my $data = `$cpp -D__PIDL__ -xc $filename`;
$/ = $saved_delim;
$self->YYData->{INPUT} = $data;
diff --git a/source4/build/pidl/idl.yp b/source4/build/pidl/idl.yp
index e283237627..b556b064b4 100644
--- a/source4/build/pidl/idl.yp
+++ b/source4/build/pidl/idl.yp
@@ -384,7 +384,7 @@ sub parse_idl($$)
if (! defined $cpp) {
$cpp = "cpp"
}
- my $data = `$cpp -xc $filename`;
+ my $data = `$cpp -D__PIDL__ -xc $filename`;
$/ = $saved_delim;
$self->YYData->{INPUT} = $data;
diff --git a/source4/build/pidl/typelist.pm b/source4/build/pidl/typelist.pm
index a8600cedbe..cc8504e80f 100644
--- a/source4/build/pidl/typelist.pm
+++ b/source4/build/pidl/typelist.pm
@@ -153,7 +153,7 @@ sub mapScalarType($)
# it's a bug when a type is not in the list
# of known scalars or has no mapping
- return $scalars->{$name}{C_TYPE} if defined($scalars->{$name}) and defined($scalars->{$name}{C_TYPE});
+ return $typedefs{$name}->{DATA}->{C_TYPE} if defined($typedefs{$name}) and defined($typedefs{$name}->{DATA}->{C_TYPE});
die("Unknown scalar type $name");
}
@@ -225,11 +225,27 @@ sub RegisterScalars()
$typedefs{$k} = {
NAME => $k,
TYPE => "TYPEDEF",
- DATA => {
- TYPE => "SCALAR",
- NAME => $k
- }
+ DATA => $scalars->{$k}
};
+ $typedefs{$k}->{DATA}->{TYPE} = "SCALAR";
+ $typedefs{$k}->{DATA}->{NAME} = $k;
+ }
+}
+
+my $aliases = {
+ "DWORD" => "uint32",
+ "int" => "int32",
+ "WORD" => "uint16",
+ "char" => "uint8",
+ "long" => "int32",
+ "short" => "int16",
+ "hyper" => "HYPER_T"
+};
+
+sub RegisterAliases()
+{
+ foreach my $k (keys %{$aliases}) {
+ $typedefs{$k} = $typedefs{$aliases->{$k}};
}
}
@@ -304,5 +320,6 @@ sub LoadIdl($)
}
RegisterScalars();
+RegisterAliases();
1;