diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2008-09-18 20:29:05 +0200 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2008-09-18 20:29:05 +0200 |
commit | 729ffbae086309992d7433a296fca64f6800f8fa (patch) | |
tree | 6c133d2b91ab9313da11bf8bad15f497e1b5c61f /pidl/lib/Parse/Pidl/CUtil.pm | |
parent | 88ad1a936ccd2451d6dbf542a0a746ad71a3e968 (diff) | |
parent | fc7050e54c69919d754ca0adf3f2f741a501fec4 (diff) | |
download | samba-729ffbae086309992d7433a296fca64f6800f8fa.tar.gz samba-729ffbae086309992d7433a296fca64f6800f8fa.tar.bz2 samba-729ffbae086309992d7433a296fca64f6800f8fa.zip |
Merge branch 'master' of ssh://git.samba.org/data/git/samba into noejs
Conflicts:
source4/main.mk
Diffstat (limited to 'pidl/lib/Parse/Pidl/CUtil.pm')
-rw-r--r-- | pidl/lib/Parse/Pidl/CUtil.pm | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/pidl/lib/Parse/Pidl/CUtil.pm b/pidl/lib/Parse/Pidl/CUtil.pm new file mode 100644 index 0000000000..9deb6ee177 --- /dev/null +++ b/pidl/lib/Parse/Pidl/CUtil.pm @@ -0,0 +1,52 @@ +################################################### +# C utility functions for pidl +# Copyright jelmer@samba.org 2005-2007 +# released under the GNU GPL +package Parse::Pidl::CUtil; + +require Exporter; +@ISA = qw(Exporter); +@EXPORT = qw(get_pointer_to get_value_of get_array_element); +use vars qw($VERSION); +$VERSION = '0.01'; + +use strict; + +sub get_pointer_to($) +{ + my $var_name = shift; + + if ($var_name =~ /^\*(.*)$/) { + return $1; + } elsif ($var_name =~ /^\&(.*)$/) { + return "&($var_name)"; + } else { + return "&$var_name"; + } +} + +sub get_value_of($) +{ + my $var_name = shift; + + if ($var_name =~ /^\&(.*)$/) { + return $1; + } else { + return "*$var_name"; + } +} + +sub get_array_element($$) +{ + my ($var_name, $idx) = @_; + + if ($var_name =~ /^\*.*$/) { + $var_name = "($var_name)"; + } elsif ($var_name =~ /^\&.*$/) { + $var_name = "($var_name)"; + } + + return "$var_name"."[$idx]"; +} + +1; |