summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authortradke <tradke@17b73243-c579-4c4c-a9d2-2d5706c11dac>2005-09-02 13:21:05 +0000
committertradke <tradke@17b73243-c579-4c4c-a9d2-2d5706c11dac>2005-09-02 13:21:05 +0000
commite48e267832a3eb9b417a441900ddc5a2acaf87d9 (patch)
treedfd7c9090fb5861cb7e7d53084ee563dfe11d997 /lib
parent6ea8090f2cc4ba2f809d2b7c8eb87e1e49d16749 (diff)
Check that the ranges and default value for integer parameters
are also given as integers. git-svn-id: http://svn.cactuscode.org/flesh/trunk@4118 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'lib')
-rw-r--r--lib/sbin/parameter_parser.pl14
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/sbin/parameter_parser.pl b/lib/sbin/parameter_parser.pl
index 76ef9239..c9960640 100644
--- a/lib/sbin/parameter_parser.pl
+++ b/lib/sbin/parameter_parser.pl
@@ -382,6 +382,15 @@ sub parse_param_ccl
# Strip out double quotes enclosing a non-numeric parameter range
$new_ranges =~ s/^"(.*)"$/$1/ if ($type !~ m:INT|REAL:);
+ # check integer parameter ranges
+ if ($type eq 'INT' && ! (
+ $new_ranges =~ /^[+-]?\d+$/ ||
+ $new_ranges =~ /^(\*|[(]?[+-]?\d+)?:(\*|[(]?[+-]?\d+)?(:\d+)?$/)) {
+ &CST_error(0, "Invalid range '$new_ranges' for integer " .
+ "parameter '$variable' of thorn '$thorn'",
+ '', __LINE__, __FILE__);
+ }
+
$parameter_db{"\U$thorn $variable\E range $parameter_db{\"\U$thorn $variable\E ranges\"} range"} = $new_ranges;
# Check description
@@ -423,6 +432,11 @@ sub parse_param_ccl
$default =~ m:^(.*[^\s])\s*:;
$default = $1;
+ if ($type eq 'INT' && $default !~ /^[+-]?\d+$/) {
+ &CST_error(0, "Default '$default' for integer parameter " .
+ "'$variable' in thorn '$thorn' is not an integer",
+ '', __LINE__, __FILE__);
+ }
if ($type =~ m:INT|REAL: && $default =~ m:":)
{
&CST_error(0, "String default given for $type $variable in " .