diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2005-08-21 23:30:17 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:34:17 -0500 |
commit | 59b13f9a1d684a632c2c73352f0ec08a63bc0913 (patch) | |
tree | 14b0a564e4db3377f7ad2fa1f9671f8e04405962 /source4/pidl/lib/Parse/Pidl/Samba/SWIG.pm | |
parent | efc03df292aa84edb592c22191dbf86cdf8c32d0 (diff) | |
download | samba-59b13f9a1d684a632c2c73352f0ec08a63bc0913.tar.gz samba-59b13f9a1d684a632c2c73352f0ec08a63bc0913.tar.bz2 samba-59b13f9a1d684a632c2c73352f0ec08a63bc0913.zip |
r9460: - Move pidl to lib/. This fixes standalone installation of pidl.
- Update the README
- Allow building the docs stand-alone
(This used to be commit b56084ce251ab7a35dd1422f38de258e8e1e1477)
Diffstat (limited to 'source4/pidl/lib/Parse/Pidl/Samba/SWIG.pm')
-rw-r--r-- | source4/pidl/lib/Parse/Pidl/Samba/SWIG.pm | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/source4/pidl/lib/Parse/Pidl/Samba/SWIG.pm b/source4/pidl/lib/Parse/Pidl/Samba/SWIG.pm new file mode 100644 index 0000000000..409095804f --- /dev/null +++ b/source4/pidl/lib/Parse/Pidl/Samba/SWIG.pm @@ -0,0 +1,76 @@ +################################################### +# Samba4 parser generator for swig wrappers +# Copyright tpot@samba.org 2004,2005 +# released under the GNU GPL + +package Parse::Pidl::Samba::SWIG; + +use strict; + +sub pidl($) +{ + print OUT shift; +} + +##################################################################### +# rewrite autogenerated header file +sub RewriteHeader($$$) +{ + my($idl) = shift; + my($input) = shift; + my($output) = shift; + + open(IN, "<$input") || die "can't open $input for reading"; + open(OUT, ">$output") || die "can't open $output for writing"; + + pidl "%{\n"; + pidl "#define data_in in\n"; + pidl "#define data_out out\n"; + pidl "%}\n\n"; + + while(<IN>) { + + # Rename dom_sid2 to dom_sid as we don't care about the difference + # for the swig wrappers. + + s/dom_sid2/dom_sid/g; + + # Copy structure and union definitions + + if (/^(struct|union) .*? {$/ .. /^\};$/) { + s/\} (in|out);/\} data_$1;/; # "in" is a Python keyword + pidl $_; + next; + } + + # Copy dcerpc functions + + pidl $_ if /^NTSTATUS dcerpc_.*?\(struct dcerpc_pipe/; + + # Copy interface definitions + + pidl $_ + if /^\#define DCERPC_.*?_UUID/ or /^\#define DCERPC_.*?_VERSION/; + } + + close(OUT); +} + +##################################################################### +# rewrite autogenerated header file +sub RewriteC($$$) +{ + my($idl) = shift; + my($input) = shift; + my($output) = shift; + + open(IN, "<$input") || die "can't open $input for reading"; + open(OUT, ">>$output") || die "can't open $output for writing"; + + while(<IN>) { + } + + close(OUT); +} + +1; |