summaryrefslogtreecommitdiff
path: root/lib/sbin/create_c_stuff.pl
diff options
context:
space:
mode:
authortradke <tradke@17b73243-c579-4c4c-a9d2-2d5706c11dac>2003-01-07 16:16:13 +0000
committertradke <tradke@17b73243-c579-4c4c-a9d2-2d5706c11dac>2003-01-07 16:16:13 +0000
commitf1bdf36da62131c23804e17a6542323b13c7263d (patch)
treec2a3fe98d88064ac1fe918bfe59613fb7b4d55d8 /lib/sbin/create_c_stuff.pl
parent6ba1dd6feffb75a396d541b59bddbb7deb137438 (diff)
Erik Schnetter's patch to declare string parameters in a thorn's parameter
struct as constant. Completes the fix for Cactus-1350. git-svn-id: http://svn.cactuscode.org/flesh/trunk@3079 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'lib/sbin/create_c_stuff.pl')
-rw-r--r--lib/sbin/create_c_stuff.pl25
1 files changed, 8 insertions, 17 deletions
diff --git a/lib/sbin/create_c_stuff.pl b/lib/sbin/create_c_stuff.pl
index 34aba7de..eb768eb7 100644
--- a/lib/sbin/create_c_stuff.pl
+++ b/lib/sbin/create_c_stuff.pl
@@ -38,7 +38,7 @@ sub CreateParameterBindingFile
foreach $parameter (&order_params($rhparameters,$rhparameter_db))
{
my $type = $rhparameter_db->{"\U$rhparameters->{$parameter} $parameter\E type"};
- my ($type_string) = &get_c_type_string($type);
+ my $type_string = &get_c_type_string($type);
my $realname = $rhparameter_db->{"\U$rhparameters->{$parameter} $parameter\E realname"};
@@ -72,24 +72,21 @@ sub CreateParameterBindingFile
# @date Mon Jan 11 15:33:50 1999
# @author Tom Goodale
# @desc
-# Returns the correct type string for a parameter, both for declaring it
-# as modifiable member of a structure as well as a assign-once local variable
+# Returns the correct type string for a parameter.
# @enddesc
#@@*/
sub get_c_type_string
{
my($type) = @_;
- my($type_string, $decl_type_string);
+ my $type_string;
- $decl_type_string = '';
if($type eq 'KEYWORD' ||
$type eq 'STRING' ||
$type eq 'SENTENCE')
{
- $type_string = 'char *';
- $decl_type_string = 'char *const';
+ $type_string = 'const char *';
}
elsif($type eq 'BOOLEAN')
{
@@ -131,14 +128,8 @@ sub get_c_type_string
{
&CST_error(0,"Unknown parameter type '$type'",'',__LINE__,__FILE__);
}
- if (! $decl_type_string)
- {
- $decl_type_string = $type_string;
- }
- # add the const qualifier for assign-once local variables
- $decl_type_string = "const $decl_type_string";
- return ($type_string, $decl_type_string);
+ return $type_string;
}
@@ -192,7 +183,7 @@ sub CreateCStructureParameterHeader
foreach $parameter (&order_params($rhparameters, $rhparameter_db))
{
my $type = $rhparameter_db->{"\U$rhparameters->{$parameter} $parameter\E type"};
- my ($type_string, $decl_type_string) = &get_c_type_string($type);
+ my $type_string = &get_c_type_string($type);
my $array_size = $rhparameter_db->{"\U$rhparameters->{$parameter} $parameter\E array_size"};
@@ -201,14 +192,14 @@ sub CreateCStructureParameterHeader
if($array_size)
{
- $varprefix = '*const ';
+ $varprefix = ' const *';
$suffix = "[$array_size]";
}
my $realname = $rhparameter_db->{"\U$rhparameters->{$parameter} $parameter\E realname"};
push(@data, " $type_string $realname$suffix;");
- push(@definition, " $decl_type_string $varprefix$parameter = $structure.$realname; \\");
+ push(@definition, " $type_string$varprefix const $parameter = $structure.$realname; \\");
push(@use, " (void) ($parameter + 0); \\");
}