mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
efef4366f1
Warnings are good. If we turn on warnings with 'use warnings', we will see bugs that have lain latent for years. Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
54 lines
895 B
Perl
54 lines
895 B
Perl
###################################################
|
|
# 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;
|
|
use warnings;
|
|
|
|
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;
|